// Marco Antonio Leao		RA: 971203
// Projeto Final de MC930
  
#include "colors.inc"
#include "glass.inc"
  camera {
    sky <0,0,1>	
    location <6.5, 17.0, 4>
    look_at <6.5, -8.0, -5.0>
  }

  light_source { <6, 50, 10> color White }

plane { z, -0.5
	pigment { Blue }
}

// partes externas dos pavilhoes


#declare extpav1 =
  box {
    < 8.78, 2.0, 0.27 >
    < 9.18, 2.2, 1.0 >
    pigment { Brown }
  }  

#declare extpav2 =
  box {
    < 9.21, 2.0, 0.27 >
    < 9.61, 2.2, 1.0 >
    pigment { Brown }
  }  

#declare extpav3 =
  box {
    < 9.64, 2.0, 0.27 >
    < 10.04, 2.2, 1.0 >
    pigment { Brown }
  }  

#declare extpav4 =
  box {
    < 10.07, 2.0, 0.27 >
    < 10.47, 2.2, 1.0 >
    pigment { Brown }
  }  

#declare extpav5 =
  box {
    < 10.50, 2.0, 0.27 >
    < 10.90, 2.2, 1.0 >
    pigment { Brown }
  }  

#declare extpav6 =
  box {
    < 10.93, 2.0, 0.27 >
    < 11.33, 2.2, 1.0 >
    pigment { Brown }
  }  

#declare extpav7 =
  box {
    < 8.78, 2.0, -0.5 >
    < 9.18, 2.2, 0.24 >
    pigment { Brown }
  }  

#declare extpav8 =
  box {
    < 9.21, 2.0, -0.5 >
    < 9.61, 2.2, 0.24 >
    pigment { Brown }
  }  

#declare extpav9 =
  box {
    < 9.64, 2.0, -0.5 >
    < 10.04, 2.2, 0.24 >
    pigment { Brown }
  }  

#declare extpav10 =
  box {
    < 10.07, 2.0, -0.5 >
    < 10.47, 2.2, 0.24 >
    pigment { Brown }
  }  

#declare extpav11 =
  box {
    < 10.50, 2.0, -0.5 >
    < 10.90, 2.2, 0.24 >
    pigment { Brown }
  }  

#declare extpav12 =
  box {
    < 10.93, 2.0, -0.5 >
    < 11.33, 2.2, 0.24 >
    pigment { Brown }
  }  

#declare extpav13 =
  box {
    < 1.78, 2.0, 0.27 >
    < 2.18, 2.2, 1.0 >
    pigment { Brown }
  }  

#declare extpav14 =
  box {
    < 2.21, 2.0, 0.27 >
    < 2.61, 2.2, 1.0 >
    pigment { Brown }
  }  

#declare extpav15 =
  box {
    < 2.64, 2.0, 0.27 >
    < 3.04, 2.2, 1.0 >
    pigment { Brown }
  }  

#declare extpav16 =
  box {
    < 3.07, 2.0, 0.27 >
    < 3.47, 2.2, 1.0 >
    pigment { Brown }
  }  

#declare extpav17 =
  box {
    < 3.50, 2.0, 0.27 >
    < 3.90, 2.2, 1.0 >
    pigment { Brown }
  }  

#declare extpav18 =
  box {
    < 3.93, 2.0, 0.27 >
    < 4.33, 2.2, 1.0 >
    pigment { Brown }
  }  

#declare extpav19 =
  box {
    < 1.78, 2.0, -0.5 >
    < 2.18, 2.2, 0.24 >
    pigment { Brown }
  }  

#declare extpav20 =
  box {
    < 2.21, 2.0, -0.5 >
    < 2.61, 2.2, 0.24 >
    pigment { Brown }
  }  

#declare extpav21 =
  box {
    < 2.64, 2.0, -0.5 >
    < 3.04, 2.2, 0.24 >
    pigment { Brown }
  }  

#declare extpav22 =
  box {
    < 3.07, 2.0, -0.5 >
    < 3.47, 2.2, 0.24 >
    pigment { Brown }
  }  

#declare extpav23 =
  box {
    < 3.50, 2.0, -0.5 >
    < 3.90, 2.2, 0.24 >
    pigment { Brown }
  }  

#declare extpav24 =
  box {
    < 3.93, 2.0, -0.5 >
    < 4.33, 2.2, 0.24 >
    pigment { Brown }
  }  

#declare extpav25 =
  box {
    < 8.35, 2.0, -0.5 >
    < 8.75, 2.2, 0.24 >
    pigment { Brown }
  }  
#declare extpav26 =
  box {
    < 11.36, 2.0, -0.5 >
    < 11.76, 2.2, 0.24 >
    pigment { Brown }
  }  

#declare extpav27 =
  box {
    < 1.35, 2.0, -0.5 >
    < 1.75, 2.2, 0.24 >
    pigment { Brown }
  }  

#declare extpav28 =
  box {
    < 4.36, 2.0, -0.5 >
    < 4.76, 2.2, 0.24 >
    pigment { Brown }
  }  

#declare extpav29 =
  box {
    < 7.92, 2.0, -0.5 >
    < 8.32, 2.2, 0.24 >
    pigment { Brown }
  }  
#declare extpav30 =
  box {
    < 11.79, 2.0, -0.5 >
    < 12.19, 2.2, 0.24 >
    pigment { Brown }
  }  

#declare extpav31 =
  box {
    < 0.92, 2.0, -0.5 >
    < 1.32, 2.2, 0.24 >
    pigment { Brown }
  }  

#declare extpav32 =
  box {
    < 4.79, 2.0, -0.5 >
    < 5.19, 2.2, 0.24 >
    pigment { Brown }
  }  

#declare extpav33 =
  box {
    < 8.35, 2.0, 0.27 >
    < 8.75, 2.2, 0.76 >
    pigment { Brown }
  }  
#declare extpav34 =
  box {
    < 11.36, 2.0, 0.27 >
    < 11.76, 2.2, 0.76 >
    pigment { Brown }
  }  

#declare extpav35 =
  box {
    < 1.35, 2.0, 0.27 >
    < 1.75, 2.2, 0.76 >
    pigment { Brown }
  }  

#declare extpav36 =
  box {
    < 4.36, 2.0, 0.27 >
    < 4.76, 2.2, 0.76 >
    pigment { Brown }
  }  

#declare tijfrente1 =
  box {
    < 5.6, 9.5, 0.35>
    < 7.4, 10.0, 0.38>
    pigment { Brown }
  }  

#declare tijfrente2 =
  box {
    < 5.6, 9.5, -0.5>
    < 5.63, 10.0, 0.35>
    pigment { Brown }
  }  

#declare tijfrente3 =
  box {
    < 5.97, 9.5, -0.5>
    < 6.0, 10.0, 0.35>
    pigment { Brown }
  }  

#declare tijfrente4 =
  box {
    < 7.0, 9.5, -0.5>
    < 7.03, 10.0, 0.35>
    pigment { Brown }
  }  

#declare tijfrente5 =
  box {
    < 7.37, 9.5, -0.5>
    < 7.4, 10.0, 0.35>
    pigment { Brown }
  }  

#declare tijfrente6 =
  box {
    < 5.6, 9.5, -0.08>
    < 6.0, 10.0, -0.05>
    pigment { Brown }
  }  

#declare tijfrente7 =
  box {
    < 7.0, 9.5, -0.08>
    < 7.4, 10.0, -0.05>
    pigment { Brown }
  }  

#declare tijfrente8 =
  box {
    < 5.4, 9.5, -0.5>
    < 5.6, 9.7, 0.23>
    pigment { Brown }
  }  

#declare tijfrente9 =
  box {
    < 7.4, 9.5, -0.5>
    < 7.6, 9.7, 0.23>
    pigment { Brown }
  }  

#declare tijfrente10 =
  box {
    < 6.0, 9.7, -0.5>
    < 7.0, 9.9, 0.38>
    pigment { Brown }
  }  

#declare diftijfrente10 =
  box {
    < 6.2, 9.3, -0.5>
    < 6.8, 10.0, 0.28>
    pigment { Brown }
  }  

#declare portafrente1 =
  box {
    < 6.2, 9.85, -0.5>
    < 6.22, 9.9, 0.28>
    pigment { Grey }
  }  

#declare portafrente2 =
  box {
    < 6.78, 9.85, -0.5>
    < 6.8, 9.9, 0.28>
    pigment { Grey }
  }  

#declare portafrente3 =
  box {
    < 6.2, 9.85, 0.26>
    < 6.495, 9.9, 0.28>
    pigment { Grey }
  }  

#declare portafrente4 =
  box {
    < 6.475, 9.85, -0.5>
    < 6.495, 9.9, 0.28>
    pigment { Grey }
  }  

#declare portafrente5 =
  box {
    < 6.505, 9.85, -0.5>
    < 6.525, 9.9, 0.28>
    pigment { Grey }
  }  

#declare portafrente6 =
  box {
    < 6.2, 9.85, -0.11>
    < 6.495, 9.9, -0.13>
    pigment { Grey }
  }  

#declare portafrente7 =
  box {
    < 6.505, 9.85, -0.11>
    < 6.8, 9.9, -0.13>
    pigment { Grey }
  }  

#declare portafrente8 =
  box {
    < 6.505, 9.85, 0.26>
    < 6.8, 9.9, 0.28>
    pigment { Grey }
  }  

#declare portafrente9 =
  box {
    < 6.2, 9.85, -0.5>
    < 6.495, 9.9, -0.48>
    pigment { Grey }
  }  

#declare portafrente10 =
  box {
    < 6.505, 9.85, -0.5>
    < 6.8, 9.9, -0.48>
    pigment { Grey }
  }  

#declare vidroportafrente1 = 
  box {
    <6.2 , 9.87 , -0.11>
    <6.495, 9.88, 0.26>
    texture { T_Glass2 }  
      }

#declare vidroportafrente2 = 
  box {
    <6.2 , 9.87 , -0.48>
    <6.495, 9.88, -0.13>
    texture { T_Glass2 }  
      }

#declare vidroportafrente3 = 
  box {
    <6.505 , 9.87 , -0.11>
    <6.8, 9.88, 0.26>
    texture { T_Glass2 }  
      }

#declare vidroportafrente4 = 
  box {
    <6.505 , 9.87 , -0.48>
    <6.8, 9.88, -0.13>
    texture { T_Glass2 }  
      }

#declare vidrofrente1 = 
  box {
    <5.63 , 9.87 , -0.5>
    <5.97, 9.88, -0.05>
    texture { T_Glass2 }  
      }

#declare vidrofrente2 = 
  box {
    <5.63 , 9.87 , -0.08>
    <5.97, 9.88, 0.35>
    texture { T_Glass2 }  
      }

#declare vidrofrente3 = 
  box {
    <7.03 , 9.87 , -0.5>
    <7.37, 9.88, -0.05>
    texture { T_Glass2 }  
      }

#declare vidrofrente4 = 
  box {
    <7.03 , 9.87 , -0.08>
    <7.37, 9.88, 0.35>
    texture { T_Glass2 }  
      }

#declare pavlateral1ext =
  cylinder {
    < +3.00, +2.00, -1.00 >,
    < +3.00, +10.00, -1.00 >
    2.50
    pigment { White }
  }

#declare  pavcentralext =
  cylinder {
    < +6.50, 0.00, -0.50 >,
    < +6.50, +10.00, -0.50 >
    1.50
    pigment { White }
  }

#declare  pavlateral2ext =
  cylinder {
    < +10.00, 2.00, -1.00 >,
    < +10.00, +10.00, -1.00 >
    2.50
    pigment { White }
  }

// diferenca interna dos pavilhoes

#declare  pavlateral1int =
  cylinder {
    < +3.00, 1.00, -1.00 >,
    < +3.00, +11.00, -1.00 >
    2.45
    pigment { Brown }
  }

#declare  pavlateral2int =
  cylinder {
    < +10.00, 1.0, -1.00 >,
    < +10.00, +11.00, -1.00 >
    2.45
    pigment { Brown }
}

#declare  pavcentralint =
  cylinder {
    < +6.50, -0.01, -0.50 >,
    < +6.50, +10.01, -0.50 >
    1.45
    pigment { Brown }
  }

#declare diferenca_teto =
  box {
    < 4.5, -1.0, -0.6 >
    < 8.5, +11.0, 0.23 >
    pigment { Grey }
  }  

#declare telhado_anexo =
  box {
    < 0, 0.0, 0 >
    < 3.4, -1.5, 0.05 >
    pigment { White }
    rotate < 8, 0, 0 >
    translate < 4.8, 0.0, 0.35 >     
  }  

#declare diferenca_parede_anexo =
  box {
    < 0, 0, 0 >
    < 4.0, -2.5, 2 >
    pigment { White }
    rotate < 8, 0, 0 >
    translate < 5.0, 0.0, 0.37 >     
  }  

#declare parede_anexo =
  box {
    < 5.3, 0.0, -0.5 >
    < 7.7, -1.2, 0.36 >
    pigment { Brown }
  }  

#declare paredelat1 =
  box {
    < 4.9, 10, -0.5 >
    < 5.4, -1.2, 0.23 >
    pigment { Brown }
  }  

#declare paredelat2 =
  box {
    < 7.6, 10, -0.5 >
    < 8.1, -1.2, 0.23 >
    pigment { Brown }
  }  

#declare correcaopavcent =
   box {
     <2.5, 10.1, 0>
     <10.5, 3.0, 5>
     pigment { Brown }
   }

union { 
  difference { 
    object { pavlateral1ext }
    object { pavlateral1int }
    object { diferenca_teto }	
           }
  difference { 
    object { pavlateral2ext }
    object { pavlateral2int }
    object { diferenca_teto }
             }
  difference {
    object { pavcentralext }
    object { pavcentralint }
    object { diferenca_teto }
             }   
  difference {
    object { pavcentralint }
    object { diferenca_teto }
    object { correcaopavcent }
              }
  object { telhado_anexo } 
  difference {
    object { parede_anexo }
    object { diferenca_parede_anexo }
             }
  object { tijfrente1 }
  object { tijfrente2 }
  object { tijfrente3 }
  object { tijfrente4 }
  object { tijfrente5 }
  object { tijfrente6 }
  object { tijfrente7 }
  object { tijfrente8 }
  object { tijfrente9 }
  difference {
    object { tijfrente10 }
    object { diftijfrente10 }
             }
  object { portafrente1 }  
  object { portafrente2 }
  object { portafrente3 }
  object { portafrente4 }  
  object { portafrente5 }  
  object { portafrente6 }  
  object { portafrente7 }  
  object { portafrente8 }  
  object { portafrente9 }  
  object { portafrente10 }  
  object { vidroportafrente1 }
  object { vidroportafrente2 }
  object { vidroportafrente3 }
  object { vidroportafrente4 }
  object { vidrofrente1 }
  object { vidrofrente2 }
  object { vidrofrente3 }
  object { vidrofrente4 }
  object { paredelat1 }
  object { paredelat2 }
  object { extpav1 }
  object { extpav2 }
  object { extpav3 }
  object { extpav4 }
  object { extpav5 }
  object { extpav6 }
  object { extpav7 }
  object { extpav8 }
  object { extpav9 }
  object { extpav10 }
  object { extpav11 }
  object { extpav12 }
  object { extpav13 }
  object { extpav14 }
  object { extpav15 }
  object { extpav16 }
  object { extpav17 }
  object { extpav18 }
  object { extpav19 }
  object { extpav20 }
  object { extpav21 }
  object { extpav22 }
  object { extpav23 }
  object { extpav24 }
  object { extpav25 }
  object { extpav26 }
  object { extpav27 }
  object { extpav28 }
  object { extpav29 }
  object { extpav30 }
  object { extpav31 }
  object { extpav32 }
  object { extpav33 }
  object { extpav34 }
  object { extpav35 }
  object { extpav36 }
}