If material name is empty when writing collada file, name it as a missing material. Logger::Notice() objects that do not have a material assigned.

This commit is contained in:
Michael Sundqvist
2018-03-28 17:33:46 +03:00
committed by Thomas Krijnen
parent fe1cb9e92b
commit e7a8a97639
2 changed files with 13 additions and 0 deletions
+10
View File
@@ -313,6 +313,11 @@ void ColladaSerializer::ColladaExporter::ColladaMaterials::ColladaEffects::write
{
std::string material_name = (serializer->settings().get(SerializerSettings::USE_MATERIAL_NAMES)
? material.original_name() : material.name());
if (material_name.empty()) {
material_name = "missing-material-" + material.name();
}
collada_id(material_name);
openEffect(material_name + "-fx");
COLLADASW::EffectProfile effect(mSW);
@@ -360,6 +365,11 @@ void ColladaSerializer::ColladaExporter::ColladaMaterials::write() {
BOOST_FOREACH(const IfcGeom::Material& material, materials) {
std::string material_name = (serializer->settings().get(SerializerSettings::USE_MATERIAL_NAMES)
? material.original_name() : material.name());
if (material_name.empty()) {
material_name = "missing-material-" + material.name();
}
std::string material_name_unescaped = material_name; // workaround double-escaping that would occur in addInstanceEffect()
IfcUtil::sanitate_material_name(material_name_unescaped);
collada_id(material_name);
+3
View File
@@ -1455,6 +1455,9 @@ IfcGeom::BRepElement<P>* IfcGeom::Kernel::create_brep_for_representation_and_pro
}
}
}
else {
Logger::Notice("Object '" + product->Name() + "' (guid " + product->GlobalId() + " ) has no material!");
}
if (material_style_applied) {
representation_id_builder << "-material-" << single_material->entity->id();