//a building in the shape of an L with a rectangular base. SIZE = 1.0; FLOORS = 65; //textures win = new UniformTexture(); win.diffuseColor.setRGB(0.9,0.9,0.9); win.specularity = 0.5f; win.shininess = 1.0f; conc = new UniformTexture(); conc.diffuseColor.setRGB(0.4,0.6,0.4); white = new UniformTexture(); white.diffuseColor.setRGB(0.8,0.8,0.8); P = new Vec3(0,4*SIZE,0.2*SIZE); //verticals box = new Cube(0.5*SIZE,SIZE*(FLOORS-3),12*SIZE); box.setTexture(conc, conc.getDefaultMapping(box)); for (i=-15;i<30;i++) { pos = new Vec3(i*0.8*SIZE,SIZE*(FLOORS-3)/2,0); script.addObject(box, new CoordinateSystem(pos.plus(P), 0,0,0)); } for (i=-7;i<20;i++) { pos = new Vec3(-6.4*SIZE,SIZE*(FLOORS-3)/2,i*0.8*SIZE); script.addObject(box, new CoordinateSystem(pos.plus(P), 0,90,0)); } box = new Cube(0.5*SIZE,SIZE*(FLOORS-3),0.4*SIZE); box.setTexture(conc, conc.getDefaultMapping(box)); for (i=-7;i<8;i++) { pos = new Vec3((-6.4+0.8*i)*SIZE,SIZE*(FLOORS-3)/2,15.4*SIZE); script.addObject(box, new CoordinateSystem(pos.plus(P), 0,0,0)); pos = new Vec3(23.4*SIZE,SIZE*(FLOORS-3)/2,0.8*i*SIZE); script.addObject(box, new CoordinateSystem(pos.plus(P), 0,90,0)); } //floors box = new Cube(45*0.8*SIZE,0.2*SIZE,12*SIZE); box.setTexture(conc, conc.getDefaultMapping(box)); box2 = new Cube(12*SIZE,0.2*SIZE,12*0.8*SIZE); box2.setTexture(conc, conc.getDefaultMapping(box2)); for (i=0;i<=(FLOORS-3);i++) { pos = new Vec3(5.6*SIZE,i*SIZE,0); script.addObject(box, new CoordinateSystem(pos.plus(P), 0,0,0)); pos = new Vec3(-6.4*SIZE,i*SIZE,10.8*SIZE); script.addObject(box2, new CoordinateSystem(pos.plus(P), 0,0,0)); } //windows box = new Cube(35.8*SIZE,(FLOORS-3)*SIZE,11.8*SIZE); box.setTexture(win, win.getDefaultMapping(box)); pos = new Vec3(5.6*SIZE,SIZE*(FLOORS-3)/2,0); script.addObject(box, new CoordinateSystem(pos.plus(P), 0,0,0)); box = new Cube(11.8*SIZE,(FLOORS-3)*SIZE,9.6*SIZE); box.setTexture(win, win.getDefaultMapping(box)); pos = new Vec3(-6.4*SIZE,SIZE*(FLOORS-3)/2,10.7*SIZE); script.addObject(box, new CoordinateSystem(pos.plus(P), 0,0,0)); //corners box = new Cube(0.2*SIZE,(FLOORS-3)*SIZE,0.2*SIZE); box.setTexture(conc, conc.getDefaultMapping(box)); pos = new Vec3(-.5*SIZE,(FLOORS-3)*SIZE/2,15.5*SIZE); script.addObject(box, new CoordinateSystem(pos.plus(P), 0,0,0)); pos = new Vec3(-12.3*SIZE,(FLOORS-3)*SIZE/2,15.5*SIZE); script.addObject(box, new CoordinateSystem(pos.plus(P), 0,0,0)); pos = new Vec3(-12.3*SIZE,(FLOORS-3)*SIZE/2,-5.9*SIZE); script.addObject(box, new CoordinateSystem(pos.plus(P), 0,0,0)); pos = new Vec3(23.5*SIZE,(FLOORS-3)*SIZE/2,-5.9*SIZE); script.addObject(box, new CoordinateSystem(pos.plus(P), 0,0,0)); pos = new Vec3(23.5*SIZE,(FLOORS-3)*SIZE/2,5.9*SIZE); script.addObject(box, new CoordinateSystem(pos.plus(P), 0,0,0)); pos = new Vec3(-.5*SIZE,(FLOORS-3)*SIZE/2,6.05*SIZE); script.addObject(box, new CoordinateSystem(pos.plus(P), 0,0,0)); pos = new Vec3(-.3*SIZE,(FLOORS-3)*SIZE/2,5.9*SIZE); script.addObject(box, new CoordinateSystem(pos.plus(P), 0,0,0)); //bottom floor box = new Cube(37*SIZE,0.4*SIZE,22*SIZE); box.setTexture(white, white.getDefaultMapping(box)); pos = new Vec3(5.6*SIZE,3.7*SIZE,5*SIZE); script.addObject(box, new CoordinateSystem(pos, 0,0,0)); box = new Cube(36.45*SIZE,0.4*SIZE,21.45*SIZE); box.setTexture(conc, conc.getDefaultMapping(box)); for (i=2;i<=4;i++) { pos = new Vec3(5.6*SIZE,(i-.5)*SIZE,5*SIZE); script.addObject(box, new CoordinateSystem(pos, 0,0,0)); } box = new Cube(36.4*SIZE,3.5*SIZE,21.4*SIZE); box.setTexture(win, win.getDefaultMapping(box)); pos = new Vec3(5.6*SIZE,1.75*SIZE,5*SIZE); script.addObject(box, new CoordinateSystem(pos, 0,0,0)); box = new Cube(36.5*SIZE,3.5*SIZE,0.6*SIZE); box.setTexture(conc, conc.getDefaultMapping(box)); for(i=-10;i<11;i++) { pos = new Vec3(5.6*SIZE,1.75*SIZE,(5+i)*SIZE); script.addObject(box, new CoordinateSystem(pos, 0,0,0)); } box = new Cube(0.6*SIZE,3.5*SIZE,21.5*SIZE); box.setTexture(conc, conc.getDefaultMapping(box)); for (i=-18;i<18;i++) { pos = new Vec3((5.6+i+0.5)*SIZE,1.75*SIZE,5*SIZE); script.addObject(box, new CoordinateSystem(pos, 0,0,0)); } //decorate top box = new Cube(5*SIZE,4*SIZE,6*SIZE); box.setTexture(conc, conc.getDefaultMapping(box)); pos = new Vec3(0,(FLOORS-1)*SIZE,0); script.addObject(box, new CoordinateSystem(pos.plus(P), 0,0,0)); pos = new Vec3(12*SIZE,(FLOORS-2)*SIZE,0); script.addObject(box, new CoordinateSystem(pos.plus(P), 0,90,0)); pos = new Vec3(-6*SIZE,(FLOORS-1)*SIZE,8*SIZE); script.addObject(box, new CoordinateSystem(pos.plus(P), 0,0,0));