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 | |
GEO | |
Global Vorpaline 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. | |
Functions | |
void | GEO::PCK::set_SOS_mode (SOSMode m) |
Sets the current mode for handling symbolic perturbations (SOS for Simulation Of Simplicity). More... | |
SOSMode | GEO::PCK::get_SOS_mode () |
Gets the current mode for handling symbolic perturbations. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
Sign | GEO::PCK::orient_2d (const double *p0, const double *p1, const double *p2) |
Computes the orientation predicate in 2d. More... | |
Sign | GEO::PCK::orient_2d (const vec2 &p0, const vec2 &p1, const vec2 &p2) |
Computes the orientation predicate in 2d. More... | |
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. More... | |
Sign | GEO::PCK::orient_3d (const double *p0, const double *p1, const double *p2, const double *p3) |
Computes the orientation predicate in 3d. More... | |
Sign | GEO::PCK::orient_3d (const vec3 &p0, const vec3 &p1, const vec3 &p2, const vec3 &p3) |
Computes the orientation predicate in 3d. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
bool | GEO::PCK::aligned_3d (const double *p0, const double *p1, const double *p2) |
Tests whether three points are aligned. More... | |
Sign | GEO::PCK::dot_3d (const double *p0, const double *p1, const double *p2) |
Computes the sign of the dot product between two vectors. More... | |
bool | GEO::PCK::aligned_3d (const vec3 &p0, const vec3 &p1, const vec3 &p2) |
Tests whether three points are aligned. More... | |
Sign | GEO::PCK::dot_3d (const vec3 &p0, const vec3 &p1, const vec3 &p2) |
Computes the sign of the dot product between two vectors. More... | |
Sign | GEO::PCK::dot_compare_3d (const double *v0, const double *v1, const double *v2) |
Compares two dot products. More... | |
bool | GEO::PCK::points_are_identical_2d (const double *p1, const double *p2) |
Tests whether two 2d points are identical. More... | |
bool | GEO::PCK::points_are_identical_3d (const double *p1, const double *p2) |
Tests whether two 3d points are identical. More... | |
bool | GEO::PCK::points_are_colinear_3d (const double *p1, const double *p2, const double *p3) |
Tests whether three 3d points are colinear. More... | |
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. More... | |
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.