From f683fd220f4055086ab7149b687856d8ad022ddb Mon Sep 17 00:00:00 2001 From: Thomas Krijnen Date: Sun, 21 Jul 2024 11:54:48 +0200 Subject: [PATCH] Take into account tapered extrusion position --- src/ifcgeom/mapping/IfcExtrudedAreaSolidTapered.cpp | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/ifcgeom/mapping/IfcExtrudedAreaSolidTapered.cpp b/src/ifcgeom/mapping/IfcExtrudedAreaSolidTapered.cpp index 45ad6c3009..60318f1b95 100644 --- a/src/ifcgeom/mapping/IfcExtrudedAreaSolidTapered.cpp +++ b/src/ifcgeom/mapping/IfcExtrudedAreaSolidTapered.cpp @@ -48,6 +48,17 @@ taxonomy::ptr mapping::map_impl(const IfcSchema::IfcExtrudedAreaSolidTapered* in auto old = loft->children.back()->matrix->ccomponents(); loft->children.back()->matrix->components() = old * end_profile; + taxonomy::matrix4::ptr matrix; + bool has_position = true; +#ifdef SCHEMA_IfcSweptAreaSolid_Position_IS_OPTIONAL + has_position = inst->Position() != nullptr; +#endif + if (has_position) { + matrix = taxonomy::cast(map(inst->Position())); + } + + loft->matrix = matrix; + return loft; } #endif