examples/eqNBody/config.h
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef EQNBODY_CONFIG_H
00019 #define EQNBODY_CONFIG_H
00020
00021 #include <eq/eq.h>
00022
00023 #include "localInitData.h"
00024 #include "frameData.h"
00025 #include "configEvent.h"
00026
00027 namespace eqNbody
00028 {
00029 class Config : public eq::Config
00030 {
00031 public:
00032 Config( eq::base::RefPtr< eq::Server > parent );
00033
00034 const FrameData& getFrameData() const { return _frameData; }
00035
00036 virtual bool init();
00037 virtual bool exit();
00038
00039 virtual uint32_t startFrame();
00040
00041 void setInitData( const LocalInitData& data ) { _initData = data; }
00042 const InitData& getInitData() const { return _initData; }
00043
00044 void mapData( const uint32_t initDataID );
00045 void unmapData();
00046
00047 virtual bool handleEvent( const eq::ConfigEvent* event );
00048 bool needsRedraw();
00049
00050 protected:
00051 virtual ~Config() {}
00052
00053 LocalInitData _initData;
00054 FrameData _frameData;
00055 bool _redraw;
00056
00057 private:
00058 bool _readyToCommit();
00059 bool _handleKeyEvent( const eq::KeyEvent& event );
00060
00061 void _updateSimulation();
00062 void _registerData(const ConfigEvent* event);
00063 void _updateData(const ConfigEvent* event);
00064 void _deregisterData();
00065 };
00066 }
00067
00068 #endif // EQ_PLY_CONFIG_H