source: GTP/trunk/App/Demos/Vis/KdTreeDemo/OGRE/include/TestKdTree.h @ 1296

Revision 1296, 2.7 KB checked in by szydlowski, 18 years ago (diff)

Implemented PVS support in kdtree scene manager - not complete, defunct
modified BoundingBoxConverter? to work with KdTreeSceneManager?

Line 
1#ifndef __KdTreeApp_H__
2#define __KdTreeApp_H__
3
4#include <OgreRenderTargetListener.h>
5#include <ExampleApplication.h>
6#include <ivreader.h>
7#include "TestKdTreeAppListener.h"
8
9
10class KdTreeAppRenderTargetListener : public RenderTargetListener
11{
12public:
13        KdTreeAppRenderTargetListener(SceneManager *sceneMgr);
14
15protected:
16        void preViewportUpdate (const RenderTargetViewportEvent &evt);
17        void postRenderTargetUpdate (const RenderTargetEvent &evt);
18
19        SceneManager *mSceneMgr;
20
21        ShadowTechnique mSavedShadowTechnique;
22        ColourValue mSavedAmbientLight;
23};
24
25class KdTreeApp : public ExampleApplication
26{
27public:
28
29        KdTreeApp() :
30        mFrameListener(0),
31        mRenderTargerListener(0)
32        {
33        }
34
35        KdTreeApp(const KdTreeAppListener::Options& options) :
36        mFrameListener(0),
37        mRenderTargerListener(0),
38        mOptions(options)
39        {
40        }
41
42        ~KdTreeApp()
43        {
44                delete mRenderTargerListener;
45                delete mFrameListener;
46        }
47
48        // save entities to ascii file
49        bool saveSceneASCII(const String& filename, SceneNode *entityroot);
50        void createTerrainScene(Real max_x, Real max_y, Real max_z);
51        Vector3 clampToGround(const Vector3& vect, Real offset, Real cap);
52protected:
53        KdTreeAppListener *mFrameListener;
54        KdTreeAppRenderTargetListener *mRenderTargerListener;
55        SceneNode *mCamNode;
56        SceneNode *mMoveNode;
57        Camera *mTopCam;
58        //Camera *mFollowCam;
59
60        // scene options
61        String  mSceneFiles;
62        String  mViewCells;
63        Real    mRotationRadius;
64        int             mModelSpacing;
65        int             mModelCount;
66        int             mRandomCount;
67        Real    mPlaneDim;
68        bool    mShadowsEnabled;
69        int             mSelectEntities;
70
71        KdTreeAppListener::Options mOptions;
72
73        virtual void setupResources(void);
74
75        virtual void createScene(void);
76
77        virtual void createFrameListener(void);
78       
79        virtual void chooseSceneManager(void);
80
81    virtual void createCamera(void);
82
83        virtual void createViewports(void);
84
85    /** Configures the application - returns false if the user chooses to abandon configuration. */
86    virtual bool configure(void);
87
88        /** load scene from file **/
89        bool loadScene(const String& filename);
90        bool loadSceneIV(const String &filename, SceneNode *root, const int index);
91        // loadding world geometry from cfg file - for terrain
92        bool loadSceneCfg(const String &filename, SceneNode *root, const int index);
93        // load entities from ascii file
94        bool loadSceneASCII(const String &filename, SceneNode *root, const int index);
95
96        typedef std::list<SceneNode *> NodeList;
97        void addNodesToList(SceneNode* node, NodeList& list);
98
99        void createMaterials(void);
100        void createSimpleScene(void);
101
102        RaySceneQuery* mRaySceneQuery;
103private:
104        std::string cat(std::string name, int x, int z)
105        {
106                std::stringstream s;
107                s.fill('0');
108                s << name;
109                s.width(2);
110                s << x;
111                s.width(2);
112                s << z;
113                return s.str();
114        }
115};
116
117#endif
Note: See TracBrowser for help on using the repository browser.