Skip to content

Commit

Permalink
Single layer view
Browse files Browse the repository at this point in the history
Moving it out of the view mode this is now a toggle once in layer view.
Adding support for buttons size to stay a portion of the size of the base button size
  • Loading branch information
pmsimard committed Jan 7, 2015
1 parent 1e36695 commit 0fc8166
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 6 deletions.
30 changes: 24 additions & 6 deletions Cura/gui/util/engineResultView.py
Expand Up @@ -19,12 +19,14 @@ def __init__(self, parent):
self._parent = parent
self._result = None
self._enabled = False
self._singleLayer = False
self._gcodeLoadProgress = 0
self._resultLock = threading.Lock()
self._layerVBOs = []
self._layer20VBOs = []

self.layerSelect = openglGui.glSlider(self._parent, 10000, 0, 1, (-1,-2), lambda : self._parent.QueueRefresh())
self.singleLayerToggle = openglGui.glButton(self._parent, 23, _("Single Layer"), (-1,-1.5), self.OnSingleLayerToggle, 0.5) #stay half size of the base size

def setResult(self, result):
if self._result == result:
Expand All @@ -46,9 +48,19 @@ def setResult(self, result):
self._layer20VBOs = []
self._resultLock.release()

def OnSingleLayerToggle(self, button):
self._singleLayer = not self._singleLayer
if self._singleLayer:
self.singleLayerToggle._tooltip = "Multi Layer"
else:
self.singleLayerToggle._tooltip = "Single Layer"

def setEnabled(self, enabled):
self._enabled = enabled
self._singleLayer = False
self.layerSelect.setHidden(not enabled)
self.singleLayerToggle.setHidden(not enabled)


def _gcodeLoadCallback(self, result, progress):
if result != self._result:
Expand Down Expand Up @@ -124,8 +136,10 @@ def OnDraw(self):
polygons += result._polygons[n + i][typeName]
layerVBOs[typeName] = self._polygonsToVBO_lines(polygons)
generatedVBO = True
glColor4f(color[0]*0.5,color[1]*0.5,color[2]*0.5,color[3])
layerVBOs[typeName].render()

if not self._singleLayer or n == layerNr - 1:
glColor4f(color[0]*0.5,color[1]*0.5,color[2]*0.5,color[3])
layerVBOs[typeName].render()
n -= 20
else:
c = 1.0 - ((layerNr - n) - 1) * 0.05
Expand All @@ -139,8 +153,10 @@ def OnDraw(self):
continue
if 'GCODE-' + typeName not in layerVBOs:
layerVBOs['GCODE-' + typeName] = self._gcodeToVBO_quads(gcodeLayers[n+1:n+2], typeName)
glColor4f(color[0]*c,color[1]*c,color[2]*c,color[3])
layerVBOs['GCODE-' + typeName].render()

if not self._singleLayer or n == layerNr - 1:
glColor4f(color[0]*c,color[1]*c,color[2]*c,color[3])
layerVBOs['GCODE-' + typeName].render()

if n == layerNr - 1:
if 'GCODE-MOVE' not in layerVBOs:
Expand All @@ -153,8 +169,10 @@ def OnDraw(self):
if typeName in polygons:
if typeName not in layerVBOs:
layerVBOs[typeName] = self._polygonsToVBO_lines(polygons[typeName])
glColor4f(color[0]*c,color[1]*c,color[2]*c,color[3])
layerVBOs[typeName].render()

if not self._singleLayer or n == layerNr - 1:
glColor4f(color[0]*c,color[1]*c,color[2]*c,color[3])
layerVBOs[typeName].render()
n -= 1
glPopMatrix()
if generatedVBO:
Expand Down
3 changes: 3 additions & 0 deletions Cura/gui/util/openglGui.py
Expand Up @@ -441,6 +441,9 @@ def getMinSize(self):
if self._hidden:
return 0, 0
if self._buttonSize is not None:
if self._buttonSize > 0 and self._buttonSize < 1:
return self._base._buttonSize * self._buttonSize, self._base._buttonSize * self._buttonSize

return self._buttonSize, self._buttonSize
return self._base._buttonSize, self._base._buttonSize

Expand Down

0 comments on commit 0fc8166

Please sign in to comment.