Retain non-uniform scaling by assigning to gtrsf mat directly #6841

This commit is contained in:
Thomas Krijnen
2025-06-27 09:52:35 +02:00
parent 65ccc635d4
commit f1827d02ca
+6 -6
View File
@@ -204,12 +204,12 @@ IfcGeom::ConversionResultShape* IfcGeom::Representation::BRep::as_compound(bool
if (it->Placement()->components_) { if (it->Placement()->components_) {
gp_Trsf tr; gp_Trsf tr;
const auto& m = it->Placement()->ccomponents(); const auto& m = it->Placement()->ccomponents();
tr.SetValues( trsf.SetVectorialPart(gp_Mat(
m(0, 0), m(0, 1), m(0, 2), m(0, 3), m(0, 0), m(0, 1), m(0, 2),
m(1, 0), m(1, 1), m(1, 2), m(1, 3), m(1, 0), m(1, 1), m(1, 2),
m(2, 0), m(2, 1), m(2, 2), m(2, 3) m(2, 0), m(2, 1), m(2, 2)
); ));
trsf = tr; trsf.SetTranslationPart(gp_XYZ(m(0, 3), m(1, 3), m(2, 3)));
} }
if (!force_meters && settings().get<ifcopenshell::geometry::settings::ConvertBackUnits>().get()) { if (!force_meters && settings().get<ifcopenshell::geometry::settings::ConvertBackUnits>().get()) {