summaryrefslogtreecommitdiff
path: root/source/modules/asura-box2d/body.h
diff options
context:
space:
mode:
Diffstat (limited to 'source/modules/asura-box2d/body.h')
-rw-r--r--source/modules/asura-box2d/body.h65
1 files changed, 65 insertions, 0 deletions
diff --git a/source/modules/asura-box2d/body.h b/source/modules/asura-box2d/body.h
new file mode 100644
index 0000000..57295c6
--- /dev/null
+++ b/source/modules/asura-box2d/body.h
@@ -0,0 +1,65 @@
+#ifndef __ASURA_BOX2D_BODY_H__
+#define __ASURA_BOX2D_BODY_H__
+
+#include <Box2D/Box2D.h>
+
+#include <asura-utils/scripting/portable.hpp>
+
+namespace AsuraEngine
+{
+ namespace Physics
+ {
+
+ class World;
+
+ enum BodyType
+ {
+ BODY_TYPE_INVALID,
+ BODY_TYPE_STATIC,
+ BODY_TYPE_DYNAMIC,
+ BODY_TYPE_KINEMATIC,
+ BODY_TYPE_MAX_ENUM
+ };
+
+ class Body
+ : public AEScripting::Portable<Body>
+ {
+ public:
+
+ LUAX_DECL_FACTORY(Body);
+
+ b2Body *body;
+
+ private:
+
+ //----------------------------------------------------------------------------//
+
+ LUAX_DECL_ENUM(BodyType);
+
+ 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);
+
+ //----------------------------------------------------------------------------//
+
+ World* mWorld;
+
+ };
+
+ }
+}
+
+#endif \ No newline at end of file