\( \newcommand{\E}{\mathrm{E}} \) \( \newcommand{\A}{\mathrm{A}} \) \( \newcommand{\R}{\mathrm{R}} \) \( \newcommand{\N}{\mathrm{N}} \) \( \newcommand{\Q}{\mathrm{Q}} \) \( \newcommand{\Z}{\mathrm{Z}} \) \( \def\ccSum #1#2#3{ \sum_{#1}^{#2}{#3} } \def\ccProd #1#2#3{ \sum_{#1}^{#2}{#3} }\)

CGAL 4.8 - 2D Periodic Triangulations

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
CGAL::Periodic_2_triangulation_face_base_2< Gt, Fb > Class Template Reference
Vertex and Face Classes

`#include <CGAL/Periodic_2_triangulation_face_base_2.h>`

## Definition

### template<typename Gt, typename Fb = Triangulation_face_base_2<Gt>>
class CGAL::Periodic_2_triangulation_face_base_2< Gt, Fb >

The class `Periodic_2_triangulation_face_base_2` is a model of the concept `Periodic_2TriangulationFaceBase_2` to be used by `Triangulation_data_structure_2` to represent faces of a periodic triangulation.

The first one `Traits` is the geometric traits, it is to be instantiated by a model of the concept `Periodic_2TriangulationTraits_2`. The second argument is the base class to which the additional information for the periodic vertex is added and should be a model of `TriangulationDSFaceBase_2`

As faces cannot span more than one domain per direction of space in a periodic Delaunay triangulation, it is enough to store offsets in the range \( \{0,1\}^2\). For optimization purposes we encode all three offsets in one integer. Each offset needs two bits (for the offset in the \( x\)- and \( y\)-direction). If we number the bits from least significant to most significant then bits \( 2*i\) and \( 2*i+1\) contain the offset corresponding to vertex \( i\).

The implementation of `has_zero_offsets()` results in checking whether all offsets are zero.

Is Model Of:
  Periodic_2TriangulationFaceBase_2

See Also
  `CGAL::Triangulation_face_base_2`
  `CGAL::Triangulation_face_base_with_info_2`

Examples:
  Periodic_2_triangulation_2/p2t2_adding_handles.cpp, Periodic_2_triangulation_2/p2t2_colored_vertices.cpp, Periodic_2_triangulation_2/p2t2_info_insert_with_pair_iterator_2.cpp, Periodic_2_triangulation_2/p2t2_info_insert_with_transform_iterator_2.cpp, and Periodic_2_triangulation_2/p2t2_info_insert_with_zip_iterator_2.cpp.