From a38a3ad2fb1f7694f4b4de591d0d0f0aaf4782d3 Mon Sep 17 00:00:00 2001 From: Thomas Krijnen Date: Wed, 9 Oct 2024 09:34:52 +0200 Subject: [PATCH] Fix funky mep geometry #5255 --- src/ifcgeom/mapping/IfcCartesianTransformationOperator2D.cpp | 4 +++- src/ifcgeom/mapping/IfcCartesianTransformationOperator3D.cpp | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/ifcgeom/mapping/IfcCartesianTransformationOperator2D.cpp b/src/ifcgeom/mapping/IfcCartesianTransformationOperator2D.cpp index 34d31b0903..7271d9c5a0 100644 --- a/src/ifcgeom/mapping/IfcCartesianTransformationOperator2D.cpp +++ b/src/ifcgeom/mapping/IfcCartesianTransformationOperator2D.cpp @@ -47,7 +47,7 @@ taxonomy::ptr mapping::map_impl(const IfcSchema::IfcCartesianTransformationOpera } double scale1, scale2; - scale1 = scale2 = 1.0; + scale1 = 1.0; if (inst->Scale()) { scale1 = *inst->Scale(); @@ -55,6 +55,8 @@ taxonomy::ptr mapping::map_impl(const IfcSchema::IfcCartesianTransformationOpera if (inst->as()) { auto nu = inst->as(); scale2 = nu->Scale2() ? *nu->Scale2() : scale1; + } else { + scale2 = scale1; } m->components() << diff --git a/src/ifcgeom/mapping/IfcCartesianTransformationOperator3D.cpp b/src/ifcgeom/mapping/IfcCartesianTransformationOperator3D.cpp index 1a4c3f5d4e..7db32b6083 100644 --- a/src/ifcgeom/mapping/IfcCartesianTransformationOperator3D.cpp +++ b/src/ifcgeom/mapping/IfcCartesianTransformationOperator3D.cpp @@ -50,7 +50,7 @@ taxonomy::ptr mapping::map_impl(const IfcSchema::IfcCartesianTransformationOpera } double scale1, scale2, scale3; - scale1 = scale2 = scale3 = 1.; + scale1 = 1.; if (inst->Scale()) { scale1 = *inst->Scale(); @@ -59,6 +59,8 @@ taxonomy::ptr mapping::map_impl(const IfcSchema::IfcCartesianTransformationOpera auto nu = inst->as(); scale2 = nu->Scale2() ? *nu->Scale2() : scale1; scale3 = nu->Scale3() ? *nu->Scale3() : scale1; + } else { + scale2 = scale3 = scale1; } if (scale1 != 1.) {