void btGImpactCollisionAlgorithm::shape_vs_shape_collision( btCollisionObject * body0, btCollisionObject * body1, btCollisionShape * shape0, btCollisionShape * shape1) { btCollisionShape* tmpShape0 = body0->getCollisionShape(); btCollisionShape* tmpShape1 = body1->getCollisionShape(); body0->internalSetTemporaryCollisionShape(shape0); body1->internalSetTemporaryCollisionShape(shape1); { btCollisionAlgorithm* algor = newAlgorithm(body0,body1); // post : checkManifold is called m_resultOut->setShapeIdentifiersA(m_part0,m_triface0); m_resultOut->setShapeIdentifiersB(m_part1,m_triface1); algor->processCollision(body0,body1,*m_dispatchInfo,m_resultOut); algor->~btCollisionAlgorithm(); m_dispatcher->freeCollisionAlgorithm(algor); } body0->internalSetTemporaryCollisionShape(tmpShape0); body1->internalSetTemporaryCollisionShape(tmpShape1); }
void btGImpactCollisionAlgorithm::shape_vs_shape_collision( btDispatcher* dispatcher, const btCollider* body0, const btCollider* body1, const btCollisionShape* shape0, const btCollisionShape* shape1 ) { const btCollisionShape* tmpShape0 = body0->getCollisionShape(); const btCollisionShape* tmpShape1 = body1->getCollisionShape(); btCollider new0(body0, tmpShape0, body0->getCollisionObject(), body0->getWorldTransform()); btCollider new1(body1, tmpShape1, body1->getCollisionObject(), body1->getWorldTransform()); { btCollisionAlgorithm* algor = newAlgorithm(dispatcher, body0, body1); // post : checkManifold is called m_resultOut->setShapeIdentifiersA(m_part0,m_triface0); m_resultOut->setShapeIdentifiersB(m_part1,m_triface1); btCollisionProcessInfo processInfo(new0, new1, *m_dispatchInfo, m_resultOut, dispatcher); algor->processCollision(processInfo); algor->nihilize(dispatcher); algor->~btCollisionAlgorithm(); dispatcher->freeCollisionAlgorithm(algor); } }
void btGImpactCollisionAlgorithm::shape_vs_shape_collision( const btCollisionObjectWrapper * body0Wrap, const btCollisionObjectWrapper* body1Wrap, const btCollisionShape * shape0, const btCollisionShape * shape1) { { btCollisionObjectWrapper ob0(body0Wrap,shape0,body0Wrap->getCollisionObject(), body0Wrap->getWorldTransform()); btCollisionObjectWrapper ob1(body1Wrap,shape1,body1Wrap->getCollisionObject(),body1Wrap->getWorldTransform()); btCollisionAlgorithm* algor = newAlgorithm(&ob0,&ob1); // post : checkManifold is called m_resultOut->setShapeIdentifiersA(m_part0,m_triface0); m_resultOut->setShapeIdentifiersB(m_part1,m_triface1); algor->processCollision(&ob0,&ob1,*m_dispatchInfo,m_resultOut); algor->~btCollisionAlgorithm(); m_dispatcher->freeCollisionAlgorithm(algor); } }
/*** PRIVATE SLOTS ***/ void br::Algorithm::setAlgorithm(QString algorithm) { if (displayNames.contains(algorithm)) algorithm = displayNames[algorithm]; br_set_property("algorithm", qPrintable(algorithm)); emit newAlgorithm(algorithm); }
/*** PRIVATE SLOTS ***/ void br::Algorithm::setAlgorithm(QAction *action) { QString algorithm = action->text(); if (displayNames.contains(algorithm)) algorithm = displayNames[algorithm]; br_set_property("algorithm", qPrintable(algorithm)); emit newAlgorithm(algorithm); }