00001 /* Copyright (c) 2005 Arachi, Inc. and Stanford University. 00002 * 00003 * Permission is hereby granted, free of charge, to any person obtaining 00004 * a copy of this software and associated documentation files (the 00005 * "Software"), to deal in the Software without restriction, including 00006 * without limitation the rights to use, copy, modify, merge, publish, 00007 * distribute, sublicense, and/or sell copies of the Software, and to 00008 * permit persons to whom the Software is furnished to do so, subject 00009 * to the following conditions: 00010 * 00011 * The above copyright notice and this permission notice shall be included 00012 * in all copies or substantial portions of the Software. 00013 * 00014 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 00015 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 00016 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 00017 * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY 00018 * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 00019 * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 00020 * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 00021 */ 00022 00023 #ifndef _taoWorld_h 00024 #define _taoWorld_h 00025 00026 #include "taoTypes.h" 00027 00028 class taoGroup; 00029 00038 class taoWorld 00039 { 00040 public: 00041 taoWorld() : _groupList(NULL) {} 00042 ~taoWorld(); 00043 00044 taoGroup* getGroupList() { return _groupList; } 00045 00046 taoGroup* removeGroup(const deInt id); 00047 00048 void addGroup(taoGroup* g, const deInt id); 00049 00050 taoGroup* findGroup(const deInt id); 00051 00064 void update(const deFloat time, const deFloat dt, const deInt n); 00065 00066 void control(const deFloat time); 00067 void simulate(const deFloat dt); 00068 void updateTransformation(); 00069 00070 private: 00071 taoGroup* _groupList; 00072 }; 00073 00074 #endif // _taoWorld_h