00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef __CS_TRIANGULATE_POLY_H__
00020 #define __CS_TRIANGULATE_POLY_H__
00021
00022 #include "csgeom/poly2d.h"
00023 #include "csgeom/trimesh.h"
00024 #include "csutil/dirtyaccessarray.h"
00025
00026
00039
00040
00041
00042
00043 typedef csDirtyAccessArray< csVector2 > csContour2;
00044
00046 class CS_CRYSTALSPACE_EXPORT csTriangulate2
00047 {
00048 public:
00049 csTriangulate2() {}
00050 ~csTriangulate2() {}
00051
00053 static bool Process(const csContour2 &contour,
00054 csTriangleMesh &result, csContour2 &result_vertices);
00055
00057 static float Area(const csContour2 &contour);
00058
00061 static bool InsideTriangle(float Ax, float Ay,
00062 float Bx, float By,
00063 float Cx, float Cy,
00064 float Px, float Py);
00065
00066
00067 private:
00068 static bool Snip(const csContour2 &contour,int u,int v,int w,int n,int *V);
00069
00070 };
00071
00072 #endif
00073