commit | b6a57e2c30c24948b847ad0c725fce43cf826952 | [log] [tgz] |
---|---|---|
author | Vova Bilonenko <bilonenko.v@gmail.com> | Sun Sep 23 08:07:27 2018 +0200 |
committer | GitHub <noreply@github.com> | Sun Sep 23 08:07:27 2018 +0200 |
tree | 0155bbd4b5b57d59dc5b0e08bd9d70287d4da530 | |
parent | cc0108c951ce3a9ab44772b67728dd6ff1a57745 [diff] | |
parent | f7d311474ec7b42b67fedb7e53863465e25e7e1d [diff] |
Merge pull request #10 from flippmoke/flippmoke/bm_update Updated google benchmark to use args
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.
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 ); } }
Run on (4 X 2300 MHz CPU s) 2018-09-19 09:40:29 ------------------------------------------------------------ Benchmark Time CPU Iterations ------------------------------------------------------------ BM_45K_geojson_nodes 23 ms 23 ms 32 BM_2K_uniform 1 ms 1 ms 970 BM_100K_uniform 63 ms 63 ms 10 BM_200K_uniform 142 ms 141 ms 4 BM_500K_uniform 415 ms 412 ms 2 BM_1M_uniform 1016 ms 1010 ms 1
Library is ~10% faster then JS version for 1M uniform points (details)