mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-09-20 06:58:56 +00:00
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:
committed by
Thomas Krijnen
parent
fe1cb9e92b
commit
e7a8a97639
@@ -313,6 +313,11 @@ void ColladaSerializer::ColladaExporter::ColladaMaterials::ColladaEffects::write
|
|||||||
{
|
{
|
||||||
std::string material_name = (serializer->settings().get(SerializerSettings::USE_MATERIAL_NAMES)
|
std::string material_name = (serializer->settings().get(SerializerSettings::USE_MATERIAL_NAMES)
|
||||||
? material.original_name() : material.name());
|
? material.original_name() : material.name());
|
||||||
|
|
||||||
|
if (material_name.empty()) {
|
||||||
|
material_name = "missing-material-" + material.name();
|
||||||
|
}
|
||||||
|
|
||||||
collada_id(material_name);
|
collada_id(material_name);
|
||||||
openEffect(material_name + "-fx");
|
openEffect(material_name + "-fx");
|
||||||
COLLADASW::EffectProfile effect(mSW);
|
COLLADASW::EffectProfile effect(mSW);
|
||||||
@@ -360,6 +365,11 @@ void ColladaSerializer::ColladaExporter::ColladaMaterials::write() {
|
|||||||
BOOST_FOREACH(const IfcGeom::Material& material, materials) {
|
BOOST_FOREACH(const IfcGeom::Material& material, materials) {
|
||||||
std::string material_name = (serializer->settings().get(SerializerSettings::USE_MATERIAL_NAMES)
|
std::string material_name = (serializer->settings().get(SerializerSettings::USE_MATERIAL_NAMES)
|
||||||
? material.original_name() : material.name());
|
? 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()
|
std::string material_name_unescaped = material_name; // workaround double-escaping that would occur in addInstanceEffect()
|
||||||
IfcUtil::sanitate_material_name(material_name_unescaped);
|
IfcUtil::sanitate_material_name(material_name_unescaped);
|
||||||
collada_id(material_name);
|
collada_id(material_name);
|
||||||
|
|||||||
@@ -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) {
|
if (material_style_applied) {
|
||||||
representation_id_builder << "-material-" << single_material->entity->id();
|
representation_id_builder << "-material-" << single_material->entity->id();
|
||||||
|
|||||||
Reference in New Issue
Block a user