}
}
-void AssimpUtil::CreateBoneTree(BoneMap& bone_map, Bone* b, aiNode* n)
+void AssimpUtil::CreateBoneTree(BoneMap& bone_map, BoneNode* bn, aiNode* n)
{
- if (b == NULL)
+ if (bn == NULL)
return;
- ae::ConvertMat(b->m_NodeTrans, n->mTransformation);
+ Bone* b = bn->m_Bone;
+ if (b != NULL)
+ ae::ConvertMat(b->m_NodeTrans, n->mTransformation);
for (int i = 0; i < n->mNumChildren; ++i)
{
aiNode* nc = n->mChildren[i];
- Bone* bc = bone_map.Bones[nc->mName.C_Str()];
- b->m_Children.push_back(bc);
- CreateBoneTree(bone_map, bc, nc);
+ BoneNode* bnc = new BoneNode();
+ bnc->m_Bone = bone_map.Bones[nc->mName.C_Str()];
+ bn->m_Children.push_back(bnc);
+ CreateBoneTree(bone_map, bnc, nc);
}
}