00001 /************************************************************************ 00002 * BVH.h 00003 ************************************************************************ 00004 * Author : Duksu Kim (bluekds@tclab.kaist.ac.kr) 00005 * Affiliation : SGLAB(http://sglab.kaist.ac.kr), Dept. of Computer Science(http://cs.kaist.ac.kr) , KAIST(http://www.kaist.ac.kr) 00006 * Version : 0.5 00007 * Create : 2009/02/23 00008 * Last update : 2009/03/10 00009 ************************************************************************/ 00010 #pragma once 00011 00012 #include "BVH_Node.h" 00013 00014 class CCD_Object ; 00015 00016 class BVH 00017 { 00018 friend class CCD ; 00019 friend class BVH_Node ; 00020 00021 private: 00022 CCD_Object* _pObject ; 00023 int _numTris ; 00024 BVH_Node* _rootNode ; 00025 UINT* _triList ; 00026 00027 public: 00028 BVH(){} 00029 BVH( CCD_Object* object, UINT numTri ) ; 00030 ~BVH(void); 00031 00032 FORCEINLINE void refit( void ) { _rootNode->refit() ; } 00033 FORCEINLINE void rebuild( ){ 00034 _rootNode->rebuild( _pObject, _triList, _numTris ) ; 00035 } 00036 00037 FORCEINLINE void visualize( int level ) { 00038 _rootNode->visualize( level ) ; 00039 } 00040 } ;