| 125 | |
| 126 | template <typename Contours> |
| 127 | double triangulateOnceMs( const Contours& conts ) |
| 128 | { |
| 129 | const auto t0 = std::chrono::steady_clock::now(); |
| 130 | Mesh m = PlanarTriangulation::triangulateContours( conts ); |
| 131 | const auto t1 = std::chrono::steady_clock::now(); |
| 132 | volatile size_t sink = m.topology.faceSize(); |
| 133 | (void)sink; |
| 134 | return std::chrono::duration<double, std::milli>( t1 - t0 ).count(); |
| 135 | } |
| 136 | |
| 137 | // runs `once` (returns elapsed ms) warmup+iters times, prints min/median/mean |
| 138 | void runBench( const char* name, size_t nverts, int warmup, int iters, const std::function<double()>& once ) |
no test coverage detected