public Vector3 ProjectVector( Vector3 point )
{
// We know plane normal is unit length, so use simple method
Matrix3 xform;
xform.m00 = 1.0f - this.Normal.x * this.Normal.x;
xform.m01 = -this.Normal.x * this.Normal.y;
xform.m02 = -this.Normal.x * this.Normal.z;
xform.m10 = -this.Normal.y * this.Normal.x;
xform.m11 = 1.0f - this.Normal.y * this.Normal.y;
xform.m12 = -this.Normal.y * this.Normal.z;
xform.m20 = -this.Normal.z * this.Normal.x;
xform.m21 = -this.Normal.z * this.Normal.y;
xform.m22 = 1.0f - this.Normal.z * this.Normal.z;
return xform * point;
}