Table of Contents

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.