Browse Source

Fix which allows setting scale on a Bullet rigid body before any shape is added.

enn0x 12 years ago
parent
commit
468ddb3528
1 changed files with 9 additions and 0 deletions
  1. 9 0
      panda/src/bullet/bulletBodyNode.cxx

+ 9 - 0
panda/src/bullet/bulletBodyNode.cxx

@@ -178,6 +178,12 @@ add_shape(BulletShape *shape, CPT(TransformState) ts) {
     trans = TransformState_to_btTrans(ts);
     trans = TransformState_to_btTrans(ts);
   }
   }
 
 
+  // Reset the shape scaling before we add a shape, and remember the current
+  // Scale so we can restore it later...
+  NodePath np = NodePath::any_path((PandaNode *)this);
+  LVector3 scale = np.get_scale();
+  np.set_scale(1.0);
+
   // Root shape
   // Root shape
   btCollisionShape *previous = get_object()->getCollisionShape();
   btCollisionShape *previous = get_object()->getCollisionShape();
   btCollisionShape *next;
   btCollisionShape *next;
@@ -227,6 +233,9 @@ add_shape(BulletShape *shape, CPT(TransformState) ts) {
   _shapes.push_back(shape);
   _shapes.push_back(shape);
 
 
   shape_changed();
   shape_changed();
+
+  // Restore the local scaling again
+  np.set_scale(scale);
 }
 }
 
 
 ////////////////////////////////////////////////////////////////////
 ////////////////////////////////////////////////////////////////////