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)); }
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)); }