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);
}
Example #2
0
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);
	}

}
Example #4
0
/*** PRIVATE SLOTS ***/
void br::Algorithm::setAlgorithm(QString algorithm)
{
    if (displayNames.contains(algorithm))
        algorithm = displayNames[algorithm];

    br_set_property("algorithm", qPrintable(algorithm));
    emit newAlgorithm(algorithm);
}
Example #5
0
/*** 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);
}