00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 #ifndef MINIMAP_H_
00009 #define MINIMAP_H_
00010 
00011 #include <OgreFrameListener.h>
00012 #include <OgreRenderTargetListener.h>
00013 #include <OgreRectangle2D.h>
00014 #include <OgreTexture.h>
00015 #include <OgreRenderTexture.h>
00016 #include <OgreSceneNode.h>
00017 #include <OgreMaterialManager.h>
00018 
00019 namespace OgreGFX {
00020 
00021         class GraphicsInteractionManager;
00022 
00023         class Minimap : public Ogre::FrameListener, public Ogre::RenderTargetListener {
00024 
00025         public:
00026                 Minimap(GraphicsInteractionManager *gim);
00027                 virtual ~Minimap(void);
00028 
00029 
00030         protected:
00031                 virtual bool frameRenderingQueued(const Ogre::FrameEvent& e);
00032                 virtual void preRenderTargetUpdate(const Ogre::RenderTargetEvent& evt);
00033                 virtual void postRenderTargetUpdate(const Ogre::RenderTargetEvent& evt);
00034 
00035                 void init(void);
00036 
00037                 GraphicsInteractionManager *gfx;
00038             Ogre::Camera* minimapCamera;
00039 
00040 
00041             
00042                 
00043                 
00044 
00045                 Ogre::TexturePtr rttt;
00046                 Ogre::RenderTexture *renderTexture;
00047                 Ogre::MaterialPtr   renderMaterial;
00048                 Ogre::Rectangle2D  *minimap;
00049                 Ogre::SceneNode    *minimapSceneNode;
00050 
00051         private:
00052                 Ogre::Camera *createMinimapCamera(void);
00053                 Ogre::Real   updatePeriod;
00054                 const Ogre::Real DEFAULT_MINIMAP_UPDATE_PERIOD;
00055 
00056         };
00057 
00058 }
00059 
00060 #endif