From b8e447e4fe048afa98470b63ceb2db4c1c4af66d Mon Sep 17 00:00:00 2001 From: Lynix Date: Sun, 10 Dec 2017 12:10:47 +0100 Subject: [PATCH] Physics3D/RigidBody3D: Fix copy constructor not copying all states --- ChangeLog.md | 1 + src/Nazara/Physics3D/RigidBody3D.cpp | 8 ++++++++ 2 files changed, 9 insertions(+) diff --git a/ChangeLog.md b/ChangeLog.md index b8b59925c..d4f37c6a3 100644 --- a/ChangeLog.md +++ b/ChangeLog.md @@ -36,6 +36,7 @@ Nazara Engine: - Add linear and angular damping accessor to RigidBody3D - Fix MemoryStream::WriteBlock "Invalid buffer" assertion triggering when writing a zero-sized block - ⚠️ Rename RigidBody3D::[Get|Set]Velocity to [Get|Set]LinearVelocity +- Fix RigidBody3D copy constructor not copying all physics states (angular/linear damping/velocity, mass center, position and rotation) Nazara Development Kit: - Added ImageWidget (#139) diff --git a/src/Nazara/Physics3D/RigidBody3D.cpp b/src/Nazara/Physics3D/RigidBody3D.cpp index d3926bb68..978afa569 100644 --- a/src/Nazara/Physics3D/RigidBody3D.cpp +++ b/src/Nazara/Physics3D/RigidBody3D.cpp @@ -47,7 +47,15 @@ namespace Nz m_body = NewtonCreateDynamicBody(m_world->GetHandle(), m_geom->GetHandle(m_world), m_matrix); NewtonBodySetUserData(m_body, this); + SetMass(object.m_mass); + SetAngularDamping(object.GetAngularDamping()); + SetAngularVelocity(object.GetAngularVelocity()); + SetLinearDamping(object.GetLinearDamping()); + SetLinearVelocity(object.GetLinearVelocity()); + SetMassCenter(object.GetMassCenter()); + SetPosition(object.GetPosition()); + SetRotation(object.GetRotation()); } RigidBody3D::RigidBody3D(RigidBody3D&& object) :