#ifndef __KdTreeApp_H__ #define __KdTreeApp_H__ #include #include #include #include "TestKdTreeAppListener.h" class KdTreeAppRenderTargetListener : public RenderTargetListener { public: KdTreeAppRenderTargetListener(SceneManager *sceneMgr); protected: void preViewportUpdate (const RenderTargetViewportEvent &evt); void postRenderTargetUpdate (const RenderTargetEvent &evt); SceneManager *mSceneMgr; ShadowTechnique mSavedShadowTechnique; ColourValue mSavedAmbientLight; }; class KdTreeApp : public ExampleApplication { public: KdTreeApp() { mFrameListener = 0; } ~KdTreeApp() { delete mRenderTargerListener; delete mFrameListener; } protected: SceneNode *mCamNode; SceneNode *mDeathNode; Camera *mTopCam; Camera *mFollowCam; KdTreeAppListener *mFrameListener; KdTreeAppRenderTargetListener *mRenderTargerListener; String mSceneFiles; String mSelectedSceneManager; Real mMoveSpeed; Real mRotateSpeed; Real mRotationRadius; Real mRotationPeriod; int mModelSpacing; int mModelCount; int mRandomCount; Real mPlaneDim; bool mShadowsEnabled; int mSelectEntities; virtual void setupResources(void); virtual void createScene(void); virtual void createFrameListener(void); virtual void chooseSceneManager(void); virtual void createCamera(void); virtual void createViewports(void); /** Configures the application - returns false if the user chooses to abandon configuration. */ virtual bool configure(void); bool loadScene(const String& filename); bool loadSceneIV(const String &filename, SceneNode *root, const int index); private: void createMaterials(void); std::string cat(std::string name, int x, int z) { std::stringstream s; s.fill('0'); s << name; s.width(2); s << x; s.width(2); s << z; return s.str(); } }; #endif