00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef OXYGEN_SPACE_H
00023 #define OXYGEN_SPACE_H
00024
00025 #include "odeobject.h"
00026
00027 namespace oxygen
00028 {
00029 class Transform;
00030 class Body;
00031 class Collider;
00032
00038 class Space : public ODEObject
00039 {
00040
00041
00042
00043 public:
00044 Space();
00045 virtual ~Space();
00046
00048 dSpaceID GetODESpace() const;
00049
00051 dJointGroupID GetODEJointGroup() const;
00052
00059 void Collide();
00060
00065 virtual void HandleCollide(dGeomID obj1, dGeomID obj2);
00066
00067 protected:
00069 virtual bool ConstructInternal();
00070
00072 virtual void PostPhysicsUpdateInternal();
00073
00074
00075
00076
00077 private:
00079 dSpaceID mODESpace;
00080
00082 dJointGroupID mODEContactGroup;
00083 };
00084
00085 DECLARE_CLASS(Space);
00086
00087 }
00088
00089 #endif // OXYGEN_SPACE_H