- Bugfix again: SkeletonMeshBuilder avoids validation warning for empty bones now.
git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@199 67173fc5-114c-0410-ac8e-9d2fd5bffc1fpull/1/head
parent
093fa3377f
commit
d618a57428
|
@ -162,6 +162,9 @@ void SkeletonMeshBuilder::CreateGeometry( const aiNode* pNode)
|
|||
mFaces.push_back( Face( vertexStartIndex + 21, vertexStartIndex + 22, vertexStartIndex + 23));
|
||||
}
|
||||
|
||||
unsigned int numVertices = mVertices.size() - vertexStartIndex;
|
||||
if( numVertices > 0)
|
||||
{
|
||||
// create a bone affecting all the newly created vertices
|
||||
aiBone* bone = new aiBone;
|
||||
mBones.push_back( bone);
|
||||
|
@ -173,7 +176,6 @@ void SkeletonMeshBuilder::CreateGeometry( const aiNode* pNode)
|
|||
bone->mOffsetMatrix = aiMatrix4x4( parent->mTransformation).Inverse() * bone->mOffsetMatrix;
|
||||
|
||||
// add all the vertices to the bone's influences
|
||||
unsigned int numVertices = mVertices.size() - vertexStartIndex;
|
||||
bone->mNumWeights = numVertices;
|
||||
bone->mWeights = new aiVertexWeight[numVertices];
|
||||
for( unsigned int a = 0; a < numVertices; a++)
|
||||
|
@ -184,6 +186,7 @@ void SkeletonMeshBuilder::CreateGeometry( const aiNode* pNode)
|
|||
aiMatrix4x4 boneToMeshTransform = aiMatrix4x4( bone->mOffsetMatrix).Inverse();
|
||||
for( unsigned int a = vertexStartIndex; a < mVertices.size(); a++)
|
||||
mVertices[a] = boneToMeshTransform * mVertices[a];
|
||||
}
|
||||
|
||||
// and finally recurse into the children list
|
||||
for( unsigned int a = 0; a < pNode->mNumChildren; a++)
|
||||
|
|
Loading…
Reference in New Issue