The concept TriangulationDataStructure_2::Face describes the types used to store the faces face class of a TriangulationDataStructure_2. A TriangulationDataStructure_2::Face stores three pointers to its three vertices and three pointers to its three neighbors. The vertices are indexed 0,1, and 2 in counterclockwise order. The neighbor indexed $$i lies opposite to vertex i.
In degenerate cases, when the triangulation data structure stores a simplicial complex of dimension $$0 and $$1, the type TriangulationDataStructure_2::Face is used to store the faces of maximal dimension of the complex : i.e. a vertex in dimension $$0, an edge in dimension $$1. Only vertices and neighbors with index $$0 are set in the first case, only vertices and neighbors with index $$0 or $$1 are set in the second case.
The methods create_face and delete_face() have to be used to define new faces and to delete non longer used faces.
The neighbor with index i is the neighbor which is opposite to the vertex with index i.

 
index of f as a neighbor of f.neighbor(i)  

 
vertex of f.neighbor(i) 
advanced 

 returns true if the function is_valid() of the base class returns true and if, for each index $$i, $$0 i < 3, face $$f is a neighbor of its neighboring face neighbor(i) and shares with this neighbor the vertices cw(i) and ccw(i) in correct reverse order. 
advanced 


Returns $$i+1 modulo 3. Precondition: $$0 i 2. 


Returns $$i+2 modulo 3. Precondition: $$0 i 2. 