\( \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.12.1 - 2D Triangulation
TriangulationTraits_2 Concept Reference

Definition

Refines:
SpatialSortingTraits_2

The concept TriangulationTraits_2 describes the set of requirements to be fulfilled by any class used to instantiate the first template parameter of the class CGAL::Triangulation_2<Traits,Tds>. This concept provides the types of the geometric primitives used in the triangulation and some function object types for the required predicates on those primitives.

Has Models:

All models of Kernel.

CGAL::Projection_traits_xy_3<K>

CGAL::Projection_traits_yz_3<K>

CGAL::Projection_traits_xz_3<K>

See also
CGAL::Triangulation_2

Types

typedef unspecified_type Point_2
 The point type.
 
typedef unspecified_type Segment_2
 The segment type.
 
typedef unspecified_type Triangle_2
 The triangle type.
 
typedef unspecified_type Construct_point_2
 A function object to construct a Point_2. More...
 
typedef unspecified_type Construct_segment_2
 A function object to construct a Segment_2. More...
 
typedef unspecified_type Construct_triangle_2
 A function object to construct a Triangle_2. More...
 
typedef unspecified_type Less_x_2
 A function object to compare the x-coordinate of two points. More...
 
typedef unspecified_type Less_y_2
 A function object to compare the y-coordinate of two points. More...
 
typedef unspecified_type Compare_x_2
 A function object to compare the x-coordinate of two points. More...
 
typedef unspecified_type Compare_y_2
 A function object to compare the y-coordinate of two points. More...
 
typedef unspecified_type Orientation_2
 A function object to compute the orientation of three points. More...
 
typedef unspecified_type Side_of_oriented_circle_2
 A function object to perform the incircle test for four points. More...
 
typedef unspecified_type Construct_circumcenter_2
 A function object to compute the circumcentr of three points. More...
 

Creation

Only a default constructor, copy constructor and an assignment operator are required.

Note that further constructors can be provided.

 TriangulationTraits_2 ()
 default constructor.
 
 TriangulationTraits_2 (TriangulationTraits_2 gtr)
 Copy constructor.
 
TriangulationTraits_2 operator= (TriangulationTraits_2 gtr)
 Assignment operator.
 

Predicate Functions

The following functions give access to the predicate and constructor objects.

Construct_point_2 construct_point_2_object ()
 
Construct_segment_2 construct_segment_2_object ()
 
Construct_triangle_2 construct_triangle_2_object ()
 
Compare_x_2 compare_x_2_object ()
 
Compare_y_2 compare_y_2_object ()
 
Orientation_2 orientation_2_object ()
 
Side_of_oriented_circle_2 side_of_oriented_circle_2_object ()
 Required only if side_of_oriented_circle is called called.
 
Construct_circumcenter_2 construct_circumcenter_2_object ()
 Required only if circumcenter is called.
 

Member Typedef Documentation

◆ Compare_x_2

A function object to compare the x-coordinate of two points.

Provides the operator:

Comparison_result operator()(Point p, Point q)

which returns SMALLER, EQUAL or LARGER according to the \( x\)-ordering of points p and q.

◆ Compare_y_2

A function object to compare the y-coordinate of two points.

Provides the operator:

Comparison_result operator()(Point p, Point q)

which returns (SMALLER, EQUAL or LARGER) according to the \( y\)-ordering of points p and q.

◆ Construct_circumcenter_2

A function object to compute the circumcentr of three points.

Provides the operator:

Point operator()(Point p, Point q, Point r)

which returns the circumcenter of the three points p, q and r. This type is required only if the function Point circumcenter(Face_handle f)is called.

◆ Construct_point_2

A function object to construct a Point_2.

Provides:

Point_2 operator()(Point_2 p),

which simply returns p.

Note
It is advised to return a const reference to p to avoid useless copies.
This peculiar requirement is necessary because CGAL::Triangulation_2 internally manipulates points with a Point type that is not always Point_2.

◆ Construct_segment_2

A function object to construct a Segment_2.

Provides:

Segment_2 operator()(Point_2 p,Point_2 q),

which constructs a segment from two points.

◆ Construct_triangle_2

A function object to construct a Triangle_2.

Provides:

Triangle_2 operator()(Point_2 p,Point_2 q,Point_2 r ),

which constructs a triangle from three points.

◆ Less_x_2

A function object to compare the x-coordinate of two points.

Provides the operator:

bool operator()(Point p, Point q)

which returns true if p is before q according to the \( x\)-ordering of points.

◆ Less_y_2

A function object to compare the y-coordinate of two points.

Provides the operator:

bool operator()(Point p, Point q)

which returns true if p is before q according to the \( y\)-ordering of points.

◆ Orientation_2

A function object to compute the orientation of three points.

Provides the operator:

Orientation operator()(Point p, Point q, Point r)

which returns LEFT_TURN, RIGHT_TURN or COLLINEAR depending on \( r\) being, with respect to the oriented line pq, on the left side , on the right side or on the line.

◆ Side_of_oriented_circle_2

A function object to perform the incircle test for four points.

Provides the operator:

Oriented_side operator()(Point p, Point q, Point r, Point s) which takes four points \( p, q, r, s\) as arguments and returns ON_POSITIVE_SIDE, ON_NEGATIVE_SIDE or, ON_ORIENTED_BOUNDARY according to the position of points s with respect to the oriented circle through through \( p,q\) and \( r\). This type is required only if the function side_of_oriented_circle(Face_handle f, Point p) is called.