本文整理汇总了C++中btManifoldResult::addContactPoint方法的典型用法代码示例。如果您正苦于以下问题:C++ btManifoldResult::addContactPoint方法的具体用法?C++ btManifoldResult::addContactPoint怎么用?C++ btManifoldResult::addContactPoint使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类btManifoldResult
的用法示例。
在下文中一共展示了btManifoldResult::addContactPoint方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: addContactPoint
virtual void addContactPoint(const btVector3& normalOnBInWorld, const btVector3& pointInWorld, btScalar orgDepth)
{
btVector3 endPt, startPt;
btScalar newDepth;
btVector3 newNormal;
if (m_perturbA)
{
btVector3 endPtOrg = pointInWorld + normalOnBInWorld*orgDepth;
endPt = (m_unPerturbedTransform*m_transformA.inverse())(endPtOrg);
newDepth = (endPt - pointInWorld).dot(normalOnBInWorld);
startPt = endPt+normalOnBInWorld*newDepth;
} else
{
endPt = pointInWorld + normalOnBInWorld*orgDepth;
startPt = (m_unPerturbedTransform*m_transformB.inverse())(pointInWorld);
newDepth = (endPt - startPt).dot(normalOnBInWorld);
}
#ifdef DEBUG_CONTACTS
m_debugDrawer->drawLine(startPt, endPt, btVector3(1,0,0));
m_debugDrawer->drawSphere(startPt,0.05, btVector3(0,1,0));
m_debugDrawer->drawSphere(endPt,0.05, btVector3(0,0,1));
#endif //DEBUG_CONTACTS
m_originalManifoldResult->addContactPoint(normalOnBInWorld, startPt, newDepth);
}