home *** CD-ROM | disk | FTP | other *** search
/ Amiga MA Magazine 1998 #7 / amigamamagazinepolishissue1998.iso / varia / povray3 / povray3_fpu / pov3demo / recurse / sphrflak.inc < prev    next >
Text File  |  1997-12-12  |  3KB  |  96 lines

  1. // See sphrflak.pov for info
  2.  
  3. #if (SFLevel = 0)
  4.     sphere { SFCen,SFRad texture { pigment { color rgb SFCen + <0.5,0.5,0.5> }
  5.             finish { reflection 0.3 } } }
  6. #else
  7.     sphere { SFCen,SFRad texture { pigment { color rgb SFCen + <0.5,0.5,0.5> }
  8.             finish { reflection 0.3 } } }
  9.  
  10.     // Change values for this level/instance of recursion
  11.     #declare SFLevel = SFLevel - 1
  12.     #declare SFRad = SFRad / 3
  13.     #declare SFRight = vaxis_rotate(SFRight,SFUp,SFRot)
  14.  
  15.     #declare tmp = SFUp
  16.     #declare SFUp = vaxis_rotate(SFRight,SFUp,60)
  17.     #declare SFRight = tmp
  18.     #declare SFCen = SFCen + SFRad * 4 * SFUp
  19.     #include "sphrflak.inc"
  20.     #declare SFCen = SFCen - SFRad * 4 * SFUp
  21.  
  22.     #declare SFUp = vaxis_rotate(SFUp,SFRight,60)
  23.     #declare SFCen = SFCen + SFRad * 4 * SFUp
  24.     #include "sphrflak.inc"
  25.     #declare SFCen = SFCen - SFRad * 4 * SFUp
  26.  
  27.     #declare SFUp = vaxis_rotate(SFUp,SFRight,60)
  28.     #declare SFCen = SFCen + SFRad * 4 * SFUp
  29.     #include "sphrflak.inc"
  30.     #declare SFCen = SFCen - SFRad * 4 * SFUp
  31.  
  32.     #declare SFUp = vaxis_rotate(SFUp,SFRight,60)
  33.     #declare SFCen = SFCen + SFRad * 4 * SFUp
  34.     #include "sphrflak.inc"
  35.     #declare SFCen = SFCen - SFRad * 4 * SFUp
  36.  
  37.     #declare SFUp = vaxis_rotate(SFUp,SFRight,60)
  38.     #declare SFCen = SFCen + SFRad * 4 * SFUp
  39.     #include "sphrflak.inc"
  40.     #declare SFCen = SFCen - SFRad * 4 * SFUp
  41.  
  42.     #declare SFUp = vaxis_rotate(SFUp,SFRight,60)
  43.     #declare SFCen = SFCen + SFRad * 4 * SFUp
  44.     #include "sphrflak.inc"
  45.     #declare SFCen = SFCen - SFRad * 4 * SFUp
  46.  
  47.     #declare tmp = SFRight
  48.     #declare SFRight = SFUp
  49.     #declare SFUp = tmp
  50.  
  51.     #declare tmp = SFUp
  52.     #declare SFUp = vaxis_rotate(SFRight,SFUp,30)
  53.     #declare Orth = vcross(SFUp,tmp)
  54.     #declare SFRight = vaxis_rotate(tmp,Orth,60)
  55.     #declare SFUp = vaxis_rotate(SFUp,Orth,60)
  56.     #declare SFCen = SFCen + SFRad * 4 * SFUp
  57.     #include "sphrflak.inc"
  58.     #declare SFCen = SFCen - SFRad * 4 * SFUp
  59.     #declare Orth = vcross(SFUp,SFRight)
  60.     #declare tmp = SFRight
  61.     #declare SFRight = vaxis_rotate(SFUp,Orth,-60)
  62.     #declare SFUp = vaxis_rotate(tmp,Orth,-60)
  63.  
  64.     #declare tmp = SFUp
  65.     #declare SFUp = vaxis_rotate(SFRight,SFUp,120)
  66.     #declare Orth = vcross(SFUp,tmp)
  67.     #declare SFRight = vaxis_rotate(tmp,Orth,60)
  68.     #declare SFUp = vaxis_rotate(SFUp,Orth,60)
  69.     #declare SFCen = SFCen + SFRad * 4 * SFUp
  70.     #include "sphrflak.inc"
  71.     #declare SFCen = SFCen - SFRad * 4 * SFUp
  72.     #declare Orth = vcross(SFUp,SFRight)
  73.     #declare tmp = SFRight
  74.     #declare SFRight = vaxis_rotate(SFUp,Orth,-60)
  75.     #declare SFUp = vaxis_rotate(tmp,Orth,-60)
  76.  
  77.     #declare tmp = SFUp
  78.     #declare SFUp = vaxis_rotate(SFRight,SFUp,120)
  79.     #declare Orth = vcross(SFUp,tmp)
  80.     #declare SFRight = vaxis_rotate(tmp,Orth,60)
  81.     #declare SFUp = vaxis_rotate(SFUp,Orth,60)
  82.     #declare SFCen = SFCen + SFRad * 4 * SFUp
  83.     #include "sphrflak.inc"
  84.     #declare SFCen = SFCen - SFRad * 4 * SFUp
  85.     #declare Orth = vcross(SFUp,SFRight)
  86.     #declare tmp = SFRight
  87.     #declare SFRight = vaxis_rotate(SFUp,Orth,-60)
  88.     #declare SFUp = vaxis_rotate(tmp,Orth,-60)
  89.  
  90.     #declare SFRight = vaxis_rotate(SFRight,SFUp,90)
  91.  
  92.     // Restore original "parameter" values
  93.     #declare SFRight = vaxis_rotate(SFRight,SFUp,-SFRot)
  94.     #declare SFRad = SFRad * 3
  95.     #declare SFLevel = SFLevel + 1
  96. #end