/*A building with a decorative ladder-like structure at the top. A little like a building in Sacramento CA.*/ SIZE = 1.0; FLOORS = 45;//should be greater than 5 LADDER = 8; //textures win = new UniformTexture(); win.diffuseColor.setRGB(0.6,0.6,0.6); win.specularColor.setHSV(55,0.4f,1.0f); win.specularity = 0.55f; win.shininess = 1.0f; conc = new UniformTexture(); conc.diffuseColor.setHSV(33,0.5f,0.4f); gray = new UniformTexture(); gray.diffuseColor.setRGB(0.62,0.62,0.62); dark = new UniformTexture(); dark.diffuseColor.setRGB(0.2,0.2,0.2); //windows box = new Cube(20*SIZE,FLOORS*SIZE,15*SIZE); box.setTexture(win, win.getDefaultMapping(box)); pos = new Vec3(0,FLOORS*SIZE/2,0); script.addObject(box, new CoordinateSystem(pos, 0,0,0)); //first five floors box = new Cube(20.45*SIZE,0.3*SIZE,15.45*SIZE); box.setTexture(conc, conc.getDefaultMapping(box)); for (i=1;i<=5;i++) { pos = new Vec3(0,i*SIZE,0); script.addObject(box, new CoordinateSystem(pos, 0,0,0)); } box = new Cube(0.4*SIZE,5*SIZE,15.45*SIZE); box.setTexture(conc, conc.getDefaultMapping(box)); for (i=-12;i<=12;i++) { pos = new Vec3(i*SIZE*0.8,2.5*SIZE,0); script.addObject(box, new CoordinateSystem(pos, 0,0,0)); } box = new Cube(20.45*SIZE,5*SIZE,0.4*SIZE); box.setTexture(conc, conc.getDefaultMapping(box)); for (i=-8;i<=8;i++) { pos = new Vec3(0,2.5*SIZE,i*SIZE*0.8); script.addObject(box, new CoordinateSystem(pos, 0,0,0)); } //main part of structure box = new Cube(20.3*SIZE,0.3*SIZE,15.15*SIZE); box.setTexture(gray, gray.getDefaultMapping(box)); for (i=5;i<=FLOORS;i++) { pos = new Vec3(0,i*SIZE,-.075*SIZE); script.addObject(box, new CoordinateSystem(pos, 0,0,0)); } box = new Cube(0.2*SIZE,(FLOORS-5)*SIZE,15.05*SIZE); box.setTexture(dark, dark.getDefaultMapping(box)); for (i=-12;i<=12;i++) { pos = new Vec3(i*SIZE*0.8,(FLOORS-5)*SIZE/2+5*SIZE,0); script.addObject(box, new CoordinateSystem(pos, 0,0,0)); } box = new Cube(20.05*SIZE,(FLOORS-5)*SIZE,0.2*SIZE); box.setTexture(dark, dark.getDefaultMapping(box)); for (i=-8;i<=8;i++) { pos = new Vec3(0,(FLOORS-5)*SIZE/2+5*SIZE,i*SIZE*0.8); script.addObject(box, new CoordinateSystem(pos, 0,0,0)); } //back corner box = new Cube(0.5*SIZE,FLOORS*SIZE,SIZE); box.setTexture(gray, gray.getDefaultMapping(box)); pos = new Vec3(-10*SIZE,FLOORS*SIZE/2,-7.5*SIZE); script.addObject(box, new CoordinateSystem(pos, 0,0,0)); pos = new Vec3(10*SIZE,FLOORS*SIZE/2,-7.5*SIZE); script.addObject(box, new CoordinateSystem(pos, 0,0,0)); //front wall and ladder box = new Cube(20*SIZE,0.25*SIZE,0.25*SIZE); box.setTexture(gray, gray.getDefaultMapping(box)); for (i=5;i