Exemplo n.º 1
0
 public static float PlaneAngleD(Vector3F a, Vector3F b, int nPlaneNormalIdx = 1)
 {
     a[nPlaneNormalIdx] = b[nPlaneNormalIdx] = 0.0f;
     a.Normalize();
     b.Normalize();
     return(Vector3F.AngleD(a, b));
 }
Exemplo n.º 2
0
        public static float PlaneAngleSignedD(Vector3F vFrom, Vector3F vTo, int nPlaneNormalIdx = 1)
        {
            vFrom[nPlaneNormalIdx] = vTo[nPlaneNormalIdx] = 0.0f;
            vFrom.Normalize();
            vTo.Normalize();
            float fSign  = Math.Sign(vFrom.Cross(vTo)[nPlaneNormalIdx]);
            float fAngle = fSign * Vector3F.AngleD(vFrom, vTo);

            return(fAngle);
        }
Exemplo n.º 3
0
        public static float PlaneAngleSignedD(Vector3F vFrom, Vector3F vTo, Vector3F planeN)
        {
            vFrom = vFrom - Vector3F.Dot(vFrom, planeN) * planeN;
            vTo   = vTo - Vector3F.Dot(vTo, planeN) * planeN;
            vFrom.Normalize();
            vTo.Normalize();
            Vector3F c      = Vector3F.Cross(vFrom, vTo);
            float    fSign  = Math.Sign(Vector3F.Dot(c, planeN));
            float    fAngle = fSign * Vector3F.AngleD(vFrom, vTo);

            return(fAngle);
        }