34 using namespace Opcode;
39 #define SET_CONTACT(prim_index, flag) \
42 mTouchedPrimitives->Add(prim_index);
45 #define LSS_PRIM(prim_index, flag) \
47 VertexPointers VP; mIMesh->GetTriangle(VP, prim_index); \
50 if(LSSTriOverlap(*VP.Vertex[0], *VP.Vertex[1], *VP.Vertex[2])) \
52 SET_CONTACT(prim_index, flag) \
94 if(!
Setup(&model))
return false;
97 if(
InitQuery(cache, lss, worldl, worldm))
return true;
304 if(!tree)
return false;
329 #define TEST_BOX_IN_LSS(center, extents) \
330 if(LSSContainsBox(center, extents)) \
333 mFlags |= OPC_CONTACT; \
347 if(!
LSSAABBOverlap(node->mAABB.mCenter, node->mAABB.mExtents))
return;
374 if(!
LSSAABBOverlap(node->mAABB.mCenter, node->mAABB.mExtents))
return;
465 if(!
LSSAABBOverlap(node->mAABB.mCenter, node->mAABB.mExtents))
return;
487 if(!
LSSAABBOverlap(node->mAABB.mCenter, node->mAABB.mExtents))
return;
563 Point Center, Extents;
564 node->GetAABB()->GetCenter(Center);
565 node->GetAABB()->GetExtents(Extents);
609 if(!
Setup(&model))
return false;
612 if(
InitQuery(cache, lss, worldl, worldm))
return true;
629 mTouchedBoxes.Reset();
688 const udword* Touched = mTouchedBoxes.GetEntries();
707 udword TriangleIndex = *T++;
718 udword TriangleIndex = BaseIndex++;