source: trunk/VUT/Ogre/include/OgrePlatformQueryManager.h @ 174

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