Site hosted by Angelfire.com: Build your free website today!

Lilypads.inc

// (c) Robert J Becraft, All Rights Reserved.
#declare LillyPetal=difference{
sphere{<0,0,0> .05 }
sphere{<0,0,0> .045}
box{<0,-.051,-.051><.051,.051,.051>}

scale <1,1.5,.5>
rotate<0,0,45>
}

#declare LillyPetalCluster=union{
#declare C1=1;
#while (C1<=6)
object{LillyPetal rotate<0,C1*60,0> texture{pigment{color Pink}}}
#declare C1=C1+1;
#end



#declare LillyPad5=union{
cylinder{<0,0,0><0,.0001,0> .05 scale<1,1,1.2> }
triangle{<-.05,0,0><.05,0,0><0,0,-.1>}
translate<0,0,.1> // center on end of triangle
}

#declare LillyPad=union{
object{LillyPad5}
object{LillyPad5 rotate<0,65,0>}
object{LillyPad5 rotate<0,-65,0>}
object{LillyPad5 rotate<0,130,0>}
object{LillyPad5 rotate<0,-140,0>}
object{LillyPad5 rotate<0,180,0>}
}

#declare LillyPatch=union{
#declare C1=1;
#while (C1<25)
#declare RX=rand(R1)*2-1;
#declare RZ=rand(R1)*2-1;
#declare Sc=rand(R1)*.5+.75;
object{LillyPad scale Sc translate<RX,0,RZ>}
#declare C1=C1+1;
#end
#declare C1=1;
#while (C1<15)
#declare RX=rand(R1)*2-1;
#declare RZ=rand(R1)*2-1;
#declare Sc=rand(R1)*.75+.5;
object{LillyPetalCluster scale Sc translate<RX,0,RZ>}
#declare C1=C1+1;
#end 
}