chiark / gitweb /
Add reset scale and rotation. Add placeholders for lay-flat and scale-up.
authordaid303 <daid303@gmail.com>
Thu, 11 Apr 2013 13:12:14 +0000 (15:12 +0200)
committerdaid303 <daid303@gmail.com>
Thu, 11 Apr 2013 13:12:14 +0000 (15:12 +0200)
Cura/gui/sceneView.py
Cura/util/mesh.py

index 91b49e7eeff7fcc681dfdac05e5288b4a8452d4a..878e5ee33d5e910ff3b007e83ed7133600742ed2 100644 (file)
@@ -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:
index 1bf3f6ac4f6d6e4dc4996a3d515a98f799affb17..f4d988d5190dd14bdb416b0c6aa248345cd0d28d 100644 (file)
@@ -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