[Bf-blender-cvs] [5176197] alembic_basic_io: Slightly optimize object hierarchy creation.
Kévin Dietrich
noreply at git.blender.org
Mon May 23 12:52:42 CEST 2016
Commit: 5176197685cf3a18f51c22f6318a65d9228bdb4e
Author: Kévin Dietrich
Date: Mon May 23 12:36:05 2016 +0200
Branches: alembic_basic_io
https://developer.blender.org/rB5176197685cf3a18f51c22f6318a65d9228bdb4e
Slightly optimize object hierarchy creation.
===================================================================
M source/blender/alembic/intern/alembic_capi.cc
===================================================================
diff --git a/source/blender/alembic/intern/alembic_capi.cc b/source/blender/alembic/intern/alembic_capi.cc
index 68a759e..657d72b 100644
--- a/source/blender/alembic/intern/alembic_capi.cc
+++ b/source/blender/alembic/intern/alembic_capi.cc
@@ -361,10 +361,16 @@ static void create_hierarchy(bContext *C, AbcObjectReader *root)
std::vector<std::string> parts;
split(full_name, "/", parts);
+ /* object doesn't have any parents, since its path only contain its name,
+ * and its data name. */
+ if (parts.size() == 2) {
+ return;
+ }
+
Object *parent = NULL;
- std::vector<std::string>::iterator iter;
- for (iter = parts.begin(); iter != parts.end(); ++iter) {
+ std::vector<std::string>::reverse_iterator iter;
+ for (iter = parts.rbegin() + 2; iter != parts.rend(); ++iter) {
parent = find_object(C, *iter);
if (parent != NULL && root->object() != parent) {
@@ -374,7 +380,8 @@ static void create_hierarchy(bContext *C, AbcObjectReader *root)
DAG_id_tag_update(&ob->id, OB_RECALC_OB);
DAG_relations_tag_update(CTX_data_main(C));
WM_main_add_notifier(NC_OBJECT | ND_PARENT, ob);
- break;
+
+ return;
}
}
}
More information about the Bf-blender-cvs
mailing list