CGAL 6.1 - 3D Triangulations

Loading...
Searching...
No Matches
List of all members
TriangulationTraits_3 Concept Reference
Reference Manual » Concepts

## Definition

Refines
  `SpatialSortingTraits_3`

The concept `TriangulationTraits_3` is the first template parameter of the class `CGAL::Triangulation_3`. It defines the geometric objects (points, segments, triangles and tetrahedra) forming the triangulation together with a few geometric predicates and constructions on these objects: lexicographical comparison, orientation in case of coplanar points and orientation in space.

Has models
  All models of the CGAL concept `Kernel`

See also
  `CGAL::Triangulation_3`

## Types
typedef unspecified_type | Point_3
| The point type.
typedef unspecified_type | Segment_3
| The segment type.
typedef unspecified_type | Triangle_3
| The triangle type.
typedef unspecified_type | Tetrahedron_3
| The tetrahedron type.
typedef unspecified_type | Construct_point_3
| A constructor object that must provide the function operator.
typedef unspecified_type | Construct_segment_3
| A constructor object that must provide the function operator.
typedef unspecified_type | Construct_triangle_3
| A constructor object that must provide the function operator.
typedef unspecified_type | Construct_tetrahedron_3
| A constructor object that must provide the function operator.
typedef unspecified_type | Compare_xyz_3
| A predicate object that must provide the function operator.
typedef unspecified_type | Coplanar_orientation_3
| A predicate object that must provide the function operator.
typedef unspecified_type | Orientation_3
| A predicate object that must provide the function operator.

## Creation
| Triangulation_traits_3 ()
| Default constructor.
| Triangulation_traits_3 (const Triangulation_traits_3 &tr)
| Copy constructor.

## Operations
The following functions give access to the predicate and construction objects:
Construct_point_3 | construct_point_3_object ()
Construct_segment_3 | construct_segment_3_object ()
Construct_triangle_3 | construct_triangle_3_object ()
Construct_tetrahedron_3 | construct_tetrahedron_3_object ()
Compare_xyz_3 | compare_xyz_3_object ()
Coplanar_orientation_3 | coplanar_orientation_3_object ()
Orientation_3 | orientation_3_object ()

## Member Typedef Documentation

## ◆ Compare_xyz_3

typedef unspecified_type TriangulationTraits_3::Compare_xyz_3

A predicate object that must provide the function operator.

`Comparison_result operator()(Point_3 p, Point_3 q)`,

which returns `EQUAL` if the two points are equal. Otherwise it must return a consistent order for any two points chosen in a same line.

## ◆ Construct_point_3

typedef unspecified_type TriangulationTraits_3::Construct_point_3

A constructor object that must provide the function operator.

`Point_3 operator()(Point_3 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_3` internally manipulates points with a `Point` type that is not always `Point_3`.

## ◆ Construct_segment_3

typedef unspecified_type TriangulationTraits_3::Construct_segment_3

A constructor object that must provide the function operator.

`Segment_3 operator()(Point_3 p, Point_3 q)`,

which constructs a segment from two points.

## ◆ Construct_tetrahedron_3

typedef unspecified_type TriangulationTraits_3::Construct_tetrahedron_3

A constructor object that must provide the function operator.

`Tetrahedron_3 operator()(Point_3 p, Point_3 q, Point_3 r, Point_3 s)`,

which constructs a tetrahedron from four points.

## ◆ Construct_triangle_3

typedef unspecified_type TriangulationTraits_3::Construct_triangle_3

A constructor object that must provide the function operator.

`Triangle_3 operator()(Point_3 p, Point_3 q, Point_3 r )`,

which constructs a triangle from three points.

## ◆ Coplanar_orientation_3

typedef unspecified_type TriangulationTraits_3::Coplanar_orientation_3

A predicate object that must provide the function operator.

`Orientation operator()(Point_3 p, Point_3 q, Point_3 r)`,

which returns `COLLINEAR` if the points are collinear. Otherwise it must return a consistent orientation for any three points chosen in a same plane.

## ◆ Orientation_3

typedef unspecified_type TriangulationTraits_3::Orientation_3

A predicate object that must provide the function operator.

`Orientation operator()(Point_3 p, Point_3 q, Point_3 r, Point_3 s)`,

which returns POSITIVE, if `s` lies on the positive side of the oriented plane `h` defined by `p`, `q`, and `r`, returns NEGATIVE if `s` lies on the negative side of `h`, and returns COPLANAR if `s` lies on `h`.

## ◆ Point_3

typedef unspecified_type TriangulationTraits_3::Point_3

The point type.

It must be `DefaultConstructible`, `CopyConstructible` and `Assignable`.