Lagrange
Loading...
Searching...
No Matches
ExactPredicatesShewchuk Class Reference
Inheritance diagram for ExactPredicatesShewchuk:
ExactPredicates

Public Member Functions

virtual short orient2D (const double p1[2], const double p2[2], const double p3[2]) const
 Exact 2D orientation test.
 
virtual short orient3D (const double p1[3], const double p2[3], const double p3[3], const double p4[3]) const
 Exact 3D orientation test.
 
virtual short incircle (const double p1[2], const double p2[2], const double p3[2], const double p4[2]) const
 Exact 2D incircle test.
 
virtual short insphere (const double p1[3], const double p2[3], const double p3[3], const double p4[3], const double p5[3]) const
 Exact 3D insphere test.
 
- Public Member Functions inherited from ExactPredicates
virtual short collinear3D (const double p1[3], const double p2[3], const double p3[3]) const
 Tests whether p1, p2, and p3 are collinear in 3D.
 

Additional Inherited Members

- Static Public Member Functions inherited from ExactPredicates
static std::unique_ptr< ExactPredicatescreate (const std::string &engine)
 Factory method to create an exact predicate engine.
 

Member Function Documentation

◆ orient2D()

short orient2D ( const double p1[2],
const double p2[2],
const double p3[2] ) const
virtual

Exact 2D orientation test.

Parameters
p1First 2D point.
p2Second 2D point.
p3Third 2D point.
Returns
Return a positive value if the points p1, p2, and p3 occur in counterclockwise order; a negative value if they occur in clockwise order; and zero if they are collinear.

Implements ExactPredicates.

◆ orient3D()

short orient3D ( const double p1[3],
const double p2[3],
const double p3[3],
const double p4[3] ) const
virtual

Exact 3D orientation test.

Parameters
p1First 3D point.
p2Second 3D point.
p3Third 3D point.
p4Fourth 3D point.
Returns
Return a positive value if the point p4 lies below the plane passing through p1, p2, and p3; "below" is defined so that p1, p2, and p3 appear in counterclockwise order when viewed from above the plane. Returns a negative value if p4 lies above the plane. Returns zero if the points are coplanar.

Implements ExactPredicates.

◆ incircle()

short incircle ( const double p1[2],
const double p2[2],
const double p3[2],
const double p4[2] ) const
virtual

Exact 2D incircle test.

Parameters
p1First 2D point.
p2Second 2D point.
p3Third 2D point.
p4Fourth 3D point.
Returns
Return a positive value if the point p4 lies inside the circle passing through p1, p2, and p3; a negative value if it lies outside; and zero if the four points are cocircular. The points p1, p2, and p3 must be in counterclockwise order, or the sign of the result will be reversed.

Implements ExactPredicates.

◆ insphere()

short insphere ( const double p1[3],
const double p2[3],
const double p3[3],
const double p4[3],
const double p5[3] ) const
virtual

Exact 3D insphere test.

Parameters
p1First 3D point.
p2Second 3D point.
p3Third 3D point.
p4Fourth 3D point.
p5Fifth 3D point.
Returns
Return a positive value if the point p5 lies inside the sphere passing through p1, p2, p3, and p4; a negative value if it lies outside; and zero if the five points are cospherical. The points p1, p2, p3, and p4 must be ordered so that they have a positive orientation (as defined by orient3d()), or the sign of the result will be reversed.

Implements ExactPredicates.


The documentation for this class was generated from the following files: