float scaler_min = .19; float draw_stroke_min = .21; float r_exist_limit = 400; float r_draw_limit = 300; float r_exist_limit_sq = sq(r_exist_limit); float r_draw_limit_sq = sq(r_draw_limit); class Scale{ ArrayList tiledraws = new ArrayList(); float scaler; Scale parent = null; Scale child = null; Scale(float scaler){ this.scaler = scaler; scl_W_DODECA = scaler*W_DODECA; scl_H_DODECA = scaler*H_DODECA; scl_W_BOWTIE = scaler*W_BOWTIE; scl_H_BOWTIE = scaler*H_BOWTIE; scl_W_HEXA = scaler*W_HEXA; scl_H_HEXA = scaler*H_HEXA; float s = scaler*scale_jump; for(int i=0; i scaler_min){ child = new Scale(this, scaler*scale_jump); } } Scale(Scale parent, float scaler){ this.parent = parent; this.scaler = scaler; float s = scaler*scale_jump; Iterator it = parent.tiledraws.iterator(); while(it.hasNext()){ TileDraw pt = (TileDraw)(it.next()); float[][] xs = x_d; float[][] ys = y_d; float[][] ts = t_d; float[][] rls = rl_d; float[][] tls = tl_d; if(pt.f == flglyphs[0]){//dodeca xs = x_d; ys = y_d; ts = t_d; rls = rl_d; tls = tl_d; } else if(pt.f == flglyphs[1]){//bowtie xs = x_b; ys = y_b; ts = t_b; rls = rl_b; tls = tl_b; } else if(pt.f == flglyphs[2]){//hexagon xs = x_h; ys = y_h; ts = t_h; rls = rl_h; tls = tl_h; } for(int i=0; i scaler_min){ child = new Scale(this, s); } } void draw(){ if(child instanceof Scale){ child.draw(); } Iterator it = this.tiledraws.iterator(); while(it.hasNext()){ TileDraw t = (TileDraw)(it.next()); t.draw(); } } } void loadScales(float scaler){ scale_main = new Scale(scaler); /* for(int i=0; i