Skip to content

Commit

Permalink
Merge branch 'fix/3MFWriter' of https://github.com/nilsiism/Cura
Browse files Browse the repository at this point in the history
  • Loading branch information
nallath committed Aug 5, 2024
2 parents 9bc283f + be4d4d4 commit 4a5aecc
Showing 1 changed file with 9 additions and 7 deletions.
16 changes: 9 additions & 7 deletions plugins/3MFWriter/ThreeMFWriter.py
Original file line number Diff line number Diff line change
Expand Up @@ -114,22 +114,24 @@ def _convertUMNodeToSavitarNode(um_node,

mesh_data = um_node.getMeshData()

node_matrix = um_node.getLocalTransformation()
node_matrix.preMultiply(transformation)

if center_mesh:
node_matrix = Matrix()
center_matrix = Matrix()
# compensate for original center position, if object(s) is/are not around its zero position
if mesh_data is not None:
extents = mesh_data.getExtents()
if extents is not None:
# We use a different coordinate space while writing, so flip Z and Y
center_vector = Vector(extents.center.x, extents.center.y, extents.center.z)
node_matrix.setByTranslation(center_vector)
node_matrix.multiply(um_node.getLocalTransformation())
else:
node_matrix = um_node.getLocalTransformation()
center_vector = Vector(-extents.center.x, -extents.center.y, -extents.center.z)
center_matrix.setByTranslation(center_vector)
node_matrix.preMultiply(center_matrix)

matrix_string = ThreeMFWriter._convertMatrixToString(node_matrix.preMultiply(transformation))
matrix_string = ThreeMFWriter._convertMatrixToString(node_matrix)

savitar_node.setTransformation(matrix_string)

if mesh_data is not None:
savitar_node.getMeshData().setVerticesFromBytes(mesh_data.getVerticesAsByteArray())
indices_array = mesh_data.getIndicesAsByteArray()
Expand Down

0 comments on commit 4a5aecc

Please sign in to comment.