00001 /*========================================================================= 00002 UberSim Source Code Release 00003 ------------------------------------------------------------------------- 00004 Copyright (C) 2002 Manuela Veloso, Brett Browning, Mike Bowling, 00005 James Bruce; {mmv, brettb, mhb, jbruce}@cs.cmu.edu 00006 Erick Tryzelaar {erickt}@andrew.cmu.edu 00007 School of Computer Science, Carnegie Mellon University 00008 ------------------------------------------------------------------------- 00009 This software is distributed under the GNU General Public License, 00010 version 2. If you do not have a copy of this licence, visit 00011 www.gnu.org, or write: Free Software Foundation, 59 Temple Place, 00012 Suite 330 Boston, MA 02111-1307 USA. This program is distributed 00013 in the hope that it will be useful, but WITHOUT ANY WARRANTY, 00014 including MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 00015 -------------------------------------------------------------------------*/ 00016 00017 #ifndef __ENTITY_H__ 00018 #define __ENTITY_H__ 00019 00026 class RigidBody; 00027 class Event; 00028 class MotionController; 00029 class Spatial; 00030 class Timer; 00031 00032 class Entity 00033 { 00034 friend class Timer; 00035 00036 public: 00037 virtual ~Entity (); 00038 00039 public: 00040 MotionController* getMotionController (); 00041 Spatial* getModel (); 00042 00043 public: 00044 virtual void think (); 00045 virtual void touch (Entity* entity); 00046 00047 virtual void handleEvent (Event* event); 00048 virtual void print()=0; 00049 00050 00051 protected: 00052 Entity (); 00053 00054 protected: 00055 MotionController* motionController; 00056 Spatial* model; 00057 bool hasHandledEvent; 00058 }; 00059 00060 #endif