00001 #ifndef _VisibilityQueryManager_H__ 00002 #define _VisibilityQueryManager_H__ 00003 00004 #include <vector> 00005 00006 #include "VisibilityInfo.h" 00007 #include "VisibilityVector3.h" 00008 #include "VisibilityCamera.h" 00009 #include "VisibilityRay.h" 00010 00011 namespace GtpVisibility { 00012 00021 class QueryManager 00022 { 00023 public: 00027 QueryManager( HierarchyInterface *hierarchyInterface ); 00028 00047 virtual void 00048 ComputeCameraVisibility(const Camera &camera, 00049 InfoContainer<NodeInfo> *visibleNodes, 00050 InfoContainer<MeshInfo> *visibleGeometry, 00051 bool relativeVisibility = false 00052 ) = 0; 00053 00058 virtual void 00059 ComputeFromPointVisibility(const Vector3 &point, 00060 InfoContainer<NodeInfo> *visibleNodes, 00061 InfoContainer<MeshInfo> *visibleGeometry, 00062 bool relativeVisibility = false 00063 ) = 0; 00064 00077 virtual bool 00078 ShootRay(const Ray &ray, 00079 std::vector<Mesh *> *visibleMeshes, 00080 bool isGlobalLine = false 00081 ); 00082 00086 void SetSceneTraverser(HierarchyInterface *hierarchyInterface ); 00087 00088 protected: 00089 HierarchyInterface *mHierarchyInterface; 00090 00091 }; 00092 00093 }; 00094 00095 #endif // VisibilityQueryManager