import controlP5.*; ControlP5 cntrl; void initGUI() { cntrl = new ControlP5(this); cntrl.addToggle("play",false,width-90,20,30,30); cntrl.addToggle("displayMagnets",true,width-90,70,10,10); cntrl.addToggle("displayField",true,width-90,95,10,10); Radio colormode = cntrl.addRadio("setColor",width-90,140); colormode.add("onecolor",0); colormode.add("binary",5); colormode.add("redblue",1); colormode.add("rotation",2); colormode.add("acceleration",3); colormode.add("speed",4); colormode.activate("redblue"); Radio gridstyle = cntrl.addRadio("gridStyle",width-90,250); gridstyle.add("square",0); gridstyle.add("hexagonal",1); gridstyle.activate("square"); Radio gridsize = cntrl.addRadio("gridDimension",width-90,290); gridsize.add("3x3",0); gridsize.add("10x10",1); gridsize.add("25x25",2); gridsize.add("50x50",3); gridsize.activate("10x10"); //cntrl.addNumberbox("dist_x",magnets.distx,width-90,420,45,14); //cntrl.addNumberbox("dist_y",magnets.disty,width-90,450,45,14); //Bang b1 = cntrl.addBang("reinit",width-35,450,14,14); //b1.setLabel("Reinit"); cntrl.addNumberbox("strength",magnets.strength,width-90,400,45,14); cntrl.addNumberbox("friction",magnets.friction,width-90,430,45,14); cntrl.addNumberbox("scanrange",magnets.scanrange,width-90,460,45,14); Bang b2 = cntrl.addBang("reassign",width-90,490,20,20); b2.setLabel("Update values"); } void runGUI() { fill(0); noStroke(); rect(width-100,0,100,height); } void reinit() { magnets.distx = cntrl.controller("dist_x").value(); magnets.disty = cntrl.controller("dist_y").value(); magnets.init(); } void reassign() { magnets.strength = cntrl.controller("strength").value(); magnets.friction = cntrl.controller("friction").value(); magnets.scanrange = cntrl.controller("scanrange").value(); magnets.reassign(); } void gridStyle(int v) { magnets.gridmode = v; magnets.init(); } void setColor(int v) { colormode = v; } void gridDimension(int v) { switch(v) { case(0): magnets.setGrid(3,3); zdist = 9.0; zdisp = 9.0; break; case(1): magnets.setGrid(10,10); zdist = 1.9; zdisp = 2; break; case(2): magnets.setGrid(25,25); zdist = 0.75; zdisp = 1; break; case(3): magnets.setGrid(50,50); zdist = 0.375; zdisp = 0.5; break; } magnets.init(); } void play(boolean v) { magnets.playing = v; } void displayMagnets(boolean v) { magnets.drawMagnets = v; } void displayField(boolean v) { magnets.drawField = v; } void controlEvent(ControlEvent theControlEvent) { //println("some control event from "+theControlEvent.controller().name()); }