Crashfix Physique export

This commit is contained in:
kaetemi 2014-07-29 15:23:06 +02:00
parent a3b0f16823
commit 00881eed6c

View file

@ -961,40 +961,43 @@ INode* CExportNel::getSkeletonRootBone (INode& node)
// Get a vertex interface // Get a vertex interface
IPhyVertexExport *vertexInterface=localData->GetVertexInterface (vtx); IPhyVertexExport *vertexInterface=localData->GetVertexInterface (vtx);
// Check if it is a rigid vertex or a blended vertex if (vertexInterface)
int type=vertexInterface->GetVertexType ();
if (type==RIGID_TYPE)
{ {
// this is a rigid vertex // Check if it is a rigid vertex or a blended vertex
IPhyRigidVertex *rigidInterface=(IPhyRigidVertex*)vertexInterface; int type=vertexInterface->GetVertexType ();
if (type==RIGID_TYPE)
// Get the bone
INode *newBone=rigidInterface->GetNode();
// Get the root of the hierarchy
ret=getRoot (newBone);
found=true;
break;
}
else
{
// It must be a blendable vertex
nlassert (type==RIGID_BLENDED_TYPE);
IPhyBlendedRigidVertex *blendedInterface=(IPhyBlendedRigidVertex*)vertexInterface;
// For each bones
uint bone;
uint count=(uint)blendedInterface->GetNumberNodes ();
for (bone=0; bone<count; bone++)
{ {
// Get the bone pointer // this is a rigid vertex
INode *newBone=blendedInterface->GetNode(bone); IPhyRigidVertex *rigidInterface=(IPhyRigidVertex*)vertexInterface;
// Get the bone
INode *newBone=rigidInterface->GetNode();
// Get the root of the hierarchy // Get the root of the hierarchy
ret=getRoot (newBone); ret=getRoot (newBone);
found=true; found=true;
break; break;
} }
else
{
// It must be a blendable vertex
nlassert (type==RIGID_BLENDED_TYPE);
IPhyBlendedRigidVertex *blendedInterface=(IPhyBlendedRigidVertex*)vertexInterface;
// For each bones
uint bone;
uint count=(uint)blendedInterface->GetNumberNodes ();
for (bone=0; bone<count; bone++)
{
// Get the bone pointer
INode *newBone=blendedInterface->GetNode(bone);
// Get the root of the hierarchy
ret=getRoot (newBone);
found=true;
break;
}
}
} }
// Release vertex interfaces // Release vertex interfaces