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