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

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