summaryrefslogtreecommitdiff
path: root/Source/modules/asura-box2d/Physics2D/Body.h
diff options
context:
space:
mode:
Diffstat (limited to 'Source/modules/asura-box2d/Physics2D/Body.h')
-rw-r--r--Source/modules/asura-box2d/Physics2D/Body.h64
1 files changed, 64 insertions, 0 deletions
diff --git a/Source/modules/asura-box2d/Physics2D/Body.h b/Source/modules/asura-box2d/Physics2D/Body.h
new file mode 100644
index 0000000..d7e79d5
--- /dev/null
+++ b/Source/modules/asura-box2d/Physics2D/Body.h
@@ -0,0 +1,64 @@
+#ifndef __ASURA_BOX2D_BODY_H__
+#define __ASURA_BOX2D_BODY_H__
+
+#include <Box2D/Box2D.h>
+
+#include <asura-base/Classes.h>
+#include <asura-base/Scripting/Scripting.h>
+
+namespace_begin(AsuraEngine)
+namespace_begin(Physics)
+
+class World;
+class Joint;
+
+enum BodyType
+{
+ BODY_TYPE_INVALID,
+ BODY_TYPE_STATIC,
+ BODY_TYPE_DYNAMIC,
+ BODY_TYPE_KINEMATIC
+};
+
+class Body : public AEScripting::Portable<Body>
+{
+public:
+
+private:
+
+ friend class Joint;
+
+ //----------------------------------------------------------------------------//
+
+ LUAX_DECL_FACTORY(Body);
+
+ LUAX_DECL_ENUM(BodyType, 1);
+
+ LUAX_DECL_METHOD(_GetType);
+ LUAX_DECL_METHOD(_GetX);
+ LUAX_DECL_METHOD(_GetY);
+ LUAX_DECL_METHOD(_GetAngle);
+ LUAX_DECL_METHOD(_GetPosition);
+ LUAX_DECL_METHOD(_GetLinearVelocity);
+ LUAX_DECL_METHOD(_GetWorldCenter);
+ LUAX_DECL_METHOD(_GetLocalCenter);
+ LUAX_DECL_METHOD(_GetAngularVelocity);
+ LUAX_DECL_METHOD(_GetMass);
+ LUAX_DECL_METHOD(_GetInertia);
+ LUAX_DECL_METHOD(_GetMassData);
+ LUAX_DECL_METHOD(_GetAngularDamping);
+ LUAX_DECL_METHOD(_GetLinearDamping);
+ LUAX_DECL_METHOD(_GetGravityScale);
+ LUAX_DECL_METHOD(_GetGravityScale);
+
+ //----------------------------------------------------------------------------//
+
+ b2Body* m_Body;
+ World* m_World;
+
+};
+
+namespace_end
+namespace_end
+
+#endif \ No newline at end of file