- Main Page
- Classes
- Files

- File List

# src/tests/2dRender/DelaunayTestLogic.h

Go to the documentation of this file.

    00001
    00002
    00003
    00004
    00005
    00006
    00007
    00008
    00009
    00010
    00011
    00012
    00013
    00014
    00015
    00016
    00017
    00018
    00019
    00020
    00025 #ifndef _DELAUNAY_TEST_LOGIC_H_
    00026 #define _DELAUNAY_TEST_LOGIC_H_
    00027
    00028 #include "Point.h"
    00029 #include "Line.h"
    00030 #include "Circle.h"
    00031
    00032 #include <vector>
    00033 #include <map>
    00034
    00035 namespace EdgeAlgebra
    00036 {
    00037 class Site;
    00038 class QuadEdge;
    00039 class DelaunayTriangulation;
    00040 }
    00041
    00042 namespace DelaunayTest
    00043 {
    00044
    00048 class DelaunayTestLogic
    00049 {
    00050 public:
    00052         DelaunayTestLogic(void);
    00053
    00055         ~DelaunayTestLogic(void);
    00056
    00058         void Triangulate(void);
    00059
    00061         void Reset(void);
    00062
    00065         void AddSites(void);
    00066
    00069         void RemoveSites(void);
    00070
    00073         void EnableCircles(void);
    00074
    00077         const std::vector<Point>& GetPoints(void) const;
    00078
    00081         const std::vector<Line>& GetLines(void) const;
    00082
    00085         const std::vector<Circle>& GetCircles(void) const;
    00086
    00089         bool IsCirclesEnabled(void);
    00090
    00093         bool IsTriangulated(void);
    00094
    00095 private:
    00097         const int m_pointsCount;
    00098
    00100         const float m_minRange;
    00101
    00103         const float m_maxRange;
    00104
    00106         const int m_points2AddCount;
    00107
    00109         const int m_maxPoints2Add;
    00110
    00112         std::vector<Point> m_points;
    00113
    00115         std::vector<Line> m_lines;
    00116
    00118         std::vector<Circle> m_circles;
    00119
    00121         bool m_isTriangulated;
    00122
    00124         bool m_circlesEnabled;
    00125
    00127         DelaunayTestLogic(const DelaunayTestLogic&);
    00128
    00130         DelaunayTestLogic& operator=(const DelaunayTestLogic&);
    00131
    00135         void AddRandomPoints(int pointsCount);
    00136
    00139         void TriangulatePoints(void);
    00140
    00144         void CreateLines(const std::map<EdgeAlgebra::QuadEdge*, char>& edges);
    00145
    00150         void CreateCircles(const std::map<EdgeAlgebra::QuadEdge*, char>& edges);
    00151
    00156         void CreateCircle(EdgeAlgebra::QuadEdge* edge, EdgeAlgebra::QuadEdge* xnext);
    00157 };
    00158
    00159 }
    00160
    00161 #endif