CGAL::Polyhedron_traits_3<Kernel>

Definition

The class Polyhedron_traits_3<Kernel> is a model of the PolyhedronTraits_3 concept. It defines the geometric types and primitive operations used in the polyhedral surface data structure CGAL::Polyhedron_3<PolyhedronTraits_3> in terms of the CGAL Kernel. It keeps a local copy of the kernel which makes it suitable for kernels with local state.

#include <CGAL/Polyhedron_traits_3.h>

Is Model for the Concept

PolyhedronTraits_3

Types

Polyhedron_traits_3<Kernel>::Kernel
the Kernel model.

typedef Kernel::Point_3
Point_3;
typedef Kernel::Plane_3
Plane_3;
typedef Kernel::Construct_opposite_plane_3
Construct_opposite_plane_3;

Creation

Polyhedron_traits_3<Kernel> traits;
default constructor, uses Kernel() as local reference to the kernel.


Polyhedron_traits_3<Kernel> traits ( Kernel kernel);
stores kernel as local reference.

Operations

Construct_opposite_plane_3
traits.construct_opposite_plane_3_object ()
forwarded to kernel.

See Also

CGAL::Polyhedron_traits_with_normals_3<Kernel>

Implementation

Since the PolyhedronTraits_3 concept is a subset of the 3D kernel concept, this class just forwards the relevant types and access member functions from its template argument. However, it is useful for testing sufficiency of requirements.

Example

Instantiation of a polyhedral surface with the Cartesian kernel based on double coordinates.

// file: examples/Polyhedron/polyhedron_prog_simple.C

#include <CGAL/Simple_cartesian.h>
#include <CGAL/Polyhedron_3.h>

typedef CGAL::Simple_cartesian<double>     Kernel;
typedef CGAL::Polyhedron_3<Kernel>         Polyhedron;
typedef Polyhedron::Halfedge_handle        Halfedge_handle;

int main() {
    Polyhedron P;
    Halfedge_handle h = P.make_tetrahedron();
    if ( P.is_tetrahedron(h))
        return 0;
    return 1;
}