Merge remote-tracking branch 'refs/remotes/origin/master' into enet_wip_nothing_to_see_here

This commit is contained in:
Jérôme Leclercq 2017-02-22 15:32:28 +01:00
commit ea135156b8
2 changed files with 21 additions and 0 deletions

View File

@ -43,6 +43,7 @@ namespace Nz
float GetMass() const;
Vector2f GetPosition() const;
float GetRotation() const;
void* GetUserdata() const;
Vector2f GetVelocity() const;
bool IsMoveable() const;
@ -54,6 +55,7 @@ namespace Nz
void SetMassCenter(const Vector2f& center);
void SetPosition(const Vector2f& position);
void SetRotation(float rotation);
void SetUserdata(void* ud);
void SetVelocity(const Vector2f& velocity);
RigidBody2D& operator=(const RigidBody2D& object);
@ -66,6 +68,7 @@ namespace Nz
std::vector<cpShape*> m_shapes;
Collider2DRef m_geom;
cpBody* m_handle;
void* m_userData;
PhysWorld2D* m_world;
float m_gravityFactor;
float m_mass;

View File

@ -20,6 +20,7 @@ namespace Nz
RigidBody2D::RigidBody2D(PhysWorld2D* world, float mass, Collider2DRef geom) :
m_geom(),
m_userData(nullptr),
m_world(world),
m_gravityFactor(1.f),
m_mass(1.f)
@ -34,6 +35,7 @@ namespace Nz
RigidBody2D::RigidBody2D(const RigidBody2D& object) :
m_geom(object.m_geom),
m_userData(object.m_userData),
m_world(object.m_world),
m_gravityFactor(object.m_gravityFactor),
m_mass(0.f)
@ -50,11 +52,14 @@ namespace Nz
RigidBody2D::RigidBody2D(RigidBody2D&& object) :
m_shapes(std::move(object.m_shapes)),
m_geom(std::move(object.m_geom)),
m_userData(object.m_userData),
m_handle(object.m_handle),
m_world(object.m_world),
m_gravityFactor(object.m_gravityFactor),
m_mass(object.m_mass)
{
cpBodySetUserData(m_handle, this);
object.m_handle = nullptr;
}
@ -144,6 +149,11 @@ namespace Nz
return static_cast<float>(cpBodyGetAngle(m_handle));
}
void* RigidBody2D::GetUserdata() const
{
return m_userData;
}
Vector2f RigidBody2D::GetVelocity() const
{
cpVect vel = cpBodyGetVelocity(m_handle);
@ -242,6 +252,11 @@ namespace Nz
cpBodySetAngle(m_handle, rotation);
}
void RigidBody2D::SetUserdata(void* ud)
{
m_userData = ud;
}
void RigidBody2D::SetVelocity(const Vector2f& velocity)
{
cpBodySetVelocity(m_handle, cpv(velocity.x, velocity.y));
@ -262,8 +277,11 @@ namespace Nz
m_gravityFactor = object.m_gravityFactor;
m_mass = object.m_mass;
m_shapes = std::move(object.m_shapes);
m_userData = object.m_userData;
m_world = object.m_world;
cpBodySetUserData(m_handle, this);
object.m_handle = nullptr;
return *this;