00001
00002 #ifndef DELAUNAY_HPP
00003 #define DELAUNAY_HPP
00004
00005 #include <list>
00006 #include <HeTriang.h>
00007 #include <HeDart.h>
00008 #include <HeTraits.h>
00009 #include <model3d/Image3DTemplate.hpp>
00010 #include <model3d/point3D.hpp>
00011
00012 namespace jafar {
00014 namespace delaunay {
00015
00022 class DNode : public hed::Node {
00023
00024 protected:
00025
00026 unsigned int _id;
00027
00028 public:
00029
00030 DNode(double x_, double y_, double z_=0);
00031 DNode(unsigned int id_, double x_, double y_, double z_=0);
00032 unsigned int id() const {return _id;};
00033
00034 };
00035
00044 class Delaunay {
00045
00046 protected:
00047 typedef std::list<DNode*>::iterator nodes_it;
00048
00049 std::list<DNode*> nodes;
00050
00051 hed::Triangulation triangulation;
00052
00053 public:
00062 Delaunay(double xmin_, double ymin_, double xmax_, double ymax_, double zref_=0.0);
00063 ~Delaunay();
00064
00066 void addNode(int id, double x_, double y_, double z_=0);
00068 int nbTriangles() const;
00070 std::string getTriangles();
00071 std::string getTrianglesNizar();
00073 void trianguleIm3D(jafar::model3d::Image3DTemplate<jafar::model3d::Point3D>& im3d);
00075 void createMap3D(char *worldFile);
00076 };
00077
00078 }
00079 }
00080
00081 #endif // DELAUNAY_HPP