MCPcopy Create free account
hub / github.com/delfrrr/delaunator-cpp

github.com/delfrrr/delaunator-cpp @v0.4.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.4.0 ↗ · + Follow
32 symbols 55 edges 8 files 2 documented · 6% updated 2y agov0.4.0 · 2018-09-26★ 59723 open issues

Browse by type

Functions 28 Types & classes 4
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

delaunator-cpp

A really fast C++ library for Delaunay triangulation of 2D points.

delaunator-cpp is a C++ port from https://github.com/mapbox/delaunator a JavaScript implementation of very fast 2D Delaunay algorithm.

Build Status badge

Features

  • Probably the fastest C++ open source 2D Delaunay implementation
  • Example showing triangulation of GeoJson points

Usage

examples/basic.cpp

#include <delaunator.hpp>
#include <cstdio>

int main() {
    /* x0, y0, x1, y1, ... */
    std::vector<double> coords = {-1, 1, 1, 1, 1, -1, -1, -1};

    //triangulation happens here
    delaunator::Delaunator d(coords);

    for(std::size_t i = 0; i < d.triangles.size(); i+=3) {
        printf(
            "Triangle points: [[%f, %f], [%f, %f], [%f, %f]]\n",
            d.coords[2 * d.triangles[i]],        //tx0
            d.coords[2 * d.triangles[i] + 1],    //ty0
            d.coords[2 * d.triangles[i + 1]],    //tx1
            d.coords[2 * d.triangles[i + 1] + 1],//ty1
            d.coords[2 * d.triangles[i + 2]],    //tx2
            d.coords[2 * d.triangles[i + 2] + 1] //ty2
        );
    }
}

See more examples here

Benchmarks

Run on (4 X 2300 MHz CPU s)
2018-09-26 09:28:34
------------------------------------------------------------
Benchmark                     Time           CPU Iterations
------------------------------------------------------------
BM_45K_geojson_nodes         24 ms         24 ms         29
BM_uniform/2000               1 ms          1 ms        887
BM_uniform/100000            66 ms         66 ms          9
BM_uniform/200000           158 ms        155 ms          4
BM_uniform/500000           441 ms        439 ms          2
BM_uniform/1000000         1062 ms       1058 ms          1

Library is ~10% faster then JS version for 1M uniform points (details)

Core symbols most depended-on inside this repo

Shape

Function 20
Method 8
Class 4

Languages

C++100%

Modules by API surface

include/delaunator.hpp19 symbols
examples/utils.hpp4 symbols
test/delaunator.test.cpp3 symbols
bench/run.cpp3 symbols
examples/triangulate_geojson.cpp2 symbols
examples/basic.cpp1 symbols

For agents

$ claude mcp add delaunator-cpp \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page