00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00025 #ifndef _RUNNER_H_
00026 #define _RUNNER_H_
00027
00028 #include "IRunner.h"
00029 #include "IMenuListener.h"
00030 #include "IMouseListener.h"
00031 #include "MenuEntry.h"
00032
00033 #include "Render.h"
00034 #include "Logic.h"
00035
00036 namespace GpuQuadraticCurveRender
00037 {
00038
00039 enum Actions
00040 {
00041 ShowPoints,
00042 ShowLines,
00043 ShowTriangles
00044 };
00045
00051 class Runner :
00052 public GlutWrapper::IRunner, public GlutWrapper::IMenuListener, public GlutWrapper::IMouseListener
00053 {
00054 public:
00056 Runner(void);
00057
00059 ~Runner(void);
00060
00066 void InitializeOpengl(int width, int height);
00067
00072 void Run(void);
00073
00079 void Reshape(int width, int height);
00080
00086 void ProcessMenuEvents(int option);
00087
00090 void ProcessMouse(const GlutWrapper::MouseState& mouseState);
00091
00096 const std::vector<GlutWrapper::MenuEntry>& GetMenuEntries(void) const;
00097
00098 private:
00100 std::vector<GlutWrapper::MenuEntry> m_entries;
00101
00103 Render m_render;
00104
00106 Logic m_logic;
00107
00109 int m_selectedPointIndex;
00110
00112 Runner(const Runner&);
00113
00115 Runner& operator=(const Runner&);
00116
00118 void Render(void);
00119 };
00120
00121 }
00122 #endif