toolbarUtil.RadioButton(self.toolbar, group, 'object-mirror-x-on.png', 'object-mirror-x-off.png', 'Topdown view', callback=self.OnTopClick)\r
self.toolbar.AddSeparator()\r
\r
- self.viewSelect = wx.ComboBox(self.toolbar, -1, 'Model - Normal', choices=['Model - Normal', 'Model - Transparent', 'Model - X-Ray', 'GCode', 'Mixed'], style=wx.CB_DROPDOWN|wx.CB_READONLY)\r
- self.toolbar.AddControl(self.viewSelect)\r
- self.viewSelect.Bind(wx.EVT_COMBOBOX, self.OnViewChange)\r
- self.glCanvas.viewMode = self.viewSelect.GetValue()\r
+ group = []\r
+ self.normalViewButton = toolbarUtil.RadioButton(self.toolbar, group, 'object-mirror-x-on.png', 'object-mirror-x-off.png', 'Normal model view', callback=self.OnViewChange)\r
+ self.transparentViewButton = toolbarUtil.RadioButton(self.toolbar, group, 'object-mirror-x-on.png', 'object-mirror-x-off.png', 'Transparent model view', callback=self.OnViewChange)\r
+ self.xrayViewButton = toolbarUtil.RadioButton(self.toolbar, group, 'object-mirror-x-on.png', 'object-mirror-x-off.png', 'X-Ray view', callback=self.OnViewChange)\r
+ self.gcodeViewButton = toolbarUtil.RadioButton(self.toolbar, group, 'object-mirror-x-on.png', 'object-mirror-x-off.png', 'GCode view', callback=self.OnViewChange)\r
+ self.mixedViewButton = toolbarUtil.RadioButton(self.toolbar, group, 'object-mirror-x-on.png', 'object-mirror-x-off.png', 'Mixed model/GCode view', callback=self.OnViewChange)\r
+ self.OnViewChange()\r
+ self.toolbar.AddSeparator()\r
\r
self.layerSpin = wx.SpinCtrl(self.toolbar, -1, '', size=(21*4,21), style=wx.SP_ARROW_KEYS)\r
self.toolbar.AddControl(self.layerSpin)\r
self.glCanvas.Refresh()\r
\r
def setViewMode(self, mode):\r
- self.viewSelect.SetValue(mode)\r
- self.glCanvas.viewMode = self.viewSelect.GetValue()\r
+ if mode == "Normal":\r
+ self.normalViewButton.SetValue(True)\r
+ if mode == "GCode":\r
+ self.gcodeViewButton.SetValue(True)\r
+ self.glCanvas.viewMode = mode\r
wx.CallAfter(self.glCanvas.Refresh)\r
\r
def loadModelFile(self, filename):\r
self.layerSpin.SetRange(1, len(self.gcode.layerList))\r
self.toolbar.Realize()\r
\r
- def OnViewChange(self, e):\r
- self.glCanvas.viewMode = self.viewSelect.GetValue()\r
+ def OnViewChange(self):\r
+ if self.normalViewButton.GetValue():\r
+ self.glCanvas.viewMode = "Normal"\r
+ elif self.transparentViewButton.GetValue():\r
+ self.glCanvas.viewMode = "Transparent"\r
+ elif self.xrayViewButton.GetValue():\r
+ self.glCanvas.viewMode = "X-Ray"\r
+ elif self.gcodeViewButton.GetValue():\r
+ self.glCanvas.viewMode = "GCode"\r
+ elif self.mixedViewButton.GetValue():\r
+ self.glCanvas.viewMode = "Mixed"\r
self.glCanvas.Refresh()\r
\r
def updateModelTransform(self, f=0):\r
glPopMatrix()\r
glEndList()\r
\r
- if self.viewMode == "Model - Transparent" or self.viewMode == "Mixed":\r
+ if self.viewMode == "Transparent" or self.viewMode == "Mixed":\r
glLightfv(GL_LIGHT0, GL_DIFFUSE, [0.5, 0.4, 0.3, 1.0])\r
glLightfv(GL_LIGHT0, GL_AMBIENT, [0.1, 0.1, 0.1, 0.0])\r
#If we want transparent, then first render a solid black model to remove the printer size lines.\r
glBlendFunc(GL_ONE, GL_ONE)\r
glEnable(GL_LIGHTING)\r
glCallList(self.modelDisplayList)\r
- elif self.viewMode == "Model - X-Ray":\r
+ elif self.viewMode == "X-Ray":\r
glColorMask(GL_FALSE, GL_FALSE, GL_FALSE, GL_FALSE)\r
glDisable(GL_DEPTH_TEST)\r
glEnable(GL_STENCIL_TEST);\r
\r
glDisable(GL_STENCIL_TEST);\r
glEnable(GL_DEPTH_TEST)\r
- elif self.viewMode == "Model - Normal":\r
+ elif self.viewMode == "Normal":\r
glLightfv(GL_LIGHT0, GL_DIFFUSE, [1.0, 0.8, 0.6, 1.0])\r
glLightfv(GL_LIGHT0, GL_AMBIENT, [0.2, 0.2, 0.2, 0.0])\r
glEnable(GL_LIGHTING)\r
glCallList(self.modelDisplayList)\r
\r
- if self.viewMode == "Model - Normal" or self.viewMode == "Model - Transparent" or self.viewMode == "Model - X-Ray":\r
+ if self.viewMode == "Normal" or self.viewMode == "Transparent" or self.viewMode == "X-Ray":\r
glDisable(GL_LIGHTING)\r
glDisable(GL_DEPTH_TEST)\r
glDisable(GL_BLEND)\r