|
@@ -222,6 +222,7 @@ void ColladaParser::ReadStructure()
|
|
}
|
|
}
|
|
|
|
|
|
PostProcessRootAnimations();
|
|
PostProcessRootAnimations();
|
|
|
|
+ PostProcessControllers();
|
|
}
|
|
}
|
|
|
|
|
|
// ------------------------------------------------------------------------------------------------
|
|
// ------------------------------------------------------------------------------------------------
|
|
@@ -360,6 +361,21 @@ void ColladaParser::ReadAnimationClipLibrary()
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+void ColladaParser::PostProcessControllers()
|
|
|
|
+{
|
|
|
|
+ for (ControllerLibrary::iterator it = mControllerLibrary.begin(); it != mControllerLibrary.end(); ++it)
|
|
|
|
+ {
|
|
|
|
+ std::string meshId = it->second.mMeshId;
|
|
|
|
+ ControllerLibrary::iterator findItr = mControllerLibrary.find(meshId);
|
|
|
|
+ while(findItr != mControllerLibrary.end()) {
|
|
|
|
+ meshId = findItr->second.mMeshId;
|
|
|
|
+ findItr = mControllerLibrary.find(meshId);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ it->second.mMeshId = meshId;
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+
|
|
// ------------------------------------------------------------------------------------------------
|
|
// ------------------------------------------------------------------------------------------------
|
|
// Re-build animations from animation clip library, if present, otherwise combine single-channel animations
|
|
// Re-build animations from animation clip library, if present, otherwise combine single-channel animations
|
|
void ColladaParser::PostProcessRootAnimations()
|
|
void ColladaParser::PostProcessRootAnimations()
|