source: GTP/trunk/Lib/Vis/OnlineCullingCHC/OGRE/include/OgrePlatformQueryManager.h @ 2505

Revision 2505, 1.9 KB checked in by mattausch, 17 years ago (diff)
Line 
1#ifndef _PlatformQueryManager_H__
2#define _PlatformQueryManager_H__
3
4#include "VisibilityInfo.h"
5#include "QueryManager.h"
6#include "OgrePlatformHierarchyInterface.h"
7#include "VisibilityMesh.h"
8
9
10namespace Ogre {
11 
12/** Class which implements the QueryManager for Ogre scene queries.
13*/
14class __declspec(dllexport) PlatformQueryManager: public GtpVisibility::QueryManager
15{
16public:
17    /** Constructor taking a hierarchy interface as an argument. This allows to operate
18            on different hierarchy types, while reusing the implementation of the query methods.
19    */
20        PlatformQueryManager(PlatformHierarchyInterface *hierarchyInterface,
21                                 Viewport *vp,
22                                                 int queryModes)
23        : QueryManager(queryModes),
24          mViewport(vp),
25          mWasInitialised(false),
26          mHierarchyInterface(hierarchyInterface)
27        {}
28   
29    /** Uses the specified point to execute the visibility query in all directions.
30                @sa ComputeCameraVisibility()
31    */
32    virtual void ComputeFromPointVisibility(const Vector3 &point,
33                                                                                        NodeInfoContainer *visibleNodes,
34                                                                                        MeshInfoContainer *visibleGeometry,
35                                                                                        PatchInfoContainer *visiblePatches,
36                                                                                        const bool relativeVisibility,
37                                                                                        const bool approximateVisibility);
38 
39        virtual void ComputeCameraVisibility(const Camera &camera,
40                                                                                 NodeInfoContainer *visibleNodes,
41                                                                                 MeshInfoContainer *visibleGeometry,
42                                                                                 PatchInfoContainer *visiblePatches,
43                                                                                 const bool relativeVisibility,
44                                                                                 const bool approximateVisibility);
45 
46        //virtual bool ShootRay(const Ray &ray, std::vector<Mesh *> *visibleMeshes, bool isGlobalLine = false); 
47
48        /** Sets a viewport for rendering.
49        */
50        void SetViewport(Viewport *vp);
51
52protected:
53
54        Viewport *mViewport;
55        bool mWasInitialised;
56
57        PlatformHierarchyInterface *mHierarchyInterface;
58};
59
60} // namespace Ogre
61
62#endif // PlatformQueryManager
Note: See TracBrowser for help on using the repository browser.