// Exemplo de arquivo de descricao de cena para POV-ray
// Last edited on 2000-09-21 20:06:05 by stolfi


#include "colors.inc"
#include "textures.inc"
#include "woods.inc"

background { color Gray25 }  //to make the patch easier to see

  plane { <0, 0, 1>, -6
    pigment {
      checker color Red, color Blue
    }
  }

light_source {
  < 0.00, 80.00, 20.00 >
  color rgb < 1.00, 1.00, 1.00 >
} 
    
light_source {
  <20.0,80,0>
  color rgb <1,1,1>
 }


camera {
  location  <  0.00, 60.00, 0.00 >
  right    2* < -1.20, 0.00, 0.00 >
  up       2* <  0.00, 0.00, 0.90 >
  sky       <  0.00, 0.00, 1.00 >
  look_at   <  0.00, 0.00, 0.00 >
}           


#declare tinta_A = 
  texture {
    pigment { color rgb <1,1,0.6> }
    finish { diffuse 0.5 specular 0.5 roughness 0.005 ambient 0.1 }
  }

#declare tinta_B = 
  texture {
    pigment { color rgb < 0.7529, 0.8078, 0.6627 > }
    finish { diffuse 0.5 specular 0.5 roughness 0.005 ambient 0.1 }
  }

#declare tex = texture { DMFWood6  }



#declare estrutura =     
difference {
box { <-13,-5,-15>, <13,13,15>
texture {tinta_A}
}           

box {<-12,-5,-15>,<12,13,-13>
 texture {tinta_B}
}    

}
      


  
  
#declare estrutura =  
difference {
        difference {   
        prism {
        linear_sweep
        linear_spline
        0, // sweep the following shape from here ...
        40, // ... up through here
        6, // the number of points making up the shape ...
        <-14,-5>, <-14,13>, <0,17>,<14,13>,<14,-5>,<-14,-5>
        pigment { color rgb <1,1,0.6> }
        }         
  
        prism {
        linear_sweep
        linear_spline
        39.5, // sweep the following shape from here ...
        40.2, // ... up through here
        6, // the number of points making up the shape ...
        <-13,-5>, <-13.0,12.0>, <0,15.8>,<13.0,12>,<13,-5>,<-13,-5>
        pigment { color rgb <1,1,0.6> }
        }         
        }//difference  
        
        prism {
        linear_sweep
        linear_spline
        39, // sweep the following shape from here ...
        40.2, // ... up through here
        6, // the number of points making up the shape ...
        <-12.5,-5>, <-12.5,11.5>, <0,15.3>,<12.5,11.5>,<12.5,-5>,<-12.5,-5>
        pigment { color rgb <1,1,0.6> }
        }

prism {
        linear_sweep
        linear_spline
        38.5, // sweep the following shape from here ...
        40.2, // ... up through here
        6, // the number of points making up the shape ...
        <-4,1>, <-4,13.5>, <0,14.7>,<4,13.5>,<4,1>,<-4,1>
       // pigment { color rgb <1,1,0.6> }
        }

}   
       

       
#declare porta =   
union {
        prism {
        linear_sweep
        linear_spline
        38.5, // sweep the following shape from here ...
        39.2, // ... up through here
        5, // the number of points making up the shape ...
        <-2.3,-2>, <0,-2>, <-0,2>,<-2.3,2>,<-2.3,-2>
        
        texture {P_WoodGrain11A }

        }        
        
        prism {
        linear_sweep
        linear_spline
        38.5, // sweep the following shape from here ...
        39.2, // ... up through here
        5, // the number of points making up the shape ...
        <2.3,-2>, <0,-2>, <0,2>,<2.3,2>,<2.3,-2>
        
        texture {P_WoodGrain11A }

        }    
        
        //entre as duas portas...
        prism {
        linear_sweep
        linear_spline
        38.5, // sweep the following shape from here ...
        39.25, // ... up through here
        5, // the number of points making up the shape ...
        <-0.05,-2>, <0.05,-2>, <0.05,2>,<-0.05,2>,<-0.05,-2>
        
        pigment {color Black}
        }
           
                
              
}

#declare buraco = //buracos do detalhe cilindrico
box{
        <-0.40,-1,-0.15>,
        <0.40,1,0.15>


}

#declare detalhe_cilindrico =
cylinder {
        <0,40,-5>,
        <0,40,0.5>,
        3
        pigment { color rgb <1,1,0.6> }
        }

#declare estrutura =
union{
object{estrutura}
object{porta
        translate <-7,0,-3>}
object{porta
        translate <7,0,-3>}
       }


//subtraindo os buracos do detalhe cilindrico


//buraco 1
#declare  detalhe_cilindrico =
difference{
        object{detalhe_cilindrico}
        object{buraco rotate<0,0,20> translate <0.5,43.5,0>}

         }
#declare  detalhe_cilindrico =
difference{
        object{detalhe_cilindrico}
        object{buraco rotate<0,0,20> translate <0.5,43.5,-1>}

         }
#declare  detalhe_cilindrico =
difference{
        object{detalhe_cilindrico}
        object{buraco rotate<0,0,20> translate <0.5,43.5,-2>}

         }
#declare  detalhe_cilindrico =
difference{
        object{detalhe_cilindrico}
        object{buraco rotate<0,0,20> translate <0.5,43.5,-3>}

         }
#declare  detalhe_cilindrico =
difference{
        object{detalhe_cilindrico}
        object{buraco rotate<0,0,20> translate <0.5,43.5,-4>}

         }



//buraco 2
#declare  detalhe_cilindrico =
difference{
        object{detalhe_cilindrico}
        object{buraco rotate<0,0,30> translate <1.7,43,0>}

         }

#declare  detalhe_cilindrico =
difference{
        object{detalhe_cilindrico}
        object{buraco rotate<0,0,30> translate <1.7,43,-1>}

         }
#declare  detalhe_cilindrico =
difference{
        object{detalhe_cilindrico}
        object{buraco rotate<0,0,30> translate <1.7,43,-2>}

         }
#declare  detalhe_cilindrico =
difference{
        object{detalhe_cilindrico}
        object{buraco rotate<0,0,30> translate <1.7,43,-3>}

         }
#declare  detalhe_cilindrico =
difference{
        object{detalhe_cilindrico}
        object{buraco rotate<0,0,30> translate <1.7,43,-4>}
          }

//buraco 3
#declare  detalhe_cilindrico =
difference{
        object{detalhe_cilindrico}
        object{buraco rotate<0,0,-20> translate <-0.5,43.5,0>}

         }
#declare  detalhe_cilindrico =
difference{
        object{detalhe_cilindrico}
        object{buraco rotate<0,0,-20> translate <-0.5,43.5,-1>}

         }
#declare  detalhe_cilindrico =
difference{
        object{detalhe_cilindrico}
        object{buraco rotate<0,0,-20> translate <-0.5,43.5,-2>}

         }
#declare  detalhe_cilindrico =
difference{
        object{detalhe_cilindrico}
        object{buraco rotate<0,0,-20> translate <-0.5,43.5,-3>}

         }
#declare  detalhe_cilindrico =
difference{
        object{detalhe_cilindrico}
        object{buraco rotate<0,0,-20> translate <-0.5,43.5,-4>}

         }

//buraco 4
#declare  detalhe_cilindrico =
difference{
        object{detalhe_cilindrico}
        object{buraco rotate<0,0,-30> translate <-1.7,43,0>}

         }
#declare  detalhe_cilindrico =
difference{
        object{detalhe_cilindrico}
        object{buraco rotate<0,0,-30> translate <-1.7,43,-1>}

         }
#declare  detalhe_cilindrico =
difference{
        object{detalhe_cilindrico}
        object{buraco rotate<0,0,-30> translate <-1.7,43,-2>}

         }
#declare  detalhe_cilindrico =
difference{
        object{detalhe_cilindrico}
        object{buraco rotate<0,0,-30> translate <-1.7,43,-3>}

         }
#declare  detalhe_cilindrico =
difference{
        object{detalhe_cilindrico}
        object{buraco rotate<0,0,-30> translate <-1.7,43,-4>}

         }


#declare janela =
box{
        <-0.45,-0.3,-0.7>,
        <0.45,0.3,0.7>
       texture {Vicks_Bottle_Glass  }

}

#declare janela_trapezio =
prism {
        linear_sweep
        linear_spline
        -0.3, // sweep the following shape from here ...
        0.3, // ... up through here
        5, // the number of points making up the shape ...
        <-0.45,-0.7>, <-0.45,1.2>, <0.45,0.7>,<0.45,-0.7>,<-0.45,-0.7>

        texture {  Vicks_Bottle_Glass  }
        }

//colocando as janelas do lado esquerdo
#declare estrutura =
union {
        object{estrutura}
        //1. fileira
        object{janela translate <8.9,38.75,2>}
        object{janela translate <7.6,38.75,2>}
        object{janela translate <6.3,38.75,2>}
        object{janela translate <5.0,38.75,2>}
        //2. fileira
        object{janela translate <8.9,38.75,3.8>}
        object{janela translate <7.6,38.75,3.8>}
        object{janela translate <6.3,38.75,3.8>}
        object{janela translate <5.0,38.75,3.8>}

        //3. fileira
        object{janela translate <8.9,38.75,5.6>}
        object{janela translate <7.6,38.75,5.6>}
        object{janela translate <6.3,38.75,5.6>}
        object{janela translate <5.0,38.75,5.6>}

        //4. fileira
        object{janela translate <8.9,38.75,7.4>}
        object{janela translate <7.6,38.75,7.4>}
        object{janela translate <6.3,38.75,7.4>}
        object{janela translate <5.0,38.75,7.4>}

        //5. fileira - janela trapezio
        object{janela_trapezio scale <1,1,1> translate <8.9,38.75,9.2> }
        object{janela_trapezio scale <1,1,1.25> translate <7.6,38.75,9.3> }
        object{janela_trapezio scale <1,1,1.5> translate <6.3,38.75,9.6>}
        object{janela_trapezio scale <1,1,1.75> translate <5.0,38.75,9.8>}

}

//colocando as janelas do lado direito
#declare estrutura =
union {
        object{estrutura}
        //1. fileira
        object{janela translate <-8.9,38.75,2>}
        object{janela translate <-7.6,38.75,2>}
        object{janela translate <-6.3,38.75,2>}
        object{janela translate <-5.0,38.75,2>}
        //2. fileira
        object{janela translate <-8.9,38.75,3.8>}
        object{janela translate <-7.6,38.75,3.8>}
        object{janela translate <-6.3,38.75,3.8>}
        object{janela translate <-5.0,38.75,3.8>}

        //3. fileira
        object{janela translate <-8.9,38.75,5.6>}
        object{janela translate <-7.6,38.75,5.6>}
        object{janela translate <-6.3,38.75,5.6>}
        object{janela translate <-5.0,38.75,5.6>}

        //4. fileira
        object{janela translate <-8.9,38.75,7.4>}
        object{janela translate <-7.6,38.75,7.4>}
        object{janela translate <-6.3,38.75,7.4>}
        object{janela translate <-5.0,38.75,7.4>}

        //5. fileira - janela trapezio
        object{janela_trapezio scale <1,1,1> rotate <0,0,180> translate <-8.9,38.75,9.2> }
        object{janela_trapezio scale <1,1,1.25> rotate <0,0,180> translate <-7.6,38.75,9.3> }
        object{janela_trapezio scale <1,1,1.5> rotate <0,0,180> translate <-6.3,38.75,9.6>}
        object{janela_trapezio scale <1,1,1.75> rotate <0,0,180> translate <-5.0,38.75,9.8>}

}

#declare detalhe_central =
union {
difference {
cylinder{
	<0,0,0>,
	<0,1,0>,
	0.3	
        pigment { color rgb <1,1,0.6> }
}
cylinder{
	<0,0,0>,
	<0,1.1,0>,
	0.2
        pigment { color rgb <1,1,0.6> }
}
}

difference {
cylinder{
	<0,0,0.5>,
	<0,1,0.5>,
	0.3	
        pigment { color rgb <1,1,0.6> }
}
cylinder{
	<0,0,0.5>,
	<0,1.1,0.5>,
	0.2
        pigment { color rgb <1,1,0.6> }
}
}

difference {
cylinder{
	<0,0,1>,
	<0,1,1>,
	0.3	
        pigment { color rgb <1,1,0.6> }
}
cylinder{
	<0,0,1>,
	<0,1.1,1>,
	0.2
        pigment { color rgb <1,1,0.6> }
}
}

}


#declare barras_verticais =
prism {
        linear_sweep
        linear_spline
        38.0, // sweep the following shape from here ...
        39, // ... up through here
        5, // the number of points making up the shape ...
        <-0.11,0>, <-0.11,13.5>, <0.11,13.5>,<0.11,0>,<-0.11,0>
        pigment { color rgb <1,1,0.6> }
        }


	



object {estrutura }        
object {detalhe_cilindrico}
//object {detalhe_central translate <0,40,5> }
object {barras_verticais translate <0.8,0,1>}
object {barras_verticais translate <2.5,0,1>}

object {barras_verticais translate <-0.8,0,1>}
object {barras_verticais translate <-2.5,0,1>}