From ee0d0a156608edc582af248cb71369902017263c Mon Sep 17 00:00:00 2001 From: Andrew Meadows Date: Thu, 14 Aug 2014 09:20:53 -0700 Subject: [PATCH 1/2] remove ragdoll from simulation in dtor --- libraries/shared/src/Ragdoll.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/libraries/shared/src/Ragdoll.cpp b/libraries/shared/src/Ragdoll.cpp index e10e1620ae..80e3c27e04 100644 --- a/libraries/shared/src/Ragdoll.cpp +++ b/libraries/shared/src/Ragdoll.cpp @@ -24,6 +24,9 @@ Ragdoll::Ragdoll() : _massScale(1.0f), _ragdollTranslation(0.0f), _translationIn Ragdoll::~Ragdoll() { clearRagdollConstraintsAndPoints(); + if (_ragdollSimulation) { + _ragdollSimulation->removeRagdoll(this); + } } void Ragdoll::stepRagdollForward(float deltaTime) { From ca4a23e5322fd5a7a72ae0ee0bbbd3a2212dbb3c Mon Sep 17 00:00:00 2001 From: Andrew Meadows Date: Thu, 14 Aug 2014 09:21:15 -0700 Subject: [PATCH 2/2] use "visible joint positions" for MyAvatar only --- interface/src/avatar/SkeletonModel.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/interface/src/avatar/SkeletonModel.cpp b/interface/src/avatar/SkeletonModel.cpp index 24acd8d2e3..29c4e2cc52 100644 --- a/interface/src/avatar/SkeletonModel.cpp +++ b/interface/src/avatar/SkeletonModel.cpp @@ -432,7 +432,8 @@ bool SkeletonModel::getHeadPosition(glm::vec3& headPosition) const { } bool SkeletonModel::getNeckPosition(glm::vec3& neckPosition) const { - if (Menu::getInstance()->isOptionChecked(MenuOption::CollideAsRagdoll)) { + if (_owningAvatar->isMyAvatar() && + Menu::getInstance()->isOptionChecked(MenuOption::CollideAsRagdoll)) { return isActive() && getVisibleJointPositionInWorldFrame(_geometry->getFBXGeometry().neckJointIndex, neckPosition); } return isActive() && getJointPositionInWorldFrame(_geometry->getFBXGeometry().neckJointIndex, neckPosition);