Expression x, t; int depth = 5; PFont font; void setup(){ size(500,200); font = loadFont("silkscreen.vlw"); textFont( font ); x = recursiveExpression( randomExpression(null), depth ); redraw(); noLoop(); } //------------------- void draw(){ background(255); stroke(0); noFill(); rect( 0,0,width-1, height-1 ); x.draw(width/2 - x.width()/2,height/2 - x.height()/2); } //------------------- void keyPressed(){ if(key>='1' && key<='9') depth = key - '1'; x = recursiveExpression( randomExpression(null), depth ); redraw(); } //------------------- void mousePressed(){ x = recursiveExpression( randomExpression(null), depth ); redraw(); } //------------------- Expression recursiveExpression(Expression ex, int level){ for(int i=0;i0) return w + subExp[0].width(); return w; } int height(){ if(subExp!=null) if(subExp.length>0) return h + subExp[0].height(); return h; } void draw(int x, int y){} void setSubExpression(int index, Expression e){ subExp[index] = e; e.parent = this; } void initSubExp(int len){ subExp = new Expression[len]; for(int i=0;i