float nwWidth=90; float nwHeight=500-170; float nwMargin=2; float nwKerning=12; position nimPos=new position(500-nwWidth,120); void displayNeuronInfo(lattice phen,neuron n) { //Draw the selection noFill(); stroke(150,120); int id=n.id; position sp=phen.nodes[id].p; ellipse(sp.x,sp.y,15,15); line(sp.x,sp.y,nimPos.x,nimPos.y+20); //Draw the window box fill(40); noStroke(); rect(nimPos.x,nimPos.y,nwWidth,nwHeight); stroke(80); line(nimPos.x,120,nimPos.x,nwHeight+120); //Draw the title bar fill(110); rect(nimPos.x,nimPos.y,nwWidth,15); fill(160); textFont(uiFont,12); text("Neuron ID: "+n.id,nimPos.x+nwMargin,nimPos.y+nwKerning); float startY=nimPos.y+nwKerning*2+5; float startX=nimPos.x+nwMargin; //Refractory status text("Refractory Period",startX,startY); startY+=5; noStroke(); fill(125,180,145); float rfWidth=85*(n.refractMax-n.refract)/n.refractMax; rect(startX,startY,rfWidth,5); startY+=nwKerning*2; //Fatigue graph fill(40); rect(startX+10,startY,65,65); stroke(180,100); line(startX+10,startY+65/2,startX+75,startY+65/2); stroke(125,125,255,200); float accumulated=startY+65/2-65/2*n.accumulated/1; line(startX+10,accumulated,startX+75,accumulated); stroke(160); float threshold=startY+65/2-65/2*n.threshold/n.threshMax; line(startX+10,threshold,startX+75,threshold); startY+=nwKerning*7; fill(160); float acu=(n.accumulated); text("Accumulated: "+nf(acu,1,2),startX,startY); startY+=nwKerning; float thresh=(n.threshold); text("Threshold: "+nf(thresh,1,2),startX,startY); startY+=nwKerning; text("Weight: "+n.weight,startX,startY); startY+=nwKerning*2; // text("Added Weight: "+n.recievedWeight,startX,startY); // startY+=nwKerning*2; fill(160); //List connections if(n.input.length>0) { text("Inputs: ",startX,startY); startY+=nwKerning; for(int i=0;i0) { text("Outputs: ",startX,startY); startY+=nwKerning; for(int o=0;o