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

Also remove deprecated face set code.
This commit is contained in:
Kévin Dietrich 2016-09-23 19:44:51 +02:00
parent 4e3578f470
commit c3b754f9bd
2 changed files with 6 additions and 22 deletions

View File

@ -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)

View File

@ -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);
};
/* ************************************************************************** */