diff options
Diffstat (limited to 'source/modules/asura-box2d/physics')
24 files changed, 287 insertions, 0 deletions
diff --git a/source/modules/asura-box2d/physics/binding/_body.cpp b/source/modules/asura-box2d/physics/binding/_body.cpp new file mode 100644 index 0000000..68f3aaf --- /dev/null +++ b/source/modules/asura-box2d/physics/binding/_body.cpp @@ -0,0 +1,173 @@ +#include "../body.h" + +using namespace std; + +namespace AsuraEngine +{ + namespace Physics + { + + LUAX_REGISTRY(Body) + { + LUAX_REGISTER_METHODS(state, + { "GetType", _GetType }, + { "GetX", _GetX }, + { "GetY", _GetY }, + { "GetAngle", _GetAngle }, + { "GetPosition", _GetPosition }, + { "GetLinearVelocity", _GetLinearVelocity }, + { "GetWorldCenter", _GetWorldCenter }, + { "GetLocalCenter", _GetLocalCenter }, + { "GetAngularVelocity", _GetAngularVelocity }, + { "GetMass", _GetMass }, + { "GetInertia", _GetInertia }, + { "GetMassData", _GetMassData }, + { "GetAngularDamping", _GetAngularDamping }, + { "GetLinearDamping", _GetLinearDamping }, + { "GetGravityScale", _GetGravityScale }, + { "GetGravityScale", _GetGravityScale } + ); + } + + LUAX_POSTPROCESS(Body) + { + LUAX_REGISTER_ENUM(state, "EBodyType", + { "INVALID", BODY_TYPE_INVALID }, + { "STATIC", BODY_TYPE_STATIC }, + { "DYNAMIC", BODY_TYPE_DYNAMIC }, + { "KINEMATIC", BODY_TYPE_KINEMATIC }, + { "ENUM", BODY_TYPE_MAX_ENUM } + ); + + } + + // body:GetType() + LUAX_IMPL_METHOD(Body, _GetType) + { + LUAX_PREPARE(L, Body); + + return 0; + } + + // body:GetX() + LUAX_IMPL_METHOD(Body, _GetX) + { + LUAX_PREPARE(L, Body); + + return 0; + } + + // body:GetY() + LUAX_IMPL_METHOD(Body, _GetY) + { + LUAX_PREPARE(L, Body); + + return 0; + } + + // body:GetAngle() + LUAX_IMPL_METHOD(Body, _GetAngle) + { + LUAX_PREPARE(L, Body); + + return 0; + } + + // body:GetPosition() + LUAX_IMPL_METHOD(Body, _GetPosition) + { + LUAX_PREPARE(L, Body); + + return 0; + } + + // body:GetLinearVelocity() + LUAX_IMPL_METHOD(Body, _GetLinearVelocity) + { + LUAX_PREPARE(L, Body); + + return 0; + } + + // body:GetWorldCenter() + LUAX_IMPL_METHOD(Body, _GetWorldCenter) + { + LUAX_PREPARE(L, Body); + + return 0; + } + + // body:GetLocalCenter() + LUAX_IMPL_METHOD(Body, _GetLocalCenter) + { + LUAX_PREPARE(L, Body); + + return 0; + } + + // body:GetAngularVelocity() + LUAX_IMPL_METHOD(Body, _GetAngularVelocity) + { + LUAX_PREPARE(L, Body); + + return 0; + } + + // body:GetMass() + LUAX_IMPL_METHOD(Body, _GetMass) + { + LUAX_PREPARE(L, Body); + + return 0; + } + + // body:GetInertia() + LUAX_IMPL_METHOD(Body, _GetInertia) + { + LUAX_PREPARE(L, Body); + + return 0; + } + + // body:GetMassData() + LUAX_IMPL_METHOD(Body, _GetMassData) + { + LUAX_PREPARE(L, Body); + + return 0; + } + + // body:GetAngularDamping() + LUAX_IMPL_METHOD(Body, _GetAngularDamping) + { + LUAX_PREPARE(L, Body); + + return 0; + } + + // body:GetLinearDamping() + LUAX_IMPL_METHOD(Body, _GetLinearDamping) + { + LUAX_PREPARE(L, Body); + + return 0; + } + + // body:GetGravityScale() + LUAX_IMPL_METHOD(Body, _GetGravityScale) + { + LUAX_PREPARE(L, Body); + + return 0; + } + + // body:GetGravityScale() + LUAX_IMPL_METHOD(Body, _GetGravityScale) + { + LUAX_PREPARE(L, Body); + + return 0; + } + + } +} diff --git a/source/modules/asura-box2d/physics/binding/_world.cpp b/source/modules/asura-box2d/physics/binding/_world.cpp new file mode 100644 index 0000000..6edd193 --- /dev/null +++ b/source/modules/asura-box2d/physics/binding/_world.cpp @@ -0,0 +1,21 @@ +#include "../world.h" + +using namespace std; + +namespace AsuraEngine +{ + namespace Physics + { + + LUAX_REGISTRY(World) + { + + } + + LUAX_POSTPROCESS(World) + { + + } + + } +} diff --git a/source/modules/asura-box2d/physics/body.h b/source/modules/asura-box2d/physics/body.h new file mode 100644 index 0000000..57295c6 --- /dev/null +++ b/source/modules/asura-box2d/physics/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 diff --git a/source/modules/asura-box2d/physics/chain_shape.h b/source/modules/asura-box2d/physics/chain_shape.h new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/source/modules/asura-box2d/physics/chain_shape.h diff --git a/source/modules/asura-box2d/physics/circle_shape.h b/source/modules/asura-box2d/physics/circle_shape.h new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/source/modules/asura-box2d/physics/circle_shape.h diff --git a/source/modules/asura-box2d/physics/contact.h b/source/modules/asura-box2d/physics/contact.h new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/source/modules/asura-box2d/physics/contact.h diff --git a/source/modules/asura-box2d/physics/debug_draw.h b/source/modules/asura-box2d/physics/debug_draw.h new file mode 100644 index 0000000..cff682b --- /dev/null +++ b/source/modules/asura-box2d/physics/debug_draw.h @@ -0,0 +1,9 @@ +#ifndef __ASURA_BOX2D_DEBUG_DRAW_H__ +#define __ASURA_BOX2D_DEBUG_DRAW_H__ + +namespace AsuraEngine +{ + +} + +#endif
\ No newline at end of file diff --git a/source/modules/asura-box2d/physics/distance_joint.h b/source/modules/asura-box2d/physics/distance_joint.h new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/source/modules/asura-box2d/physics/distance_joint.h diff --git a/source/modules/asura-box2d/physics/edge_shape.h b/source/modules/asura-box2d/physics/edge_shape.h new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/source/modules/asura-box2d/physics/edge_shape.h diff --git a/source/modules/asura-box2d/physics/fixture.h b/source/modules/asura-box2d/physics/fixture.h new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/source/modules/asura-box2d/physics/fixture.h diff --git a/source/modules/asura-box2d/physics/friction_joint.h b/source/modules/asura-box2d/physics/friction_joint.h new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/source/modules/asura-box2d/physics/friction_joint.h diff --git a/source/modules/asura-box2d/physics/gear_joint.h b/source/modules/asura-box2d/physics/gear_joint.h new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/source/modules/asura-box2d/physics/gear_joint.h diff --git a/source/modules/asura-box2d/physics/joint.h b/source/modules/asura-box2d/physics/joint.h new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/source/modules/asura-box2d/physics/joint.h diff --git a/source/modules/asura-box2d/physics/motor_joint.h b/source/modules/asura-box2d/physics/motor_joint.h new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/source/modules/asura-box2d/physics/motor_joint.h diff --git a/source/modules/asura-box2d/physics/mouse_joint.h b/source/modules/asura-box2d/physics/mouse_joint.h new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/source/modules/asura-box2d/physics/mouse_joint.h diff --git a/source/modules/asura-box2d/physics/polygon_shape.h b/source/modules/asura-box2d/physics/polygon_shape.h new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/source/modules/asura-box2d/physics/polygon_shape.h diff --git a/source/modules/asura-box2d/physics/prismatic_joint.h b/source/modules/asura-box2d/physics/prismatic_joint.h new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/source/modules/asura-box2d/physics/prismatic_joint.h diff --git a/source/modules/asura-box2d/physics/pulley_joint.h b/source/modules/asura-box2d/physics/pulley_joint.h new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/source/modules/asura-box2d/physics/pulley_joint.h diff --git a/source/modules/asura-box2d/physics/revolute_joint.h b/source/modules/asura-box2d/physics/revolute_joint.h new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/source/modules/asura-box2d/physics/revolute_joint.h diff --git a/source/modules/asura-box2d/physics/rope_joint.h b/source/modules/asura-box2d/physics/rope_joint.h new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/source/modules/asura-box2d/physics/rope_joint.h diff --git a/source/modules/asura-box2d/physics/shape.h b/source/modules/asura-box2d/physics/shape.h new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/source/modules/asura-box2d/physics/shape.h diff --git a/source/modules/asura-box2d/physics/weld_joint.h b/source/modules/asura-box2d/physics/weld_joint.h new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/source/modules/asura-box2d/physics/weld_joint.h diff --git a/source/modules/asura-box2d/physics/wheel_joint.h b/source/modules/asura-box2d/physics/wheel_joint.h new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/source/modules/asura-box2d/physics/wheel_joint.h diff --git a/source/modules/asura-box2d/physics/world.h b/source/modules/asura-box2d/physics/world.h new file mode 100644 index 0000000..0aac0c8 --- /dev/null +++ b/source/modules/asura-box2d/physics/world.h @@ -0,0 +1,19 @@ +#ifndef __ASURA_BOX2D_WORLD_H__ +#define __ASURA_BOX2D_WORLD_H__ + +#include <asura-utils/scripting/portable.hpp> + +namespace AsuraEngine +{ + namespace Physics + { + + class World : public AEScripting::Portable<World> + { + + }; + + } +} + +#endif
\ No newline at end of file |