/* Tea-carrelage.inc */
// carrelage texture et forme
#declare Teste=0;
#if(Teste)#include "colors.inc"#end
//---------------------------------------------------------
#declare Ep=.03; // utilisé dans la macro et le placement des carrés
// -------- CSG box sphere et cylindres pour un carreau
#macro Carreau(T_,S)// Macro pour jouer avec les textures et dimensions
// épaisseur et texture des bords
#local Scl=.9;
#local Blanc=texture{pigment{rgb <1,1,.9>}finish{ambient 0.3 phong 1 reflection{0,.01}}}
merge {
// cylinder {<-.5,0,-.5><-.5,0,.5>Ep texture{Blanc} scale <Scl,1,1> }
// cylinder {<.5,0,-.5><.5,0,.5>Ep texture{Blanc} scale <Scl,1,1>}
// cylinder {<-.5,0,-.5><.5,0,-.5>Ep texture{Blanc} scale <1,1,Scl>}
// cylinder {<-.5,0,.5><.5,0,.5>Ep texture{Blanc} scale <1,1,Scl>}
// sphere {<-.5,0,-.5>Ep texture{Blanc}scale <Scl,1,Scl>}
// sphere {<-.5,0,.5>Ep texture{Blanc} scale <Scl,1,Scl>}
// sphere {<.5,0,-.5>Ep texture{Blanc} scale <Scl,1,Scl>}
// sphere {<.5,0,.5>Ep texture{Blanc} scale <Scl,1,Scl>}
cylinder {<0,0,0><0,0,1>Ep texture{Blanc} scale <Scl,1,1> translate <-.5,0,-.5>}
cylinder {<0,0,0><0,0,1>Ep texture{Blanc} scale <Scl,1,1> translate <. 5,0,-.5>}
cylinder {<0,0,0><1,0,0>Ep texture{Blanc} scale <1,1,Scl> translate <-.5,0,-.5>}
cylinder {<0,0,0><1,0,0>Ep texture{Blanc} scale <1,1,Scl> translate <-.5,0, .5>}
sphere {0,Ep texture{Blanc} scale <Scl,1,Scl> translate <-.5,0,-.5>}
sphere {0,Ep texture{Blanc} scale <Scl,1,Scl> translate <-.5,0, .5>}
sphere {0,Ep texture{Blanc} scale <Scl,1,Scl> translate < .5,0,-.5>}
sphere {0,Ep texture{Blanc} scale <Scl,1,Scl> translate < .5,0, .5>}
box { <-.5,0,-.5><.5,Ep,.5>}
texture { T_ }
scale S
translate <0.5,0,0.5>*1.5
}
#end
// ---------------------------------------------------------
// Couleurs de bases
#declare F=<1,1,.9>;
#declare A=NavyBlue;
#declare B=MediumBlue;
// -------------------
#declare Scl_pigment=0.1; // Dimensionne les Pigments
#declare PChK=pigment{checker
pigment{checker
pigment{checker
pigment{checker A,F rotate y*45 }
pigment{checker A,F }
scale Scl_pigment
}
pigment{checker
pigment{checker B,F rotate y*45 }
pigment{checker B,F }
scale Scl_pigment
}
scale .25
}
pigment{checker
pigment{checker
pigment{checker A,F rotate y*45 }
pigment{checker A,F }
scale Scl_pigment
}
pigment{checker
pigment{checker B,F rotate y*45 }
pigment{checker B,F }
scale Scl_pigment
}
scale .5
}
}
// Finition de texture
#declare F_tile=finish{ambient 0.3 phong 1 reflection{0,.01}}
// ---------------------------------------------------------Mise en place des textures
#declare TPChK0=texture{pigment{PChK} finish{F_tile}}
#declare TPChK1=texture{pigment{PChK translate <.5,0,.5>} finish{F_tile}}
#declare TPChK2=texture{pigment{PChK translate <1.5,0,.5>} finish{F_tile}}
#declare TPChK3=texture{pigment{PChK translate <-.5,0,.5>} finish{F_tile}}
// ---------------------------------------------------------Patchwork de carrés
#declare Petit_Carreau=
union{
#local S0=0.5;
#local Eps0=Ep+0.007;
#local Ecar0=(S0+Eps0);
object{Carreau(texture{TPChK1 scale 1/S0},S0) }
object{Carreau(texture{TPChK2 scale 1/S0},S0) translate <Ecar0,0,0> }
object{Carreau(texture{TPChK2 scale 1/S0},S0) translate <0,0,Ecar0>}
object{Carreau(texture{TPChK1 scale 1/S0},S0) translate <Ecar0,0,Ecar0> }
scale <1.45,1.3,1.45>
translate <-0.73,.03,-0.73>
}
// Placement des carrés de carreau
#declare Carrelage=
union{
#local S1=1.5;
#local Eps=Ep+0.04;
#local Ecar=(1.5+Eps);
// le support
box{<-2,0,-2><2,0.01,2> pigment{White} scale 3}
object{Petit_Carreau }
object{Carreau(texture{TPChK3},S1) translate <-Ecar,0,0>}
object{Petit_Carreau translate <-Ecar,0,0>*2}
object{Carreau(texture{TPChK1},S1) translate < Ecar,0,0>}
object{Carreau(texture{TPChK3},S1) translate <0,0,Ecar> }
object{Petit_Carreau translate <-Ecar,0,Ecar>}
object{Carreau(texture{TPChK1},S1) translate <-Ecar*2,0,Ecar>}
object{Petit_Carreau translate <Ecar,0,Ecar>}
object{ Petit_Carreau translate < 0,0,Ecar*2>}
object{Carreau(texture{TPChK1},S1)translate <-Ecar,0,Ecar*2>}
object{Petit_Carreau translate <-Ecar*2,0,Ecar*2>}
object{Carreau(texture{TPChK3},S1)translate < Ecar,0,Ecar*2>}
object{Carreau(texture{TPChK1},S1) translate < 0,0,-Ecar>}
object{Petit_Carreau translate <-Ecar,0,-Ecar>}
object{Carreau(texture{TPChK3},S1)translate <-Ecar*2,0,-Ecar>}
object{Petit_Carreau translate < Ecar,0,-Ecar>}
translate x*.3
translate y*-.035
}
// Un carré de carrelage
object{Carrelage}
//----------------------------------------------------------TESTE
#if(Teste)
#declare CamD =camera{location <.3,5,-6> look_at <.0,.7,-.3> right x*image_width/image_height angle 25}
#declare CamH=camera{location <.0,20,1.5> look_at <.0,.0,1.5> right x*image_width/image_height angle 25}
camera{CamH}
//----------------------------------------------------------Light
light_source{ <.3,5,-6>*y*2 1.2}
//--------------------------------
#end //teste
// EOF