Euclid
Euclid provides some standard definitions of points, lines and triangles
based on Vectors. Points and Vectors are
subclasses of StaticVectors, whereas Lines and Triangles are StaticSortedVectors
containing Points. Exceptions are the IndexLine and the IndexTriangles.
Classes
The principal classes of Euclid are the template classes Point2D and
Point3D.
template <typename T> struct Point2D;
Point2D a subclass of StaticVector<T, 2>, see also
Vectors.
Point2D() |
Default constructor. |
template <typename U>
Point2D(const U &data) |
Initialize with a scalar or data from a container. |
Point2D(const U x, const U y) |
Initialize with the given coordinates. |
void set(const U x, const U y) |
Set to the given coordinates. |
Point2D jmp(const U dx, const U dy) const |
Return a Point with dx and dy relative to the
coordinates of the point, i.e., dx and dy are offsets from
the values returned by x() and y().
|
T &x() |
The X coordinate; p.x() is an alias for p[X]. |
T &y() |
The Y coordinate; p.y() is an alias for p[Y]. |
T &height() |
The HEIGHT coordinate; p.height() is an alias for
p[HEIGHT]. |
T &width() |
The WIDTH coordinate; p.width() is an alias for
p[WIDTH]. |
template <typename T> struct Point3D;
Point3D a subclass of StaticVector<T, 3>, see also
Vectors.
Point3D() |
Default constructor. |
template <typename U>
Point3D(const U &data) |
Initialize with a scalar or data from a container. |
Point3D(const U x, const U y, const U z) |
Initialize with the given coordinates. |
void set(const U x, const U y, const U z) |
Set to the given coordinates. |
Point2D jmp(const U dx, const U dy, const U z) const |
Return a Point with dx, dy and dz
relative to the coordinates of the point, i.e., dx,
dy and dz are offsets from the values returned by
x(), y() and z().
|
T &x() |
The X coordinate; p.x() is an alias for p[X]. |
T &y() |
The Y coordinate; p.y() is an alias for p[Y]. |
T &z() |
The Z coordinate; p.z() is an alias for p[Z]. |
Predefined Typedefs
iPoint2D |
Alias for Point2D< T>. |
iVector2D |
A vector in 2D space defined by two "int"s. |
iLine2D |
A line in 2D space between two "iPoint2D"s. |
iTriangle2D |
A triangle in 2D space that consists of three "iPoint2D"s. |
fPoint2D |
A point in 2D space defined by two "float"s. |
fVector2D |
A vector in 2D space defined by two "float"s. |
fLine2D |
A line in 2D space between two "fPoint2D"s. |
fTriangle2D |
A triangle in 2D space that consists of three "fPoint2D"s. |
dPoint2D |
A point in 2D space defined by two "double"s. |
dVector2D |
A vector in 2D space defined by two "double"s. |
dLine2D |
A line in 2D space between two "dPoint2D"s. |
dTriangle2D |
A triangle in 2D space that consists of three "dPoint2D"s. |
iPoint3D |
A point in 3D space defined by three "int"s. |
iVector3D |
A vector in 3D space defined by three "int"s. |
iLine3D |
A line in 3D space between three "iPoint3D"s. |
iTriangle3D |
A triangle in 3D space that consists of three "iPoint3D"s. |
fPoint3D |
A point in 3D space defined by three "float"s. |
fVector3D |
A vector in 3D space defined by three "float"s. |
fLine3D |
A line in 3D space between three "fPoint3D"s. |
fTriangle3D |
A triangle in 3D space that consists of three "fPoint3D"s. |
dPoint3D |
A point in 3D space defined by three "double"s. |
dVector3D |
A vector in 3D space defined by three "double"s. |
dLine3D |
A line in 3D space between three "dPoint3D"s. |
dTriangle3D |
A triangle in 3D space that consists of three "dPoint3D"s. |
IndexLine |
Essentially a set of two "unsigned int"s, assumed to identify
points in an external data structure. |
IndexTriangle |
Essentially a set of three "unsigned int"s, assumed to identify
points in an external data structure. |
|