Пример #1
0
        public static XMVector RotationAxis(XMVector axis, float angle)
        {
            Debug.Assert(!XMVector3.Equal(axis, XMGlobalConstants.Zero), "Reviewed");
            Debug.Assert(!XMVector3.IsInfinite(axis), "Reviewed");

            XMVector normal = XMVector3.Normalize(axis);

            return(XMQuaternion.RotationNormal(normal, angle));
        }
Пример #2
0
        public static XMVector FromPoints(XMVector point1, XMVector point2, XMVector point3)
        {
            XMVector v21 = XMVector.Subtract(point1, point2);
            XMVector v31 = XMVector.Subtract(point1, point3);

            XMVector n = XMVector3.Cross(v21, v31);

            n = XMVector3.Normalize(n);

            XMVector d = XMPlane
                         .DotNormal(n, point1)
                         .Negate();

            return(XMVector.Select(d, n, XMGlobalConstants.Select1110));
        }