\( \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.5 - 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

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