Lines Matching refs:gjk
23 GJK-EPA collision solver by Nathanael Presson, 2008
42 /* GJK */
141 // GJK
142 struct GJK
171 GJK()
509 typedef GJK::sSV sSV;
546 GJK::sSimplex m_result;
594 eStatus::_ Evaluate(GJK& gjk,const btVector3& guess)
596 GJK::sSimplex& simplex=*gjk.m_simplex;
597 if((simplex.rank>1)&&gjk.EncloseOrigin())
610 if(gjk.det( simplex.c[0]->w-simplex.c[3]->w,
643 gjk.getsupport(best->n,*w);
861 return(sizeof(GJK)+sizeof(EPA));
874 GJK gjk;
875 GJK::eStatus::_ gjk_status=gjk.Evaluate(shape,guess);
876 if(gjk_status==GJK::eStatus::Valid)
880 for(U i=0;i<gjk.m_simplex->rank;++i)
882 const btScalar p=gjk.m_simplex->p[i];
883 w0+=shape.Support( gjk.m_simplex->c[i]->d,0)*p;
884 w1+=shape.Support(-gjk.m_simplex->c[i]->d,1)*p;
895 results.status = gjk_status==GJK::eStatus::Inside?
913 GJK gjk;
914 GJK::eStatus::_ gjk_status=gjk.Evaluate(shape,-guess);
917 case GJK::eStatus::Inside:
920 EPA::eStatus::_ epa_status=epa.Evaluate(gjk,-guess);
937 case GJK::eStatus::Failed:
959 GJK gjk;
960 GJK::eStatus::_ gjk_status=gjk.Evaluate(shape,btVector3(1,1,1));
961 if(gjk_status==GJK::eStatus::Valid)
965 for(U i=0;i<gjk.m_simplex->rank;++i)
967 const btScalar p=gjk.m_simplex->p[i];
968 w0+=shape.Support( gjk.m_simplex->c[i]->d,0)*p;
969 w1+=shape.Support(-gjk.m_simplex->c[i]->d,1)*p;
984 if(gjk_status==GJK::eStatus::Inside)
986 if(Penetration(shape0,wtrs0,&shape1,wtrs1,gjk.m_ray,results))