fix for re-scaling a btConeShape

Thanks to promyclon for the report and patch, see Issue 448
This commit is contained in:
erwin.coumans
2010-11-18 01:03:42 +00:00
parent 98d902b7c1
commit c6524b3fb5
2 changed files with 13 additions and 0 deletions

View File

@@ -131,3 +131,13 @@ btVector3 btConeShape::localGetSupportingVertex(const btVector3& vec) const
}
void btConeShape::setLocalScaling(const btVector3& scaling)
{
int axis = m_coneIndices[1];
int r1 = m_coneIndices[0];
int r2 = m_coneIndices[2];
m_height *= scaling[axis] / m_localScaling[axis];
m_radius *= (scaling[r1] / m_localScaling[r1] + scaling[r2] / m_localScaling[r2]) / 2;
m_sinAngle = (m_radius / btSqrt(m_radius * m_radius + m_height * m_height));
btConvexInternalShape::setLocalScaling(scaling);
}

View File

@@ -81,6 +81,9 @@ public:
{
return m_coneIndices[1];
}
virtual void setLocalScaling(const btVector3& scaling);
};
///btConeShape implements a Cone shape, around the X axis