Euclid Namespace
Type/Module | Description |
When Euclid is opened this module will be auto-opened. It only contains extension members for type Line2D. |
|
When Euclid is opened this module will be auto-opened. It only contains extension members for type Line3D. |
|
When Euclid is opened this module will be auto-opened. It only contains extension members for type Matrix. |
|
When Euclid is opened this module will be auto-opened. It only contains extension members for type Pnt. |
|
When Euclid is opened this module will be auto-opened. It only contains extension members for type PPlane. |
|
When Euclid is opened this module will be auto-opened. It only contains extension members for type Pt. |
|
When Euclid is opened this module will be auto-opened. It only contains extension members for type Quaternion. |
|
When Euclid is opened this module will be auto-opened. It only contains extension members for type UnitVc. |
|
When Euclid is opened this module will be auto-opened. It only contains extension members for type UnitVec. |
|
When Euclid is opened this module will be auto-opened. It only contains extension members for type Vc. |
|
When Euclid is opened this module will be auto-opened. It only contains extension members for type Vec. |
|
An immutable 3D-bounding-box. This implementation guarantees the box to be always valid. That means the Min X, Y and Z values are always smaller or equal than the respective Max values. The X, Y and Z axes are also called Width, Depth and Height3D. Z-Axis Y-Axis (Depth) ^ / | 7 / 6 MaxPt | +---------------+ | /| / /| | / | / / | 4 |/ | / 5 / | +---------------+ | | |/ | | | +-----------|---+ | / 3 | / 2 | / | / |/ |/ +---------------+----> X-Axis (Width) 0 MinPt 1 |
|
An immutable 3D Box with any rotation in 3D space. Described by an Origin and three Edge vectors. Similar to PPlane, however the three vectors are not unitized. This implementation guarantees the box to be always valid. That means the Min X, Y and Z axes cannot be flipped individually. However the length of one of these axes might still be zero. local local Z-Axis Y-Axis ^ / | 7 / 6 | +---------------+ | /| / /| | / | / / | 4 |/ | / 5 / | +---------------+ | | |/ | | | +-----------|---+ | / 3 | / 2 | / | / |/ |/ local +---------------+----> X-Axis 0 1 |
|
An immutable 2D bounding rectangle. Sometimes also called 2D a bounding box. This implementation guarantees the rectangle to be always valid. That means the Min X and Y values are always smaller or equal than the respective Max values. Y-Axis (Height2D) ^ | | 2 max X,Y 3 +------------+ | | | | | | | | | | local +------------+-----> X-Axis (Width) 0-min X,Y 1 |
|
Precalculated cosine values for faster checking the angles of dot products of unit-vectors. |
|
By default the function in this module do nothing. But they are called in case of some errors within this library's Loop module. Set these mutable function object from your 2D or 3D environment if you want debug objects to be drawn. |
|
By default the function in this module do nothing. But they are called in case of some errors within this library's Loop module. Set these mutable function object from your 3D environment if you want debug objects to be drawn. |
|
Exception for attempting to divide by a 0.0 or almost 0.0 value. Almost 0.0 is defined by UtilEuclid.zeroLengthTolerance as 1e-12. |
|
Exception in Euclid. |
|
For formatting floats with adaptive precision. |
|
|
|
An immutable finite line in 2D. Represented by a 2D start and 2D end point. |
|
An immutable finite line in 3D. Represented by a 3D start and 3D end point. |
|
A module for the result types of 2D and 3D line-line-intersections. |
|
A counter-clockwise, closed series of 2D points. Checked for too short segments and duplicate points but might have colinear points. Checked for self intersection. This class stores for each segment precomputed list of unit-vectors, lengths and bounding Rectangles. This is to have better performance when calculating Loop with Loop intersections or point containment. |
|
An immutable 4x4 transformation matrix. The matrix is represented in the following column-vector syntax form: M11 M21 M31 X41 M12 M22 M32 Y42 M13 M23 M33 Z43 M14 M24 M34 M44 Where X41, Y42 and Z43 refer to the translation part of the matrix. Note: Never use the struct default constructor Matrix() as it will create an invalid zero Matrix. Use Matrix.create or Matrix.createUnchecked instead. |
|
An immutable un-parametrized plane defined by a point and a normal vector. As opposed to the PPlane this plane is not parametrized in a X, Y and Z direction. Note: Never use the struct default constructor NPlane() as it will create an invalid zero Plane. Use NPlane.create or Plane.createUnchecked instead. |
|
An immutable 3D point. Made up from 3 floats: X, Y, and Z. A 3D point represents a location in space, but not direction or an offset. (use Vec for that.) (2D Points are called 'Pt' ) |
|
Discriminated union for the three possible relations of a point to a closed polyline Loop. Points are consider on loop if they are within loop.SnapThreshold tolerance. |
|
Provides operations on 2D and 3D points. |
|
A mutable 2D Polyline. If the last point is the same as the first point, the Polyline2D is considered closed. |
|
A mutable 3D Polyline. If the last point is the same as the first point, the Polyline3D is closed. |
|
An immutable Parametrized Plane or Frame with X, Y and Z Direction. This struct is called 'PPlane' , the other plane 'NPlane' refers to an un-oriented plane consisting only of a Origin and a Normal. Note: Never use the struct default constructor PPlane() as it will create an invalid zero length PPlane. Use PPlane.create or PPlane.createUnchecked instead. |
|
Pt is an immutable 2D point. Made up from 2 floats: X and Y. |
|
An immutable unitized Quaternion, for arbitrary 3D rotations. This implementation guarantees the Quaternion to be always unitized. Note: Never use the struct default constructor Quaternion() as it will create an invalid zero length Quaternion. Use Quaternion.create or Quaternion.createUnchecked instead. |
|
An immutable 2D Rectangle with any rotation in 2D space. Described by an Origin and two Edge vectors. This implementation guarantees the 2D Rectangle to be always valid. That means the X and Y axes are always perpendicular to each other. However the length of one of these axes might still be zero. local Y-Axis ^ | | 2 3 +------------+ | | | | | | | | | | local +------------+-----> X-Axis 0-Origin 1 |
|
An immutable planar 3D-rectangle with any rotation in 3D space. Described by an Origin and two Edge vectors. Similar to PPlane, however the two vectors are not unitized. This implementation guarantees the 3D-rectangle to be always valid. That means the X and Y axes are always perpendicular to each other. However the length of one of these axes might still be zero. local Y-Axis ^ | | 2 3 +------------+ | | | | | | | | | | local +------------+-----> X-Axis 0-Origin 1 |
|
Precalculated relative angle discriminant values for faster checking the angles in line line intersection. |
|
An immutable 4x3 rigid matrix. For only rotation and translation in 3D space. This matrix guarantees to NOT scale, shear, flip, mirror, reflect or project. Angles are preserved. Lengths are preserved. Area is preserved. Volume is preserved. A rigid matrix is a matrix whose 3x3 columns and rows are orthogonal unit-vectors. The matrix is represented in the following column-vector syntax form: M11 M21 M31 X41 M12 M22 M32 Y42 M13 M23 M33 Z43 Where X41, Y42 and Z43 refer to the translation part of the RigidMatrix. The Determinant of this matrix is always 1.0. Note: Never use the struct default constructor RigidMatrix() as it will create an invalid zero RigidMatrix. Use RigidMatrix.create or RigidMatrix.createUnchecked instead. |
|
2D Counter Clockwise rotation. It can be applied in World X, Y or Z plane. Internally stored just as a Sine and Cosine value. For arbitrary rotations use Quaternions or 4x4 Matrix. However this module has much better performance than the more general Matrix4x4 or a Quaternion. Note: Never use the struct default constructor Rotation2D() as it will create an invalid zero Rotation2D. Use Rotation2D.create or Rotation2D.createUnchecked instead. |
|
For finding 2D object that are similar but not exactly the same. Based on their 2D point clouds. Within one list of points the order does not matter, but each location must exist only once in order to be consider similar within the tolerance. (This module could be extended to work in 3d too) |
|
|
|
UnitVc is an immutable 2D unit-vector. it is guaranteed to be unitized. Never use the struct default constructor UnitVc()! It will create an invalid zero length vector. Use UnitVc.create or UnitVc.createUnchecked instead. |
|
An immutable 3D vector guaranteed to be always unitized. A 3D vector represents a direction or an offset in space, but not a location. A 4x4 transformation matrix applied to a vector will only rotate and scale the vector but not translate it. (2D unit-vectors are called 'UnitVc' ) Use UnitVec.create or UnitVec.createUnchecked to created instances. Note: Never use the struct default constructor UnitVec() as it will create an invalid zero length vector. Use UnitVec.create or UnitVec.createUnchecked instead. |
|
Math Utility functions and values for use within Euclid. |
|
Vc is an immutable 2D vector with any length. Made up from 2 floats: X and Y. |
|
An immutable 3D vector of any length. Made up from 3 floats: X, Y, and Z. A 3D vector represents a direction or an offset in space, but not a location. A 4x4 transformation matrix applied to a vector will only rotate and scale the vector but not translate it. (3D unit-vectors of length 1.0 are called 'UnitVec' ) (2D vectors are called 'Vc' ) |
|
The result of a line cone intersection test. This is the return type of the function Intersection.lineCone. |