vector<double> BayesactClient::get_response_epa() { vector<double> epa(3); epa[0] = response_.evaluation(); epa[1] = response_.potency(); epa[2] = response_.activity(); return epa; }
//Look at the GJK_EPA.h header file for documentation and instructions bool SteerLib::GJK_EPA::intersect(float& return_penetration_depth, Util::Vector& return_penetration_vector, const std::vector<Util::Vector>& _shapeA, const std::vector<Util::Vector>& _shapeB) { std::vector<Util::Vector> simplex; bool isColliding = GJK(_shapeA, _shapeB, simplex); if (isColliding) { epa(_shapeA, _shapeB, simplex, return_penetration_depth, return_penetration_vector); } return isColliding; }
//Look at the GJK_EPA.h header file for documentation and instructions bool SteerLib::GJK_EPA::intersect(float& return_penetration_depth, Util::Vector& return_penetration_vector, const std::vector<Util::Vector>& _shapeA, const std::vector<Util::Vector>& _shapeB) { std::vector<Util::Vector> simplex; bool collision = gjk(_shapeA, _shapeB, simplex); if(collision) epa(return_penetration_depth, return_penetration_vector,simplex,_shapeA, _shapeB); /*else{ return_penetration_depth = 0; return_penetration_vector.zero(); }*/ return collision; }
SimdScalar EpaPenetrationDepthSolver::EpaPenDepth( SimplexSolverInterface& simplexSolver, ConvexShape* pConvexA, ConvexShape* pConvexB, const SimdTransform& transformA, const SimdTransform& transformB, SimdPoint3& wWitnessOnA, SimdPoint3& wWitnessOnB ) { Epa epa( pConvexA, pConvexB, transformA, transformB ); if ( !epa.Initialize( simplexSolver ) ) { assert( false && "Epa failed to initialize!" ); return 0; } return epa.CalcPenDepth( wWitnessOnA, wWitnessOnB ); }