From 625c757326529f787579a2770b404bc19baa3cb2 Mon Sep 17 00:00:00 2001 From: Thomas Krijnen Date: Sun, 4 Oct 2020 13:08:46 +0200 Subject: [PATCH] incorporate halfspace orientation --- src/ifcgeom/kernels/cgal/CgalKernel.cpp | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/ifcgeom/kernels/cgal/CgalKernel.cpp b/src/ifcgeom/kernels/cgal/CgalKernel.cpp index c2ce421ca9..3327327f14 100644 --- a/src/ifcgeom/kernels/cgal/CgalKernel.cpp +++ b/src/ifcgeom/kernels/cgal/CgalKernel.cpp @@ -1584,8 +1584,17 @@ bool CgalKernel::convert_impl(const taxonomy::boolean_result* br, ifcopenshell:: } }); - Kernel_::Point_3 lower(uvw_min[0] - eps, uvw_min[1] - eps, 0.); - Kernel_::Point_3 upper(uvw_max[0] + eps, uvw_max[1] + eps, uvw_max[2] + eps); + double wmin, wmax; + if (p.orientation.get_value_or(true)) { + wmin = 0.; + wmax = uvw_max[2] + eps; + } else { + wmin = uvw_min[2] - eps; + wmax = 0.; + } + + Kernel_::Point_3 lower(uvw_min[0] - eps, uvw_min[1] - eps, wmin); + Kernel_::Point_3 upper(uvw_max[0] + eps, uvw_max[1] + eps, wmax); cgal_shape_t box = utils::create_cube(lower, upper); cgal_placement_t pl; convert_placement(p.matrix, pl);