CGAL 6.0.1 - 2D Triangulations
Loading...
Searching...
No Matches
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 the CGAL concept Kernel
CGAL::Projection_traits_3<K>
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.
 
typedef unspecified_type Construct_segment_2
 A function object to construct a Segment_2.
 
typedef unspecified_type Construct_triangle_2
 A function object to construct a Triangle_2.
 
typedef unspecified_type Less_x_2
 A function object to compare the x-coordinate of two points.
 
typedef unspecified_type Less_y_2
 A function object to compare the y-coordinate of two points.
 
typedef unspecified_type Compare_x_2
 A function object to compare the x-coordinate of two points.
 
typedef unspecified_type Compare_y_2
 A function object to compare the y-coordinate of two points.
 
typedef unspecified_type Compare_xy_2
 A function object that lexicographically compares two points by their Cartesian coordinates.
 
typedef unspecified_type Orientation_2
 A function object to compute the orientation of three points.
 
typedef unspecified_type Side_of_oriented_circle_2
 A function object to perform the incircle test for four points.
 
typedef unspecified_type Construct_circumcenter_2
 A function object to compute the circumcentr of three points.
 

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 ()
 
Compare_xy_2 compare_xy_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_xy_2

A function object that lexicographically compares two points by their Cartesian coordinates.

It provides the operator:

Comparison_result operator()(Point p, Point q)

which returns (SMALLER, EQUAL or LARGER) according to the lexicographical order 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.