See #4652. Fix bug where using create_mesh won't work if you pass it a triangulation.

This commit is contained in:
Dion Moult
2024-05-10 22:39:56 +10:00
parent 69e21da60c
commit cd6eac3c8f
+7 -5
View File
@@ -1912,11 +1912,7 @@ class IfcImporter:
and geometry.verts and geometry.verts
and self.is_point_far_away((geometry.verts[0], geometry.verts[1], geometry.verts[2])) and self.is_point_far_away((geometry.verts[0], geometry.verts[1], geometry.verts[2]))
): ):
m = shape.transformation.matrix.data offset_point = np.array(
mat = np.array(
([m[0], m[3], m[6], m[9]], [m[1], m[4], m[7], m[10]], [m[2], m[5], m[8], m[11]], [0, 0, 0, 1])
)
offset_point = np.linalg.inv(mat) @ np.array(
( (
float(props.blender_eastings), float(props.blender_eastings),
float(props.blender_northings), float(props.blender_northings),
@@ -1924,6 +1920,12 @@ class IfcImporter:
0.0, 0.0,
) )
) )
if geometry != shape:
m = shape.transformation.matrix.data
mat = np.array(
([m[0], m[3], m[6], m[9]], [m[1], m[4], m[7], m[10]], [m[2], m[5], m[8], m[11]], [0, 0, 0, 1])
)
offset_point = np.linalg.inv(mat) @ offset_point
verts = [None] * len(geometry.verts) verts = [None] * len(geometry.verts)
for i in range(0, len(geometry.verts), 3): for i in range(0, len(geometry.verts), 3):
verts[i], verts[i + 1], verts[i + 2] = ifcopenshell.util.geolocation.enh2xyz( verts[i], verts[i + 1], verts[i + 2] = ifcopenshell.util.geolocation.enh2xyz(