CGAL 5.5.1 - Surface Mesh Topology
PolygonalSchema Concept Reference

## Definition

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.

Refines:
GenericMap
Has Models:

## 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...

adds one edge to the current facet, given by its label l (any string containing no space, using minus sign for orientation). More...

adds the given edges to the current facet. More...

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)).

## Member Function Documentation

 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.

Precondition
A facet is under creation.

 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.

Precondition
A facet is under creation.

## ◆ finish_facet()

 Dart_handle PolygonalSchema::finish_facet ( )

finishes the current facet.

Returns the first dart of this facet.

Precondition
A facet is under creation.