From 7561f1f5e2f0910b321017e1e505e768b245c101 Mon Sep 17 00:00:00 2001 From: Mason Green Date: Tue, 7 Feb 2012 10:39:16 -0500 Subject: [PATCH] updated README --- README | 39 ++++++++++++++++++++++++++++++++++----- testbed/main.cc | 36 ++++++++++++++++++++++++++++++++++-- 2 files changed, 68 insertions(+), 7 deletions(-) diff --git a/README b/README index 2857e29..51d02bf 100644 --- a/README +++ b/README @@ -1,6 +1,35 @@ -================== -INSTALLATION GUIDE -================== +##################################################################################### +### +### Since there are no Input validation of the data given for triangulation you need +### to think about this. Poly2Tri does not support repeat points within epsilon. +### +### * 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. +### +### * 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 +### +### Make sure you understand the preceding notice before posting an issue. If you have +### an issue not covered by the above, include your data-set with the problem. +### +### The only easy day was yesterday; have a nice day. +### +###################################################################################### + +=========================== +TESTBED INSTALLATION GUIDE +=========================== ------------ Dependencies @@ -15,7 +44,7 @@ Dependencies - GLFW (http://glfw.sf.net) - Python -Waf (http://code.google.com/p/waf/) is used to compile the testbed. +waf (http://code.google.com/p/waf/) is used to compile the testbed. A waf script (86kb) is included in the repositoty. ---------------------------------------------- @@ -48,4 +77,4 @@ Examples: ./p2t nazca_monkey.dat 0 0 9 ./p2t random 10 100 5.0 - ./p2t random 1000 20000 0.025 \ No newline at end of file + ./p2t random 1000 20000 0.025 diff --git a/testbed/main.cc b/testbed/main.cc index 5a5d134..b7400d6 100644 --- a/testbed/main.cc +++ b/testbed/main.cc @@ -39,6 +39,7 @@ #include using namespace std; +#include "test_shapes.h" #include "../poly2tri/poly2tri.h" using namespace p2t; @@ -114,7 +115,12 @@ int main(int argc, char* argv[]) } vector polyline; - + + for(int i = 0; i < 25; i++) { + polyline.push_back(new Point(outline[i*2],outline[i*2+1])); + } + + /* if(random_distribution) { // Create a simple bounding box polyline.push_back(new Point(min,min)); @@ -148,6 +154,8 @@ int main(int argc, char* argv[]) } } + */ + cout << "Number of constrained edges = " << polyline.size() << endl; polylines.push_back(polyline); @@ -169,6 +177,27 @@ int main(int argc, char* argv[]) /* * STEP 2: Add holes or Steiner points if necessary */ + + vector hole1_pts; + vector hole2_pts; + + for(int i = 0; i < 22; i++) { + hole1_pts.push_back(new Point(hole1[i*2],hole1[i*2+1])); + } + + cdt->AddHole(hole1_pts); + + for(int i = 0; i < 10; i++) { + hole2_pts.push_back(new Point(hole2[i*2],hole2[i*2+1])); + } + + cdt->AddHole(hole2_pts); + + for(int i = 0; i < 42; i ++) { + cdt->AddPoint(new Point(steiner_points[i*2], steiner_points[i*2+1])); + } + + /* string s(argv[1]); if(s.find("dude.dat", 0) != string::npos) { // Add head hole @@ -190,7 +219,8 @@ int main(int argc, char* argv[]) cdt->AddPoint(new Point(x, y)); } } - + */ + /* * STEP 3: Triangulate! */ @@ -412,6 +442,8 @@ vector CreateChestHole() { } + + double StringToDouble(const std::string& s) { std::istringstream i(s);