/** * @brief Transform a direction from world space to local space. **/ public FPVector4 InverseTransformDirection(FPVector4 direction) { Debug.Assert(direction.w == FP.Zero); FPMatrix4x4 matrix = FPMatrix4x4.Translate(position) * FPMatrix4x4.Rotate(rotation); return(FPVector4.Transform(direction, FPMatrix4x4.Inverse(matrix))); }
public static FPVector4 Transform(FPVector position, FPMatrix4x4 matrix) { FPVector4 result; FPVector4.Transform(ref position, ref matrix, out result); return(result); }
/** * @brief Transform a vector from world space to local space. **/ public FPVector4 InverseTransformVector(FPVector4 vector) { Debug.Assert(vector.w == FP.Zero); return(FPVector4.Transform(vector, worldToLocalMatrix)); }
/** * @brief Transform a vector from local space to world space. **/ public FPVector4 TransformVector(FPVector4 vector) { Debug.Assert(vector.w == FP.Zero); return(FPVector4.Transform(vector, localToWorldMatrix)); }
public FPVector InverseTransformPoint(FPVector point) { return(FPVector4.Transform(point, worldToLocalMatrix).ToFPVector()); }
/** * @brief Transform a point from world space to local space. **/ public FPVector4 InverseTransformPoint(FPVector4 point) { Debug.Assert(point.w == FP.One); return(FPVector4.Transform(point, worldToLocalMatrix)); }
public FPVector TransformPoint(FPVector point) { return(FPVector4.Transform(point, localToWorldMatrix).ToFPVector()); }
/** * @brief Transform a point from local space to world space. **/ public FPVector4 TransformPoint(FPVector4 point) { Debug.Assert(point.w == FP.One); return(FPVector4.Transform(point, localToWorldMatrix)); }