CGAL 5.3 - Surface Mesh Topology
|
The concept PolygonalSchema
defines a 2D polygonal schema, i.e. a combinatorial surface with labeled edges. A PolygonalSchema is created incrementally by adding facets one at a time. A label is any word, that does not contain a space.
PolygonalSchema::Dart_info should be a class having a public data member std::string m_label. PolygonalSchema::dimension should be equal to 2.
Public Member Functions | |
PolygonalSchema () | |
creates an empty PolygonalSchema object. | |
void | init_facet () |
starts a new facet. | |
Dart_handle | finish_facet () |
finishes the current facet. More... | |
void | add_edge_to_facet (const std::string &l) |
adds one edge to the current facet, given by its label l (any string containing no space, using minus sign for orientation). More... | |
void | add_edges_to_facet (const std::string &s) |
adds the given edges to the current facet. More... | |
void | add_facet (const std::string &s) |
adds directly one facet giving the sequence of labels s of all its edges (labels are separated by spaces). | |
std::string | get_label (Dart_handle dh) const |
returns the label of dart dh . | |
Dart_handle | get_dart_labeled (const std::string &s) const |
returns dart with label s , NULL if this label is not used. | |
bool | is_perforated (Dart_const_handle dh) const |
returns true iff the facet containing dh is perforated. | |
bool | is_perforated (const std::string &s) const |
Shortcut for is_perforated(get_dart_labeled(s)) . | |
size_type | perforate_facet (Dart_handle dh) |
perforates the facet containing dh . Returns the number of darts of the face; 0 if the facet was already perforated. | |
size_type | perforate_facet (const std::string &s) |
Shortcut for perforate_facet(get_dart_labeled(s)). | |
size_type | fill_facet (Dart_handle dh) |
fills the facet containing dh . Returns the number of darts of the face; 0 if the facet was already filled. | |
size_type | fill_facet (const std::string &s) |
Shortcut for fill_facet(get_dart_labeled(s)) . | |
void PolygonalSchema::add_edge_to_facet | ( | const std::string & | l | ) |
adds one edge to the current facet, given by its label l
(any string containing no space, using minus sign for orientation).
Since the surface is oriented, each label can be used only twice with opposite signs. If this method is called with a label already used, with same sign, an error message is given and this label is ignored.
void PolygonalSchema::add_edges_to_facet | ( | const std::string & | s | ) |
adds the given edges to the current facet.
s
is a sequence of labels, separated by spaces. All the corresponding edges are added into the current facet.
Dart_handle PolygonalSchema::finish_facet | ( | ) |
finishes the current facet.
Returns the first dart of this facet.