void dgCollisionBVH::GetVertexListIndexList (const dgVector& p0, const dgVector& p1, dgGetVertexListIndexList &data) const { ForAllSectors (p0, p1, CollectVertexListIndexList, &data); data.m_veterxArray = GetLocalVertexPool(); data.m_vertexCount = GetVertexCount(); data.m_vertexStrideInBytes = GetStrideInBytes(); }
void dgCollisionBVH::GetVertexListIndexList (const dgVector& p0, const dgVector& p1, dgMeshVertexListIndexList &data) const { dgFastAABBInfo box (p0, p1); ForAllSectors (box, dgVector (dgFloat32 (0.0f)), dgFloat32 (1.0f), CollectVertexListIndexList, &data); data.m_veterxArray = GetLocalVertexPool(); data.m_vertexCount = GetVertexCount(); data.m_vertexStrideInBytes = GetStrideInBytes(); }
void dgCollisionBVH::GetCollidingFaces (dgPolygonMeshDesc* const data) const { data->m_me = this; data->m_vertex = GetLocalVertexPool(); data->m_vertexStrideInBytes = GetStrideInBytes(); data->m_faceCount = 0; data->m_globalIndexCount = 0; data->m_faceIndexCount = data->m_meshData.m_globalFaceIndexCount; data->m_faceIndexStart = data->m_meshData.m_globalFaceIndexStart; data->m_faceVertexIndex = data->m_globalFaceVertexIndex; data->m_hitDistance = data->m_meshData.m_globalHitDistance; ForAllSectors (*data, data->m_boxDistanceTravelInMeshSpace, data->m_maxT, GetPolygon, data); }
void dgCollisionBVH::GetCollidingFaces (dgPolygonMeshDesc* const data) const { data->m_faceCount = 0; data->m_me = this; data->m_vertex = GetLocalVertexPool(); data->m_vertexStrideInBytes = GetStrideInBytes(); data->m_globalIndexCount = 0; data->m_faceMaxSize = data->m_globalFaceMaxSize; data->m_userAttribute = data->m_globalUserAttribute; data->m_faceIndexCount = data->m_globalFaceIndexCount; data->m_faceVertexIndex = data->m_globalFaceVertexIndex; data->m_faceNormalIndex = data->m_globalFaceNormalIndex; data->m_faceAdjencentEdgeNormal = data->m_globalAdjencentEdgeNormal; ForAllSectors (data->m_boxP0, data->m_boxP1, GetPolygon, data); }