diff --git a/Extras/MayaPlugin/bt_convex_hull_shape.h b/Extras/MayaPlugin/bt_convex_hull_shape.h index 3e1ed178c..2780c8cf8 100644 --- a/Extras/MayaPlugin/bt_convex_hull_shape.h +++ b/Extras/MayaPlugin/bt_convex_hull_shape.h @@ -118,7 +118,7 @@ protected: { //apply the scaling btVector3 const& scale = m_ch_shape->getLocalScaling(); - btVector3 const* points = m_ch_shape->getPoints(); + btVector3 const* points = m_ch_shape->getUnscaledPoints(); for(int i = 0; i < m_ch_shape->getNumPoints(); ++i) { m_vertices[i] = vec3f(scale.x() * points[i].x(), scale.y() * points[i].y(), scale.z() * points[i].z()); } diff --git a/src/BulletCollision/CollisionShapes/btCompoundShape.cpp b/src/BulletCollision/CollisionShapes/btCompoundShape.cpp index afa05dfd5..d10b7d633 100644 --- a/src/BulletCollision/CollisionShapes/btCompoundShape.cpp +++ b/src/BulletCollision/CollisionShapes/btCompoundShape.cpp @@ -205,7 +205,9 @@ void btCompoundShape::calculatePrincipalAxisTransform(btScalar* masses, btTransf btScalar totalMass = 0; btVector3 center(0, 0, 0); - for (int k = 0; k < n; k++) + int k; + + for (k = 0; k < n; k++) { center += m_children[k].m_transform.getOrigin() * masses[k]; totalMass += masses[k]; @@ -214,7 +216,7 @@ void btCompoundShape::calculatePrincipalAxisTransform(btScalar* masses, btTransf principal.setOrigin(center); btMatrix3x3 tensor(0, 0, 0, 0, 0, 0, 0, 0, 0); - for (int k = 0; k < n; k++) + for ( k = 0; k < n; k++) { btVector3 i; m_children[k].m_childShape->calculateLocalInertia(masses[k], i); diff --git a/src/BulletCollision/CollisionShapes/btConvexHullShape.h b/src/BulletCollision/CollisionShapes/btConvexHullShape.h index c6aa7158c..baf074be6 100644 --- a/src/BulletCollision/CollisionShapes/btConvexHullShape.h +++ b/src/BulletCollision/CollisionShapes/btConvexHullShape.h @@ -37,6 +37,7 @@ public: void addPoint(const btVector3& point); + btVector3* getUnscaledPoints() { return &m_unscaledPoints[0]; @@ -47,6 +48,15 @@ public: return &m_unscaledPoints[0]; } + ///getPoints is obsolete, please use getUnscaledPoints + const btVector3* getPoints() const + { + return getUnscaledPoints(); + } + + + + SIMD_FORCE_INLINE btVector3 getScaledPoint(int i) const { return m_unscaledPoints[i] * m_localScaling;