#include"colors.inc"
#include"shapes.inc"
#include"stones.inc"
#include"glass.inc"
#include"metals.inc"
#include"skies.inc"

camera{
 location<5,25,-110>
 look_at<0,0,0>
 angle 30
}

light_source{
 <0,0,0>color 2*White
 area_light
 <8,0,0><0,0,8>
 4,4
 jitter
 translate<20,20,0>
}

light_source{
 <0,0,0>color 0.001*<230,200,255>
 area_light
 <8,0,0><0,0,8>
 4,4
 jitter
 translate<0,6,0>
}

light_source{
 <0,0,0>color 0.5*White
 area_light
 <8,0,0><0,0,8>
 4,4
 jitter
 translate<10,100,-10>
}
        
light_source{
 <0,0,0>color White
 area_light
 <8,0,0><0,0,8>
 4,4
 jitter
 translate<-100,100,-100>
}                      

light_source{
 <0,0,0>color 0.3*White
 area_light
 <8,0,0><0,0,8>
 4,4
 jitter
 translate<-5,5,-15>
}
        
#declare Dodai1=object{
 Cube
 texture{T_Stone5}  
 scale<20,0.8,16>
 translate -11*y  
}           

#declare Dodai2=object{
 Cube
 texture{T_Stone5}
 scale<18,0.8,15>
 translate -9.5*y
}
            
union{             
 object{Dodai1}
 object{Dodai2}
}

#declare Dai1=object{
 Cube
 texture{T_Stone2}
 scale<2.5,1,2.5>
 translate<16,-8,-11>
}

#declare Dai2=object{
 Cube
 texture{T_Stone2}
 scale<2,1,2>
 translate<16,-7,-11>
}

#declare Updai1=object{
 Cube
 texture{T_Stone2}
 scale<2,0.5,2>
 translate<16,12,-11>
}

#declare Updai2=object{
 Disk_Y
 texture{T_Stone2}
 scale<1.8,0.5,1.8>
 translate<16,13,-11>
}

#declare Midledai=object{
 Disk_Y
 texture{T_Stone2}
 scale<1.7,0.2,1.7>
 translate<16,3,-11>
}

#declare Tou1=object{
 Disk_Y
 pigment{image_map{png "hasira.png" map_type 1}}
 scale <0.5,12,0.5>
 translate<16,0,-12>
} 

#declare Tou2=object{
 Disk_Y
 pigment{image_map{png "hasira.png" map_type 1}}
 scale <0.5,12,0.5>
 translate<15.5,0,-11.5>
 }

#declare Tou3=object{
 Disk_Y
 pigment{image_map{png "hasira.png" map_type 1}}
 scale <0.5,12,0.5>
 translate<16.5,0,-11.5>
}

#declare Tou4=object{
 Disk_Y
 pigment{image_map{png "hasira.png" map_type 1}}
 scale <0.5,12,0.5>
 translate<16,0,-11>
}    
    
#declare Tou5=object{
 Disk_Y
 pigment{image_map{png "hasira.png" map_type 1}}
 scale <1.5,12,0.5>
 translate<16,0,-11.25>
}        
    
#declare Hasira=
union{
 object{Tou1}
 object{Tou2}
 object{Tou3}
 object{Tou4}
 object{Tou5}
 object{Dai1}
 object{Dai2}
 object{Updai1}
 object{Updai2}
 object{Midledai}     
 }
 
//hasira syuturyoku//

object{
 Hasira
 translate<-1,0,0>
}

object{
 Hasira
 translate<-31,0,0>
}

object{
 Hasira
 translate<-1,0,21>
}

object{
 Hasira
 translate<-31,0,21>
}

//hasira kokomade//   

object{
 Cube
 texture{T_Stone3}
 scale<12,0.3,8>
 translate<0,-8.4,0>
}
 
object{
 Cube
 texture{T_Stone3}
 scale<11.5,0.3,7.5>
 translate<0,-8.1,0>
}

difference{
 object{
  Cube
  texture{T_Stone5}
  scale<6,2,6>
  translate<0,-7,0>
 }
 object{
 Cube
 texture{T_Stone5}
 scale<5,3,5>
 translate<0,-7,0>
 }
}

object{
 Cube
 scale<5,1.8,5.5>
 texture{T_Glass3}
 interior{I_Glass ior 1.33}
 translate<0,-7,0>
}

#declare Ling=object{
 torus{6.5,0.2}
 texture{T_Brass_5C}
// translate<0,6,0>
}

#declare Ring=object
 {Ling}
object
 {Ling
 rotate 30*z
 translate<0,6,0> 
 }
object
 {Ling
 rotate 60*z
 translate<0,6,0> 
 }
object
 {Ling
 rotate 90*z
 translate<0,6,0> 
 }
object
 {Ling
 rotate 120*z
 translate<0,6,0> 
 }
object
 {Ling
 rotate 150*z
 translate<0,6,0> 
 }
object
 {Ling
 rotate 180*z
 translate<0,6,0> 
 }
object
 {Ling
 rotate 30*x
 translate<0,6,0>
 }
object
 {Ling
 rotate 60*x
 translate<0,6,0>
 }
object
 {Ling
 rotate 90*x
 translate<0,6,0>
 }
object
 {Ling
 rotate 120*x
 translate<0,6,0>
 }
object
 {Ling
 rotate 150*x
 translate<0,6,0>
 }     
object
 {Ling
 rotate 180*x
 translate<0,6,0>
 }

object{
 Sphere
 texture{T_Glass3}
 interior{I_Glass ior 1.33}
 scale<6,6,6>
 translate<0,6,0>
}

object{
 Sphere
 texture{T_Glass3}
 interior{I_Glass ior 1.33}
 translate<0,-2,0>
}                 

object{
 Plane_XZ
 texture{T_Glass1}
 interior{I_Glass ior 1.33}
 translate<0,-20,0>
}

object{
 Sphere
 texture{T_Glass1}
 interior{I_Glass ior 1.15}
 scale<30,30,30>
}

sky_sphere{S_Cloud5}