Minor changes to conversion result numbers

This commit is contained in:
Thomas Krijnen
2026-06-23 20:25:57 +02:00
parent dad4cc8a3c
commit c592018b3f
6 changed files with 76 additions and 87 deletions
@@ -11,11 +11,10 @@
using IfcGeom::OpaqueNumber;
using IfcGeom::OpaqueCoordinate;
using IfcGeom::NumberNativeDouble;
using IfcGeom::ConversionResultShape;
#ifdef IFOPSH_SIMPLE_KERNEL
#define NumberType NumberNativeDouble
#define NumberType OpaqueNumber
#else
using ifcopenshell::geometry::NumberEpeck;
#define NumberType NumberEpeck
@@ -103,6 +102,15 @@ namespace {
});
}
void apply_normalized_plane_map(const plane_map<Kernel_>& mp, std::list<cgal_plane_t>& planes) {
for (auto& plane : planes) {
auto it = mp.find(normalized_plane_for_map<Kernel_>(plane));
if (it != mp.end()) {
plane = it->second;
}
}
}
cgal_vector_t wire_normal(const cgal_wire_t& wire) {
typename Kernel_::FT a(0), b(0), c(0);
if (wire.size() < 3) {
@@ -1196,6 +1204,7 @@ std::size_t ifcopenshell::geometry::CgalShapeHalfSpaceDecomposition::map(OpaqueC
std::size_t mutated = 0;
auto nw = shape_->map(mp, mutated);
shape_ = std::move(nw);
apply_normalized_plane_map(mp, planes_);
return mutated;
}
@@ -1214,6 +1223,7 @@ std::size_t ifcopenshell::geometry::CgalShapeHalfSpaceDecomposition::map(const s
std::size_t mutated = 0;
auto nw = shape_->map(mp, mutated);
shape_ = std::move(nw);
apply_normalized_plane_map(mp, planes_);
return mutated;
}
@@ -31,7 +31,6 @@
using IfcGeom::OpaqueNumber;
using IfcGeom::OpaqueCoordinate;
using IfcGeom::NumberNativeDouble;
using IfcGeom::ConversionResultShape;
namespace {
@@ -390,7 +389,7 @@ OpaqueNumber ifcopenshell::geometry::OpenCascadeShape::OpenCascadeShape::length(
GProp_GProps prop;
BRepGProp::LinearProperties(shape_, prop);
double l = prop.Mass();
return NumberNativeDouble(l);
return OpaqueNumber(l);
}
OpaqueNumber ifcopenshell::geometry::OpenCascadeShape::area()
@@ -398,7 +397,7 @@ OpaqueNumber ifcopenshell::geometry::OpenCascadeShape::area()
GProp_GProps prop;
BRepGProp::SurfaceProperties(shape_, prop);
double l = prop.Mass();
return NumberNativeDouble(l);
return OpaqueNumber(l);
}
OpaqueNumber ifcopenshell::geometry::OpenCascadeShape::volume()
@@ -406,7 +405,7 @@ OpaqueNumber ifcopenshell::geometry::OpenCascadeShape::volume()
GProp_GProps prop;
BRepGProp::VolumeProperties(shape_, prop);
double l = prop.Mass();
return NumberNativeDouble(l);
return OpaqueNumber(l);
}
#include <Geom_Plane.hxx>
@@ -419,9 +418,9 @@ OpaqueCoordinate<3> ifcopenshell::geometry::OpenCascadeShape::position()
if (plane) {
auto loc = plane->Location();
return OpaqueCoordinate<3>(
NumberNativeDouble(loc.X()),
NumberNativeDouble(loc.Y()),
NumberNativeDouble(loc.Z())
OpaqueNumber(loc.X()),
OpaqueNumber(loc.Y()),
OpaqueNumber(loc.Z())
);
}
}
@@ -436,9 +435,9 @@ OpaqueCoordinate<3> ifcopenshell::geometry::OpenCascadeShape::axis()
if (plane) {
auto dir = plane->Axis().Direction();
return OpaqueCoordinate<3>(
NumberNativeDouble(dir.X()),
NumberNativeDouble(dir.Y()),
NumberNativeDouble(dir.Z())
OpaqueNumber(dir.X()),
OpaqueNumber(dir.Y()),
OpaqueNumber(dir.Z())
);
}
}
@@ -454,10 +453,10 @@ OpaqueCoordinate<4> ifcopenshell::geometry::OpenCascadeShape::plane_equation()
double a, b, c, d;
plane->Pln().Coefficients(a, b, c, d);
return OpaqueCoordinate<4>(
NumberNativeDouble(a),
NumberNativeDouble(b),
NumberNativeDouble(c),
NumberNativeDouble(d)
OpaqueNumber(a),
OpaqueNumber(b),
OpaqueNumber(c),
OpaqueNumber(d)
);
}
}