Physics2D/RigidBody2D: Add Userdata field
This commit is contained in:
parent
096ea72fb6
commit
45262145aa
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
Loading…
Reference in New Issue