00001 00009 #ifndef ANIMMGR_H 00010 #define ANIMMGR_H 00011 00012 // Gluebase includes 00013 #define OUTSIDE_GLUE_CORE 00014 #include <std/hash.H> 00015 #include <std/strings.H> 00016 #include <mlib/points.H> 00017 00018 #include "AnimObj.H" 00019 00020 class ANIMMGR 00021 { 00022 public: 00023 00024 // register an object to get its animate method called each frame 00025 static void registerObj(AnimObj* o); 00026 // remove an object from the animate list for subsequent frames 00027 static void removeObj(AnimObj *o); 00028 00029 static int numObjects() { 00030 return _objects.num(); 00031 } 00032 00033 static AnimObj* getObject(int num) { 00034 if (num < _objects.num()) 00035 return _objects[num]; 00036 else 00037 return NULL; 00038 } 00039 00040 static void animateObjs(); 00041 00042 static void update(double time); 00043 00044 protected: 00045 00046 static ARRAY<AnimObj*> _objects; 00047 static ARRAY<AnimObj*> _removeQueue; 00048 static double _lastFrameTime; 00049 static double the_time; 00050 static double start_time; 00051 }; 00052 00053 #endif