Class GeoTransform3
- Namespace
- GeometryHelper.Geometry
- Assembly
- GeometryHelper.dll
Represents a 3D transformation as a 4x4 homogeneous matrix, covering translation, rotation, scaling and mirroring.
The matrix is stored row-major and applied on the left, so a.Multiply(b) means "apply b,
then a", the usual convention for column vectors. Instances are immutable: every operation returns
a new transformation rather than changing this one.
public sealed class GeoTransform3 : IEquatable<GeoTransform3>
- Inheritance
-
GeoTransform3
- Implements
- Inherited Members
- Extension Methods
Constructors
- GeoTransform3()
Initializes an identity transformation.
- GeoTransform3(double[,])
Initializes a transformation from a 4x4 matrix.
Properties
- Identity
Gets the identity transformation, which leaves everything where it is.
- this[int, int]
Gets the matrix entry at a row and column, counted from zero.
Methods
- Clone()
Creates a copy of this transformation.
- Equals(GeoTransform3)
Determines whether another transformation has exactly the same matrix entries.
- Equals(object)
Determines whether the specified object is equal to the current transformation.
- FromCoordinateSystem(GeoCoordinateSystem3)
Creates the transformation that takes local coordinates of a coordinate system into world coordinates.
- GetDeterminant()
Gets the determinant of the matrix.
- GetHashCode()
Returns the hash code for this instance.
- Inverse()
Gets the transformation that undoes this one, using the default tolerance.
- Inverse(Tolerance)
Gets the transformation that undoes this one, within a tolerance.
- IsEqualTo(GeoTransform3)
Compares whether this transformation equals another within a tolerance.
- IsEqualTo(GeoTransform3, Tolerance)
Compares whether this transformation equals another within a tolerance.
- IsIdentity()
Checks whether this transformation leaves everything where it is, within a tolerance.
- IsIdentity(Tolerance)
Checks whether this transformation leaves everything where it is, within a tolerance.
- Mirror(GeoPlane3)
Creates a mirroring across a plane.
- Multiply(GeoTransform3)
Combines this transformation with another one.
- RotationAxis(GeoPoint3, GeoVector3, double)
Creates a rotation around an arbitrary axis line, so the rotation is not restricted to axes passing through the world origin.
- RotationAxis(GeoVector3, double)
Creates a rotation around an arbitrary axis through the world origin.
- RotationX(double)
Creates a rotation around the world X axis.
- RotationY(double)
Creates a rotation around the world Y axis.
- RotationZ(double)
Creates a rotation around the world Z axis.
- Scaling(GeoPoint3, double)
Creates a uniform scaling about a given centre.
- Scaling(double)
Creates a uniform scaling about the world origin.
- Scaling(double, double, double)
Creates a scaling about the world origin with a separate factor per axis.
- ToCoordinateSystem(GeoCoordinateSystem3)
Creates the transformation that takes world coordinates into the local coordinates of a coordinate system, the reverse of FromCoordinateSystem(GeoCoordinateSystem3).
- ToString()
Returns a string that represents the current transformation.
- Transform(GeoAabb3)
Transforms an axis-aligned box.
- Transform(GeoCircle3)
Transforms a circle.
- Transform(GeoCoordinateSystem3)
Transforms a local coordinate system.
- Transform(GeoLine3)
Transforms a line segment by transforming both of its endpoints.
- Transform(GeoObb3)
Transforms an oriented box.
- Transform(GeoPlane3)
Transforms a plane.
- Transform(GeoPoint3)
Transforms a point.
- Transform(GeoRay3)
Transforms a ray.
- Transform(GeoTriangle3)
Transforms a triangle by transforming its three vertices.
- Transform(GeoVector3)
Transforms a vector, ignoring the translation part.
- Transform(IEnumerable<GeoPoint3>)
Transforms a sequence of points.
- Translation(GeoVector3)
Creates a translation.
- TryGetInverse(out GeoTransform3)
Tries to get the transformation that undoes this one, without throwing, using the default tolerance.
- TryGetInverse(out GeoTransform3, Tolerance)
Tries to get the transformation that undoes this one, without throwing, within a tolerance.
Operators
- operator *(GeoTransform3, GeoTransform3)
Multiplies two transformations, so the right one is applied first.