Changeset 1564 for GTP/trunk/Lib/Vis/Preprocessing/src/Preprocessor.h
- Timestamp:
- 10/03/06 22:34:29 (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
GTP/trunk/Lib/Vis/Preprocessing/src/Preprocessor.h
r1563 r1564 47 47 friend class IntelRayCaster; 48 48 friend class InternalRayCaster; 49 49 50 50 public: 51 51 /** Default constructor initialising e.g., KD tree and BSP tree. … … 55 55 virtual ~Preprocessor(); 56 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 57 /** Load the input scene. 58 @param filename file to load 59 @return true on success 60 */ 61 virtual bool LoadScene(const string filename); 62 63 /** Export all preprocessed data in a XML format understandable by the 64 PreprocessingInterface of the GtpVisibilityPreprocessor Module. 65 The file can be compressed depending on the environement settings. 66 @return true on successful export 67 */ 68 virtual bool ExportPreprocessedData(const string filename); 69 70 /** Build the KdTree of currently loaded occluders/occludees/viewcells. The construction 71 is driven by the environment settings, which also sais which of the three types of 72 entities should be used to drive the heuristical construction (only occluders by default) 73 */ 74 virtual bool BuildKdTree(); 75 76 /** Compute visibility method. This method has to be reimplemented by the actual 77 Preprocessor implementation (e.g. SamplingPreprocessor, ExactPreprocessor, 78 GlobalSamplingpreprocessor) 79 */ 80 virtual bool ComputeVisibility() = 0; 81 82 /** Post Process the computed visibility. By default applys the visibility filter 83 (if specified in the environment and export the preprocessed data */ 84 virtual bool PostProcessVisibility(); 85 86 /** View cells are either loaded or prepared for generation, according to the chosen environment 87 object. Important evironment options are, e.g, the view cell type. 88 Should be done after scene loading (i.e., some options are based on scene type). 89 */ 90 bool PrepareViewCells(); 91 92 /** Construct viewcells from the scratch 93 */ 94 bool ConstructViewCells(); 95 96 /** Returns the specified sample strategy, NULL if no valid strategy. 97 */ 98 SamplingStrategy *GenerateSamplingStrategy(const int strategyId) const; 99 100 /** Export preprocessor data. 101 */ 102 bool Export( 103 103 const string filename, 104 104 const bool scene, 105 105 const bool kdtree); 106 107 virtual void KdTreeStatistics(ostream &s); 108 virtual void BspTreeStatistics(ostream &s); 109 110 /** Loads samples from file. 111 @param samples returns the stored sample rays 112 @param objects needed to associate the objects ids 113 @returns true if samples were loaded successfully 114 */ 115 bool LoadSamples(VssRayContainer &samples, 116 ObjectContainer &objects) const; 117 118 /** Exports samples to file. 119 @returns true if samples were written successfully 120 */ 121 bool ExportSamples(const VssRayContainer &samples) const; 122 123 bool LoadKdTree(const string filename); 124 bool ExportKdTree(const string filename); 125 126 virtual bool 127 GenerateRays( 128 const int number, 129 const int raysType, 130 SimpleRayContainer &rays 131 ); 132 133 bool GenerateRayBundle( 134 SimpleRayContainer &rayBundle, 135 const SimpleRay &mainRay, 136 const int number, 137 const int shuffleType) const; 138 139 virtual void CastRays(SimpleRayContainer &rays, 140 VssRayContainer &vssRays, 141 const bool castDoubleRays, 142 const bool pruneInvalidRays = true); 143 144 /** Returns a view cells manager of the given name. 145 */ 146 ViewCellsManager *CreateViewCellsManager(const char *name); 147 /** Returns a hierarchy manager of the given name. 148 */ 149 HierarchyManager *CreateHierarchyManager(const char *name); 150 151 GlRendererBuffer *GetRenderer(); 152 153 bool InitRayCast(const string externKdTree, const string internKdTree); 154 155 156 //////////////////////////////////////////////// 157 158 /// scene graph loaded from file 159 SceneGraph *mSceneGraph; 160 161 /// raw array of objects 162 ObjectContainer mObjects; 163 164 /// kD-tree organizing the scene graph (occluders + occludees) + viewcells 165 KdTree *mKdTree; 166 /// View space partition bsp tree 167 VspBspTree *mVspBspTree; 168 /// Hierarchy manager handling view space and object space partition 169 HierarchyManager *mHierarchyManager; 170 /// BSP tree representing the viewcells 171 BspTree *mBspTree; 172 173 /// list of all loaded occluders 174 ObjectContainer mOccluders; 175 /// list of all loaded occludees 176 ObjectContainer mOccludees; 177 178 179 ViewCellsManager *mViewCellsManager; 180 181 /// greedy optimized hierarchy for both objects and view cells 182 VspOspTree *mVspOspTree; 183 184 bool mUseGlRenderer; 185 bool mUseGlDebugger; 186 187 bool mLoadViewCells; 188 189 bool mDetectEmptyViewSpace; 190 191 bool mQuitOnFinish; 192 bool mLoadMeshes; 193 bool mComputeVisibility; 194 195 bool mExportVisibility; 196 string mVisibilityFileName; 197 198 bool mApplyVisibilityFilter; 199 bool mApplyVisibilitySpatialFilter; 200 201 float mVisibilityFilterWidth; 202 203 //int GetRayCastMethod() { return mRayCastMethod; } 204 //void SetRayCastMethod(int rayCastMethod) { mRayCastMethod = rayCastMethod; } 205 206 int mPass; 106 107 virtual void KdTreeStatistics(ostream &s); 108 virtual void BspTreeStatistics(ostream &s); 109 110 /** Loads samples from file. 111 @param samples returns the stored sample rays 112 @param objects needed to associate the objects ids 113 @returns true if samples were loaded successfully 114 */ 115 bool LoadSamples(VssRayContainer &samples, 116 ObjectContainer &objects) const; 117 118 /** Exports samples to file. 119 @returns true if samples were written successfully 120 */ 121 bool ExportSamples(const VssRayContainer &samples) const; 122 123 bool LoadKdTree(const string filename); 124 bool ExportKdTree(const string filename); 125 126 virtual bool 127 GenerateRays( 128 const int number, 129 const int raysType, 130 SimpleRayContainer &rays 131 ); 132 133 bool GenerateRayBundle( 134 SimpleRayContainer &rayBundle, 135 const SimpleRay &mainRay, 136 const int number, 137 const int shuffleType) const; 138 139 virtual void CastRays(SimpleRayContainer &rays, 140 VssRayContainer &vssRays, 141 const bool castDoubleRays, 142 const bool pruneInvalidRays = true); 143 144 /** Returns a view cells manager of the given name. 145 */ 146 ViewCellsManager *CreateViewCellsManager(const char *name); 147 /** Returns a hierarchy manager of the given name. 148 */ 149 HierarchyManager *CreateHierarchyManager(const char *name); 150 151 GlRendererBuffer *GetRenderer(); 152 153 bool InitRayCast(const string externKdTree, const string internKdTree); 154 155 156 //////////////////////////////////////////////// 157 158 /// scene graph loaded from file 159 SceneGraph *mSceneGraph; 160 161 /// raw array of objects 162 ObjectContainer mObjects; 163 164 /// kD-tree organizing the scene graph (occluders + occludees) + viewcells 165 KdTree *mKdTree; 166 /// View space partition bsp tree 167 VspBspTree *mVspBspTree; 168 /// Hierarchy manager handling view space and object space partition 169 HierarchyManager *mHierarchyManager; 170 /// BSP tree representing the viewcells 171 BspTree *mBspTree; 172 173 /// list of all loaded occluders 174 ObjectContainer mOccluders; 175 /// list of all loaded occludees 176 ObjectContainer mOccludees; 177 178 179 ViewCellsManager *mViewCellsManager; 180 181 /// greedy optimized hierarchy for both objects and view cells 182 VspOspTree *mVspOspTree; 183 184 bool mUseGlRenderer; 185 bool mUseGlDebugger; 186 187 bool mLoadViewCells; 188 189 bool mDetectEmptyViewSpace; 190 191 bool mQuitOnFinish; 192 bool mLoadMeshes; 193 bool mComputeVisibility; 194 195 bool mExportVisibility; 196 string mVisibilityFileName; 197 198 bool mApplyVisibilityFilter; 199 bool mApplyVisibilitySpatialFilter; 200 201 float mVisibilityFilterWidth; 202 203 int mPass; 207 204 208 205 protected: … … 215 212 ///////////////////////// 216 213 217 218 219 220 221 222 223 224 225 226 227 228 229 230 214 RayCaster *mRayCaster; 215 /// samples used for construction of the BSP view cells tree. 216 int mBspConstructionSamples; 217 /// samples used for construction of the VSP OSP tree. 218 int mVspOspConstructionSamples; 219 /** Simulates rendering of the scene. 220 */ 221 RenderSimulator *mRenderSimulator; 222 223 vector<FaceParentInfo> mFaceParents; 224 225 GlRendererBuffer *renderer; 226 227 231 228 }; 232 229
Note: See TracChangeset
for help on using the changeset viewer.