/*A ziggurat type building, characterized by multiple setback on all sides.*/ SIZE = 1.0; FLOORS = 12;//floors per level LEVELS = 6;//total height is floors*levels //textures win = new UniformTexture(); win.diffuseColor.setRGB(0.3,0.3,0.3); win.specularity = 0.4f; win.shininess = 1.0f; red = new UniformTexture(); red.diffuseColor.setHSV(10,0.4f,0.8f); light = new UniformTexture(); light.diffuseColor.setHSV(40,0.3f,0.9f); roof = new UniformTexture(); roof.diffuseColor.setHSV(115,0.4f,0.4f); void layer(int n, double offset) { int i; box = new Cube(n*SIZE,FLOORS*SIZE,n*SIZE); box.setTexture(win, win.getDefaultMapping(box)); pos = new Vec3(0,offset+FLOORS*SIZE/2,0); script.addObject(box, new CoordinateSystem(pos, 0,0,0)); box = new Cube((n+0.2)*SIZE,0.3*SIZE,(n+0.2)*SIZE); box.setTexture(light, light.getDefaultMapping(box)); for (i=0;i<=FLOORS;i++) { pos = new Vec3(0,offset+i*SIZE,0); script.addObject(box, new CoordinateSystem(pos, 0,0,0)); } box = new Cube(0.3*SIZE,(FLOORS+0.7)*SIZE,0.3*SIZE); box.setTexture(red, red.getDefaultMapping(box)); box2 = new Cube(0.5*SIZE,(FLOORS+0.5)*SIZE,0.2*SIZE); box2.setTexture(light, light.getDefaultMapping(box)); for (i=1;i