00001 #ifndef HIBASE_H
00002 #define HIBASE_H
00003 #include <Base/Affine.h>
00004 #include <Base/BaseUtility.h>
00005 #include <Base/BaseTypeInfo.h>
00006
00007 #include <set>
00008
00009
00010 #define HIOBJECTDEF(cls) DEF_UTTYPEINFODEF(cls)
00011 #define HIOBJECTDEFABST(cls) DEF_UTTYPEINFOABSTDEF(cls)
00012 #define HIOBJECTIMPBASE(cls) DEF_UTTYPEINFO(cls)
00013 #define HIOBJECTIMPBASEABST(cls) DEF_UTTYPEINFOABST(cls)
00014 #define HIOBJECTIMP(cls, base) DEF_UTTYPEINFO1(cls, base)
00015 #define HIOBJECTIMPABST(cls, base) DEF_UTTYPEINFOABST1(cls, base)
00016
00017
00018 namespace Spr{;
00019 class DRRealDevice;
00020
00021
00022 class SPR_DLL HIBase: public UTRefCount, UTTypeInfoBase{
00023 protected:
00024 static std::set<DRRealDevice*> realDevices;
00025 static int deviceUpdateStep;
00026 int updateStep;
00027 bool bGood;
00028 public:
00029 HIOBJECTDEFABST(HIBase);
00030
00031 HIBase(){ updateStep = deviceUpdateStep; bGood=false;}
00032
00033 virtual ~HIBase(){}
00034
00035 bool IsGood(){ return bGood; }
00036
00037 virtual void Update(float dt);
00038
00039
00040 void AddRealDeviceDependency(DRRealDevice* rd);
00041
00042 static void ClearRealDeviceDependency();
00043 };
00044
00045
00046 }
00047
00048
00049 #endif
00050