From 472482a87c96d9ede08b53c8c4b749128bb72b5f Mon Sep 17 00:00:00 2001 From: Richard Brice <37087370+RickBrice@users.noreply.github.com> Date: Tue, 18 Aug 2026 08:57:13 -0700 Subject: [PATCH] Fixes IfcSectionedSurface and IfcSectionedSolidHorizontal use of PBE.OffsetLateral and OffsetVertical by adding unit conversion factor. --- src/ifcgeom/mapping/IfcSectionedSolidHorizontal.cpp | 4 ++-- src/ifcgeom/mapping/IfcSectionedSurface.cpp | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/ifcgeom/mapping/IfcSectionedSolidHorizontal.cpp b/src/ifcgeom/mapping/IfcSectionedSolidHorizontal.cpp index 41f4b7bc94..9e325e9461 100644 --- a/src/ifcgeom/mapping/IfcSectionedSolidHorizontal.cpp +++ b/src/ifcgeom/mapping/IfcSectionedSolidHorizontal.cpp @@ -62,9 +62,9 @@ taxonomy::ptr mapping::map_impl(const IfcSchema::IfcSectionedSolidHorizontal* in longitudes.push_back(*pbde->DistanceAlong()->as(true) * length_unit_); Eigen::Vector3d po( - pbde->OffsetLateral().get_value_or(0.), + pbde->OffsetLateral().get_value_or(0.) * length_unit_, // @todo I don't understand whether vertical is an offset relative to the tangent plane or to the global XY plane - pbde->OffsetVertical().get_value_or(0.), + pbde->OffsetVertical().get_value_or(0.) * length_unit_, 0.); profile_offsets.push_back(po); diff --git a/src/ifcgeom/mapping/IfcSectionedSurface.cpp b/src/ifcgeom/mapping/IfcSectionedSurface.cpp index 0089fbe69d..217252e766 100644 --- a/src/ifcgeom/mapping/IfcSectionedSurface.cpp +++ b/src/ifcgeom/mapping/IfcSectionedSurface.cpp @@ -64,9 +64,9 @@ taxonomy::ptr mapping::map_impl(const IfcSchema::IfcSectionedSurface* inst) { longitudes.push_back(*pbde->DistanceAlong()->as(true) * length_unit_); Eigen::Vector3d po( - pbde->OffsetLateral().get_value_or(0.), + pbde->OffsetLateral().get_value_or(0.) * length_unit_, // @todo I don't understand whether vertical is an offset relative to the tangent plane or to the global XY plane - pbde->OffsetVertical().get_value_or(0.), + pbde->OffsetVertical().get_value_or(0.) * length_unit_, 0.); profile_offsets.push_back(po);