chiark / gitweb /
Draw outline of selected object.
authordaid303 <daid303@gmail.com>
Sun, 24 Mar 2013 10:40:50 +0000 (11:40 +0100)
committerdaid303 <daid303@gmail.com>
Sun, 24 Mar 2013 10:40:50 +0000 (11:40 +0100)
Cura/gui/preview3d.py
Cura/gui/sceneView.py

index b3e41cb0a4ee0d56ab4984316183a593547be262..01dd05c58f42753357cbc74760cb2c144ad18994 100644 (file)
@@ -782,7 +782,7 @@ class PreviewGLCanvas(openglGui.glGuiPanel):
                                glStencilFunc(GL_ALWAYS, 1, 1)
                                glStencilOp(GL_INCR, GL_INCR, GL_INCR)
                                self.drawModel(obj.displayList)
-                               glStencilOp (GL_KEEP, GL_KEEP, GL_KEEP);
+                               glStencilOp (GL_KEEP, GL_KEEP, GL_KEEP)
                                
                                glColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE)
                                glStencilFunc(GL_EQUAL, 0, 1)
index fd1999c20693718b22a77cb7ed489b3f55c43b75..0950cb6279a903445479d40473bdbdae6e1cb6da 100644 (file)
@@ -28,8 +28,8 @@ class anim(object):
                if self.isDone():
                        return self._end
                f = (time.time() - self._startTime) / self._runTime
-               ts=f*f
-               tc=f*f*f
+               ts = f*f
+               tc = f*f*f
                f = 6*tc*ts + -15*ts*ts + 10*tc
                return self._start + (self._end - self._start) * f
 
@@ -232,6 +232,29 @@ void main(void)
 
                self._drawMachine()
 
+               #Draw the outline of the selected object, on top of everything else except the GUI.
+               if self._selectedObj is not None:
+                       glClear(GL_STENCIL_BUFFER_BIT)
+
+                       glDisable(GL_DEPTH_TEST)
+                       glEnable(GL_STENCIL_TEST)
+                       glStencilFunc(GL_ALWAYS, 1, 1)
+                       glStencilOp(GL_INCR, GL_INCR, GL_INCR)
+                       glColorMask(GL_FALSE, GL_FALSE, GL_FALSE, GL_FALSE)
+                       self._renderObject(self._selectedObj)
+
+                       glStencilFunc(GL_EQUAL, 0, 255)
+                       glColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE)
+                       glPolygonMode(GL_FRONT, GL_NONE)
+                       glPolygonMode(GL_BACK, GL_LINE)
+                       glLineWidth(2)
+                       glColor4f(1,1,1,0.5)
+                       self._renderObject(self._selectedObj)
+                       glPolygonMode(GL_BACK, GL_FILL)
+                       glPolygonMode(GL_FRONT, GL_FILL)
+                       glDisable(GL_STENCIL_TEST)
+                       glEnable(GL_DEPTH_TEST)
+
        def _renderObject(self, obj):
                glPushMatrix()
                glTranslate(obj.getPosition()[0], obj.getPosition()[1], 0)