// Last edited on DATE TIME by USER
// Processed by remove-cam-lights

  

#include "colors.inc"

  

  

background{ color rgb < 0.75, 0.80, 0.85 > }

#declare azul =
  texture {
    pigment { color rgb < 0.10, 0.80, 1.00 > }
    finish { diffuse 0.8 specular 0.1 roughness 0.005 ambient 0.1 }
  }

#declare amarelo =
  texture {
    pigment { color rgb < 1.00, 0.80, 0.10 > }
    finish { diffuse 0.8 specular 0.1 roughness 0.005 ambient 0.1 }
  }

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

#declare azul = 
  texture {
    pigment { color rgb < 0.2, 0.1, 1.0 > }
    finish { diffuse 0.8 specular 0.1 roughness 0.005 ambient 0.1 }
  }

#declare lilas =
  texture {
    pigment { color rgb < 0.7, 0.7, 0.9 > }
    finish { diffuse 0.8 specular 0.1 roughness 0.005 ambient 0.1 }
  }

#declare vermelho =
  texture {
    pigment { color rgb < 1, 0, 0 > }
    finish { diffuse 0.8 specular 0.1 roughness 0.005 ambient 0.1 }
  }

#declare plano = 
   plane { 
      y, 0
      texture {
  pigment { SeaGreen }
    
         finish {
     diffuse 0.5 ambient 0.5
  }
      }
      scale 15
   }

object {plano}

#declare boca_subtrai = 
cone {
   <0,4,0>, 5, <0,16,0>, 1
   texture {vermelho}
}

#declare boca = 
cone {
   <0,14,0>, 5, <0,16,0>, 1
   texture {amarelo}
}

#declare cano1 = lathe {
  linear_spline
  5,
  <1, 16>, <1, 16>, <1, 26>, <1, 26>, <1, 16>
  texture {amarelo}
 }

#declare u1 = cylinder {
   <-1,25,0>, <8,25,0>, 1
   texture {amarelo}
}

#declare cano2 = lathe {
  linear_spline
  5,
  <1, 2>, <1, 2>, <1, 26>, <1, 26>, <1, 2>
  texture {amarelo}
 }

#declare u2 = cylinder {
   <-1,25,0>, <8,25,0>, 1
   texture {amarelo}
}

#declare cano3 = lathe {
  linear_spline
  5,
  <1, 2>, <1, 2>, <1, 20>, <1, 20>, <1, 2>
  texture {amarelo}
}

#declare boca_assopra = prism {
   quadratic_spline
   0, 1, 12,
   <1,-1>, <0,0>, <6,0>, 
   <6,8>, <0,8>, <0,0>,  

   <2,0>, <1,1>, <5,1>,  
   <5,7>, <1,7>, <1,1>   
}

#declare caixa = box {
   <0,0,0>, <10,20,10>
   texture {roxo}
}

#declare caixa2 = box {
   <2,2,2>, <12,22,12>
   texture {roxo}
}

union {
   difference {
      object {boca}
      object {boca_subtrai}
   }
   object {u1}
   object {cano1}
   object {cano2
      translate <8,0,0>
   }
   object {u2
      translate <8,-22,0>
   }

   object {cano3
      translate <16,0,0>
   }
   object {boca_assopra
      scale <0.5,0.5,0.5>
      translate <14,19,3>
      rotate <0,20,0>
      rotate <0,0,2>
      texture {amarelo}
   }
}

difference {
   object {caixa2}
    object {caixa}
   union {
      object {boca}
      object {u1}
      object {cano1}
      object {cano2
         translate <8,0,0>
      }
      object {u2
         translate <8,-22,0>
      }

      object {cano3
         translate <16,0,0>
      }
      object {boca_assopra
         scale <0.5,0.5,0.5>
         translate <14,19,3>
         rotate <0,20,0>
         rotate <0,0,2>
         texture {amarelo}
      }
      scale <0.5,0.5,0.5>
      translate <-1,0,6>
   }
   rotate <0,270,0>
   translate <3,0,10>
   scale <1.3,1.3,1.3>

}

// Original camera parameters:
// #local cam_ctr = <0,20,0>
// #local cam_vec = vrotate((<50,35,50>-<0,20,0>),<0,0,0>)
// #local cam_sky = y

#include "camlight.inc"
camlight(<0,20,0>,<10,10,10>,20.0,y,1.0)