00001 /************************************************************************ 00002 * CCD.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/18 00008 * Last update : 2009/03/10 00009 ************************************************************************/ 00010 00011 #pragma once 00012 00013 #include "typeDef.h" 00014 #include "CCD_Object.h" 00015 #include "CCD_Output.h" 00016 00017 using namespace std; 00019 00026 class CCD { 00027 00028 private : 00029 vector<CCD_Object*> _objs ; 00030 CCD_Output* _output ; 00031 UINT _numObjs ; 00032 UINT* _objList ; 00033 BVH_Node* _bvh ; 00034 00035 BVH_Node* rebuilObjBVH( UINT* objList, UINT numObj ) ; 00036 00037 UINT _curFrame ; 00038 UINT _endFrame ; 00039 00040 public: 00045 void setOutput ( CCD_Output* output ) { 00046 _output = output ; 00047 } 00048 00054 int addObject ( CCD_Object* obj ) ; 00055 00061 int delObject ( int objID ) ; 00062 00069 void readyCCD ( UINT startFrame, UINT endFrame, UINT interpolation ) ; 00070 00074 void performCCD ( ) ; 00075 00079 void nextFrame( void ) ; 00080 00081 /************************************************************************/ 00082 /* Utilities */ 00083 /************************************************************************/ 00084 00089 void visualizeBVH( int level ) ; 00090 00094 void visualizeObjects( void ) ; 00095 } ;