From 0f22583ba50fc8eb2f99b324443a08fa98c86ea8 Mon Sep 17 00:00:00 2001 From: enn0x Date: Wed, 1 May 2013 20:18:23 +0000 Subject: [PATCH] Fixed buggy scaling for multi-shape bodies. --- panda/src/bullet/bulletRigidBodyNode.cxx | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/panda/src/bullet/bulletRigidBodyNode.cxx b/panda/src/bullet/bulletRigidBodyNode.cxx index bc605274ba..3ff292df09 100644 --- a/panda/src/bullet/bulletRigidBodyNode.cxx +++ b/panda/src/bullet/bulletRigidBodyNode.cxx @@ -288,15 +288,13 @@ transform_changed() { } // Rescale all shapes, but only if the new transform state - // has a scale + // has a scale, and this scale differes from the current scale. if (ts->has_scale()) { - LVecBase3 scale = ts->get_scale(); - if (!scale.almost_equal(LVecBase3(1.0f, 1.0f, 1.0f))) { - for (int i=0; iset_local_scale(scale); - } + btVector3 new_scale = LVecBase3_to_btVector3(ts->get_scale()); + btVector3 current_scale = _shape->getLocalScaling(); + if (new_scale != current_scale) { + _shape->setLocalScaling(new_scale); shape_changed(); } }