| CGAL 4.4 - 3D Mesh Generation | 
The concept MeshDomainWithFeatures_3 refines the concept MeshDomain_3. While the concept MeshDomain_3 only exposes the 2-dimensional and 3-dimensional features of the domain through different queries, the concept MeshDomainWithFeatures_3 also exposes 0 and 1-dimensional features. The exposed features of the domain are respectively called subdomains, surface patches, curve segments and corners according to their respective dimensions 3,2,1 and 0. 
MeshDomain_3 | Types | |
| typedef CGAL::Tag_true | Has_features | 
| A type to distinguish MeshDomain_3models fromMeshDomainWithFeatures_3models.  More... | |
| typedef unspecified_type | FT | 
| Numerical type.  More... | |
| typedef unspecified_type | Curve_segment_index | 
| Type of indices for curve segments ( \( 1\)-dimensional features) of the input domain.  More... | |
| typedef unspecified_type | Corner_index | 
| Type of indices for corners (i.e. 0-dimensional features) of the input domain.  More... | |
| Operations | |
| Each connected component of a curve segment is assumed to be oriented. The orientation is defined by the ordering of the two incident corners at the origin and endpoint. Therefore it is possible to defined the signed geodesic distance between two ordered points on the same connected component of a curve segment. A cycle is a connected component of a curve segment incident to 0 or 1 corner. 
 | |
| Point_3 | construct_point_on_curve_segment (const Point_3 &p, const Curve_segment_index &ci, FT d) const | 
| Returns a point on the curve segment with index ciat signed geodesic distancedfrom pointp.  More... | |
| Queries | |
| FT | geodesic_distance (const Point_3 &p, const Point_3 &q, const Curve_segment_index &ci) const | 
| Returns the signed geodesic distance between points pandqalong the input curve segment with indexci.  More... | |
| CGAL::Sign | distance_sign_along_cycle (const Point_3 &p, const Point_3 &q, const Point_3 &r, const Curve_segment_index &ci) const | 
| Returns CGAL::POSITIVEif the signed geodesic distance fromptoqon the way through \( r\) along cycle with indexciis positive,CGAL::NEGATIVEif the distance is negative, andCGAL::ZEROif(p = q = r).  More... | |
| bool | is_cycle (const Point_3 &p, const Curve_segment_index &ci) const | 
| Returns trueif the connected component of curve segmentciincluding pointpis a cycle.  More... | |
| Retrieval of the input features and their incidences | |
| template<typename OutputIterator > | |
| OutputIterator | get_corners (OutputIterator corners) const | 
| Fills cornerswith the corners of the input domain.  More... | |
| template<typename OutputIterator > | |
| OutputIterator | get_curve_segments (OutputIterator curves) const | 
| Fills curveswith the curve segments of the input domain.  More... | |
| bool | are_incident_surface_patch_curve_segment (Surface_patch_index spi, Curve_segment_index csi) | 
| Returns trueif the curve segment with indexcsiis incident to the surface patch with indexspi.  More... | |
| bool | are_incident_surface_patch_corner (Surface_patch_index spi, Corner_index ci) | 
| Returns trueif the corner with indexciis incident to the surface patch with indexspi.  More... | |
| Indices converters | |
| Index | index_from_curve_segment_index (const Curve_segment_index &curve_segment_index) const | 
| Returns the index to be stored at a vertex lying on the curve segment identified by curve_segment_index.  More... | |
| Curve_segment_index | curve_segment_index (const Index &index) const | 
| Returns the Curve_segment_indexof the curve segment where lies a vertex with dimension 1 and indexindex.  More... | |
| Index | index_from_corner_index (const Corner_index &corner_index) const | 
| Returns the index to be stored at a vertex lying on the corner identified by corner_index.  More... | |
| Corner_index | corner_index (const Index &index) const | 
| Returns the Corner_indexof the corner where lies a vertex with dimension 0 and indexindex.  More... | |
Type of indices for corners (i.e. 0-dimensional features) of the input domain.
Must be a model of CopyConstructible, Assignable, DefaultConstructible and LessThanComparable.
Type of indices for curve segments ( \( 1\)-dimensional features) of the input domain.
Must be a model of CopyConstructible, Assignable, DefaultConstructible and LessThanComparable. The default constructed value must be the value of an edge which does not approximate a 1-dimensional feature of the input domain.
Numerical type.
A type to distinguish MeshDomain_3 models from MeshDomainWithFeatures_3 models. 
| bool MeshDomainWithFeatures_3::are_incident_surface_patch_corner | ( | Surface_patch_index | spi, | 
| Corner_index | ci | ||
| ) | 
Returns true if the corner with index ci is incident to the surface patch with index spi. 
| bool MeshDomainWithFeatures_3::are_incident_surface_patch_curve_segment | ( | Surface_patch_index | spi, | 
| Curve_segment_index | csi | ||
| ) | 
Returns true if the curve segment with index csi is incident to the surface patch with index spi. 
| Point_3 MeshDomainWithFeatures_3::construct_point_on_curve_segment | ( | const Point_3 & | p, | 
| const Curve_segment_index & | ci, | ||
| FT | d | ||
| ) | const | 
Returns a point on the curve segment with index ci at signed geodesic distance d from point p. 
p is supposed to be on curve segment ci. If d > 0, the signed geodesic distance from p to the endpoint of the connected component of ci including \( p\), should be greater than \( d\). If d < 0, the signed geodesic distance from p to the origin of the connected component should be less than \( d\) from the origin of the connected component. | Corner_index MeshDomainWithFeatures_3::corner_index | ( | const Index & | index | ) | const | 
Returns the Corner_index of the corner where lies a vertex with dimension 0 and index index. 
| Curve_segment_index MeshDomainWithFeatures_3::curve_segment_index | ( | const Index & | index | ) | const | 
Returns the Curve_segment_index of the curve segment where lies a vertex with dimension 1 and index index. 
| CGAL::Sign MeshDomainWithFeatures_3::distance_sign_along_cycle | ( | const Point_3 & | p, | 
| const Point_3 & | q, | ||
| const Point_3 & | r, | ||
| const Curve_segment_index & | ci | ||
| ) | const | 
Returns CGAL::POSITIVE if the signed geodesic distance from p to q on the way through \( r\) along cycle with index ci is positive, CGAL::NEGATIVE if the distance is negative, and CGAL::ZERO if (p = q = r). 
p, q and r belongs to the same connected component of curve segment ci and this component is a cycle. | FT MeshDomainWithFeatures_3::geodesic_distance | ( | const Point_3 & | p, | 
| const Point_3 & | q, | ||
| const Curve_segment_index & | ci | ||
| ) | const | 
Returns the signed geodesic distance between points p and q along the input curve segment with index ci. 
p and q belong to the same connected component of the curve segment with index ci. | OutputIterator MeshDomainWithFeatures_3::get_corners | ( | OutputIterator | corners | ) | const | 
Fills corners with the corners of the input domain. 
The value type of corners must be std::pair<Corner_index,Point_3>. 
| OutputIterator MeshDomainWithFeatures_3::get_curve_segments | ( | OutputIterator | curves | ) | const | 
Fills curves with the curve segments of the input domain. 
curves value type must be CGAL::cpp11::tuple<Curve_segment_index,std::pair<Point_3,Index>,std::pair<Point_3,Index> >. If the curve segment corresponding to an entry in curves is not a cycle, the pair of associated points should belong to two corners incident on the curve segment. If it is a cycle, then the same Point_3 should be given twice and must be any point on the cycle. The Index values associated to the points are their indices w.r.t. their dimension. 
| Index MeshDomainWithFeatures_3::index_from_corner_index | ( | const Corner_index & | corner_index | ) | const | 
Returns the index to be stored at a vertex lying on the corner identified by corner_index. 
| Index MeshDomainWithFeatures_3::index_from_curve_segment_index | ( | const Curve_segment_index & | curve_segment_index | ) | const | 
Returns the index to be stored at a vertex lying on the curve segment identified by curve_segment_index. 
| bool MeshDomainWithFeatures_3::is_cycle | ( | const Point_3 & | p, | 
| const Curve_segment_index & | ci | ||
| ) | const | 
Returns true if the connected component of curve segment ci including point p is a cycle.