fix bug in the pretransform of rigid body interpolation transform
This commit is contained in:
@@ -139,7 +139,12 @@ public:
|
|||||||
|
|
||||||
if (TestAabbAgainstAabb2(aabbMin0, aabbMax0, aabbMin1, aabbMax1))
|
if (TestAabbAgainstAabb2(aabbMin0, aabbMax0, aabbMin1, aabbMax1))
|
||||||
{
|
{
|
||||||
btCollisionObjectWrapper compoundWrap(this->m_compoundColObjWrap, childShape, m_compoundColObjWrap->getCollisionObject(), newChildWorldTrans, childTrans, -1, index);
|
btTransform preTransform = childTrans;
|
||||||
|
if (this->m_compoundColObjWrap->m_preTransform)
|
||||||
|
{
|
||||||
|
preTransform = preTransform *(*(this->m_compoundColObjWrap->m_preTransform));
|
||||||
|
}
|
||||||
|
btCollisionObjectWrapper compoundWrap(this->m_compoundColObjWrap, childShape, m_compoundColObjWrap->getCollisionObject(), newChildWorldTrans, preTransform, -1, index);
|
||||||
|
|
||||||
btCollisionAlgorithm* algo = 0;
|
btCollisionAlgorithm* algo = 0;
|
||||||
bool allocatedAlgorithm = false;
|
bool allocatedAlgorithm = false;
|
||||||
|
|||||||
@@ -2407,7 +2407,6 @@ bool btSoftBody::checkDeformableContact(const btCollisionObjectWrapper* colObjWr
|
|||||||
btTransform wtr = (predict) ?
|
btTransform wtr = (predict) ?
|
||||||
(colObjWrap->m_preTransform != NULL ? tmpCollisionObj->getInterpolationWorldTransform()*(*colObjWrap->m_preTransform) : tmpCollisionObj->getInterpolationWorldTransform())
|
(colObjWrap->m_preTransform != NULL ? tmpCollisionObj->getInterpolationWorldTransform()*(*colObjWrap->m_preTransform) : tmpCollisionObj->getInterpolationWorldTransform())
|
||||||
: colObjWrap->getWorldTransform();
|
: colObjWrap->getWorldTransform();
|
||||||
// const btTransform& wtr = colObjWrap->getWorldTransform();
|
|
||||||
btScalar dst =
|
btScalar dst =
|
||||||
m_worldInfo->m_sparsesdf.Evaluate(
|
m_worldInfo->m_sparsesdf.Evaluate(
|
||||||
wtr.invXform(x),
|
wtr.invXform(x),
|
||||||
@@ -2458,7 +2457,6 @@ bool btSoftBody::checkDeformableFaceContact(const btCollisionObjectWrapper* colO
|
|||||||
btTransform wtr = (predict) ?
|
btTransform wtr = (predict) ?
|
||||||
(colObjWrap->m_preTransform != NULL ? tmpCollisionObj->getInterpolationWorldTransform()*(*colObjWrap->m_preTransform) : tmpCollisionObj->getInterpolationWorldTransform())
|
(colObjWrap->m_preTransform != NULL ? tmpCollisionObj->getInterpolationWorldTransform()*(*colObjWrap->m_preTransform) : tmpCollisionObj->getInterpolationWorldTransform())
|
||||||
: colObjWrap->getWorldTransform();
|
: colObjWrap->getWorldTransform();
|
||||||
// const btTransform& wtr = colObjWrap->getWorldTransform();
|
|
||||||
btScalar dst;
|
btScalar dst;
|
||||||
|
|
||||||
#define USE_QUADRATURE 1
|
#define USE_QUADRATURE 1
|
||||||
|
|||||||
Reference in New Issue
Block a user