Transform3 Structure

3-dimensional transformation represented by a 4x4 matrix.

Definition

Namespace: Karamba.Geometry
Assembly: KarambaCommon (in KarambaCommon.dll) Version: 3.0.8.0+eb23a7103f0eca0b6d808121e15fec6899194e15
C#
[SerializableAttribute]
public struct Transform3 : IComparable<Transform3>, 
	IEquatable<Transform3>
Inheritance
Object    ValueType    Transform3
Implements
IComparableTransform3, IEquatableTransform3

Constructors

Transform3 Initializes a new instance of the Transform3 struct. Create transformation from row-major order matrix array.

Properties

Determinant Gets the determinant of this 4x4 matrix.
Identity Gets a new identity transform matrix. An identity matrix defines no transformation.
Item Gets or sets the matrix value at the given row and column indixes.
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].

Methods

ChangeBasis(Plane3, Plane3) Computes a change of basis transformation. A basis change is essentially a remapping of geometry from one coordinate system to another.
ChangeBasis(Vector3, Vector3, Vector3, Vector3, Vector3, Vector3) Computes a change of basis transformation. A basis change is essentially a remapping of geometry from one coordinate system to another.
CompareTo Compares this transform with another transform.

M33 has highest value, then M32, etc..

Equals(Object) Determines if another object is a transform and its value equals this transform value.
(Overrides ValueTypeEquals(Object))
Equals(Transform3) Determines if another transform equals this transform value.
GetHashCode Gets a non-unique hashing code for this transform.
(Overrides ValueTypeGetHashCode)
GetType Gets the Type of the current instance.
(Inherited from Object)
Mirror(Plane3) Constructs a new Mirror transformation.
Mirror(Point3, Vector3) 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.

MultiplyPoint transform a point.
MultiplyVector apply a transformation to a vector.
PlanarProjection Constructs a projection transformation.
PlaneToPlane Change basis of transformation.
Rotation(Double, Point3) Constructs a new rotation transformation with specified angle and rotation center.
Rotation(Double, Vector3, Point3) Constructs a new rotation transformation with specified angle, rotation center and rotation axis.
Rotation(Vector3, Vector3, Point3) Constructs a new rotation transformation with start and end directions and rotation center.
Rotation(Double, Double, Vector3, Point3) Constructs a new rotation transformation with specified angle, rotation center and rotation axis.
Rotation(Vector3, Vector3, Vector3, Vector3, Vector3, Vector3) Constructs a transformation that maps X0 to X1, Y0 to Y1, Z0 to Z1.
Scale Constructs a new non-uniform scaling transformation with a specified scaling anchor point.
Shear Constructs a Shear transformation.
ToFloatArray Returns the matrix as a linear array of 16 float values.
ToString Returns a string representation of this transform.
(Overrides ValueTypeToString)
TransformPoints Given a list, an array or any enumerable set of points, computes a new array of tranformed points.
Translation(Vector3) 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 Flips row/column values.
TryGetInverse Attempts to get the inverse transform of this transform.

Operators

Equality(Transform3, Transform3) Determines if two transformations are equal in value.
Inequality(Transform3, Transform3) Determines if two transformations are different in value.
Multiply(Transform3, Transform3) Multiplies (combines) two transformations.

Extension Methods

ContainerType test if object is (a container like) a list or an array.
(Defined by MiniUtil)

See Also