public static IAffineTransformMatrix <T> NewRotation(VectorDimension dimension, double r) { IAffineTransformMatrix <T> a = MatrixFactory <T> .NewIdentity(dimension); a.RotateAlong(MatrixFactory <T> .CreateZeroVector(dimension), r); return(a); }
public static IAffineTransformMatrix <T> NewScaling(VectorDimension dimension, T s) { IAffineTransformMatrix <T> a = MatrixFactory <T> .NewIdentity(dimension); a.Scale(s); return(a); }
public static IAffineTransformMatrix <T> NewIdentity(VectorDimension dimension) { return(new AffineMatrix <T>( MatrixFormat.ColumnMajor, dimension == VectorDimension.Two ? 3 : 4)); //3); }
public static void Set(ref Vector2 storeVector, ref Vector2 referenceVector, VectorDimension dimension) { switch (dimension) { case VectorDimension.X: storeVector.x = referenceVector.x; break; case VectorDimension.Y: storeVector.y = referenceVector.y; break; } }
public static void Set(ref Vector4 storeVector, ref Vector4 referenceVector, VectorDimension dimension) { switch (dimension) { case VectorDimension.X: storeVector.x = referenceVector.x; break; case VectorDimension.Y: storeVector.y = referenceVector.y; break; case VectorDimension.Z: storeVector.z = referenceVector.z; break; case VectorDimension.W: storeVector.w = referenceVector.w; break; } }
public static IVector <T> CreateZeroVector(VectorDimension dimension) { return(new Vector <T>((int)dimension)); }