//***************************************************************************** // Polyloop editor + subdivision, Jarek Rossignac, Oct 2005 //***************************************************************************** import processing.opengl.*; // uncomment for OpenGL boolean first=true; float gs=3./8.; float ga=gs, gb=gs; int deg=5, rec=3; pt mouseStarted = new pt (0,0); pt Mouse = new pt(0,0); vec drag = new vec(0,0); // track mouse pt draggedPoint = new pt(0,0); pt oldDraggedPoint = new pt(0,0); // move point precisely with mouse boolean started = false; // when values are being edited int npl=4, nv=4; int grabbedLoop=0; Polyloop [] PL = new Polyloop [npl]; Polyloop [] QL = new Polyloop [npl]; Polyloop [] RL = new Polyloop [2]; float angX=30, angY=10; color red, yellow, green, cyan, blue, magenta, dred, dyellow, dgreen, dcyan, dblue, dmagenta, white, black, orange, grey, metal; boolean showText=false, showCurve=false, showControl=true, fillIt=false, showVertices=false, showSurf=true, showCross=false, showIDs=false, showMidEdgePoints=false; int recd=1; void setup() { size(800, 800, OPENGL); PFont font = loadFont("Courier-14.vlw"); textFont(font, 12); textMode(SCREEN); colorMode(HSB,121); red = color(0, 120, 120); yellow = color(20, 120, 120); green = color(40, 120, 120); cyan = color(60, 120, 120); blue = color(80, 120, 120); magenta = color(100, 120, 120); dred = color(0, 120, 60); dyellow = color(20, 120, 60); dgreen = color(40, 120, 60); dcyan = color(60, 120, 60); dblue = color(80, 120, 60); dmagenta = color(100, 120, 60); white = color(0, 0, 120); black = color(0, 120,0); grey = color(0, 120,60); orange = color(10, 100, 120); metal = color(70, 60, 100); oldDraggedPoint.setTo(width/2,height/2); draggedPoint.setTo(oldDraggedPoint); for (int i=0; i') {gs+=0.125; ga=gs; gb=gs;}; if (key==',') {ga-=0.0125; gb-=0.0125;}; if (key=='.') {ga+=0.0125; gb+=0.0125;}; if (key=='d') deg=max(0,deg-1); if (key=='D') deg=min(7,deg+1); if (key=='r') rec=max(0,rec-1); if (key=='R') rec=min(7,rec+1); if (key=='p') showControl=!showControl ; if (key=='q') showCurve=!showCurve ; if (key=='c') showCross=!showCross ; if (key=='s') showSurf=!showSurf ; if (key=='v') showVertices=!showVertices ; if (key=='i') showIDs=!showIDs ; if (key=='m') showMidEdgePoints=!showMidEdgePoints ; if (key=='c') {for (int i=0; i