From b1e4aea496811ede06f43809e0c22a895221d53b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Leclercq?= Date: Wed, 22 Feb 2017 16:52:34 +0100 Subject: [PATCH] Physics2D/RigidBody2D: Add signal for movement/release --- include/Nazara/Physics2D/RigidBody2D.hpp | 4 ++++ src/Nazara/Physics2D/RigidBody2D.cpp | 11 +++++++++++ 2 files changed, 15 insertions(+) diff --git a/include/Nazara/Physics2D/RigidBody2D.hpp b/include/Nazara/Physics2D/RigidBody2D.hpp index 726c7c1e1..f57ce6a48 100644 --- a/include/Nazara/Physics2D/RigidBody2D.hpp +++ b/include/Nazara/Physics2D/RigidBody2D.hpp @@ -9,6 +9,7 @@ #include #include +#include #include #include #include @@ -61,6 +62,9 @@ namespace Nz RigidBody2D& operator=(const RigidBody2D& object); RigidBody2D& operator=(RigidBody2D&& object); + NazaraSignal(OnRigidBody2DMove, RigidBody2D* /*oldPointer*/, RigidBody2D* /*newPointer*/); + NazaraSignal(OnRigidBody2DRelease, RigidBody2D* /*rigidBody*/); + private: void Create(float mass = 1.f, float moment = 1.f); void Destroy(); diff --git a/src/Nazara/Physics2D/RigidBody2D.cpp b/src/Nazara/Physics2D/RigidBody2D.cpp index 1bdc17968..8993fe398 100644 --- a/src/Nazara/Physics2D/RigidBody2D.cpp +++ b/src/Nazara/Physics2D/RigidBody2D.cpp @@ -50,6 +50,8 @@ namespace Nz } RigidBody2D::RigidBody2D(RigidBody2D&& object) : + OnRigidBody2DMove(std::move(object.OnRigidBody2DMove)), + OnRigidBody2DRelease(std::move(object.OnRigidBody2DRelease)), m_shapes(std::move(object.m_shapes)), m_geom(std::move(object.m_geom)), m_userData(object.m_userData), @@ -61,10 +63,14 @@ namespace Nz cpBodySetUserData(m_handle, this); object.m_handle = nullptr; + + OnRigidBody2DMove(&object, this); } RigidBody2D::~RigidBody2D() { + OnRigidBody2DRelease(this); + Destroy(); } @@ -272,6 +278,9 @@ namespace Nz { Destroy(); + OnRigidBody2DMove = std::move(object.OnRigidBody2DMove); + OnRigidBody2DRelease = std::move(object.OnRigidBody2DRelease); + m_handle = object.m_handle; m_geom = std::move(object.m_geom); m_gravityFactor = object.m_gravityFactor; @@ -284,6 +293,8 @@ namespace Nz object.m_handle = nullptr; + OnRigidBody2DMove(&object, this); + return *this; }