public static Vector3 _FitToPlane( Vector3 pos, Vector3 planeDir ) { float d = Vector3.Dot( pos, planeDir ); if( d <= IKEpsilon && d >= -IKEpsilon ) { return pos; // Cross. } return pos - planeDir * d; }