chiark / gitweb /
Calculate the scaling over the proper matrix axis.
[cura.git] / Cura / gui / util / previewTools.py
index fb14f2d37e6dfb2dfc9108ca3223f16fb6b39fe3..903e1cd9d692112f5dc4fa64f053952a078a68b7 100644 (file)
@@ -337,9 +337,9 @@ class toolScale(object):
                scale = self._lineLineCrossingDistOnLine(p0, p1, numpy.array([0,0,0], numpy.float32), numpy.array(endPoint, numpy.float32)) / 15.0 / s
                if not wx.GetKeyState(wx.WXK_SHIFT):
                        objMatrix = self.parent.getObjectMatrix()
-                       scaleX = numpy.linalg.norm(objMatrix[0].getA().flatten())
-                       scaleY = numpy.linalg.norm(objMatrix[1].getA().flatten())
-                       scaleZ = numpy.linalg.norm(objMatrix[2].getA().flatten())
+                       scaleX = numpy.linalg.norm(objMatrix[::,0].getA().flatten())
+                       scaleY = numpy.linalg.norm(objMatrix[::,1].getA().flatten())
+                       scaleZ = numpy.linalg.norm(objMatrix[::,2].getA().flatten())
                        if self.node == 1 or not wx.GetKeyState(wx.WXK_CONTROL):
                                matrixScale = (scaleX + scaleY + scaleZ) / 3
                        elif self.node == 2:
@@ -378,9 +378,9 @@ class toolScale(object):
                if self.node == 4 and self.scale is not None:
                        sz *= self.scale
                objMatrix = self.parent.getObjectMatrix()
-               scaleX = numpy.linalg.norm(objMatrix[0].getA().flatten())
-               scaleY = numpy.linalg.norm(objMatrix[1].getA().flatten())
-               scaleZ = numpy.linalg.norm(objMatrix[2].getA().flatten())
+               scaleX = numpy.linalg.norm(objMatrix[::,0].getA().flatten())
+               scaleY = numpy.linalg.norm(objMatrix[::,1].getA().flatten())
+               scaleZ = numpy.linalg.norm(objMatrix[::,2].getA().flatten())
                if self.scale is not None:
                        scaleX *= self.scale
                        scaleY *= self.scale