Take into account tapered extrusion position

This commit is contained in:
Thomas Krijnen
2024-07-21 11:54:48 +02:00
parent 889d3c5451
commit f683fd220f
@@ -48,6 +48,17 @@ taxonomy::ptr mapping::map_impl(const IfcSchema::IfcExtrudedAreaSolidTapered* in
auto old = loft->children.back()->matrix->ccomponents();
loft->children.back()->matrix->components() = old * end_profile;
taxonomy::matrix4::ptr matrix;
bool has_position = true;
#ifdef SCHEMA_IfcSweptAreaSolid_Position_IS_OPTIONAL
has_position = inst->Position() != nullptr;
#endif
if (has_position) {
matrix = taxonomy::cast<taxonomy::matrix4>(map(inst->Position()));
}
loft->matrix = matrix;
return loft;
}
#endif