From ef0e9d9eb4d1e6c2600bd9b636d341e1008cf6f0 Mon Sep 17 00:00:00 2001 From: Balleux Benjamin Date: Tue, 9 May 2017 15:55:37 +0200 Subject: [PATCH] Feature : Handle every IfcSlabTypeEnum (3 were missing) and sort the floors by elevation --- src/ifcconvert/ColladaSerializer.cpp | 38 ++++++++++++++++++---------- 1 file changed, 24 insertions(+), 14 deletions(-) diff --git a/src/ifcconvert/ColladaSerializer.cpp b/src/ifcconvert/ColladaSerializer.cpp index 7097b6febd..2015e7791c 100644 --- a/src/ifcconvert/ColladaSerializer.cpp +++ b/src/ifcconvert/ColladaSerializer.cpp @@ -373,20 +373,30 @@ void ColladaSerializer::ColladaExporter::write(const IfcGeom::TriangulationEleme std::string ColladaSerializer::ColladaExporter::differentiateSlabTypes(const IfcGeom::TriangulationElement* o) { IfcSlab* slab = (IfcSlab*)o->product(); - switch (slab->PredefinedType()){ - case (IfcSlabTypeEnum::IfcSlabType_ROOF): - return "_Roof"; - break; - case (IfcSlabTypeEnum::IfcSlabType_LANDING): - return "_Landing"; - break; - case (IfcSlabTypeEnum::IfcSlabType_BASESLAB): - return "_BasesLab"; - break; - default: - return "_Unknown"; - break; - } + switch (slab->PredefinedType()) + { + case (IfcSlabTypeEnum::IfcSlabType_FLOOR): + return "_Floor"; + break; + case (IfcSlabTypeEnum::IfcSlabType_ROOF): + return "_Roof"; + break; + case (IfcSlabTypeEnum::IfcSlabType_LANDING): + return "_Landing"; + break; + case (IfcSlabTypeEnum::IfcSlabType_BASESLAB): + return "_BaseSlab"; + break; + case (IfcSlabTypeEnum::IfcSlabType_USERDEFINED): + return "_" + slab->ObjectType(); + break; + case (IfcSlabTypeEnum::IfcSlabType_NOTDEFINED): + return "_NotDefined"; + break; + default: + return "_Unknown"; + break; + } } void ColladaSerializer::ColladaExporter::endDocument() {