From: daid303 Date: Thu, 11 Apr 2013 13:12:14 +0000 (+0200) Subject: Add reset scale and rotation. Add placeholders for lay-flat and scale-up. X-Git-Tag: 13.05~112 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=8201c4b6aa3bf21ddd86f6d8825e5587d5c0801f;p=cura.git Add reset scale and rotation. Add placeholders for lay-flat and scale-up. --- diff --git a/Cura/gui/sceneView.py b/Cura/gui/sceneView.py index 91b49e7e..878e5ee3 100644 --- a/Cura/gui/sceneView.py +++ b/Cura/gui/sceneView.py @@ -164,22 +164,22 @@ class SceneView(openglGui.glGuiPanel): def OnRotateReset(self, button): if self._selectedObj is None: return - pass + self._selectedObj.resetRotation() def OnLayFlat(self, button): if self._selectedObj is None: return - pass + self._selectedObj.layFlat() def OnScaleReset(self, button): if self._selectedObj is None: return - pass + self._selectedObj.resetScale() def OnScaleMax(self, button): if self._selectedObj is None: return - pass + self._selectedObj.scaleUpTo(self._machineSize) def OnMirror(self, axis): if self._selectedObj is None: diff --git a/Cura/util/mesh.py b/Cura/util/mesh.py index 1bf3f6ac..f4d988d5 100644 --- a/Cura/util/mesh.py +++ b/Cura/util/mesh.py @@ -108,6 +108,24 @@ class printableObject(object): matrix[axis][axis] = scale self.applyMatrix(numpy.matrix(matrix, numpy.float64)) + def resetScale(self): + x = 1/numpy.linalg.norm(self._matrix[::,0].getA().flatten()) + y = 1/numpy.linalg.norm(self._matrix[::,1].getA().flatten()) + z = 1/numpy.linalg.norm(self._matrix[::,2].getA().flatten()) + self.applyMatrix(numpy.matrix([[x,0,0],[0,y,0],[0,0,z]], numpy.float64)) + + def resetRotation(self): + x = numpy.linalg.norm(self.matrix[::,0].getA().flatten()) + y = numpy.linalg.norm(self.matrix[::,1].getA().flatten()) + z = numpy.linalg.norm(self.matrix[::,2].getA().flatten()) + self.applyMatrix(numpy.matrix([[x,0,0],[0,y,0],[0,0,z]], numpy.float64)) + + def layFlat(self): + pass + + def scaleUpTo(self, size): + pass + class mesh(object): def __init__(self): self.vertexes = None