[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