I'm getting following assert when I come near a certain area in one of my test scenes (hk 6.6.0):
.\Shape\Compound\Collection\ExtendedMeshShape\hkpExtendedMeshShape.cpp(553): [0x54654323] Assert : (thisObj->m_weldingInfo.getSize() == 0) || (thisObj->m_weldingInfo.getSize() > ( part->m_triangleOffset + (int)terminalIndex ) )
The assert also immediately gets triggered when I start up the VDB on that scene.
During creation hkpMeshWeldingUtility::computeWeldingInfo() returns HK_SUCCESS so it appears as if everything should be ok. I currently create the mopp and welding at run-time so it isn't any issue with incorrect streaming. If I don't create welding info, the scene works.
I'm wondering if you might be able to give me some hints about what data could be incorrect to get that assert, or what I might be doing wrong?
My code (which is based on the MeshWeldingDemo one):
hkpMeshWeldingUtility::ShapeInfo info;
info.m_transform = hkTransform::getIdentity();
info.m_shape = pMoppShape;
hkLocalArray shapes(1);
shapes.pushBack(info);
pMeshShape->m_weldingType = hkpWeldingUtility::WELDING_TYPE_ANTICLOCKWISE;
if (hkpMeshWeldingUtility::computeWeldingInfo(hkTransform::getIdentity(), pMeshShape, shapes, true, hkpMeshWeldingUtility::WINDING_IGNORE_CONSISTENCY) != HK_SUCCESS)
{
ASSERT(FALSE);
}
-----
I'd also like to sneak in a second question I've been thinking about, to avoid creating another thread :) When creating compound shapes with sub-shapes that align next to eachother, is it enough if the shells touch or do the actual shapes have to touch? For example the classic L shape, if only the shells touch in the corner, can something "slide" between the two shapes or will it be perfectly solid?


