CGAL 6.0 - 2D and 3D Linear Geometry Kernel
Loading...
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.
 

Constructor & Destructor Documentation

◆ 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.

Member Function Documentation

◆ 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.