From: daid303 Date: Wed, 6 Mar 2013 20:34:10 +0000 (+0100) Subject: Add the gl buttons to the project planner (needs some more work) X-Git-Tag: 13.03~20 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=dd36c6499d935006c204f7ea52a4b726448df318;p=cura.git Add the gl buttons to the project planner (needs some more work) --- diff --git a/Cura/gui/preview3d.py b/Cura/gui/preview3d.py index e325a5ad..ab274280 100644 --- a/Cura/gui/preview3d.py +++ b/Cura/gui/preview3d.py @@ -322,7 +322,8 @@ class previewPanel(wx.Panel): self.gcodeFileTime = None self.logFileTime = None obj.filename = filelist[idx] - + + self.deselectTool() self.gcodeFilename = sliceRun.getExportFilename(filelist[0]) #Do the STL file loading in a background thread so we don't block the UI. if self.loadThread is not None and self.loadThread.isAlive(): @@ -470,12 +471,15 @@ class previewPanel(wx.Panel): self.glCanvas.viewMode = "Mixed" self.layerSelect.setHidden(self.glCanvas.viewMode != "GCode") self.updateToolbar() + self.deselectTool() + self.glCanvas.Refresh() + + def deselectTool(self): self.rotateToolButton.setSelected(False) self.scaleToolButton.setSelected(False) self.mirrorToolButton.setSelected(False) self.OnToolSelect() - self.glCanvas.Refresh() - + def updateModelTransform(self, f=0): if len(self.objectList) < 1 or self.objectList[0].mesh is None: return @@ -855,7 +859,7 @@ class PreviewGLCanvas(openglGui.glGuiPanel): vMax = self.parent.objectsMaxV if vMin is None: return - offset = - vMin - (vMax - vMin) / 2 + offset = - vMin - (vMax - vMin) / 2 matrix = opengl.convert3x3MatrixTo4x4(self.parent.matrix) diff --git a/Cura/gui/projectPlanner.py b/Cura/gui/projectPlanner.py index 91211eee..f1e7f11c 100644 --- a/Cura/gui/projectPlanner.py +++ b/Cura/gui/projectPlanner.py @@ -199,32 +199,74 @@ class projectPlanner(wx.Frame): sizer = wx.GridBagSizer(2,2) panel.SetSizer(sizer) - - self.rotateToolButton = openglGui.glButton(self.glCanvas, 1, 'Rotate', (0,1), self.OnRotateSelect) - self.scaleToolButton = openglGui.glButton(self.glCanvas, 2, 'Scale', (0,2), self.OnScaleSelect) + + group = [] + self.rotateToolButton = openglGui.glRadioButton(self.glCanvas, 8, 'Rotate', (0,-1), group, self.OnToolSelect) + self.scaleToolButton = openglGui.glRadioButton(self.glCanvas, 9, 'Scale', (1,-1), group, self.OnToolSelect) + self.mirrorToolButton = openglGui.glRadioButton(self.glCanvas, 10, 'Mirror', (2,-1), group, self.OnToolSelect) + + self.resetRotationButton = openglGui.glButton(self.glCanvas, 12, 'Reset', (0,-2), self.OnRotateReset) + self.layFlatButton = openglGui.glButton(self.glCanvas, 16, 'Lay flat', (0,-3), self.OnLayFlat) + + self.resetScaleButton = openglGui.glButton(self.glCanvas, 13, 'Reset', (1,-2), self.OnScaleReset) + self.scaleMaxButton = openglGui.glButton(self.glCanvas, 17, 'To max', (1,-3), self.OnScaleMax) + + self.mirrorXButton = openglGui.glButton(self.glCanvas, 14, 'Mirror X', (2,-2), lambda : self.OnMirror(0)) + self.mirrorYButton = openglGui.glButton(self.glCanvas, 18, 'Mirror Y', (2,-3), lambda : self.OnMirror(1)) + self.mirrorZButton = openglGui.glButton(self.glCanvas, 22, 'Mirror Z', (2,-4), lambda : self.OnMirror(2)) + + self.scaleForm = openglGui.glFrame(self.glCanvas, (2, -2)) + openglGui.glGuiLayoutGrid(self.scaleForm) + openglGui.glLabel(self.scaleForm, 'Scale X', (0,0)) + self.scaleXctrl = openglGui.glNumberCtrl(self.scaleForm, '1.0', (1,0), lambda value: self.OnScaleEntry(value, 0)) + openglGui.glLabel(self.scaleForm, 'Scale Y', (0,1)) + self.scaleYctrl = openglGui.glNumberCtrl(self.scaleForm, '1.0', (1,1), lambda value: self.OnScaleEntry(value, 1)) + openglGui.glLabel(self.scaleForm, 'Scale Z', (0,2)) + self.scaleZctrl = openglGui.glNumberCtrl(self.scaleForm, '1.0', (1,2), lambda value: self.OnScaleEntry(value, 2)) + openglGui.glLabel(self.scaleForm, 'Size X (mm)', (0,4)) + self.scaleXmmctrl = openglGui.glNumberCtrl(self.scaleForm, '0.0', (1,4), lambda value: self.OnScaleEntryMM(value, 0)) + openglGui.glLabel(self.scaleForm, 'Size Y (mm)', (0,5)) + self.scaleYmmctrl = openglGui.glNumberCtrl(self.scaleForm, '0.0', (1,5), lambda value: self.OnScaleEntryMM(value, 1)) + openglGui.glLabel(self.scaleForm, 'Size Z (mm)', (0,6)) + self.scaleZmmctrl = openglGui.glNumberCtrl(self.scaleForm, '0.0', (1,6), lambda value: self.OnScaleEntryMM(value, 2)) + openglGui.glLabel(self.scaleForm, 'Uniform scale', (0,8)) + self.scaleUniform = openglGui.glCheckbox(self.scaleForm, True, (1,8), None) self.SetSize((800,600)) - self.tool = previewTools.toolInfo(self.glCanvas) + self.OnToolSelect() - def OnInfoSelect(self): - self.infoToolButton.setSelected(True) - self.rotateToolButton.setSelected(False) - self.scaleToolButton.setSelected(False) - self.tool = previewTools.toolInfo(self.glCanvas) - self.glCanvas.Refresh() - - def OnRotateSelect(self): - self.rotateToolButton.setSelected(True) - self.scaleToolButton.setSelected(False) - self.tool = previewTools.toolRotate(self.glCanvas) + def OnToolSelect(self): + if self.rotateToolButton.getSelected(): + self.tool = previewTools.toolRotate(self.glCanvas) + elif self.scaleToolButton.getSelected(): + self.tool = previewTools.toolScale(self.glCanvas) + elif self.mirrorToolButton.getSelected(): + self.tool = previewTools.toolNone(self.glCanvas) + else: + self.tool = previewTools.toolNone(self.glCanvas) + self.resetRotationButton.setHidden(not self.rotateToolButton.getSelected()) + self.layFlatButton.setHidden(not self.rotateToolButton.getSelected()) + self.resetScaleButton.setHidden(not self.scaleToolButton.getSelected()) + self.scaleMaxButton.setHidden(not self.scaleToolButton.getSelected()) + self.scaleForm.setHidden(not self.scaleToolButton.getSelected()) + self.mirrorXButton.setHidden(not self.mirrorToolButton.getSelected()) + self.mirrorYButton.setHidden(not self.mirrorToolButton.getSelected()) + self.mirrorZButton.setHidden(not self.mirrorToolButton.getSelected()) self.glCanvas.Refresh() - def OnScaleSelect(self): - self.rotateToolButton.setSelected(False) - self.scaleToolButton.setSelected(True) - self.tool = previewTools.toolScale(self.glCanvas) - self.glCanvas.Refresh() + def OnRotateReset(self): + pass + def OnLayFlat(self): + pass + def OnScaleReset(self): + pass + def OnScaleMax(self): + pass + def OnMirror(self, axis): + pass + def OnScaleEntry(self, axis): + pass def OnClose(self, e): self.Destroy()