|
Geogram Version 1.8.5
A programming library of geometric algorithms
|
Exact predicates and constructs. More...
#include <geogram/basic/common.h>#include <geogram/basic/geometry.h>#include <geogram/numerics/expansion_nt.h>Go to the source code of this file.
Classes | |
| struct | GEO::vec2HE |
| 2D vector in homogeneous coordinates with coordinates as arithmetic expansions More... | |
| struct | GEO::vec3HE |
| 3D vector in homogeneous coordinates with coordinates as arithmetic expansions. More... | |
| class | GEO::vec2HELexicoCompare |
| Comparator class for vec3HE \detail Used to create maps indexed by vec3HE. More... | |
| class | GEO::vec3HELexicoCompare |
| Comparator class for vec3HE \detail Used to create maps indexed by vec3HE. More... | |
| class | GEO::vec3HEProjectedLexicoCompare |
| Comparator class for projected vec3HE. More... | |
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). | |
Typedefs | |
| typedef vecng< 2, expansion_nt > | GEO::vec2E |
| vec2 with coordinates as expansions | |
| typedef vecng< 3, expansion_nt > | GEO::vec3E |
| vec3 with coordinates as expansions | |
Functions | |
| vec2HE | GEO::operator- (const vec2HE &p1, const vec2HE &p2) |
| vec3HE | GEO::operator- (const vec3HE &p1, const vec3HE &p2) |
| vec3HE | GEO::mix (const rational_nt &t, const vec3 &p1, const vec3 &p2) |
| vec2HE | GEO::mix (const rational_nt &t, const vec2HE &p1, const vec2HE &p2) |
| vec3HE | GEO::mix (const rational_nt &t, const vec3HE &p1, const vec3HE &p2) |
| template<> | |
| expansion_nt | GEO::det (const vec2E &v1, const vec2E &v2) |
| Specialization optimized using low-level API. | |
| template<> | |
| expansion_nt | GEO::dot (const vec2E &v1, const vec2E &v2) |
| Specialization optimized using low-level API. | |
| template<> | |
| expansion_nt | GEO::dot (const vec3E &v1, const vec3E &v2) |
| Specialization optimized using low-level API. | |
| template<class T > | |
| bool | GEO::PCK::same_point (const vecng< 3, T > &v1, const vecng< 3, T > &v2) |
| template<class T > | |
| bool | GEO::PCK::same_point (const vecng< 2, T > &v1, const vecng< 2, T > &v2) |
| bool | GEO::PCK::same_point (const vec2HE &v1, const vec2HE &v2) |
| bool | GEO::PCK::same_point (const vec3HE &v1, const vec3HE &v2) |
| Sign | GEO::PCK::orient_2d (const vec2HE &p0, const vec2HE &p1, const vec2HE &p2) |
| Sign | GEO::PCK::orient_2d_projected (const vec3HE &p0, const vec3HE &p1, const vec3HE &p2, coord_index_t axis) |
| Sign | GEO::PCK::orient_3d (const vec3HE &p0, const vec3HE &p1, const vec3HE &p2, const vec3HE &p3) |
| Sign | GEO::PCK::dot_2d (const vec2HE &p0, const vec2HE &p1, const vec2HE &p2) |
| Sign | GEO::PCK::orient_2dlifted_SOS (const vec2HE &p0, const vec2HE &p1, const vec2HE &p2, const vec2HE &p3, double h0, double h1, double h2, double h3) |
| Computes the 3d orientation test with lifted points. | |
| Sign | GEO::PCK::orient_2dlifted_SOS_projected (const vec3HE &p0, const vec3HE &p1, const vec3HE &p2, const vec3HE &p3, double h0, double h1, double h2, double h3, coord_index_t axis) |
| template<class VEC3 > | |
| VEC3 | GEO::make_vec3 (const vec3 &p) |
| Converts a 3d vector with double coordinates into a 3d vector with coordinates of arbitrary type. | |
| template<class VEC3 = vec3> | |
| VEC3 | GEO::make_vec3 (const vec3 &p1, const vec3 &p2) |
| Creates a vector with coordinates of arbitrary type from two points with double coordinates. | |
| template<> | |
| vec3E | GEO::make_vec3< vec3E > (const vec3 &p1, const vec3 &p2) |
| Specialization for vec3E. | |
| template<class VEC2 > | |
| VEC2 | GEO::make_vec2 (const vec2 &p1, const vec2 &p2) |
| Creates a vector with coordinates of arbitrary type from two points with double coordinates. | |
| template<> | |
| vec2E | GEO::make_vec2< vec2E > (const vec2 &p1, const vec2 &p2) |
| Specialization for vec2E. | |
| template<class VEC3 > | |
| VEC3 | GEO::triangle_normal (const vec3 &p1, const vec3 &p2, const vec3 &p3) |
| Computes the normal to a triangle from its three vertices. | |
| template<> | |
| vec3E | GEO::triangle_normal< vec3E > (const vec3 &p1, const vec3 &p2, const vec3 &p3) |
| Specialization for vec3E. | |
| bool | GEO::get_three_planes_intersection (vec3HE &result, const vec3 &p1, const vec3 &p2, const vec3 &p3, const vec3 &q1, const vec3 &q2, const vec3 &q3, const vec3 &r1, const vec3 &r2, const vec3 &r3) |
| Computes the exact intersection between the support planes of three triangles. | |
| vec3HE | GEO::plane_line_intersection (const vec3 &p1, const vec3 &p2, const vec3 &p3, const vec3 &q1, const vec3 &q2) |
| Computes the exact intersection between the support plane of a triangle and the support line of a segment. | |
| coord_index_t | GEO::triangle_normal_axis_exact (const vec3 &p1, const vec3 &p2, const vec3 &p3) |
| Finds an axis along which a triangle can be projected without degeneracy. | |
Exact predicates and constructs.
Implements vector types with expansion coordinates (vec2E, vec3E), vector types with homogeneous expansion coordinates (vec2HE, vec3HE), 2d orientation predicate, 3d-lifted orientation predicate (can be used to implement incircle), and constructions for intersections.
Definition in file exact_geometry.h.