CGAL 6.0 - 2D and 3D Linear Geometry Kernel
Searching...
No Matches
CGAL::Tetrahedron_3< Kernel > Class Template Reference

#include <CGAL/Tetrahedron_3.h>

## Definition

template<typename Kernel>
class CGAL::Tetrahedron_3< Kernel >

An object t of the class Tetrahedron_3 is an oriented tetrahedron in the three-dimensional Euclidean space $$\E^3$$.

It is defined by four vertices $$p_0$$, $$p_1$$, $$p_2$$ and $$p_3$$. The orientation of a tetrahedron is the orientation of its four vertices. That means it is positive when $$p_3$$ is on the positive side of the plane defined by $$p_0$$, $$p_1$$ and $$p_2$$.

The tetrahedron itself splits the space $$\E^3$$ in a positive and a negative side.

The boundary of a tetrahedron splits the space in two open regions, a bounded one and an unbounded one.

Is model of
Kernel::Tetrahedron_3

## Creation

Tetrahedron_3 (const Point_3< Kernel > &p0, const Point_3< Kernel > &p1, const Point_3< Kernel > &p2, const Point_3< Kernel > &p3)
introduces a tetrahedron t with vertices p0, p1, p2 and p3.

## Operations

bool operator== (const Tetrahedron_3< Kernel > &t2) const
Test for equality: two tetrahedra t and t2 are equal, iff t and t2 have the same orientation and their sets (not sequences) of vertices are equal.

bool operator!= (const Tetrahedron_3< Kernel > &t2) const
Test for inequality.

Point_3< Kernelvertex (int i) const
returns the i'th vertex modulo 4 of t.

Point_3< Kerneloperator[] (int i) const
returns vertex(int i).

## Predicates

bool is_degenerate () const
Tetrahedron t is degenerate, if the vertices are coplanar.

Orientation orientation () const

Oriented_side oriented_side (const Point_3< Kernel > &p) const

Bounded_side bounded_side (const Point_3< Kernel > &p) const

## Convenience Boolean Functions

bool has_on_positive_side (const Point_3< Kernel > &p) const

bool has_on_negative_side (const Point_3< Kernel > &p) const

bool has_on_boundary (const Point_3< Kernel > &p) const

bool has_on_bounded_side (const Point_3< Kernel > &p) const

bool has_on_unbounded_side (const Point_3< Kernel > &p) const

## Miscellaneous

Kernel::FT volume () const
returns the signed volume of t.

Bbox_3 bbox () const
returns a bounding box containing t.

Tetrahedron_3< Kerneltransform (const Aff_transformation_3< Kernel > &at) const
returns the tetrahedron obtained by applying at on the three vertices of t.

## ◆ Tetrahedron_3()

template<typename Kernel >
 CGAL::Tetrahedron_3< Kernel >::Tetrahedron_3 ( const Point_3< Kernel > & p0, const Point_3< Kernel > & p1, const Point_3< Kernel > & p2, const Point_3< Kernel > & p3 )

introduces a tetrahedron t with vertices p0, p1, p2 and p3.

Exactness
This construction is trivial and therefore always exact in Exact_predicates_inexact_constructions_kernel.

## ◆ bbox()

template<typename Kernel >
 Bbox_3 CGAL::Tetrahedron_3< Kernel >::bbox ( ) const

returns a bounding box containing t.

Exactness
This construction is trivial and therefore always exact in Exact_predicates_inexact_constructions_kernel.

## ◆ bounded_side()

template<typename Kernel >
 Bounded_side CGAL::Tetrahedron_3< Kernel >::bounded_side ( const Point_3< Kernel > & p ) const
Precondition
t is not degenerate.

## ◆ operator[]()

template<typename Kernel >
 Point_3< Kernel > CGAL::Tetrahedron_3< Kernel >::operator[] ( int i ) const

returns vertex(int i).

Exactness
This construction is trivial and therefore always exact in Exact_predicates_inexact_constructions_kernel.

## ◆ oriented_side()

template<typename Kernel >
 Oriented_side CGAL::Tetrahedron_3< Kernel >::oriented_side ( const Point_3< Kernel > & p ) const
Precondition
t is not degenerate.

## ◆ vertex()

template<typename Kernel >
 Point_3< Kernel > CGAL::Tetrahedron_3< Kernel >::vertex ( int i ) const

returns the i'th vertex modulo 4 of t.

Exactness
This construction is trivial and therefore always exact in Exact_predicates_inexact_constructions_kernel.