浏览代码

Fix BulletCapsuleShape creation from Panda CollisionTube
Functions get_point_a() and get_point_b() appear to return the top of the cylinder section of the tube, not the tip of the endcap, making subtracting the radius unnecessary.

David Staer 7 年之前
父节点
当前提交
aa750f4046
共有 1 个文件被更改,包括 2 次插入2 次删除
  1. 2 2
      panda/src/bullet/bulletCapsuleShape.cxx

+ 2 - 2
panda/src/bullet/bulletCapsuleShape.cxx

@@ -93,8 +93,8 @@ BulletCapsuleShape *BulletCapsuleShape::
 make_from_solid(const CollisionTube *solid) {
   
   PN_stdfloat radius = solid->get_radius();
-  // CollisionTube height includes the hemispheres, Bullet only wants the cylinder height.
-  PN_stdfloat height = (solid->get_point_b() - solid->get_point_a()).length() - (radius * 2);
+  // Get tube's cylinder height: length from point A to point B
+  PN_stdfloat height = (solid->get_point_b() - solid->get_point_a()).length();
 
   // CollisionTubes are always Z-Up.
   return new BulletCapsuleShape(radius, height, Z_up);