Пример #1
0
void collisionTester::initAlgo(){
    
    btCollisionObjectWrapper sA(0,sphereA.getCollisionShape(), &sphereA, sphereA.getWorldTransform());
    btCollisionObjectWrapper sB(0,sphereB.getCollisionShape(), &sphereB, sphereB.getWorldTransform());
    btCollisionObjectWrapper cA(0,cylinderA.getCollisionShape(), &cylinderA, sphereA.getWorldTransform());
    btCollisionObjectWrapper cB(0,cylinderB.getCollisionShape(), &cylinderB, sphereB.getWorldTransform());
    
	algoSS = collisionWorld->getDispatcher()->findAlgorithm(&sA, &sB);
  	algoSC = collisionWorld->getDispatcher()->findAlgorithm(&sA, &cA);
    algoCC = collisionWorld->getDispatcher()->findAlgorithm(&cA, &cB);
}
NOX::Abstract::Group::ReturnType 
LOCA::BorderedSolver::LowerTriangularBlockElimination::
solveTranspose(Teuchos::ParameterList& params,
	       const LOCA::BorderedSolver::AbstractOperator& op,
	       const NOX::Abstract::MultiVector& B,
	       const NOX::Abstract::MultiVector::DenseMatrix& C,
	       const NOX::Abstract::MultiVector* F,
	       const NOX::Abstract::MultiVector::DenseMatrix* G,
	       NOX::Abstract::MultiVector& X,
	       NOX::Abstract::MultiVector::DenseMatrix& Y) const
{
  // Create a constraint out of B
  LOCA::MultiContinuation::MultiVecConstraint cB(Teuchos::rcp(&B,false));

  // Call other version
  return solveTranspose(params, op, cB, C, F, G, X, Y);
}