00001 00002 00003 00004 00005 00006 00007 00008 00009 00010 00011 00012 00013 00014 00015 00016 00017 00018 00019 00020 00025 #ifndef _DELAUNAY_TEST_RUNNER_H_ 00026 #define _DELAUNAY_TEST_RUNNER_H_ 00027 00028 #include "IRunner.h" 00029 #include "IMenuListener.h" 00030 #include "MenuEntry.h" 00031 00032 #include "DelaunayTest2dRender.h" 00033 #include "DelaunayTestLogic.h" 00034 00035 namespace DelaunayTest 00036 { 00037 00038 enum Actions 00039 { 00040 Triangulate, 00041 Reset, 00042 EnableTriangleCircles, 00043 AddSites, 00044 RemoveSites 00045 }; 00046 00052 class DelaunayTestRunner : 00053 public GlutWrapper::IRunner, public GlutWrapper::IMenuListener 00054 { 00055 public: 00057 DelaunayTestRunner(void); 00058 00060 ~DelaunayTestRunner(void); 00061 00067 void InitializeOpengl(int width, int height); 00068 00072 void Run(void); 00073 00079 void Reshape(int width, int height); 00080 00086 void ProcessMenuEvents(int option); 00087 00092 const std::vector<GlutWrapper::MenuEntry>& GetMenuEntries(void) const; 00093 00094 private: 00096 std::vector<GlutWrapper::MenuEntry> m_entries; 00097 00099 DelaunayTest2dRender m_render; 00100 00102 DelaunayTestLogic m_logic; 00103 00105 DelaunayTestRunner(const DelaunayTestRunner&); 00106 00108 DelaunayTestRunner& operator=(const DelaunayTestRunner&); 00109 00111 void Render(void); 00112 }; 00113 00114 } 00115 #endif