/// <summary> /// Transforms the given plane by this matrix</summary> /// <param name="p">Input plane</param> /// <param name="transposeOfInverse">Transpose of the inverse of this matrix, for performance reasons</param> /// <param name="result">Output plane</param> public void Transform(Plane3F p, Matrix4F transposeOfInverse, out Plane3F result) { Vec3F normal = p.Normal; Vec3F point = p.PointOnPlane(); TransformNormal(normal, transposeOfInverse, out normal); Transform(point, out point); normal.Normalize(); result = new Plane3F(normal, point); }
/// <summary> /// Transforms the given plane by this matrix</summary> /// <param name="p">Input plane</param> /// <param name="result">Output plane</param> public void Transform(Plane3F p, out Plane3F result) { Vec3F normal = p.Normal; Vec3F point = p.PointOnPlane(); TransformNormal(normal, out normal); Transform(point, out point); normal.Normalize(); result = new Plane3F(normal, point); }