Transform Structure |
This is parallel to C++ ON_Xform.
Namespace: Rhino.Geometry
The Transform type exposes the following members.
Name | Description | |
---|---|---|
![]() | Transform(Double) |
Initializes a new transform matrix with a specified value along the diagonal.
|
![]() | Transform(Transform) |
Initializes a new transform matrix with a specified value.
|
Name | Description | |
---|---|---|
![]() | Determinant |
The determinant of this 4x4 matrix.
|
![]() ![]() | Identity |
Gets a new identity transform matrix. An identity matrix defines no transformation.
|
![]() | IsAffine |
Tests for 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.
|
![]() | IsIdentity | Return true if this Transform is the identity transform |
![]() | IsLinear |
Tests for a linear transformation.
A transformation is affine if it is valid and its last row is [0, 0, 0, 1].
If in addition its last column is ( 0, 0, 0, 1)^T then it is linear.
An affine transformation can be broken into a linear transformation and a translation.
|
![]() | IsRotation |
Returns true if this is a proper rotation.
|
![]() | IsValid |
Gets a value indicating whether or not this Transform is a valid matrix.
A valid transform matrix is not allowed to have any invalid numbers.
|
![]() | IsZero |
True if matrix is Zero4x4, ZeroTransformation, or some other type of
zero. The value xform[3][3] can be anything.
|
![]() | IsZero4x4 |
True if all values are 0
|
![]() | IsZeroTransformation |
True if all values are 0, except for M33 which is 1.
|
![]() | Item |
Gets or sets the matrix value at the given row and column indices.
|
![]() | M00 | Gets or sets this[0,0]. |
![]() | M01 | Gets or sets this[0,1]. |
![]() | M02 | Gets or sets this[0,2]. |
![]() | M03 | Gets or sets this[0,3]. |
![]() | M10 | Gets or sets this[1,0]. |
![]() | M11 | Gets or sets this[1,1]. |
![]() | M12 | Gets or sets this[1,2]. |
![]() | M13 | Gets or sets this[1,3]. |
![]() | M20 | Gets or sets this[2,0]. |
![]() | M21 | Gets or sets this[2,1]. |
![]() | M22 | Gets or sets this[2,2]. |
![]() | M23 | Gets or sets this[2,3]. |
![]() | M30 | Gets or sets this[3,0]. |
![]() | M31 | Gets or sets this[3,1]. |
![]() | M32 | Gets or sets this[3,2]. |
![]() | M33 | Gets or sets this[3,3]. |
![]() | RigidType |
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.
|
![]() | SimilarityType |
Gets a value indicating whether or not the Transform maintains similarity.
The easiest way to think of Similarity is that any circle, when transformed,
remains a circle. Whereas a non-similarity Transform deforms circles into ellipses.
|
![]() ![]() | Unset |
Gets an XForm filled with RhinoMath.UnsetValue.
|
![]() ![]() | ZeroTransformation |
ZeroTransformation diagonal = (0,0,0,1)
|
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.
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.
|
![]() | DecomposeAffine(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.
|
![]() | 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 non-uniform 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 i-th column of Q is a corresponding
unit length eigenvector. Note, this transformation must be Linear and Symmetric.
|
![]() | DecomposeTextureMapping |
Decomposition of a uvw transform into components
|
![]() ![]() | 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 non-unique hashing code for this transform.
(Overrides ValueTypeGetHashCode.) |
![]() | GetQuaternion |
If this transform is a proper rotation, then find the equivalent quaternion.
|
![]() | GetType | Gets the Type of the current instance. (Inherited from Object.) |
![]() | GetYawPitchRoll |
Find the Tait-Byran 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*(Q-P)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. The axis of rotation is ZAxis.
|
![]() ![]() | 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.
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.
|
![]() ![]() | RotationZYX |
Create rotation transformation From Tait-Byran 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 non-uniform scaling transformation with a specified scaling anchor point.
|
![]() ![]() | Shear |
Constructs a Shear transformation.
|
![]() ![]() | TextureMapping |
Construct a UVW Transform from components.
|
![]() | ToDoubleArray |
Return the matrix as a linear array of 16 double values.
|
![]() | 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.
|
Name | Description | |
---|---|---|
![]() ![]() | Equality |
Determines if two transformations are equal in value.
|
![]() ![]() | Inequality |
Determines if two transformations are different in value.
|
![]() ![]() | Multiply(Transform, Point3d) |
Multiplies a transformation by a point and gets a new point.
|
![]() ![]() | Multiply(Transform, Transform) |
Multiplies (combines) two transformations.
|
![]() ![]() | Multiply(Transform, Vector3d) |
Multiplies a transformation by a vector and gets a new vector.
|