mirror of
				https://github.com/jhasse/poly2tri.git
				synced 2025-11-04 06:09:31 +01:00 
			
		
		
		
	updated README
This commit is contained in:
		
							
								
								
									
										37
									
								
								README
									
									
									
									
									
								
							
							
						
						
									
										37
									
								
								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. <Mason Green>
 | 
			
		||||
###
 | 
			
		||||
######################################################################################
 | 
			
		||||
 | 
			
		||||
===========================
 | 
			
		||||
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.
 | 
			
		||||
 | 
			
		||||
----------------------------------------------
 | 
			
		||||
 
 | 
			
		||||
@@ -39,6 +39,7 @@
 | 
			
		||||
#include <iostream>
 | 
			
		||||
using namespace std;
 | 
			
		||||
 | 
			
		||||
#include "test_shapes.h"
 | 
			
		||||
#include "../poly2tri/poly2tri.h"
 | 
			
		||||
using namespace p2t;
 | 
			
		||||
 | 
			
		||||
@@ -115,6 +116,11 @@ int main(int argc, char* argv[])
 | 
			
		||||
 | 
			
		||||
  vector<p2t::Point*> 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<Point*> hole1_pts;
 | 
			
		||||
  vector<Point*> 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,6 +219,7 @@ int main(int argc, char* argv[])
 | 
			
		||||
      cdt->AddPoint(new Point(x, y));
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  */
 | 
			
		||||
  
 | 
			
		||||
  /*
 | 
			
		||||
   * STEP 3: Triangulate!
 | 
			
		||||
@@ -412,6 +442,8 @@ vector<Point*> CreateChestHole() {
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
double StringToDouble(const std::string& s)
 | 
			
		||||
{
 | 
			
		||||
  std::istringstream i(s);
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user