2012-08-21 17:43:22 +02:00
|
|
|
|
Since there are no Input validation of the data given for triangulation you need
|
2012-08-21 17:32:58 +02:00
|
|
|
|
to think about this. Poly2Tri does not support repeat points within epsilon.
|
|
|
|
|
|
2012-08-21 17:43:22 +02:00
|
|
|
|
* If you have a cyclic function that generates random points make sure you don't
|
|
|
|
|
add the same coordinate twice.
|
|
|
|
|
* If you are given input and aren't sure same point exist twice you need to
|
|
|
|
|
check for this yourself.
|
2012-08-21 17:32:58 +02:00
|
|
|
|
* Only simple polygons are supported. You may add holes or interior Steiner points
|
|
|
|
|
* Interior holes must not touch other holes, nor touch the polyline boundary
|
|
|
|
|
* Use the library in this order:
|
|
|
|
|
1. Initialize CDT with a simple polyline (this defines the constrained edges)
|
|
|
|
|
2. Add holes if necessary (also simple polylines)
|
|
|
|
|
3. Add Steiner points
|
|
|
|
|
4. Triangulate
|
2012-08-21 17:43:22 +02:00
|
|
|
|
|
|
|
|
|
Make sure you understand the preceding notice before posting an issue. If you have
|
2012-08-21 17:32:58 +02:00
|
|
|
|
an issue not covered by the above, include your data-set with the problem.
|
|
|
|
|
The only easy day was yesterday; have a nice day. <Mason Green>
|
|
|
|
|
|
|
|
|
|
TESTBED INSTALLATION GUIDE
|
2012-08-21 17:46:19 +02:00
|
|
|
|
==========================
|
2012-08-21 17:32:58 +02:00
|
|
|
|
|
|
|
|
|
Dependencies
|
|
|
|
|
------------
|
|
|
|
|
|
|
|
|
|
Core poly2tri lib:
|
|
|
|
|
|
|
|
|
|
* Standard Template Library (STL)
|
2012-08-21 17:43:22 +02:00
|
|
|
|
|
2021-12-02 00:37:18 +01:00
|
|
|
|
Unit tests:
|
|
|
|
|
* Boost (filesystem, test framework)
|
|
|
|
|
|
2012-08-21 17:32:58 +02:00
|
|
|
|
Testbed:
|
|
|
|
|
|
|
|
|
|
* OpenGL
|
2012-08-21 17:46:19 +02:00
|
|
|
|
* [GLFW](http://glfw.sf.net)
|
2020-10-24 19:56:43 +02:00
|
|
|
|
|
|
|
|
|
Build the library
|
|
|
|
|
-----------------
|
|
|
|
|
|
2021-12-02 00:38:23 +01:00
|
|
|
|
With the ninja build system installed:
|
|
|
|
|
|
2020-10-24 19:56:43 +02:00
|
|
|
|
```
|
|
|
|
|
mkdir build && cd build
|
2021-12-02 00:38:23 +01:00
|
|
|
|
cmake -GNinja ..
|
2020-10-24 19:56:43 +02:00
|
|
|
|
cmake --build .
|
|
|
|
|
```
|
|
|
|
|
|
2021-12-02 00:38:23 +01:00
|
|
|
|
Build and run with unit tests
|
2020-10-24 19:56:43 +02:00
|
|
|
|
----------------------------
|
|
|
|
|
|
2021-12-02 00:38:23 +01:00
|
|
|
|
With the ninja build system:
|
|
|
|
|
|
2020-10-24 19:56:43 +02:00
|
|
|
|
```
|
|
|
|
|
mkdir build && cd build
|
2021-12-02 00:38:23 +01:00
|
|
|
|
cmake -GNinja -DP2T_BUILD_TESTS=ON ..
|
2020-10-24 19:56:43 +02:00
|
|
|
|
cmake --build .
|
|
|
|
|
ctest --output-on-failure
|
|
|
|
|
```
|
|
|
|
|
|
2021-12-02 00:38:23 +01:00
|
|
|
|
Build with the testbed
|
2020-10-24 19:56:43 +02:00
|
|
|
|
-----------------
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
mkdir build && cd build
|
2021-12-02 00:38:23 +01:00
|
|
|
|
cmake -GNinja -DP2T_BUILD_TESTBED=ON ..
|
2020-10-24 19:56:43 +02:00
|
|
|
|
cmake --build .
|
|
|
|
|
```
|
2020-10-26 09:15:52 +01:00
|
|
|
|
|
2020-11-06 23:37:50 +01:00
|
|
|
|
Running the Examples
|
|
|
|
|
--------------------
|
|
|
|
|
|
|
|
|
|
Load data points from a file:
|
|
|
|
|
```
|
2021-12-02 00:38:53 +01:00
|
|
|
|
build/testbed/p2t <filename> <center_x> <center_y> <zoom>
|
2020-11-06 23:37:50 +01:00
|
|
|
|
```
|
|
|
|
|
Random distribution of points inside a constrained box:
|
|
|
|
|
```
|
2021-12-02 00:38:53 +01:00
|
|
|
|
build/testbed/p2t random <num_points> <box_radius> <zoom>
|
2020-11-06 23:37:50 +01:00
|
|
|
|
```
|
|
|
|
|
Examples:
|
|
|
|
|
```
|
2021-12-02 00:38:53 +01:00
|
|
|
|
build/testbed/p2t testbed/data/dude.dat 300 500 2
|
|
|
|
|
build/testbed/p2t testbed/data/nazca_monkey.dat 0 0 9
|
2020-11-06 23:37:50 +01:00
|
|
|
|
|
2021-12-02 00:38:53 +01:00
|
|
|
|
build/testbed/p2t random 10 100 5.0
|
|
|
|
|
build/testbed/p2t random 1000 20000 0.025
|
2020-11-06 23:37:50 +01:00
|
|
|
|
```
|
|
|
|
|
|
2020-10-26 09:15:52 +01:00
|
|
|
|
References
|
|
|
|
|
==========
|
|
|
|
|
|
|
|
|
|
- Domiter V. and Zalik B. (2008) Sweep‐line algorithm for constrained Delaunay triangulation
|
|
|
|
|
- FlipScan by library author Thomas Åhlén
|
|
|
|
|
|
|
|
|
|
![FlipScan](doc/FlipScan.png)
|