Click or drag to resize

Transform Methods

The Transform type exposes the following members.

Methods
  NameDescription
Public methodAffineize
Replaces the last row with (0 0 0 1), discarding any perspective part of this transform
Public methodStatic memberChangeBasis(Plane, Plane)
Computes a change of basis transformation. A basis change is essentially a remapping of geometry from one coordinate system to another.
Public methodStatic memberChangeBasis(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.
Public methodClone
Returns a deep copy of the transform. For languages that treat structures as value types, this can be accomplished by a simple assignment.
Public methodCompareTo
Compares this transform with another transform.

M33 has highest value, then M32, etc..

Public methodDecomposeAffine(Transform, Vector3d)
Decomposes an affine transformation. A transformation is affine if it is valid and its last row is [0, 0, 0, 1]. An affine transformation can be broken into a linear transformation and a translation. Note, a perspective transformation is not affine.
Public methodDecomposeAffine(Vector3d, Transform)
Decomposes an affine transformation. A transformation is affine if it is valid and its last row is [0, 0, 0, 1]. An affine transformation can be broken into a linear transformation and a translation. Note, a perspective transformation is not affine.
Public methodDecomposeAffine(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 non-uniform scale in an orthonormal coordinate system.
Public methodDecomposeRigid
Decomposes a rigid transformation. The transformation must be affine.
Public methodDecomposeSimilarity
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.
Public methodDecomposeSymmetric
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 i-th column of Q is a corresponding unit length eigenvector. Note, this transformation must be Linear and Symmetric.
Public methodStatic memberDiagonal(Vector3d)
Constructs a new transformation with diagonal (d0,d1,d2,1.0).
Public methodStatic memberDiagonal(Double, Double, Double)
Constructs a new transformation with diagonal (d0,d1,d2,1.0).
Public methodEquals(Object)
Determines if another object is a transform and its value equals this transform value.
(Overrides ValueTypeEquals(Object).)
Public methodEquals(Transform)
Determines if another transform equals this transform value.
Public methodGetEulerZYZ
Find the Euler angles for a rotation transformation.
Public methodGetHashCode
Gets a non-unique hashing code for this transform.
(Overrides ValueTypeGetHashCode.)
Public methodGetType
Gets the Type of the current instance.
(Inherited from Object.)
Public methodGetYawPitchRoll
Find the Tait-Byran angles (also loosely called Euler angles) for a rotation transformation.
Public methodIsRigid
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.
Public methodIsSimilarity
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.
Public methodIsZeroTransformationWithTolerance
True if all values are 0 within tolerance, except for M33 which is exactly 1.
Public methodLinearize
Affinitize() and replaces the last column with (0 0 0 1)^T, discarding any translation part of this transform.
Public methodStatic memberMirror(Plane)
Constructs a new Mirror transformation.
Public methodStatic memberMirror(Point3d, Vector3d)
Create mirror transformation matrix The mirror transform maps a point Q to Q - (2*(Q-P)oN)*N, where P = pointOnMirrorPlane and N = normalToMirrorPlane.
Public methodStatic memberMultiply
Multiplies (combines) two transformations.

This is the same as the * operator between two transformations.

Public methodOrthogonalize
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.
Public methodStatic memberPlanarProjection
Constructs a projection transformation.
Public methodStatic memberPlaneToPlane
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.
Public methodStatic memberProjectAlong
Construct a projection onto a plane along a specific direction.
Public methodStatic memberRotation(Double, Point3d)
Constructs a new rotation transformation with specified angle and rotation center. The axis of rotation is ZAxis.
Public methodStatic memberRotation(Double, Vector3d, Point3d)
Constructs a new rotation transformation with specified angle, rotation center and rotation axis.
Public methodStatic memberRotation(Vector3d, Vector3d, Point3d)
Constructs a new rotation transformation with start and end directions and rotation center.
Public methodStatic memberRotation(Double, Double, Vector3d, Point3d)
Constructs a new rotation transformation with specified angle, rotation center and rotation axis.
Public methodStatic memberRotation(Vector3d, Vector3d, Vector3d, Vector3d, Vector3d, Vector3d)
Constructs a transformation that maps X0 to X1, Y0 to Y1, Z0 to Z1. The frames should be right hand orthonormal frames (unit vectors with Z = X x Y). The resulting rotation fixes the origin (0,0,0), maps initial X to final X, initial Y to final Y, and initial Z to final Z.
Public methodStatic memberRotationZYX
Create rotation transformation From Tait-Byran angles (also loosely known as Euler angles).
Public methodStatic memberRotationZYZ
Create rotation transformation From Euler angles.
Public methodStatic memberScale(Point3d, Double)
Constructs a new uniform scaling transformation with a specified scaling anchor point.
Public methodStatic memberScale(Plane, Double, Double, Double)
Constructs a new non-uniform scaling transformation with a specified scaling anchor point.
Public methodStatic memberShear
Constructs a Shear transformation.
Public methodToFloatArray
Return the matrix as a linear array of 16 float values
Public methodToString
Returns a string representation of this transform.
(Overrides ValueTypeToString.)
Public methodTransformBoundingBox
Computes a new bounding box that is the smallest axis aligned bounding box that contains the transformed result of its 8 original corner points.
Public methodTransformList
Given a list, an array or any enumerable set of points, computes a new array of transformed points.
Public methodStatic memberCode exampleTranslation(Vector3d)
Constructs a new translation (move) transformation.
Public methodStatic memberCode exampleTranslation(Double, Double, Double)
Constructs a new translation (move) transformation. Right column is (dx, dy, dz, 1.0).
Public methodTranspose
Flip row/column values
Public methodTryGetInverse
Attempts to get the inverse transform of this transform.
Top
See Also