poly2tri/README.md

102 lines
2.4 KiB
Markdown
Raw Normal View History

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
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
-----------------
With the ninja build system installed:
2020-10-24 19:56:43 +02:00
```
mkdir build && cd build
cmake -GNinja ..
2020-10-24 19:56:43 +02:00
cmake --build .
```
Build and run with unit tests
2020-10-24 19:56:43 +02:00
----------------------------
With the ninja build system:
2020-10-24 19:56:43 +02:00
```
mkdir build && cd build
cmake -GNinja -DP2T_BUILD_TESTS=ON ..
2020-10-24 19:56:43 +02:00
cmake --build .
ctest --output-on-failure
```
Build with the testbed
2020-10-24 19:56:43 +02:00
-----------------
```
mkdir build && cd build
cmake -GNinja -DP2T_BUILD_TESTBED=ON ..
2020-10-24 19:56:43 +02:00
cmake --build .
```
2020-11-06 23:37:50 +01:00
Running the Examples
--------------------
Load data points from a file:
```
build/testbed/p2t <filename> <center_x> <center_y> <zoom>
2020-11-06 23:37:50 +01:00
```
2022-04-24 17:36:35 +02:00
Load data points from a file and automatically fit the geometry to the window:
```
build/testbed/p2t <filename>
```
2020-11-06 23:37:50 +01:00
Random distribution of points inside a constrained box:
```
build/testbed/p2t random <num_points> <box_radius> <zoom>
2020-11-06 23:37:50 +01:00
```
Examples:
```
2022-04-24 16:36:26 +02:00
build/testbed/p2t testbed/data/dude.dat 350 500 3
2022-04-24 17:36:35 +02:00
build/testbed/p2t testbed/data/nazca_monkey.dat
2020-11-06 23:37:50 +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
```
References
==========
- Domiter V. and Zalik B. (2008) Sweepline algorithm for constrained Delaunay triangulation
- FlipScan by library author Thomas Åhlén
![FlipScan](doc/FlipScan.png)