/// <summary> /// /// </summary> /// <param name="point"></param> /// <param name="direction"></param> /// <param name="origin"></param> /// <param name="normal"></param> /// <returns></returns> public static Vec3d ProjectToPlane(Vec3d point, Vec3d origin, Vec3d normal, Vec3d direction) { return(point + Vec3d.MatchProjection(direction, origin - point, normal)); }
/// <summary> /// Projects a vector to the given plane along the given direction. /// </summary> /// <param name="vector"></param> /// <param name="normal"></param> /// <param name="direction"></param> /// <returns></returns> public static Vec3d ProjectToPlaneAlong(Vec3d vector, Vec3d normal, Vec3d direction) { return(vector - Vec3d.MatchProjection(direction, vector, normal)); }