 #include "colors.inc"
  #include "golds.inc"
  #include "textures.inc"
  #include "stones.inc"
  #include "glass.inc"
  #include "metals.inc"
//  #include "treegive7.inc"

  camera {
   location <6, 622,5>
    location <800*.62,111,600*.62>
    look_at <0,14,0>
//   angle 79
    angle 69
  }

/*
  light_source {<10,522, 30> color Gray30}  //potential source of trouble
  light_source {<10, 317, 30> color White}
  light_source {<800, 0, 600> color White}
  light_source {<50, 29, 50> color White}
  light_source {<50, 29, -50> color White}
  light_source {<-50,29, 50> color White}
  light_source {<-50,29, -50> color White}
*/

light_source {<0,1900,0> color White}


#declare treeVar = 0

#declare tree0=
         cone {<0,16,0>,.1,<0,0,0>,.175
                texture {
                        pigment { rgb <0.438-.024*treeVar,.742-.088*treeVar,0+.0345*treeVar>}
                        normal {
				                 wrinkles 0.4*treeVar/7
				                 turbulence 0.27
			                    }

                        }
               }

 #declare tree1=
          cone {<0,16,0>,.1,<0,0,0>,.175
          }

#declare treeVar=1
#declare tree2=
union {
      object {tree0
             rotate <15,0,15>}
      object {tree0
             rotate <15,0,-15>}
      object {tree0
             rotate <-15,0,15>}
      object {tree0
             rotate <-15,0,-15>}
      object {tree1
                   scale <1.75,1,1.75>
                   translate <0,-16,0>
                   texture {
                           pigment { rgb <0.438-.024*treeVar,.742-.088*treeVar,0+.0345*treeVar>}
                           normal {
				                 wrinkles 0.4*treeVar/7
				                 turbulence 0.27
			                    }
                            }
              }
       translate <0,16,0>
                    }
#declare treeVar=2
#declare tree3=
union {
      object {tree2
             rotate <15,0,15>}
      object {tree2
             rotate <15,0,-15>}
      object {tree2
             rotate <-15,0,15>}
      object {tree2
             rotate <-15,0,-15>}
      object {tree1
             scale <1.75*1.75,1,1.75*1.75>
             translate <0,-16,0>
             texture {
                           pigment { rgb <0.438-.024*treeVar,.742-.088*treeVar,0+.0345*treeVar>}
                           normal {
				                 wrinkles 0.4*treeVar/7
				                 turbulence 0.27
			                    }
                                 }
                      }
             translate <0,16,0>
      }
#declare treeVar=3
#declare tree4=
union {
      object {tree3
             rotate <15,0,15>}
      object {tree3
             rotate <15,0,-15>}
      object {tree3
             rotate <-15,0,15>}
      object {tree3
             rotate <-15,0,-15>}
      object {tree1
             scale <1.75*1.75*1.75,1,1.75*1.75*1.75>
             translate <0,-16,0>
             texture {
                           pigment { rgb <0.438-.024*treeVar,.742-.088*treeVar,0+.0345*treeVar>}
                           normal {
				                 wrinkles 0.4*treeVar/7
				                 turbulence 0.27
			                    }
                            }}
      translate <0,16,0>
      }
#declare treeVar=4
#declare tree5=
union {
      object {tree4
             rotate <15,0,15>}
      object {tree4
             rotate <15,0,-15>}
      object {tree4
             rotate <-15,0,15>}
      object {tree4
             rotate <-15,0,-15>}
      object {tree1
             scale <1.75*1.75*1.75*1.75,1,1.75*1.75*1.75*1.75>
             translate <0,-16,0>
             texture {
                           pigment { rgb <0.438-.024*treeVar,.742-.088*treeVar,0+.0345*treeVar>}
                           normal {
				                 wrinkles 0.4*treeVar/7
				                 turbulence 0.27
			                    }
                            }
             }
      translate <0,16,0>
      }
#declare treeVar=5
#declare tree6=
union {
      object {tree5
             rotate <15,0,15>}
      object {tree5
             rotate <15,0,-15>}
      object {tree5
             rotate <-15,0,15>}
      object {tree5
             rotate <-15,0,-15>}
      object {tree1
             scale <1.75*1.75*1.75*1.75*1.75,1,1.75*1.75*1.75*1.75*1.75>
             translate <0,-16,0>
             texture {
                           pigment { rgb <0.293+.021*treeVar,.215+.072*treeVar,.203-.029*treeVar> }
                           normal {
				                 wrinkles 0.4*treeVar/7
				                 turbulence 0.27
			                    }
                            }
             }
      translate <0,16,0>
}
#declare treeVar=6
#declare tree7=
union {
      object {tree6
             rotate <15,0,15>}
      object {tree6
             rotate <15,0,-15>}
      object {tree6
             rotate <-15,0,15>}
      object {tree6
             rotate <-15,0,-15>}
      object {tree1
             scale <1.75*1.75*1.75*1.75*1.75*1.75,1,1.75*1.75*1.75*1.75*1.75*1.75>
             translate <0,-16,0>

             texture {
                           pigment { rgb <0.293+.021*treeVar,.215+.072*treeVar,.203-.029*treeVar> }
                           normal {
				                 wrinkles 0.4*treeVar/7
				                 turbulence 0.27
			                    }
                            }}
      translate <0,16,0>
}


#declare blobguess=107
#declare  housing =
union{
blob {  threshold 0.1 cylinder {<0,0,0>,<0,60,0>,120,2}
      texture {T_Yellow_Glass}            //glass dome
//        pigment {Red}
      }
torus {blobguess,3
      pigment{Black}}
cone {<0,0,0>,blobguess+10,<0,10,0>,blobguess
     texture {T_Copper_4C}
     }
cylinder {<0,0,0>,<0,-20,0>,blobguess+10
         texture {T_Copper_4C}
         }
#declare bolt=
prism { linear_sweep 0,16,6, <0,0>,<1,0>,<1.5,.86602>,<1,1.73205>,<0,1.73205>,<-.5,.86602>
        scale <3,3,3>
        texture {T_Chrome_2E}
        rotate <0,0,90>
        translate <blobguess+12,-4,0>
        }
#declare OJ=0
#while (OJ <37)
       object {bolt
       rotate <0,OJ*10,0>}
#declare OJ=OJ+1
#end

torus {blobguess+22,.43
      pigment {Yellow}
      translate <0,-18,0>}
torus {blobguess+22,.43
      pigment {Yellow}
      translate <0,-16,0>}
torus {blobguess+22,.43
      pigment {Yellow}
      translate <0,-14,0>}
torus {blobguess+22,.43
      pigment {Yellow}
      translate <0,-12,0>}
torus {blobguess+22,.43
      pigment {Yellow}
      translate <0,-10,0>}
torus {blobguess+22,.43
      pigment {Yellow}
      translate <0,-8,0>}
torus {blobguess+22,.43
      pigment {Yellow}
      translate <0,-6,0>}
      
box {<-1,-1,-1>,<1,1,1>
    texture{
            pigment{
                    image_map {
                              gif "danger3.gif"
                              once
                              map_type 0
                              }
                   }
            finish { ambient rgb <0.4,0.4,0.4> }
            }        
      scale <36,14,1>
      translate <0,-15,-blobguess-22.1>
  }

}

plane {y,-20
      texture{
             pigment {Gray90}
             normal {wrinkles
                    }
             }
      }
      
  #declare aR1 = seed(0)
  #declare leavv=155
  #declare nleavv=1
  #while  (nleavv<leavv)
  
  disc {<0,0,0>,<0,1,0>,1
       pigment {ForestGreen}
       normal  {quilted}
       scale <1,1,2.5>
       rotate <0,360*rand(aR1),0>
       translate <-500+rand(aR1)*1000, -19.9, -500+rand(aR1)*1000>
       }
#declare  nleavv=nleavv+1
#end 



sky_sphere {
           pigment {                       //anticyclone texture,
                   granite                //from POVLAB.inc
                   turbulence 0.7
                   color_map {
                             [0   0.22   color rgb <0.5945, 0.2855, 0.3515> 
                                         color rgb <0.5945, 0.2855, 0.3515>]
                             [0.22 0.72  color rgb <0.3285, 0.8692, 0.8863>
                                         color rgb <0.3917, 0.0324, 0.2404>]
                             [0.72 1.001 color rgb <0.9442, 0.8700, 0.7092>
                                         color rgb <0.4873, 0.4105, 0.2861>]
                             }
                  rotate <128 329 120>
                  scale <.5,.5,.5>
                 //scale  <3.6 3.6 1.9>
                 }
            }
           

object {housing
       rotate <0,-150,0>
       translate <0,0,0>}
object {housing
       rotate <0,-150,0>
       translate <350,0,0>
       }
object {housing
       rotate <0,-150,0>
       translate <-350,0,0>}
object {housing
       rotate <0,-150,0>
       translate <0,0,350>}
object {housing
       rotate <0,-150,0>
       translate <0,0,-350>}
object {housing
       rotate <0,-150,0>
       translate <-700,0,0>}
object {housing
       rotate <0,-150,0>
       translate <-350,0,-350>}
object {housing
       rotate <0,-150,0>
       translate <-550,0,-700>}
       
object {housing
       rotate <0,-150,0>
       translate <-350,0,350>}      //blank extra
       
object {housing
       rotate <0,-150,0>
       translate <-700,0,350>}      //blank extra
       
object {housing
       rotate <0,-150,0>
       translate <-1050,0,0>}      //blank extra
       
object {housing
       rotate <0,-150,0>
       translate <350,0,-350>}      //blank extra
       
       
object {tree7                                   //fractal tree
       translate<350,5,0>}

cylinder {<-350,-20,-14>,<-350,70,14>,30       //inept tree
         pigment {Brown}}
         sphere {<-352,75,-8>,40
                pigment {Green}}

union{
      box {<-1,-1,-1>,<1,1,1>
           scale <20,80,20>
           translate <0,0,-350>
           }
      superellipsoid {<0.1, 1>
                     rotate <90,0,0>
                     scale <50,25,50>
                     translate <0,80,-350>
                     }
      pigment {DarkOliveGreen
            }
      }
    
union{
cone {<-550,0,-700>,70, <-550,35,-700>,.1}
cone {<-550,25,-700>,60,<-550,60,-700>,.1}
cone {<-550,50,-700>,50,<-550,85,-700>,.1}
cone {<-550,75,-700>,40,<-550,110,-700>,.1}
cone {<-550,100,-700>,30,<-550,130,-700>,.1}
texture {
        pigment {DarkGreen}
        normal {crackle}
        }     
}

//cone {<-700,0,0>,90,<-700,110,-0>,2   pigment {Cyan}}


  #declare aR2 = seed(4)
  #declare leavv=185
  #declare nleavv=1
  #while  (nleavv<leavv)
  disc {<0,0,0>,<0,1,0>,1
       pigment {ForestGreen}
       rotate <90*rand(aR2),0,110*rand(aR2)>
       rotate <0,rand(aR2)*360,0>
       scale <10,1,10>
       translate <-700+50*rand(aR2)-25,70-50+100*rand(aR2),0+50*rand(aR2)-25>
       }
#declare  nleavv=nleavv+1
#end 



  object {
#declare BarkTexture=0
#declare BaseLen=6
#declare Tip=1
#declare LeafShape=2
#declare LeafTexture=3
#declare FlowerShape=0
#declare FlowerTexture=5
#declare MinXDeg=25
#declare MaxXDeg=60
#declare LengthInc=1.25
#declare IncSplits=1.15
#include "trees.inc"                    //sonya roberts trees
translate <0,9,0>
}

#declare leop =
texture {
        pigment{
                crackle
                color_map {
                          [0.00  color rgbt <1,1,1,1>]
                          [0.25  color rgbt <1,1,1,1>]
                          [0.25  color rgbt <0,1,0,0>]
                          [0.50  color rgbt <.1,.8,.1,0>]
                          [0.50  color rgbt <1,1,1,1>]
                          [0.7  color rgbt <1,1,1,1>]
                          [0.7  color rgbt <0,1,0,0>]
                          [1  color rgbt <.1,.8,.1,0>]
                         }
                }
   }

#declare shell=
 union {
 #declare n=8
  #while (n <15)
        difference{
                   sphere {<0,0,0>,n
                          texture {leop
                                  rotate <n*32,n*-32,n*30>
                                  }
                          }
                   cone {<0,-30,0>,60,<0,0,0>,.1  color rgbt <1,1,1,1>}
                   }
#declare n=n+2
  #end
 }

object {shell
       scale <8,8,8>
       translate <0,10,350>
       }
cylinder {<0,-20,0>,<0,75,0>,4
         texture {
                  pigment {Brown}
                  normal {bumps
                         scale <.051,4,.051>
                         }
                  }
         }



#declare ydelt=.7
#declare larmx=25
#declare larmz=25
#declare rarmx=-20
#declare rarmz=-25
#declare lelbow=55
#declare relbow=55
#declare llegx=-25
#declare llegy=-15
#declare rlegx=55
#declare rlegy=15
#declare lshinx=-35
#declare rshinx=-35
#declare thighL=2.25
#declare shinL=2
#declare bicepL=2.3
#declare boost=1
#declare joint=1

object {
       #include "body6.inc"
       scale <1.6,1.6,1.6>
       translate <175,-5.5,175>
       }
object {
#declare ydelt=.7
#declare larmx=-5
#declare larmz=29
#declare rarmx=60
#declare rarmz=-29
#declare lelbow=15
#declare relbow=55
#declare llegx=15
#declare llegy=-15
#declare rlegx=-15
#declare rlegy=15
#declare lshinx=-20
#declare rshinx=-20
#declare thighL=2.25
#declare shinL=2
#declare bicepL=2.3
#declare boost=1
#declare joint=1
        #include "body6.inc"
       scale <1.6,1.6,1.6>
       rotate <0,190,0>
       translate <277,-5.5,-203>            //this guy
       }


object {
#declare ydelt=.7
#declare larmx=-25
#declare larmz=25
#declare rarmx=20
#declare rarmz=-25
#declare lelbow=55
#declare relbow=55
#declare llegx=25
#declare llegy=-15
#declare rlegx=-55
#declare rlegy=15
#declare lshinx=-35
#declare rshinx=-35
#declare thighL=2.25
#declare shinL=2
#declare bicepL=2.3
#declare boost=1
#declare joint=1
        #include "body6.inc"
       scale <1.6,1.6,1.6>
       rotate <0,160,0>
       translate <180,-5.5,18>
       }
       

object {
#declare ydelt=.7
#declare larmx=-25
#declare larmz=25
#declare rarmx=20
#declare rarmz=-25
#declare lelbow=55
#declare relbow=55
#declare llegx=25
#declare llegy=-15
#declare rlegx=-55
#declare rlegy=15
#declare lshinx=-35
#declare rshinx=-55
#declare thighL=2.25
#declare shinL=2
#declare bicepL=2.3
#declare boost=1
#declare joint=1
        #include "body6.inc"
       scale <1.6,1.6,1.6>
       rotate <0,140,0>
       translate <205,-5.5,231>
       }


object {
#declare ydelt=.7
#declare larmx=-25
#declare larmz=25
#declare rarmx=20
#declare rarmz=-25
#declare lelbow=55
#declare relbow=55
#declare llegx=25
#declare llegy=-15
#declare rlegx=-55
#declare rlegy=15
#declare lshinx=-35
#declare rshinx=-35
#declare thighL=2.25
#declare shinL=2
#declare bicepL=2.3
#declare boost=1
#declare joint=1
        #include "body6.inc"
       scale <1.6,1.6,1.6>
       rotate <0,160,0>
       translate <-170,-5.5,-210>                          //
       }       
       
object {
#declare ydelt=.7
#declare larmx=-5
#declare larmz=35
#declare rarmx=5
#declare rarmz=-35
#declare lelbow=25
#declare relbow=25
#declare llegx=5
#declare llegy=-15
#declare rlegx=-5
#declare rlegy=15
#declare lshinx=-5
#declare rshinx=-5
#declare thighL=2.25
#declare shinL=2
#declare bicepL=2.3
#declare boost=1
#declare joint=1
        #include "body6.inc"
       scale <1.6,1.6,1.6>
       rotate <0,160,0>
       translate <430,-5.5,250>                          //
       }
       
object {

#declare ydelt=.7
#declare larmx=55
#declare larmz=25
#declare rarmx=50
#declare rarmz=-15
#declare lelbow=55
#declare relbow=55
#declare llegx=-15
#declare llegy=-15
#declare rlegx=15
#declare rlegy=15
#declare lshinx=5
#declare rshinx=-5
#declare thighL=2.25
#declare shinL=2
#declare bicepL=2.3
#declare boost=1
#declare joint=1
        #include "body6.inc"
       scale <1.6,1.6,1.6>
       rotate <0,160,0>
       translate <-100,-5.5,141>
       }
