examples/eqPly/channel.h
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef EQ_PLY_CHANNEL_H
00019 #define EQ_PLY_CHANNEL_H
00020
00021 #include "eqPly.h"
00022
00023
00024 #include "typedefs.h"
00025
00026 #include <eq/eq.h>
00027
00028
00029 namespace eqPly
00030 {
00031 class FrameData;
00032 class InitData;
00033
00037 class Channel : public eq::Channel
00038 {
00039 public:
00040 Channel( eq::Window* parent ) : eq::Channel( parent ) {}
00041
00042 protected:
00043 virtual ~Channel() {}
00044
00045 virtual bool configInit( const uint32_t initID );
00046 virtual void frameClear( const uint32_t frameID );
00047 virtual void frameDraw( const uint32_t frameID );
00048 virtual void frameReadback( const uint32_t frameID );
00049 virtual void frameViewFinish( const uint32_t frameID );
00050
00052 virtual void applyFrustum() const;
00053
00054 private:
00055 void _drawModel( const Model* model );
00056 void _drawOverlay();
00057 void _drawHelp();
00058 void _updateNearFar( const mesh::BoundingSphere& boundingSphere );
00059 void _initFrustum( eq::FrustumCullerf& frustum,
00060 const mesh::BoundingSphere& boundingSphere );
00061
00062 const FrameData& _getFrameData() const;
00063 const Model* _getModel();
00064 };
00065 }
00066
00067
00068
00069 #endif // EQ_PLY_CHANNEL_H
00070