00001 #ifndef _VisibilityPreprocessingManager_H__ 00002 #define _VisibilityPreprocessingManager_H__ 00003 00004 #include <string> 00005 using namespace std; 00006 00007 #include "HierarchyInterface.h" 00008 #include "VisibilityInfo.h" 00009 #include "VisibilityVector3.h" 00010 00011 namespace GtpVisibility { 00012 00026 class PreprocessingManager 00027 { 00028 public: 00029 00035 PreprocessingManager( HierarchyInterface *hierarchyInterface ); 00036 00037 00041 virtual ~PreprocessingManager(); 00042 00052 virtual bool ExportScene(const string filename 00053 ) = 0; 00054 00066 virtual bool LoadPreprocessedData(const string filename 00067 ) = 0; 00068 00087 virtual bool GetPVS(const Vector3 &point, 00088 const float radius, 00089 InfoContainer<NodeInfo> *visibleNodes, 00090 InfoContainer<MeshInfo> *visibleMeshes ); 00091 00092 00093 00097 virtual void SetSceneTraverser( HierarchyInterface *hierarchyInterface ) { 00098 mSceneTraverser = hierarchyInterface; 00099 } 00100 00101 protected: 00105 long GetOccluderChecksum() const { 00106 return 0; 00107 } 00108 00109 00113 long GetOccludeeChecksum() const { 00114 return 0; 00115 } 00116 00117 00122 virtual bool LocateViewCellIds(const Vector3 ¢er, 00123 const float radius, 00124 vector<int> *viewCellIds 00125 ) = 0; 00126 00131 virtual int AddViewCellPVS(const int cellID, 00132 InfoContainer<NodeInfo> *visibleNodes, 00133 InfoContainer<MeshInfo> *visibleMeshes ) = 0; 00134 00135 HierarchyInterface *mSceneTraverser; 00136 }; 00137 00138 }; 00139 00140 #endif // VisibilityPreprocessingInterafce