// // Summary: // Constructs a new non-uniform scaling transformation with a specified scaling // anchor point. // // Parameters: // plane: // Defines the center and orientation of the scaling operation. // // xScaleFactor: // Scaling factor along the anchor plane X-Axis direction. // // yScaleFactor: // Scaling factor along the anchor plane Y-Axis direction. // // zScaleFactor: // Scaling factor along the anchor plane Z-Axis direction. // // Returns: // A transformation matrix which scales geometry non-uniformly. public static Transform3D Scale(Plane3D plane, double xScaleFactor, double yScaleFactor, double zScaleFactor) { Transform3D Xform = Identity; Xform.M00 = xScaleFactor; Xform.M11 = yScaleFactor; Xform.M22 = zScaleFactor; return(Xform); }
// // Summary: // Computes the angle on a plane between two vectors. // // Parameters: // a: // First vector. // // b: // Second vector. // // plane: // Two-dimensional plane on which to perform the angle measurement. // // Returns: // On success, the angle (in radians) between a and b as projected onto the plane; // UnsetValue on failure. public static double VectorAngle(Vector3D a, Vector3D b, Plane3D plane) { return(VectorAngle(a, b, plane.Normal)); }
// // Summary: // Constructs a Shear transformation. // // Parameters: // plane: // Base plane for shear. // // x: // Shearing vector along plane x-axis. // // y: // Shearing vector along plane y-axis. // // z: // Shearing vector along plane z-axis. // // Returns: // A transformation matrix which shear geometry. public static Transform3D Shear(Plane3D plane, Vector3D x, Vector3D y, Vector3D z) { return(Identity); }
// // Summary: // Construct a projection onto a plane along a specific direction. // // Parameters: // plane: // Plane to project onto. // // direction: // Projection direction, must not be parallel to the plane. // // Returns: // Projection transformation or identity transformation if projection could not // be calculated. public static Transform3D ProjectAlong(Plane3D plane, Vector3D direction) { return(Identity); }
// public static Transform3D PlaneToPlane(Plane3D plane0, Plane3D plane1) { return(Identity); }
// // Summary: // Constructs a projection transformation. // // Parameters: // plane: // Plane onto which everything will be perpendicularly projected. // // Returns: // A transformation matrix which projects geometry onto a specified plane. public static Transform3D PlanarProjection(Plane3D plane) { return(Identity); }
// // Summary: // Constructs a new Mirror transformation. // // Parameters: // mirrorPlane: // Plane that defines the mirror orientation and position. // // Returns: // A transformation matrix which mirrors geometry in a specified plane. public static Transform3D Mirror(Plane3D mirrorPlane) { return(Identity); }
// // Summary: // Computes a change of basis transformation. A basis change is essentially a remapping // of geometry from one coordinate system to another. // // Parameters: // plane0: // Coordinate system in which the geometry is currently described. // // plane1: // Target coordinate system in which we want the geometry to be described. // // Returns: // A transformation matrix which orients geometry from one coordinate system to // another on success. Transform3D.Unset on failure. public static Transform3D ChangeBasis(Plane3D plane0, Plane3D plane1) { return(Identity); }