#ifndef _OcclusionQueriesQueryManager_H__ #define _OcclusionQueriesQueryManager_H__ #include "OgrePlatformQueryManager.h" namespace Ogre { /** Class which implements the QueryManager for Ogre scene queries using occlusion queries. */ class __declspec(dllexport) OcclusionQueriesQueryManager: public PlatformQueryManager { public: /** Constructor taking a hierarchy interface as an argument. This allows to operate on different hierarchy types, while reusing the implementation of the query methods. */ OcclusionQueriesQueryManager(PlatformHierarchyInterface *hierarchyInterface, Viewport *vp); void ComputeCameraVisibility(const Camera &camera, InfoContainer *visibleNodes, InfoContainer *visibleGeometry, InfoContainer *visiblePatches, bool relativeVisibility = false); /** Uses the specified point to execute the visibility query in all directions. @sa ComputeCameraVisibility() */ void ComputeFromPointVisibility(const Vector3 &point, InfoContainer *visibleNodes, InfoContainer *visibleGeometry, InfoContainer *visiblePatches, bool relativeVisibility = false); bool ShootRay(const Ray &ray, std::vector *visibleMeshes, bool isGlobalLine = false); }; } // namespace Ogre #endif // OcclusionQueriesQueryManager