diff options
author | Nathan Letwory <nathan@letworyinteractive.com> | 2012-05-01 03:51:09 +0400 |
---|---|---|
committer | Nathan Letwory <nathan@letworyinteractive.com> | 2012-05-01 03:51:09 +0400 |
commit | 7cb037db8628c0522fb8c143d461e2054b616771 (patch) | |
tree | bfc50dcba09730153f5b167f60e3b6ba4a087c07 /source/blender/collada/AnimationImporter.cpp | |
parent | 5369a867a32e74bd481d288b9ddb5f2440da2a9f (diff) |
Apply patch [#31179] COLLADA IMPORT instanced geometry improvement
from Martijn Berger
This patch improves importing instanced geometry consisting of multiple nodes.
Diffstat (limited to 'source/blender/collada/AnimationImporter.cpp')
-rw-r--r-- | source/blender/collada/AnimationImporter.cpp | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/source/blender/collada/AnimationImporter.cpp b/source/blender/collada/AnimationImporter.cpp index 6ba0aeb2850..6a66f1fb817 100644 --- a/source/blender/collada/AnimationImporter.cpp +++ b/source/blender/collada/AnimationImporter.cpp @@ -779,15 +779,15 @@ void AnimationImporter::apply_matrix_curves( Object * ob, std::vector<FCurve*>& } void AnimationImporter::translate_Animations ( COLLADAFW::Node * node, - std::map<COLLADAFW::UniqueId, COLLADAFW::Node*>& root_map, - std::map<COLLADAFW::UniqueId, Object*>& object_map, - std::map<COLLADAFW::UniqueId, const COLLADAFW::Object*> FW_object_map) + std::map<COLLADAFW::UniqueId, COLLADAFW::Node*>& root_map, + std::multimap<COLLADAFW::UniqueId, Object*>& object_map, + std::map<COLLADAFW::UniqueId, const COLLADAFW::Object*> FW_object_map) { AnimationImporter::AnimMix* animType = get_animation_type(node, FW_object_map ); bool is_joint = node->getType() == COLLADAFW::Node::JOINT; COLLADAFW::Node *root = root_map.find(node->getUniqueId()) == root_map.end() ? node : root_map[node->getUniqueId()]; - Object *ob = is_joint ? armature_importer->get_armature_for_joint(root) : object_map[node->getUniqueId()]; + Object *ob = is_joint ? armature_importer->get_armature_for_joint(root) : object_map.find(node->getUniqueId())->second; if (!ob) { fprintf(stderr, "cannot find Object for Node with id=\"%s\"\n", node->getOriginalId().c_str()); return; |