[Bf-blender-cvs] [c3b754f] master: Alembic: only export face sets when required by the user.

Kévin Dietrich noreply at git.blender.org
Fri Sep 23 19:47:19 CEST 2016


Commit: c3b754f9bdd379acee1a5d6042b8d46cde4b18ad
Author: Kévin Dietrich
Date:   Fri Sep 23 19:44:51 2016 +0200
Branches: master
https://developer.blender.org/rBc3b754f9bdd379acee1a5d6042b8d46cde4b18ad

Alembic: only export face sets when required by the user.

Also remove deprecated face set code.

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

M	source/blender/alembic/intern/abc_mesh.cc
M	source/blender/alembic/intern/abc_mesh.h

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

diff --git a/source/blender/alembic/intern/abc_mesh.cc b/source/blender/alembic/intern/abc_mesh.cc
index 5a60587..00c8677 100644
--- a/source/blender/alembic/intern/abc_mesh.cc
+++ b/source/blender/alembic/intern/abc_mesh.cc
@@ -309,7 +309,6 @@ AbcMeshWriter::AbcMeshWriter(Scene *scene,
 {
 	m_is_animated = isAnimated();
 	m_subsurf_mod = NULL;
-	m_has_per_face_materials = false;
 	m_is_subd = false;
 
 	/* If the object is static, use the default static time sampling. */
@@ -406,8 +405,8 @@ void AbcMeshWriter::writeMesh(DerivedMesh *dm)
 	get_vertices(dm, points);
 	get_topology(dm, poly_verts, loop_counts, smooth_normal);
 
-	if (m_first_frame) {
-		writeCommonData(dm, m_mesh_schema);
+	if (m_first_frame && m_settings.export_face_sets) {
+		writeFaceSets(dm, m_mesh_schema);
 	}
 
 	m_mesh_sample = OPolyMeshSchema::Sample(V3fArraySample(points),
@@ -475,9 +474,8 @@ void AbcMeshWriter::writeSubD(DerivedMesh *dm)
 	get_topology(dm, poly_verts, loop_counts, smooth_normal);
 	get_creases(dm, crease_indices, crease_lengths, crease_sharpness);
 
-	if (m_first_frame) {
-		/* create materials' face_sets */
-		writeCommonData(dm, m_subdiv_schema);
+	if (m_first_frame && m_settings.export_face_sets) {
+		writeFaceSets(dm, m_subdiv_schema);
 	}
 
 	m_subdiv_sample = OSubDSchema::Sample(V3fArraySample(points),
@@ -514,7 +512,7 @@ void AbcMeshWriter::writeSubD(DerivedMesh *dm)
 }
 
 template <typename Schema>
-void AbcMeshWriter::writeCommonData(DerivedMesh *dm, Schema &schema)
+void AbcMeshWriter::writeFaceSets(DerivedMesh *dm, Schema &schema)
 {
 	std::map< std::string, std::vector<int32_t> > geo_groups;
 	getGeoGroups(dm, geo_groups);
@@ -588,18 +586,6 @@ void AbcMeshWriter::writeArbGeoParams(DerivedMesh *dm)
 			write_custom_data(m_mesh_schema.getArbGeomParams(), m_custom_data_config, &dm->loopData, CD_MLOOPCOL);
 		}
 	}
-
-	if (m_first_frame && m_has_per_face_materials) {
-		std::vector<int32_t> material_indices;
-
-		if (m_settings.export_face_sets) {
-			get_material_indices(dm, material_indices);
-
-			OFaceSetSchema::Sample samp;
-			samp.setFaces(Int32ArraySample(material_indices));
-			m_face_set.getSchema().set(samp);
-		}
-	}
 }
 
 void AbcMeshWriter::getVelocities(DerivedMesh *dm, std::vector<Imath::V3f> &vels)
diff --git a/source/blender/alembic/intern/abc_mesh.h b/source/blender/alembic/intern/abc_mesh.h
index 9dc222e..41abe78 100644
--- a/source/blender/alembic/intern/abc_mesh.h
+++ b/source/blender/alembic/intern/abc_mesh.h
@@ -39,8 +39,6 @@ class AbcMeshWriter : public AbcObjectWriter {
 	Alembic::AbcGeom::OSubDSchema m_subdiv_schema;
 	Alembic::AbcGeom::OSubDSchema::Sample m_subdiv_sample;
 
-	bool m_has_per_face_materials;
-	Alembic::AbcGeom::OFaceSet m_face_set;
 	Alembic::Abc::OArrayProperty m_mat_indices;
 
 	bool m_is_animated;
@@ -87,7 +85,7 @@ private:
 	void getVelocities(DerivedMesh *dm, std::vector<Imath::V3f> &vels);
 
 	template <typename Schema>
-	void writeCommonData(DerivedMesh *dm, Schema &schema);
+	void writeFaceSets(DerivedMesh *dm, Schema &schema);
 };
 
 /* ************************************************************************** */




More information about the Bf-blender-cvs mailing list