38 using namespace Opcode;
43 #define SET_CONTACT(prim_index, flag) \
46 mTouchedPrimitives->Add(prim_index);
49 #define SPHERE_PRIM(prim_index, flag) \
51 VertexPointers VP; mIMesh->GetTriangle(VP, prim_index); \
54 if(SphereTriOverlap(*VP.Vertex[0], *VP.Vertex[1], *VP.Vertex[2])) \
56 SET_CONTACT(prim_index, flag) \
98 if(!
Setup(&model))
return false;
101 if(
InitQuery(cache, sphere, worlds, worldm))
return true;
293 if(!tree)
return false;
296 if(
InitQuery(cache, sphere))
return true;
329 #define TEST_BOX_IN_SPHERE(center, extents) \
330 if(SphereContainsBox(center, extents)) \
333 mFlags |= OPC_CONTACT; \
563 Point Center, Extents;
564 node->GetAABB()->GetCenter(Center);
565 node->GetAABB()->GetExtents(Extents);
610 if(!
Setup(&model))
return false;
613 if(
InitQuery(cache, sphere, worlds, worldm))
return true;
630 mTouchedBoxes.Reset();
689 const udword* Touched = mTouchedBoxes.GetEntries();
708 udword TriangleIndex = *T++;
719 udword TriangleIndex = BaseIndex++;