$ show mapbox/earcut.hpp
A header-only C++ library implementing the fast earclipping polygon triangulation algorithm, ported from the JavaScript earcut library. It provides a simple API (`mapbox::earcut`) that takes a polygon (with holes) and returns triangle indices, with an optional Delaunay refinement post-pass (`mapbox::refine`). The library is heavily optimized for real-time triangulation of vector tile geometries, using z-order curve hashing, custom memory allocation (object pool), and a block bounding-box index for efficient hole bridging. It targets C++14 for the public header and C++17 for tests/benchmarks. The repository also includes comprehensive test fixtures loaded at runtime from the upstream JS repository, benchmarks comparing against libtess2, and an interactive OpenGL visualizer.
The LLM identified 1 files worth highlighting for reuse:
The single implementation header providing `mapbox::earcut` and `mapbox::refine` functions. It implements a modified ear slicing algorithm with z-order curve spatial hashing, custom object pool for node allocation, triangle struct with bounding-box early rejection, block-bbox index for efficient hole bridging, and a Lawson-flip-based Delaunay refiner. The code is self-contained (only STL dependencies), highly optimized for vector tile workloads, and demonstrates advanced C++ performance techniques. It is the core reusable component of the repository.