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

  1. // See comments in sponge1.pov
  2.  
  3. #if (SpongeLevel = 0)
  4.     object { SpongeObj
  5.         scale SpongeRad * 0.5
  6.         translate SpongeCen
  7.         texture { pigment { color rgb SpongeCen + <0.5,0.5,0.5> } }
  8.     }
  9.     #declare SpongeCounter = SpongeCounter + 1
  10. #else
  11.     // Recursively draw 20 smaller sponges.  Can't use loops here since
  12.     // the indices would be changed by the recursive calls.
  13.  
  14.     #declare SpongeLevel = SpongeLevel - 1
  15.     #declare SpongeRad = SpongeRad / 3
  16.  
  17.     // Top layer
  18.  
  19.     #declare SpongeCen = SpongeCen + <-SpongeRad,-SpongeRad,-SpongeRad>
  20.     #include "sponge1.inc"
  21.     #declare SpongeCen = SpongeCen + <SpongeRad,0,0>
  22.     #include "sponge1.inc"
  23.     #declare SpongeCen = SpongeCen + <SpongeRad,0,0>
  24.     #include "sponge1.inc"
  25.  
  26.     #declare SpongeCen = SpongeCen + <-SpongeRad * 2,SpongeRad,0>
  27.     #include "sponge1.inc"
  28.     #declare SpongeCen = SpongeCen + <SpongeRad * 2,0,0>
  29.     #include "sponge1.inc"
  30.  
  31.     #declare SpongeCen = SpongeCen + <-SpongeRad * 2,SpongeRad,0>
  32.     #include "sponge1.inc"
  33.     #declare SpongeCen = SpongeCen + <SpongeRad,0,0>
  34.     #include "sponge1.inc"
  35.     #declare SpongeCen = SpongeCen + <SpongeRad,0,0>
  36.     #include "sponge1.inc"
  37.  
  38.     // Middle layer
  39.  
  40.     #declare SpongeCen = SpongeCen + <-SpongeRad * 2,-SpongeRad * 2,SpongeRad>
  41.     #include "sponge1.inc"
  42.     #declare SpongeCen = SpongeCen + <SpongeRad * 2,0,0>
  43.     #include "sponge1.inc"
  44.  
  45.     #declare SpongeCen = SpongeCen + <-SpongeRad * 2,SpongeRad * 2,0>
  46.     #include "sponge1.inc"
  47.     #declare SpongeCen = SpongeCen + <SpongeRad * 2,0,0>
  48.     #include "sponge1.inc"
  49.  
  50.     // Bottom layer
  51.  
  52.     #declare SpongeCen = SpongeCen + <-SpongeRad * 2,-SpongeRad * 2,SpongeRad>
  53.     #include "sponge1.inc"
  54.     #declare SpongeCen = SpongeCen + <SpongeRad,0,0>
  55.     #include "sponge1.inc"
  56.     #declare SpongeCen = SpongeCen + <SpongeRad,0,0>
  57.     #include "sponge1.inc"
  58.  
  59.     #declare SpongeCen = SpongeCen + <-SpongeRad * 2,SpongeRad,0>
  60.     #include "sponge1.inc"
  61.     #declare SpongeCen = SpongeCen + <SpongeRad * 2,0,0>
  62.     #include "sponge1.inc"
  63.  
  64.     #declare SpongeCen = SpongeCen + <-SpongeRad * 2,SpongeRad,0>
  65.     #include "sponge1.inc"
  66.     #declare SpongeCen = SpongeCen + <SpongeRad,0,0>
  67.     #include "sponge1.inc"
  68.     #declare SpongeCen = SpongeCen + <SpongeRad,0,0>
  69.     #include "sponge1.inc"
  70.  
  71.     // Restore to original calling values
  72.     #declare SpongeCen = SpongeCen + <-SpongeRad,-SpongeRad,-SpongeRad>
  73.     #declare SpongeRad = SpongeRad * 3
  74.     #declare SpongeLevel = SpongeLevel + 1
  75. #end