[Bf-blender-cvs] [4c43667] alembic_basic_io: Cleanup: de-duplicate 'get_id_name'.

Kévin Dietrich noreply at git.blender.org
Thu Apr 7 13:35:46 CEST 2016


Commit: 4c436672b423a670e6a4d40edacf6185ed00a38f
Author: Kévin Dietrich
Date:   Thu Apr 7 12:32:12 2016 +0200
Branches: alembic_basic_io
https://developer.blender.org/rB4c436672b423a670e6a4d40edacf6185ed00a38f

Cleanup: de-duplicate 'get_id_name'.

===================================================================

M	source/blender/alembic/intern/abc_exporter.cc
M	source/blender/alembic/intern/abc_mesh.cc
M	source/blender/alembic/intern/abc_object.cc
M	source/blender/alembic/intern/abc_transform.cc
M	source/blender/alembic/intern/abc_util.cc
M	source/blender/alembic/intern/abc_util.h

===================================================================

diff --git a/source/blender/alembic/intern/abc_exporter.cc b/source/blender/alembic/intern/abc_exporter.cc
index 8a52ae8..5fe5153 100644
--- a/source/blender/alembic/intern/abc_exporter.cc
+++ b/source/blender/alembic/intern/abc_exporter.cc
@@ -276,7 +276,7 @@ void AbcExporter::createTransformWritersFlat()
 		Object *ob = base->object;
 
 		if (m_options.exportObject(ob) && objectIsShape(ob)) {
-			std::string name = get_object_name(ob);
+			std::string name = get_id_name(ob);
 			m_xforms[name] = new AbcTransformWriter(ob, m_archive.getTop(), 0, m_trans_sampling_index, m_options);
 		}
 
diff --git a/source/blender/alembic/intern/abc_mesh.cc b/source/blender/alembic/intern/abc_mesh.cc
index f159444..e39df4c 100644
--- a/source/blender/alembic/intern/abc_mesh.cc
+++ b/source/blender/alembic/intern/abc_mesh.cc
@@ -945,11 +945,7 @@ void AbcMeshWriter::getGeoGroups(
 			continue;
 		}
 
-		std::string name = (mat->id.name + 2);
-
-		std::replace(name.begin(), name.end(), ' ', '_');
-		std::replace(name.begin(), name.end(), '.', '_');
-		std::replace(name.begin(), name.end(), ':', '_');
+		std::string name = get_id_name(&mat->id);
 
 		if (geo_groups.find(name) == geo_groups.end()) {
 			std::vector<int32_t> faceArray;
@@ -962,10 +958,7 @@ void AbcMeshWriter::getGeoGroups(
 	if (geo_groups.size() == 0) {
 		Material *mat = give_current_material(m_object, 1);
 
-		std::string name = (mat) ? (mat->id.name + 2) : "default";
-		std::replace(name.begin(), name.end(), ' ', '_');
-		std::replace(name.begin(), name.end(), '.', '_');
-		std::replace(name.begin(), name.end(), ':', '_');
+		std::string name = (mat) ? get_id_name(&mat->id) : "default";
 
 		std::vector<int32_t> faceArray;
 
diff --git a/source/blender/alembic/intern/abc_object.cc b/source/blender/alembic/intern/abc_object.cc
index c530336..0de6873 100644
--- a/source/blender/alembic/intern/abc_object.cc
+++ b/source/blender/alembic/intern/abc_object.cc
@@ -54,7 +54,7 @@ AbcObjectWriter::AbcObjectWriter(Object *obj, AbcExportOptions &opts)
     , m_options(opts)
     , m_first_frame(true)
 {
-	m_name = get_object_name(m_object) + "Shape";
+	m_name = get_id_name(m_object) + "Shape";
 }
 
 AbcObjectWriter::~AbcObjectWriter()
diff --git a/source/blender/alembic/intern/abc_transform.cc b/source/blender/alembic/intern/abc_transform.cc
index f887135eb..1532242 100644
--- a/source/blender/alembic/intern/abc_transform.cc
+++ b/source/blender/alembic/intern/abc_transform.cc
@@ -50,7 +50,7 @@ AbcTransformWriter::AbcTransformWriter(Object *obj,
 		timeSampling = 0;
 	}
 
-    m_xform = OXform(abcParent, get_object_name(m_object), timeSampling);
+    m_xform = OXform(abcParent, get_id_name(m_object), timeSampling);
 	m_schema = m_xform.getSchema();
 
 	if (writerParent) {
diff --git a/source/blender/alembic/intern/abc_util.cc b/source/blender/alembic/intern/abc_util.cc
index 1468756a..8dd96cd 100644
--- a/source/blender/alembic/intern/abc_util.cc
+++ b/source/blender/alembic/intern/abc_util.cc
@@ -28,14 +28,18 @@ extern "C" {
 #include "DNA_object_types.h"
 }
 
-std::string get_object_name(Object *ob)
+std::string get_id_name(Object *ob)
 {
 	if (!ob) {
 		return "";
 	}
 
 	ID *id = reinterpret_cast<ID *>(ob);
+	return get_id_name(id);
+}
 
+std::string get_id_name(ID *id)
+{
 	std::string name(id->name + 2);
 	std::replace(name.begin(), name.end(), ' ', '_');
 	std::replace(name.begin(), name.end(), '.', '_');
@@ -46,17 +50,17 @@ std::string get_object_name(Object *ob)
 
 std::string get_object_dag_path_name(Object *ob, Object *dupli_parent)
 {
-    std::string name = get_object_name(ob);
+    std::string name = get_id_name(ob);
 
     Object *p = ob->parent;
 
     while (p) {
-        name = get_object_name(p) + "/" + name;
+        name = get_id_name(p) + "/" + name;
         p = p->parent;
     }
 
 	if (dupli_parent && (ob != dupli_parent)) {
-		name = get_object_name(dupli_parent) + "/" + name;
+		name = get_id_name(dupli_parent) + "/" + name;
 	}
 
     return name;
diff --git a/source/blender/alembic/intern/abc_util.h b/source/blender/alembic/intern/abc_util.h
index 621b3e1..3d75c6e 100644
--- a/source/blender/alembic/intern/abc_util.h
+++ b/source/blender/alembic/intern/abc_util.h
@@ -25,9 +25,11 @@
 
 #include <Alembic/Abc/All.h>
 
+struct ID;
 struct Object;
 
-std::string get_object_name(Object *ob);
+std::string get_id_name(ID *id);
+std::string get_id_name(Object *ob);
 std::string get_object_dag_path_name(Object *ob, Object *dupli_parent);
 
 bool object_selected(Object *ob);




More information about the Bf-blender-cvs mailing list