public virtual Matrix44Adaptor SetRotate(UnitVectorAdaptor fromDirection , UnitVectorAdaptor toDirection, PointAdaptor basePoint) { Debug.Assert(fromDirection != null && toDirection != null && basePoint != null); if (!(fromDirection != null && toDirection != null && basePoint != null)) return this; double angle = fromDirection.AngleTo(toDirection); VectorAdaptor axis = fromDirection.VectorAdaptor.Cross(toDirection.VectorAdaptor); SetRotate(angle, axis.UnitVectorAdaptor, basePoint); return this; }