source: trunk/VUT/Ogre/include/OgreItemBufferQueryManager.h @ 153

Revision 153, 1.5 KB checked in by mattausch, 19 years ago (diff)

added item buffer queries

Line 
1#ifndef _ItemBufferQueryManager_H__
2#define _ItemBufferQueryManager_H__
3
4#include "OgrePlatformQueryManager.h"
5
6namespace Ogre {
7 
8/**
9        Class which implements the QueryManager for Ogre scene queries.
10*/
11class __declspec(dllexport) ItemBufferQueryManager: public PlatformQueryManager
12{
13public:
14    /** Constructor taking a hierarchy interface as an argument. This allows to operate
15        onm different hierarchy types, while reusing the implementation of the query methods.
16    */
17        ItemBufferQueryManager(PlatformHierarchyInterface *hierarchyInterface, Viewport *vp);
18   
19    void ComputeCameraVisibility(const Camera &camera,
20                            InfoContainer<GtpVisibility::NodeInfo> *visibleNodes,
21                            InfoContainer<GtpVisibility::MeshInfo> *visibleGeometry,
22                            bool relativeVisibility = false);
23   
24    /**
25        Uses the specified point to execute the visibility query in all directions.
26        @sa ComputeCameraVisibility()
27    */
28    void ComputeFromPointVisibility(const Vector3 &point,
29                               InfoContainer<GtpVisibility::NodeInfo> *visibleNodes,
30                               InfoContainer<GtpVisibility::MeshInfo> *visibleGeometry,
31                               bool relativeVisibility = false);
32   
33        bool ShootRay(const Ray &ray, std::vector<Mesh *> *visibleMeshes, bool isGlobalLine = false); 
34       
35protected:
36        void InitItemBuffer( InfoContainer<GtpVisibility::NodeInfo> *visibleNodes,
37                            InfoContainer<GtpVisibility::MeshInfo> *visibleGeometry);
38        bool mWasInitialised;
39};
40
41} // namespace Ogre
42
43#endif // ItemBufferQueryManager
Note: See TracBrowser for help on using the repository browser.