![]() |
Pangolin
Header-only C++20 plane computational geometry library
|
| doc | |
| doxygen | |
| include | |
| algorithm | |
| arrangement.hpp | Planar subdivision induced by a set of one-dimensional shapes |
| bitmatrix.hpp | One bit per cell over a fixed rectangular window of the integer grid |
| closestpair.hpp | Closest pair of points by divide and conquer |
| convexhull.hpp | Convex hull algorithms built from Pangolin point predicates |
| graph.hpp | Simple undirected graph with hashable vertices |
| intersections.hpp | Segment intersection and crossing algorithms |
| intervaltree.hpp | Mutable one-dimensional interval tree over projected bounded shapes |
| mindisk.hpp | Smallest enclosing disk algorithms |
| polyominoes.hpp | Enumeration of polyominoes as Pangolin polygons |
| redbluesweep.hpp | Bichromatic (red-blue) boundary contact by one combined plane sweep |
| shapetree.hpp | Static 2D shape tree over any bounded shape (one exposing bbox()) |
| sortpoints.hpp | Angular sorting of points around a center |
| triangulation.hpp | Mutable triangulation of a point set or simple polygon |
| xysweep.hpp | Bounding-box sweep over pairs of segments |
| core | |
| bigint.hpp | Arbitrary precision signed integers, optimized for small values |
| forward.hpp | Forward declarations for core numeric and geometry types |
| handle.hpp | Strongly typed index handles shared by the topological data structures |
| hash.hpp | Hash support for Pangolin value types |
| numeric.hpp | Numeric concepts and helpers shared by exact geometry operations |
| rational.hpp | Exact rational number type used when geometric results need fractions |
| transformation.hpp | Public declaration of pgl::Transformation, an affine transformation |
| implementation | |
| atxy.hpp | Coordinate-evaluation helpers for linear primitives |
| booleans.hpp | Regularized boolean operations on closed polygonal regions |
| boundarycontains.hpp | Implementations of the 'boundaryContains' predicate |
| bounding.hpp | Bounding-box and rectangle-boundary operations |
| closest.hpp | Witnesses for squaredDistance: which elements realize it, and where |
| contains.hpp | Implementations of the 'contains' predicate |
| crosses.hpp | Implementations of the 'crosses' predicate |
| distance.hpp | Distance and Hausdorff-style measurements between shapes |
| distancel1.hpp | Manhattan (L1) distance between shapes |
| distancelinf.hpp | Chebyshev (LInf) distance between shapes |
| duality.hpp | Projective duality and polar-transform helpers |
| interiorcontains.hpp | Implementations of the 'interiorContains' predicate |
| interiorsintersect.hpp | Implementations of the 'interiorsIntersect' predicate |
| intersection.hpp | Implementations of the 'intersection' predicate |
| intersects.hpp | Implementations of the 'intersects' predicate |
| io.hpp | Stream output helpers for Pangolin value types |
| lattice.hpp | Enumeration of the integer grid points a shape contains |
| measures.hpp | Geometric measurements and canonical representative-point helpers |
| minkowski.hpp | Minkowski sums of two shapes, and the operator+ that spells them |
| minkowskierosion.hpp | Minkowski erosions: the set of translations of one shape that keep it inside another |
| minkowskisum.hpp | Minkowski sums whose result is not a single convex shape: one region when the substantive case is connected and regular, several only when thin or slit geometry can genuinely separate it, and one polygon for the receiver whose monotonicity rules holes out |
| orientation.hpp | Exact low-level orientation and incircle predicates |
| predicates.hpp | Method definitions for the shapes |
| predicates_helpers.hpp | Small dispatch traits and geometry helpers reused by the implementations |
| samepointset.hpp | Exact equality of the point sets represented by arbitrary shapes |
| separates.hpp | Implementations of the 'separates' predicate |
| transformations.hpp | Arithmetic transformations and explicit conversions between primitives |
| visibilitygraph.hpp | Visibility graphs by triangular expansion |
| shape | |
| convex.hpp | |
| disk.hpp | Declaration of pgl::Disk |
| emptyshape.hpp | Public declaration of pgl::EmptyShape |
| halfplane.hpp | Public declaration of pgl::Halfplane |
| halfplaneintersection.hpp | Public declaration of pgl::HalfplaneIntersection |
| line.hpp | Public declaration of pgl::Line |
| monotonechain.hpp | |
| orientedline.hpp | Public declaration of pgl::OrientedLine |
| orientedsegment.hpp | Public declaration of pgl::OrientedSegment |
| point.hpp | Public declaration of pgl::Point and point-label helpers |
| polygon.hpp | |
| polygonset.hpp | |
| polygonwithholes.hpp | |
| polyline.hpp | |
| ray.hpp | Public declaration of pgl::Ray |
| rectangle.hpp | Public declaration of pgl::Rectangle |
| segment.hpp | Public declaration of pgl::Segment |
| shape.hpp | Runtime variant wrapper over the currently implemented shape types |
| triangle.hpp | Public declaration of pgl::Triangle |
| third_party | |
| pdfgen.hpp | Trimmed header-only C++ port of PDFGen for Pangolin canvas export |
| visualization | |
| canvas.hpp | Lightweight SVG canvas for drawing Pangolin shapes |
| pgl.hpp | Convenience umbrella header for the PGL library |