An object t of the class Tetrahedron_3<Kernel> is an oriented tetrahedron in the three-dimensional Euclidean space 3.

It is defined by four vertices p0, p1, p2 and p3. The orientation of a tetrahedron is the orientation of its four vertices. That means it is positive when p3 is on the positive side of the plane defined by p0, p1 and p2.

The tetrahedron itself splits the space 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.


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


bool t.operator== ( t2) 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 t.operator!= ( t2) Test for inequality.

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

Point_3<Kernel> t.operator[] ( int i) returns vertex(int i).


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

Orientation t.orientation ()

Oriented_side t.oriented_side ( Point_3<Kernel> p)
Precondition: : t is not degenerate.

Bounded_side t.bounded_side ( Point_3<Kernel> p)
Precondition: : t is not degenerate.

For convenience we provide the following Boolean functions:

bool t.has_on_positive_side ( Point_3<Kernel> p)
bool t.has_on_negative_side ( Point_3<Kernel> p)
bool t.has_on_boundary ( Point_3<Kernel> p)
bool t.has_on_bounded_side ( Point_3<Kernel> p)
bool t.has_on_unbounded_side ( Point_3<Kernel> p)


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

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

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

See Also