chiark / gitweb /
Added retract colors on moves that are followed after a retraction. Fixed an OpenGL...
authordaid <daid303@gmail.com>
Fri, 1 Jun 2012 10:02:50 +0000 (12:02 +0200)
committerdaid <daid303@gmail.com>
Fri, 1 Jun 2012 10:02:50 +0000 (12:02 +0200)
Cura/gui/opengl.py

index 9ed0573f70ddd459cbf1ed273d7bc33c908ca8a9..2c6625ee0dfd627f19d1c7ce9ed059018007aabf 100644 (file)
@@ -227,25 +227,35 @@ def DrawGCodeLayer(layer):
        \r
        fillCycle = 0\r
        fillColorCycle = [[0.5,0.5,0.0],[0.0,0.5,0.5],[0.5,0.0,0.5]]\r
+       moveColor = [0,0,1]\r
+       retractColor = [0,1,1]\r
+       supportColor = [0,1,1]\r
+       extrudeColor = [1,0,0]\r
+       innerWallColor = [0,1,0]\r
+       skirtColor = [0,0.5,0.5]\r
+       prevPathWasRetract = False\r
        \r
        glDisable(GL_CULL_FACE)\r
        for path in layer:\r
                if path.type == 'move':\r
-                       glColor3f(0,0,1)\r
+                       if prevPathWasRetract:\r
+                               c = retractColor\r
+                       else:\r
+                               c = moveColor\r
                if path.type == 'extrude':\r
                        if path.pathType == 'FILL':\r
-                               glColor3fv(fillColorCycle[fillCycle])\r
+                               c = fillColorCycle[fillCycle]\r
                                fillCycle = (fillCycle + 1) % len(fillColorCycle)\r
                        elif path.pathType == 'WALL-INNER':\r
-                               glColor3fv([0,1,0])\r
+                               c = innerWallColor\r
                        elif path.pathType == 'SUPPORT':\r
-                               glColor3fv([0,1,1])\r
+                               c = supportColor\r
                        elif path.pathType == 'SKIRT':\r
-                               glColor3fv([0,0.5,0.5])\r
+                               c = skirtColor\r
                        else:\r
-                               glColor3fv([1,0,0])\r
+                               c = extrudeColor\r
                if path.type == 'retract':\r
-                       glColor3fv([0,1,1])\r
+                       c = [0,1,1]\r
                if path.type == 'extrude':\r
                        drawLength = 0.0\r
                        prevNormal = None\r
@@ -269,6 +279,7 @@ def DrawGCodeLayer(layer):
                                vv1 = v1 - normal * lineWidth\r
 \r
                                glBegin(GL_QUADS)\r
+                               glColor3fv(c)\r
                                glVertex3f(vv0.x, vv0.y, vv0.z - 0.01)\r
                                glVertex3f(vv1.x, vv1.y, vv1.z - 0.01)\r
                                glVertex3f(vv3.x, vv3.y, vv3.z - 0.01)\r
@@ -280,6 +291,7 @@ def DrawGCodeLayer(layer):
                                        vv4 = v0 + n * lineWidth\r
                                        vv5 = v0 - n * lineWidth\r
                                        glBegin(GL_QUADS)\r
+                                       glColor3fv(c)\r
                                        glVertex3f(vv2.x, vv2.y, vv2.z)\r
                                        glVertex3f(vv4.x, vv4.y, vv4.z)\r
                                        glVertex3f(prevVv3.x, prevVv3.y, prevVv3.z)\r
@@ -296,7 +308,11 @@ def DrawGCodeLayer(layer):
                                prevVv3 = vv3\r
                else:\r
                        glBegin(GL_LINE_STRIP)\r
+                       glColor3fv(c)\r
                        for v in path.list:\r
                                glVertex3f(v.x, v.y, v.z)\r
                        glEnd()\r
+               prevPathWasRetract = False\r
+               if path.type == 'retract' and (path.list[0] - path.list[-1]).vsize() < 0.001:\r
+                       prevPathWasRetract = True\r
        glEnable(GL_CULL_FACE)\r