Improve IfcFixedReferenceSweptAreaSolid handling and add swept shape tests

Enhances geometry processing for swept area solids by integrating matrix transformations. Includes new utility `_is_swept_shape` for topology analysis, extends testing with `load_ifc_occ_shape`, and updates schema versions in CMake presets.
This commit is contained in:
krande
2025-08-26 21:24:40 +02:00
parent 234cb76cd7
commit 2369f72798
3 changed files with 155 additions and 5 deletions
@@ -115,9 +115,16 @@ taxonomy::ptr mapping::map_impl(const IfcSchema::IfcFixedReferenceSweptAreaSolid
}
}
} else {
taxonomy::matrix4::ptr matrix;
bool has_position = true;
has_position = inst->Position() != nullptr;
auto pos = inst->Position();
if (has_position) {
matrix = taxonomy::cast<taxonomy::matrix4>(map(inst->Position()));
}
// TODO: Implement handling for non-alignment curves using sweep_along_curve
auto sweep = taxonomy::make<taxonomy::sweep_along_curve>(
nullptr, // matrix4::ptr - no transformation needed
matrix, // matrix4::ptr - no transformation needed
profile, // face::ptr - the profile to sweep
nullptr, // item::ptr surface - not used for fixed reference sweep
dir // item::ptr curve - the directrix curve