/*A building with a stair step structure based on a building I saw in a 1932 photo of New York City.*/ SIZE = 1.0; STEPS = 7;//total height is STEPS*6 //textures win = new UniformTexture(); win.diffuseColor.setRGB(0.25,0.25,0.25); win.specularity = 0.5f; win.shininess = 1.0f; cream = new UniformTexture(); cream.diffuseColor.setHSV(60,0.3f,0.9f); for (i=1;i<=STEPS;i++) { //windows box = new Cube(SIZE*5.4,SIZE*6*i,SIZE*2); box.setTexture(win, win.getDefaultMapping(box)); p = new Vec3(0,SIZE*3*i,SIZE*STEPS-SIZE*2*i); script.addObject(box, new CoordinateSystem(p, 0,0,0)); //front bars box = new Cube(0.5*SIZE,SIZE*7.5,0.5*SIZE); box.setTexture(cream, cream.getDefaultMapping(box)); for (j=-3;j<3;j++) { p = new Vec3((j+0.5)*SIZE,SIZE*6*(i-0.5)-0.25*SIZE,SIZE*STEPS-SIZE*2*i+SIZE); script.addObject(box, new CoordinateSystem(p, 0,0,0)); c = new Cylinder(0.3*SIZE,0.1*SIZE,0.1*SIZE,0.5f); c.setTexture(cream, cream.getDefaultMapping(c)); pos = new Vec3(0,3.9*SIZE,0); script.addObject(c, new CoordinateSystem(p.plus(pos), 0,0,0)); c = new Sphere(0.15*SIZE,0.2*SIZE,0.15*SIZE); c.setTexture(cream, cream.getDefaultMapping(c)); pos = new Vec3(0,4.2*SIZE,0); script.addObject(c, new CoordinateSystem(p.plus(pos), 0,0,0)); } //horizontals box = new Cube(5.5*SIZE,0.3*SIZE,2.2*SIZE); box.setTexture(cream, cream.getDefaultMapping(box)); for (j=0;j<=6*i;j++) { p = new Vec3(0,SIZE*j,SIZE*STEPS-SIZE*2*i); script.addObject(box, new CoordinateSystem(p, 0,0,0)); } //sides box = new Cube(5.5*SIZE,6*SIZE*i,0.6*SIZE); box.setTexture(cream, cream.getDefaultMapping(box)); p = new Vec3(0,SIZE*3*i,SIZE*STEPS-SIZE*2*i+0.5*SIZE); script.addObject(box, new CoordinateSystem(p, 0,0,0)); p = new Vec3(0,SIZE*3*i,SIZE*STEPS-SIZE*2*i-0.5*SIZE); script.addObject(box, new CoordinateSystem(p, 0,0,0)); } //back box = new Cube(0.5*SIZE,6*SIZE*STEPS+SIZE,0.5*SIZE); box.setTexture(cream, cream.getDefaultMapping(box)); for (i=-3;i<3;i++) { p = new Vec3((i+0.5)*SIZE,SIZE*3*STEPS,-SIZE*STEPS-SIZE); script.addObject(box, new CoordinateSystem(p, 0,0,0)); p = new Vec3((i+0.5)*SIZE,SIZE*6*STEPS,-SIZE*STEPS-SIZE); c = new Cylinder(0.3*SIZE,0.1*SIZE,0.1*SIZE,0.5f); c.setTexture(cream, cream.getDefaultMapping(c)); pos = new Vec3(0,0.65*SIZE,0); script.addObject(c, new CoordinateSystem(p.plus(pos), 0,0,0)); c = new Sphere(0.15*SIZE,0.2*SIZE,0.15*SIZE); c.setTexture(cream, cream.getDefaultMapping(c)); pos = new Vec3(0,0.95*SIZE,0); script.addObject(c, new CoordinateSystem(p.plus(pos), 0,0,0)); } box = new Cube(5*SIZE,0.3*SIZE,0.2*SIZE); box.setTexture(cream, cream.getDefaultMapping(box)); for (i=0;i<=STEPS*6;i++) { p = new Vec3(0,SIZE*i,-SIZE*STEPS-SIZE); script.addObject(box, new CoordinateSystem(p, 0,0,0)); }