Transform Methods 
The Transform type exposes the following members.
Name  Description  

Affineize 
Replaces the last row with (0 0 0 1), discarding any perspective part of this transform
 
ChangeBasis(Plane, Plane) 
Computes a change of basis transformation. A basis change is essentially a remapping
of geometry from one coordinate system to another.
 
ChangeBasis(Vector3d, Vector3d, Vector3d, Vector3d, Vector3d, Vector3d) 
Computes a change of basis transformation. A basis change is essentially a remapping
of geometry from one coordinate system to another.
 
Clone 
Returns a deep copy of the transform. For languages that treat structures as value types, this can
be accomplished by a simple assignment.
 
CompareTo 
Compares this transform with another transform.
M33 has highest value, then M32, etc..  
DecomposeAffine(Transform, Vector3d) 
Decomposes an affine transformation.
An affine transformation can be broken into a linear transformation and a translation.
Note, a perspective transformation is not affine.
 
DecomposeAffine(Vector3d, Transform) 
Decomposes an affine transformation.
An affine transformation can be broken into a linear transformation and a translation.
Note, a perspective transformation is not affine.
 
DecomposeAffine(Vector3d, Transform, Transform, Vector3d) 
An affine transformation can be decomposed into a Symmetric, Rotation and Translation.
Then the Symmetric component may be further decomposed as nonuniform scale in an orthonormal
coordinate system.
 
DecomposeRigid 
Decomposes a rigid transformation. The transformation must be affine.
 
DecomposeSimilarity 
Decomposes a similarity transformation. The transformation must be affine.
A similarity transformation can be broken into a sequence of a dilation, translation, rotation, and a reflection.
 
DecomposeSymmetric 
A Symmetric linear transformation can be decomposed A = Q * Diag * Q ^ T, where Diag is a diagonal
transformation. Diag[i][i] is an eigenvalue of A and the ith column of Q is a corresponding
unit length eigenvector. Note, this transformation must be Linear and Symmetric.
 
Diagonal(Vector3d) 
Constructs a new transformation with diagonal (d0,d1,d2,1.0).
 
Diagonal(Double, Double, Double) 
Constructs a new transformation with diagonal (d0,d1,d2,1.0).
 
Equals(Object) 
Determines if another object is a transform and its value equals this transform value.
(Overrides ValueTypeEquals(Object).)  
Equals(Transform) 
Determines if another transform equals this transform value.
 
GetEulerZYZ 
Find the Euler angles for a rotation transformation.
 
GetHashCode 
Gets a nonunique hashing code for this transform.
(Overrides ValueTypeGetHashCode.)  
GetType  Gets the Type of the current instance. (Inherited from Object.)  
GetYawPitchRoll 
Find the TaitByran angles (also loosely called Euler angles) for a rotation transformation.
 
IsRigid 
Gets a value indicating whether or not the Transform is rigid.
A rigid transformation can be broken into a proper rotation and a translation,
while an isometry transformation could also include a reflection.
 
IsSimilarity 
Gets a value indicating whether or not the Transform maintains similarity.
A similarity transformation can be broken into a sequence of a dilation, translation, rotation, and a reflection.
 
IsZeroTransformationWithTolerance 
True if all values are 0 within tolerance, except for M33 which is exactly 1.
 
Linearize 
Affinitize() and replaces the last column with (0 0 0 1)^T, discarding any translation part of this transform.
 
Mirror(Plane) 
Constructs a new Mirror transformation.
 
Mirror(Point3d, Vector3d) 
Create mirror transformation matrix
The mirror transform maps a point Q to
Q  (2*(QP)oN)*N, where
P = pointOnMirrorPlane and N = normalToMirrorPlane.
 
Multiply 
Multiplies (combines) two transformations.
This is the same as the * operator between two transformations.  
Orthogonalize 
Force the linear part of this transformation to be a rotation (or a rotation with reflection).
Use DecomposeRigid(T,R) to find the nearest rotation.
 
PlanarProjection 
Constructs a projection transformation.
 
PlaneToPlane 
Create a rotation transformation that orients plane0 to plane1. If you want to orient objects from
one plane to another, use this form of transformation.
 
ProjectAlong 
Construct a projection onto a plane along a specific direction.
 
Rotation(Double, Point3d) 
Constructs a new rotation transformation with specified angle and rotation center.
 
Rotation(Double, Vector3d, Point3d) 
Constructs a new rotation transformation with specified angle, rotation center and rotation axis.
 
Rotation(Vector3d, Vector3d, Point3d) 
Constructs a new rotation transformation with start and end directions and rotation center.
 
Rotation(Double, Double, Vector3d, Point3d) 
Constructs a new rotation transformation with specified angle, rotation center and rotation axis.
 
Rotation(Vector3d, Vector3d, Vector3d, Vector3d, Vector3d, Vector3d) 
Constructs a transformation that maps X0 to X1, Y0 to Y1, Z0 to Z1.
 
RotationZYX 
Create rotation transformation From TaitByran angles (also loosely known as Euler angles).
 
RotationZYZ 
Create rotation transformation From Euler angles.
 
Scale(Point3d, Double) 
Constructs a new uniform scaling transformation with a specified scaling anchor point.
 
Scale(Plane, Double, Double, Double) 
Constructs a new nonuniform scaling transformation with a specified scaling anchor point.
 
Shear 
Constructs a Shear transformation.
 
ToFloatArray 
Return the matrix as a linear array of 16 float values
 
ToString 
Returns a string representation of this transform.
(Overrides ValueTypeToString.)  
TransformBoundingBox 
Computes a new bounding box that is the smallest axis aligned
bounding box that contains the transformed result of its 8 original corner
points.
 
TransformList 
Given a list, an array or any enumerable set of points, computes a new array of transformed points.
 
Translation(Vector3d) 
Constructs a new translation (move) transformation.
 
Translation(Double, Double, Double) 
Constructs a new translation (move) transformation.
Right column is (dx, dy, dz, 1.0).
 
Transpose 
Flip row/column values
 
TryGetInverse 
Attempts to get the inverse transform of this transform.
