#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;
};
gpc_vertex_list v_list;
// static gpc_polygon poly;
- FGPolyList polys_in, polys_out;
+ FGgpcPolyList polys_in, polys_clipped;
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; }
};
// $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.