]> git.mxchange.org Git - flightgear.git/blobdiff - Clipper/clipper.hxx
Fixed a clipping bug (polygons specified in wrong order).
[flightgear.git] / Clipper / clipper.hxx
index b9f0d1bed86bcf64061a72b7e3c15e17a558e2af..469691a2ae020b8eec01adcd561b2978c49cb893 100644 (file)
@@ -48,22 +48,29 @@ extern "C" {
 #include STL_STRING
 #include <vector>
 
-typedef vector < gpc_polygon * > polylist;
-typedef polylist::iterator polylist_iterator;
+FG_USING_STD(string);
+FG_USING_STD(vector);
 
-#define FG_MAX_AREAS 20
+
+typedef vector < gpc_polygon * > gpcpoly_container;
+typedef gpcpoly_container::iterator gpcpoly_iterator;
+typedef gpcpoly_container::const_iterator const_gpcpoly_iterator;
+
+
+#define FG_MAX_AREA_TYPES 20
 #define EXTRA_SAFETY_CLIP
 #define FG_MAX_VERTICES 100000
 
+
 class point2d {
 public:
     double x, y;
 };
 
 
-class FGPolyList {
+class FGgpcPolyList {
 public:
-    polylist polys[FG_MAX_AREAS];
+    gpcpoly_container polys[FG_MAX_AREA_TYPES];
     gpc_polygon safety_base;
 };
 
@@ -74,7 +81,7 @@ private:
 
     gpc_vertex_list v_list;
     // static gpc_polygon poly;
-    FGPolyList polys_in, polys_out;
+    FGgpcPolyList polys_in, polys_clipped;
 
 public:
 
@@ -92,6 +99,9 @@ public:
 
     // Do actually clipping work
     bool clip_all(const point2d& min, const point2d& max);
+
+    // return output poly list
+    inline FGgpcPolyList get_polys_clipped() const { return polys_clipped; }
 };
 
 
@@ -99,6 +109,17 @@ public:
 
 
 // $Log$
+// Revision 1.5  1999/03/19 00:26:19  curt
+// Fixed a clipping bug (polygons specified in wrong order).
+// Touched up a few compiler warnings.
+//
+// Revision 1.4  1999/03/18 04:31:10  curt
+// Let's not pass copies of huge structures on the stack ... ye might see a
+// segfault ... :-)
+//
+// Revision 1.3  1999/03/17 23:48:59  curt
+// minor renaming and a bit of rearranging.
+//
 // Revision 1.2  1999/03/13 23:51:34  curt
 // Renamed main.cxx to testclipper.cxx
 // Converted clipper routines to a class FGClipper.