// POV-Ray 3.6/3.7 Scene File "Include_File_Socket_Use.pov"
// Author: Friedrich A, Lohmueller, Dec-2010
// Demo of an macro object include file
// Save this file as "Socket_Use.pov" in the same director like "Socket.inc"
// if "Socket.inc" is not in any of your POV-Ray library paths
//  (i.e. "user/documents/POV-Ray/v3.7/include/")
//------------------------------------------------------------------------
#version 3.7;
global_settings{ assumed_gamma 1.0 }
#default{ finish{ ambient 0.1 diffuse 0.9 }} 
//------------------------------------------------------------------------
#include "colors.inc"
#include "textures.inc"
#include "glass.inc"
#include "metals.inc"
#include "golds.inc"
#include "stones.inc"
#include "woods.inc"
#include "shapes.inc"
#include "shapes2.inc"
#include "functions.inc"
#include "math.inc"
#include "transforms.inc"
//------------------------------------------------------------------------
#declare Camera_0 = camera {/*ultra_wide_angle*/ angle 15      // front view
                            location  <0.0 , 1.0 ,-40.0>
                            right     x*image_width/image_height
                            look_at   <0.0 , 1.0 , 0.0>}
#declare Camera_1 = camera {/*ultra_wide_angle*/ angle 10   // diagonal view
                            location  <10.0 , 7.0 ,-10.0>
                            right     x*image_width/image_height
                            look_at   <0.0 , 0.5 , 0.0>}
#declare Camera_2 = camera {/*ultra_wide_angle*/ angle 90  //right side view
                            location  <3.0 , 1.0 , 0.0>
                            right     x*image_width/image_height
                            look_at   <0.0 , 1.0 , 0.0>}
#declare Camera_3 = camera {/*ultra_wide_angle*/ angle 90        // top view
                            location  <0.0 , 3.0 ,-0.001>
                            right     x*image_width/image_height
                            look_at   <0.0 , 1.0 , 0.0>}
camera{Camera_1}
//------------------------------------------------------------------------
// sun -------------------------------------------------------------------
light_source{<500,2500,-2500> color White}
// sky -------------------------------------------------------------------
sky_sphere{ pigment{ gradient <0,1,0>
                     color_map{ [0   color rgb<1,1,1>         ]//White
                                [0.4 color rgb<0.14,0.14,0.56>]//~Navy
                                [0.6 color rgb<0.14,0.14,0.56>]//~Navy
                                [1.0 color rgb<1,1,1>         ]//White
                              }
                     scale 2 }
           } // end of sky_sphere 
//------------------------------------------------------------------------

// ground -----------------------------------------------------------------
//---------------------------------<<< settings of squared plane dimensions
#declare RasterScale = 0.3;
#declare RasterHalfLine  = 0.035;  
#declare RasterHalfLineZ = 0.035; 
//-------------------------------------------------------------------------
#macro Raster(RScale, HLine) 
       pigment{ gradient x scale RScale
                color_map{[0.000   color rgbt<1,1,1,0>*0.3]
                          [0+HLine color rgbt<1,1,1,0>*0.3]
                          [0+HLine color rgbt<1,1,1,1>]
                          [1-HLine color rgbt<1,1,1,1>]
                          [1-HLine color rgbt<1,1,1,0>*0.3]
                          [1.000   color rgbt<1,1,1,0>*0.3]} }
 #end// of Raster(RScale, HLine)-macro    
//-------------------------------------------------------------------------
    
 
box { <-2,-0.1,-1.5>,<1.5,0,2>     // plane with layered textures
        texture { pigment{color White*1.1}}
        texture { Raster(RasterScale,RasterHalfLine ) rotate<0,0,0> }
        texture { Raster(RasterScale,RasterHalfLineZ) rotate<0,90,0>}
        rotate<0,0,0>
      }
 
//------------------------------------------------ end of squared plane XZ

//--------------------------------------------------------------------------
//---------------------------- objects in scene ----------------------------
//--------------------------------------------------------------------------


//------------------------------------------------------------------- optional textures
#declare Socket_Tex_1 =  // sphere
//texture{ pigment{color rgb<1,0,0>}
texture{ Chrome_Metal  
         normal { bumps 0.85 scale 0.01 }
         finish { phong 0.5 } 
       }
#declare Socket_Tex_2 =  // box 
//texture{ pigment{color rgb<1,0.65,0>}
texture{ pigment{color rgb<1,1,1>*0.7}
         finish { phong 0.5 } 
       }
#declare Socket_Tex_3 =  // cylinders
// texture{ pigment{color rgb<0.5,1,0> }
texture{ Chrome_Metal
         finish { phong 1 } 
       }
//-------------------------------------------------------------------------------------//
#include "Socket.inc"
//-------------------------------------------------------------------------------------//
object{ Socket 
        scale <1,1,1>*1
        rotate<0,0,0>
        translate<0.50,0.50, 0.00>
      } //------------------------

// re-declared textures 
#declare Socket_Tex_1 =  // sphere
texture{ pigment{color rgb<1,0,0>}
         finish { phong 0.5 } 
       }
#declare Socket_Tex_2 =  // box 
texture{ pigment{color rgb<1,0.65,0>}
         finish { phong 0.5 } 
       }
#declare Socket_Tex_3 =  // cylinders
texture{ pigment{color rgb<0.5,1,0> }
         finish { phong 1 } 
       }
// loading object definition again ----------------------------------------------------//
#include "Socket.inc"
//-------------------------------------------------------------------------------------//

object{ Socket 
        scale <1,1,1>*1
        rotate<0,0,0>
        translate<-1.00,0.50, 0.00>
      } //------------------------
//-------------------------------------------------------------------------------------//
//--------------------------------------------------------------------------