[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] | 10 | namespace Ogre {
|
---|
| 11 |
|
---|
[2280] | 12 | /** Class which implements the QueryManager for Ogre scene queries.
|
---|
[133] | 13 | */
|
---|
| 14 | class __declspec(dllexport) PlatformQueryManager: public GtpVisibility::QueryManager
|
---|
| 15 | {
|
---|
| 16 | public:
|
---|
| 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] | 52 | protected:
|
---|
[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
|
---|