\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
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
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
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