|
CGAL 6.0 - Optimal Distances
|
This concept defines the requirements for traits classes of Width_3<Traits>.
Operations
Whatever the coordinates of the points are, it is required for the width-algorithm to have access to the homogeneous representation of points.
CGAL::Width_default_traits_3 CGAL::Width_3<Traits> Related Functions | |
(Note that these are not member functions.) | |
| Point_3 | make_point (const RT &hx, const RT &hy, const RT &hz, const RT &hw) const |
returns a point of type Point_3 with homogeneous coordinates \( hx\), \( hy\), \( hz\) and \( hw\). | |
| Plane_3 | make_plane (const RT &a, const RT &b, const RT &c, const RT &d) const |
returns a plane of type Plane_3 with coefficients \( a\), \( b\), \( c\) and \( d\). | |
| Vector_3 | make_vector (const RT &a, const RT &b, const RT &c) const |
returns a vector of type Vector_3 with the four homogeneous coefficients \( a\), \( b\), \( c\) and 1. | |
Types | |
Notes: If you want to compute the width of a polyhedron then you have to make sure that the point type in the traits class and the point type in the polyhedron class are the same! The same holds for | |
| typedef unspecified_type | Point_3 |
| The point type. | |
| typedef unspecified_type | Plane_3 |
| The plane type. | |
| typedef unspecified_type | Vector_3 |
| The vector type. | |
| typedef unspecified_type | ChullTraits |
| The traits class for using the convex hull algorithm. | |
| typedef unspecified_type | RT |
| Ring type numbers. | |
Creation | |
Only a default constructor is required. | |
| WidthTraits_3 () | |
| RT | get_hx (const Point_3 &p) const |
| returns the homogeneous \( x\)-coordinate of point \( p\). | |
| RT | get_hy (const Point_3 &p) const |
| returns the homogeneous \( y\)-coordinate of point \( p\). | |
| RT | get_hz (const Point_3 &p) const |
| returns the homogeneous \( z\)-coordinate of point \( p\). | |
| RT | get_hw (const Point_3 &p) const |
| returns the homogenizing coordinate of point \( p\). | |
| void | get_point_coordinates (const Point_3 &p, RT &px, RT &py, RT &pz, RT &ph) const |
| returns all homogeneous coordinates of point \( p\) at once. | |
| RT | get_a (const Plane_3 &f) const |
| returns the first coefficient of plane \( f\). | |
| RT | get_b (const Plane_3 &f) const |
| returns the second coefficient of plane \( f\). | |
| RT | get_c (const Plane_3 &f) const |
| returns the third coefficient of plane \( f\). | |
| RT | get_d (const Plane_3 &f) const |
| returns the fourth coefficient of plane \( f\). | |
| void | get_plane_coefficients (const Plane_3 &f, RT &a, RT &b, RT &c, RT &d) const |
| returns all four plane coefficients of \( f\) at once. | |
The traits class for using the convex hull algorithm.
It must be a model of the concept ConvexHullTraits_3. This class is used only if the width is computed from a set of points.
The plane type.
Access to the coefficients of the plane is made via the get_...() functions. Constructing a plane is done with the make_plane() operation.
The point type.
The (in)equality tests must be available. Access to the point coordinates is done via the get_...() functions. Constructing a point is done with the make_point( ) operation.
| typedef unspecified_type WidthTraits_3::RT |
Ring type numbers.
Internally all numbers are treated as ring type numbers, i.e., neither \( /\)-operator nor \( \sqrt{.}\) nor other inexact operations are used. But because the algorithm does not use any divisions, but multiplication instead, the numbers can get really big. Therefore it is recommended to use a ring type number, that provides values of arbitrary length. Furthermore it is assumed that the underlying number type of Point_3, Plane_3 and Vector_3 equals RT.
The vector type.
There is no need to access the coefficients of a vector; only constructing is required and is done with the make_vector operation.