//A tall slender building rising out of a wider base. SIZE = 1.0; FLOORS = 65; //greater than 20 and odd //textures window = new UniformTexture(); window.diffuseColor.setRGB(0.2,0.5,0.5); window.specularity = 0.4f; window.shininess = 1.0f; green = new UniformTexture(); green.diffuseColor.setRGB(0.2,0.7,0.3); green.specularity = 0.4f; green.shininess = 1.0f; stone = new UniformTexture(); stone.diffuseColor.setRGB(0.45,0.4,0.4); dark = new UniformTexture(); dark.diffuseColor.setRGB(0.3,0.3,0.3); light = new UniformTexture(); light.diffuseColor.setRGB(0.4,0.4,0.4); //base box = new Cube(35*SIZE,0.5*SIZE,30*SIZE); box.setTexture(stone, stone.getDefaultMapping(box)); pos = new Vec3(0,2*SIZE,-5*SIZE); script.addObject(box, new CoordinateSystem(pos, 0,0,0)); box = new Cube(34.5*SIZE,2*SIZE,28*SIZE); box.setTexture(window, window.getDefaultMapping(box)); pos = new Vec3(0,SIZE,-5.75*SIZE); script.addObject(box, new CoordinateSystem(pos, 0,0,0)); box = new Cube(0.5*SIZE,2*SIZE,0.5*SIZE); box.setTexture(stone, stone.getDefaultMapping(box)); for (i=-8;i<10;i++) { pos = new Vec3((i-0.5)*2*SIZE,SIZE,9.5*SIZE); script.addObject(box, new CoordinateSystem(pos, 0,0,0)); pos = new Vec3((i-0.5)*2*SIZE,SIZE,-19.6*SIZE); script.addObject(box, new CoordinateSystem(pos, 0,0,0)); } bb = new Cube(34.7*SIZE,2*SIZE,0.5*SIZE); bb.setTexture(stone, stone.getDefaultMapping(bb)); for(i=0;i<28;i++) { pos = new Vec3(0,SIZE,(i-19.25)*SIZE); script.addObject(bb, new CoordinateSystem(pos, 0,0,0)); } //back tower box = new Cube(20*SIZE,(FLOORS-15)/2*SIZE,20*SIZE); box.setTexture(window, window.getDefaultMapping(box)); pos = new Vec3(0,(FLOORS-15)/2*SIZE/2,-9*SIZE); script.addObject(box, new CoordinateSystem(pos, 0,0,0)); box = new Cube(20.5*SIZE,0.5*SIZE,20.5*SIZE); box.setTexture(stone, stone.getDefaultMapping(box)); for (i=3;i<=(FLOORS-15)/2;i++) { pos = new Vec3(0,i*SIZE,-9*SIZE); script.addObject(box, new CoordinateSystem(pos, 0,0,0)); } box = new Cube(0.2*SIZE,(FLOORS-15)/2*SIZE,20.3*SIZE); box.setTexture(stone, stone.getDefaultMapping(box)); for (i=-9;i<10;i++) { pos = new Vec3(i*SIZE,(FLOORS-15)/2*SIZE/2,-9*SIZE); script.addObject(box, new CoordinateSystem(pos, 0,0,0)); pos = new Vec3(0,(FLOORS-15)/2*SIZE/2,i*SIZE-9*SIZE); script.addObject(box, new CoordinateSystem(pos, 0,90,0)); } //corners box = new Cube(0.3*SIZE,(FLOORS-15)/2*SIZE,0.3*SIZE); box.setTexture(stone, stone.getDefaultMapping(box)); pos = new Vec3(9.95*SIZE,(FLOORS-15)/2*SIZE/2,1*SIZE); script.addObject(box, new CoordinateSystem(pos, 0,0,0)); pos = new Vec3(-9.95*SIZE,(FLOORS-15)/2*SIZE/2,1*SIZE); script.addObject(box, new CoordinateSystem(pos, 0,0,0)); pos = new Vec3(9.95*SIZE,(FLOORS-15)/2*SIZE/2,-18.95*SIZE); script.addObject(box, new CoordinateSystem(pos, 0,0,0)); pos = new Vec3(-9.95*SIZE,(FLOORS-15)/2*SIZE/2,-18.95*SIZE); script.addObject(box, new CoordinateSystem(pos, 0,0,0)); //blade k = FLOORS/20; box = new Cube(8*SIZE,10*SIZE,30*SIZE); box.setTexture(window, window.getDefaultMapping(box)); grn = new Cube(8*SIZE,10*SIZE,30*SIZE); grn.setTexture(green, green.getDefaultMapping(box)); bar = new Cube(8.01*SIZE,SIZE,30.01*SIZE); bar.setTexture(light, light.getDefaultMapping(bar)); for (i=0;i