Compare commits
	
		
			7 Commits
		
	
	
		
			5ed7ccdded
			...
			e5732f0ac5
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| e5732f0ac5 | |||
| c3bcaaee06 | |||
| 83d8a03be3 | |||
| 1acecdf3ce | |||
| 51b1f79a5d | |||
| 09c63b65df | |||
| 909b93088c | 
@@ -4,13 +4,21 @@ public static class Vector2DExtensions
 | 
			
		||||
{
 | 
			
		||||
    public static float Length(this Vector2D vector) => Vector2D.Length(vector);
 | 
			
		||||
    public static float LengthSquared(this Vector2D vector) => Vector2D.LengthSquared(vector);
 | 
			
		||||
 | 
			
		||||
    public static float Distance(this Vector2D from, Vector2D to) => Vector2D.Distance(from, to);
 | 
			
		||||
 | 
			
		||||
    public static Vector2D Invert(this Vector2D vector) => Vector2D.Invert(vector);
 | 
			
		||||
    public static Vector2D Add(this Vector2D vector, Vector2D vectorToAdd) => Vector2D.Add(vector, vectorToAdd);
 | 
			
		||||
    public static Vector2D Subtract(this Vector2D vector, Vector2D vectorToSubtract) => Vector2D.Subtract(vector, vectorToSubtract);
 | 
			
		||||
    public static Vector2D Multiply(this Vector2D vector, float value) => Vector2D.Multiply(vector, value);
 | 
			
		||||
    public static Vector2D Subdivide(this Vector2D vector, float value) => Vector2D.Subdivide(vector, value);
 | 
			
		||||
 | 
			
		||||
    public static Vector2D Reflect(this Vector2D vector, Vector2D normal) => Vector2D.Reflect(vector, normal);
 | 
			
		||||
    public static Vector2D Normalize(this Vector2D vector) => Vector2D.Normalize(vector);
 | 
			
		||||
    public static Vector2D FromTo(this Vector2D from, Vector2D to) => Vector2D.FromTo(from, to);
 | 
			
		||||
    public static Vector2D Scale(this Vector2D vector, Vector2D scale) => Vector2D.FromTo(vector, scale);
 | 
			
		||||
    public static Vector2D Scale(this Vector2D vector, Vector2D scale) => Vector2D.Scale(vector, scale);
 | 
			
		||||
 | 
			
		||||
    public static Vector2D Rotate(this Vector2D vector, float angleInRadian) => Vector2D.Rotate(vector, angleInRadian);
 | 
			
		||||
    public static Vector2D Min(this Vector2D left, Vector2D right) => Vector2D.Min(left, right);
 | 
			
		||||
    public static Vector2D Max(this Vector2D left, Vector2D right) => Vector2D.Max(left, right);
 | 
			
		||||
    public static Vector2D Clamp(this Vector2D vector, Vector2D min, Vector2D max) => Vector2D.Clamp(vector, min, max);
 | 
			
		||||
 
 | 
			
		||||
@@ -28,11 +28,18 @@ public record Vector2D(float X, float Y)
 | 
			
		||||
 | 
			
		||||
    public static float Distance(Vector2D from, Vector2D to) => Length(FromTo(from, to));
 | 
			
		||||
 | 
			
		||||
    public static Vector2D Invert(Vector2D vector) => -vector;
 | 
			
		||||
    public static Vector2D Add(Vector2D left, Vector2D right) => left + right;
 | 
			
		||||
    public static Vector2D Subtract(Vector2D left, Vector2D right) => left - right;
 | 
			
		||||
    public static Vector2D Multiply(Vector2D vector, float value) => vector * value;
 | 
			
		||||
    public static Vector2D Subdivide(Vector2D vector, float value) => vector / value;
 | 
			
		||||
 | 
			
		||||
    public static Vector2D Normalize(Vector2D vector) => vector / Length(vector);
 | 
			
		||||
    public static Vector2D Reflect(Vector2D vector, Vector2D normal) => vector - 2f * Dot(vector, normal) * normal;
 | 
			
		||||
    public static Vector2D FromTo(Vector2D from, Vector2D to) => to - from;
 | 
			
		||||
    public static Vector2D Scale(Vector2D vector, Vector2D scale) => new(vector.X * scale.X, vector.Y * scale.Y);
 | 
			
		||||
 | 
			
		||||
    public static Vector2D Rotate(Vector2D vector, float angleInRadian) => new(MathF.Cos(angleInRadian) * vector.X - MathF.Sin(angleInRadian) * vector.Y, MathF.Sin(angleInRadian) * vector.X + MathF.Cos(angleInRadian) * vector.Y);
 | 
			
		||||
    public static Vector2D Min(Vector2D left, Vector2D right) => new((left.X < right.X) ? left.X : right.X, (left.Y < right.Y) ? left.Y : right.Y);
 | 
			
		||||
    public static Vector2D Max(Vector2D left, Vector2D right) => new((left.X > right.X) ? left.X : right.X, (left.Y > right.Y) ? left.Y : right.Y);
 | 
			
		||||
    public static Vector2D Clamp(Vector2D vector, Vector2D min, Vector2D max) => new(Math.Clamp(vector.X, min.X, max.X), Math.Clamp(vector.Y, min.Y, max.Y));
 | 
			
		||||
 
 | 
			
		||||
@@ -7,6 +7,8 @@ namespace Syntriax.Engine.Physics2D.Primitives;
 | 
			
		||||
 | 
			
		||||
public record Shape(IList<Vector2D> Vertices)
 | 
			
		||||
{
 | 
			
		||||
    public Vector2D this[Index index] => Vertices[index];
 | 
			
		||||
 | 
			
		||||
    public static Triangle GetSuperTriangle(Shape shape)
 | 
			
		||||
    {
 | 
			
		||||
        float minX = float.MaxValue, minY = float.MaxValue;
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user