/// <summary> /// Transforms a vector by the given matrix. /// </summary> /// <param name="position">The vector to transform.</param> /// <param name="matrix">The transform matrix.</param> /// <returns>The transformed vector.</returns> #region public static JVector Transform(JVector position, JMatrix matrix) public static FPVector Transform(FPVector position, FPMatrix matrix) { FPVector result; FPVector.Transform(ref position, ref matrix, out result); return(result); }
public void RotateAround(FPVector point, FPVector axis, Fix64 angle) { FPVector vector = this.position; FPVector vector2 = vector - point; vector2 = FPVector.Transform(vector2, FPMatrix.AngleAxis(angle * Fix64.Deg2Rad, axis)); vector = point + vector2; this.position = vector; Rotate(axis, angle); }
public void Translate(FPVector translation, FPTransform relativeTo) { this.position += FPVector.Transform(translation, FPMatrix.CreateFromQuaternion(relativeTo.rotation)); }