| Graphite Version 3
    An experimental 3D geometry processing program | 
Filtered exact predicates for restricted Voronoi diagrams. More...
#include <geogram/basic/common.h>#include <geogram/basic/numeric.h>#include <geogram/basic/geometry.h>#include <geogram/numerics/PCK.h>Go to the source code of this file.
| Namespaces | |
| namespace | GEO | 
| Global Vorpaline namespace. | |
| namespace | GEO::PCK | 
| PCK (Predicate Construction Kit) implements a set of geometric predicates. PCK uses arithmetic filters (Meyer and Pion), expansion arithmetics (Shewchuk) and simulation of simplicity (Edelsbrunner). | |
| Enumerations | |
| enum | GEO::PCK::SOSMode { SOS_ADDRESS , SOS_LEXICO } | 
| Mode for symbolic perturbations.  More... | |
| Functions | |
| void | GEO::PCK::set_SOS_mode (SOSMode m) | 
| Sets the current mode for handling symbolic perturbations (SOS for Simulation Of Simplicity). | |
| SOSMode | GEO::PCK::get_SOS_mode () | 
| Gets the current mode for handling symbolic perturbations. | |
| Sign | GEO::PCK::side1_SOS (const double *p0, const double *p1, const double *q0, coord_index_t DIM) | 
| Computes the side of a point (given directly) relative to a bisector. | |
| Sign | GEO::PCK::side2_SOS (const double *p0, const double *p1, const double *p2, const double *q0, const double *q1, coord_index_t DIM) | 
| Computes the side of a point (given as the intersection between a segment and a bisector) relative to another bisector. | |
| Sign | GEO::PCK::side3_SOS (const double *p0, const double *p1, const double *p2, const double *p3, const double *q0, const double *q1, const double *q2, coord_index_t DIM) | 
| Computes the side of a point (given as the intersection between a facet and two bisectors) relative to another bisector. | |
| Sign | GEO::PCK::side3_3dlifted_SOS (const double *p0, const double *p1, const double *p2, const double *p3, double h0, double h1, double h2, double h3, const double *q0, const double *q1, const double *q2, bool SOS=true) | 
| Computes the side of a point (given as the intersection between a facet and two bisectors) relative to another bisector. | |
| Sign | GEO::PCK::side4_SOS (const double *p0, const double *p1, const double *p2, const double *p3, const double *p4, const double *q0, const double *q1, const double *q2, const double *q3, coord_index_t DIM) | 
| Computes the side of a point (given as the intersection between a tetrahedron and three bisectors) relative to another bisector. | |
| Sign | GEO::PCK::side4_3d (const double *p0, const double *p1, const double *p2, const double *p3, const double *p4) | 
| Computes the side of a point (given as the intersection between three bisectors) relative to another bisector. | |
| Sign | GEO::PCK::side4_3d_SOS (const double *p0, const double *p1, const double *p2, const double *p3, const double *p4) | 
| Computes the side of a point (given as the intersection between three bisectors) relative to another bisector. | |
| Sign | GEO::PCK::in_sphere_3d_SOS (const double *p0, const double *p1, const double *p2, const double *p3, const double *p4) | 
| Tests whether a 3d point is inside the circumscribed sphere of a 3d tetrahedron. | |
| Sign | GEO::PCK::in_circle_2d_SOS (const double *p0, const double *p1, const double *p2, const double *p3) | 
| Tests whether a 2d point is inside the circumscribed circle of a 3d triangle. | |
| Sign | GEO::PCK::in_circle_3d_SOS (const double *p0, const double *p1, const double *p2, const double *p3) | 
| Tests whether a 3d point is inside the circumscribed circle of a 3d triangle. | |
| Sign | GEO::PCK::in_circle_3dlifted_SOS (const double *p0, const double *p1, const double *p2, const double *p3, double h0, double h1, double h2, double h3, bool SOS=true) | 
| Tests whether a lifted 3d point is inside the circumscribed circle of a lifted 3d triangle. | |
| Sign | GEO::PCK::orient_2d (const double *p0, const double *p1, const double *p2) | 
| Computes the orientation predicate in 2d. | |
| Sign | GEO::PCK::orient_2d (const vec2 &p0, const vec2 &p1, const vec2 &p2) | 
| Computes the orientation predicate in 2d. | |
| Sign | GEO::PCK::orient_2dlifted_SOS (const double *p0, const double *p1, const double *p2, const double *p3, double h0, double h1, double h2, double h3) | 
| Computes the 3d orientation test with lifted points. | |
| Sign | GEO::PCK::orient_3d (const double *p0, const double *p1, const double *p2, const double *p3) | 
| Computes the orientation predicate in 3d. | |
| Sign | GEO::PCK::orient_3d (const vec3 &p0, const vec3 &p1, const vec3 &p2, const vec3 &p3) | 
| Computes the orientation predicate in 3d. | |
| Sign | GEO::PCK::orient_3dlifted (const double *p0, const double *p1, const double *p2, const double *p3, const double *p4, double h0, double h1, double h2, double h3, double h4) | 
| Computes the 4d orientation test. | |
| Sign | GEO::PCK::orient_3dlifted_SOS (const double *p0, const double *p1, const double *p2, const double *p3, const double *p4, double h0, double h1, double h2, double h3, double h4) | 
| Computes the 4d orientation test with symbolic perturbation. | |
| Sign | GEO::PCK::det_3d (const double *p0, const double *p1, const double *p2) | 
| Computes the sign of the determinant of a 3x3 matrix formed by three 3d points. | |
| Sign | GEO::PCK::det_3d (const vec3 &p0, const vec3 &p1, const vec3 &p2) | 
| Computes the sign of the determinant of a 3x3 matrix formed by three 3d points. | |
| Sign | GEO::PCK::det_4d (const double *p0, const double *p1, const double *p2, const double *p3) | 
| Computes the sign of the determinant of a 4x4 matrix formed by four 4d points. | |
| Sign | GEO::PCK::det_4d (const vec4 &p0, const vec4 &p1, const vec4 &p2, const vec4 &p3) | 
| Computes the sign of the determinant of a 4x4 matrix formed by four 4d points. | |
| Sign | GEO::PCK::det_compare_4d (const double *p0, const double *p1, const double *p2, const double *p3, const double *p4) | 
| Computes the sign of the determinant of a 4x4 matrix formed by three 4d points and the difference of two 4d points. | |
| bool | GEO::PCK::aligned_3d (const double *p0, const double *p1, const double *p2) | 
| Tests whether three points are aligned. | |
| Sign | GEO::PCK::dot_3d (const double *p0, const double *p1, const double *p2) | 
| Computes the sign of the dot product between two vectors. | |
| bool | GEO::PCK::aligned_3d (const vec3 &p0, const vec3 &p1, const vec3 &p2) | 
| Tests whether three points are aligned. | |
| Sign | GEO::PCK::dot_3d (const vec3 &p0, const vec3 &p1, const vec3 &p2) | 
| Computes the sign of the dot product between two vectors. | |
| Sign | GEO::PCK::dot_compare_3d (const double *v0, const double *v1, const double *v2) | 
| Compares two dot products. | |
| bool | GEO::PCK::points_are_identical_2d (const double *p1, const double *p2) | 
| Tests whether two 2d points are identical. | |
| bool | GEO::PCK::points_are_identical_3d (const double *p1, const double *p2) | 
| Tests whether two 3d points are identical. | |
| bool | GEO::PCK::points_are_colinear_3d (const double *p1, const double *p2, const double *p3) | 
| Tests whether three 3d points are colinear. | |
| Sign | GEO::PCK::orient_3d_inexact (const double *p0, const double *p1, const double *p2, const double *p3) | 
| Computes the (approximate) orientation predicate in 3d. | |
| void | GEO::PCK::show_stats () | 
| Displays some statistics about predicates, including the number of calls, the number of exact arithmetics calls, and the number of Simulation of Simplicity calls. | |
| void | GEO::PCK::initialize () | 
| Needs to be called before using any predicate. | |
| void | GEO::PCK::terminate () | 
| Needs to be called at the end of the program. | |
Filtered exact predicates for restricted Voronoi diagrams.
Definition in file predicates.h.