Changeset 1580 for GTP/trunk/Lib/Vis/Preprocessing/src/HierarchyManager.h
- Timestamp:
- 10/06/06 21:37:00 (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
GTP/trunk/Lib/Vis/Preprocessing/src/HierarchyManager.h
r1576 r1580 245 245 void RunConstruction(const bool repairQueue); 246 246 247 bool ApplySubdivisionCandidate(SubdivisionCandidate *sc); 247 /** Evaluates the subdivision candidate and executes the split. 248 */ 249 bool ApplySubdivisionCandidate(SubdivisionCandidate *sc, const bool repairQueue); 248 250 249 251 bool FinishedConstruction() const; … … 251 253 SubdivisionCandidate *NextSubdivisionCandidate(); 252 254 255 /** Repairs the dirty entries of the candidate queue. 256 */ 253 257 void RepairQueue(); 254 258 259 /** Collect the list of dirty candidates after the current subdivision candidate 260 split. 261 */ 255 262 void CollectDirtyCandidates(vector<SubdivisionCandidate *> &dirtyList); 256 263 257 void EvalSubdivisionStats(const SubdivisionCandidate &tData); 264 /** Evaluate subdivision stats for log. 265 */ 266 void EvalSubdivisionStats(const float renderCostDecr); 258 267 259 268 void AddSubdivisionStats( … … 328 337 329 338 enum {SEQUENTIAL, INTERLEAVED}; 330 339 /// type of hierarchy construction 340 int mConstructionType; 341 342 /// Type of object space partition 331 343 int mObjectSpaceSubdivisionType; 344 /// Type of view space partition 332 345 int mViewSpaceSubdivisionType; 333 346 334 /// the original osp type 347 //////////// 348 //-- helper variables 349 350 // the original osp type 335 351 int mSavedObjectSpaceSubdivisionType; 352 // the original vsp type 336 353 int mSavedViewSpaceSubdivisionType; 337 338 int mConstructionType; 339 354 /// the current subdivision candidate 355 SubdivisionCandidate *mCurrentCandidate; 356 357 /////////////////// 358 359 360 /////////////////// 361 // Hierarchies 362 363 /// view space hierarchy 340 364 VspTree *mVspTree; 365 /// object space partition kd tree 341 366 OspTree *mOspTree; 367 /// bounding volume hierarchy 342 368 BvHierarchy *mBvHierarchy; 343 369 344 AxisAlignedBox3 mBoundingBox; 345 370 ////////////////////// 371 372 373 /// the traversal queue 346 374 SplitQueue mTQueue; 347 348 SubdivisionCandidate *mCurrentCandidate; 349 350 //////// 375 376 377 ////////// 351 378 //-- global termination criteria 352 379 380 /// the mininal acceptable cost ratio for a split 353 381 float mTermMinGlobalCostRatio; 382 /// the threshold for global cost miss tolerance 354 383 int mTermGlobalCostMissTolerance; 355 384 /// maximum number of leaves 385 int mTermMaxLeaves; 386 356 387 //////////////////// 357 388 358 389 /// keeps track of cost during subdivision 359 390 float mTotalCost; 360 361 int mTotalPvsEntries; 391 /// statistics about the hierarchy 362 392 HierarchyStatistics mHierarchyStats; 363 393 364 394 int mMinDepthForObjectSpaceSubdivion; 365 395 int mMinDepthForViewSpaceSubdivion; 366 367 int mTermMaxLeaves; 396 368 397 ofstream mSubdivisionStats; 369 398 399 /// if the queue should be repaired after a subdivision steps 370 400 bool mRepairQueue; 371 401 372 402 bool mStartWithObjectSpace; 373 403 /** if multi level construction method should be used 404 where we iterate over both hierarchies until we 405 converge to the optimum. 406 */ 374 407 bool mUseMultiLevelConstruction; 408 /// number of iteration steps for multilevel approach 409 int mNumMultiLevels; 375 410 }; 376 411
Note: See TracChangeset
for help on using the changeset viewer.