Home » Personal collection » Acorn hard disk » apps » QRT » Images/Building/QRT

Images/Building/QRT

This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.

Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.

Tape/disk: Home » Personal collection » Acorn hard disk » apps » QRT
Filename: Images/Building/QRT
Read OK:
File size: 205F bytes
Load address: 0000
Exec address: 0000
File contents
{ *************************************************************

    "BUILDING.QRT"  - two modern high-rise office buildings,
                      with the a road between them.

      Rendered by QRT 1.5 on an HP 9000/370
      Steve Koren, 14 Mar 89

      Image requires version 1.5 or later due to TRIANGLE()
      bug in 1.1 -> 1.4.

  ************************************************************* }

FILE_NAME = Building.RAW


{ *********   Some pattern definitions ********** }

PATTERN ( x_size = 60,                 { ** Checkered pattern ** }
          y_size = 60,
          name   = CHECK,
          RECTANGLE (
            start_x = 0,
            start_y = 0,
            end_x   = 30,
            end_y   = 30,
            diff    = (.1,1.0,.1),
          )
          RECTANGLE (
            start_x = 30,
            start_y = 30,
            end_x   = 60,
            end_y   = 60,
            diff    = (.1,1.0,.1),
          )
        )

PATTERN ( x_size = 10,
          y_size = 15,
          name   = BUILDING_SIDE,
          RECTANGLE (
            start_x = 1,  start_y = 1,
            end_x   = 9,  end_y   = 14

            diff    = (.2, .2, .2),
            mirror  = (.75, .75, .75)
          )
        )
   
PATTERN ( x_size = 10,
          y_size = 15,
          name = BUILDING_STRIPE
          RECTANGLE (
            start_x = 0,  start_y = 3,
            end_x   = 10, end_y = 12;

            diff    = (.2, .2, .2),
            mirror  = (.65, .65, .65)
          )
        )


   { **************** SIDE ONE ******************* }
   
BEGIN_BBOX

   BEGIN_BBOX
   
      PARALLELOGRAM ( loc    = (100, 0, 0),
                      v1     = (0, 0, 70),
                      v2     = (0, 60, 0)
                      diff   = (.4, .4, .4)
                      pattern= BUILDING_SIDE
                    )
   
      TRIANGLE      ( loc    = (100, 60, 0),
                      v1     = (0, 0, 70),
                      v2     = (62, 0, 35)
                      diff   = (.7, .2, .2)
                    )
   
      PARALLELOGRAM ( loc    = (100, 60, 0),
                      v1     = (62, 0, 35),
                      v2     = (0, 60, 0)
                      diff   = (.4, .4, .4)
                      pattern= BUILDING_SIDE
                    )
   
   { **************** SIDE TWO ******************* }
   
      PARALLELOGRAM ( loc    = (100, 0, 0),
                      v1     = (62, 0, -35),
                      v2     = (0, 120, 0)
                      diff   = (.4, .4, .4)
                      pattern= BUILDING_SIDE
                    )
   
      TRIANGLE      ( loc    = (100, 120, 0),
                      v1     = (62, 0, 35),
                      v2     = (62, 0, -35)
                      diff   = (.7, .2, .2)
                    )
   
   END_BBOX
   
   BEGIN_BBOX
      PARALLELOGRAM ( loc    = (162, 120, -35)
                      v1     = (0, 0, 70),
                      v2     = (0, 60, 0),
                      diff   = (.4, .4, .4)
                      pattern= BUILDING_SIDE
                    )
   
   { **************** SIDE THREE ******************* }
   
      PARALLELOGRAM ( loc    = (162, 0, -35),
                      v1     = (62, 0, 35),
                      v2     = (0, 180, 0)
                      diff   = (.4, .4, .4)
                      pattern= BUILDING_SIDE
                    )
   
      TRIANGLE      ( loc    = (162, 180, -35),
                      v1     = (0, 0, 70),
                      v2     = (62, 0, 35)
                      diff   = (.7, .2, .2)
                    )
      
      PARALLELOGRAM ( loc    = (224, 180, 0)
                      v1     = (-62, 0, 35),
                      v2     = (0, 60, 0),
                      diff   = (.4, .4, .4)
                      pattern= BUILDING_SIDE
                    )
   
   END_BBOX
   
   { **************** SIDE FOUR ******************* }
   
   BEGIN_BBOX
   
      PARALLELOGRAM ( loc    = (224, 0, 0),
                      v1     = (0, 0, 70),
                      v2     = (0, 240, 0) 
                      diff   = (.4, .4, .4)
                      pattern= BUILDING_SIDE
                    )
      
      TRIANGLE      ( loc    = (224, 240, 0)
                      v1     = (0,0, 70),
                      v2     = (-62, 0, 35)
                      diff   = (.7, .2, .2)
                    )
   
      PARALLELOGRAM ( loc    = (224, 240, 70)
                      v1     = (-62, 0, -35),
                      v2     = (0, 60, 0),
                      diff   = (.4, .4, .4)
                      pattern= BUILDING_SIDE
                    )
   
   { **************** SIDE FIVE ******************* }
   
      PARALLELOGRAM ( loc    = (224, 0, 70),
                      v1     = (-62, 0, 35),
                      v2     = (0, 300, 0)
                      diff   = (.4, .4, .4)
                      pattern= BUILDING_SIDE
                    )
   
      TRIANGLE      ( loc    = (224, 300, 70),
                      v1     = (-62, 0, 35),
                      v2     = (-62, 0, -35)
                      diff   = (.7, .2, .2)
                    )
   
   END_BBOX
   
   BEGIN_BBOX
   
   PARALLELOGRAM ( loc    = (162, 300, 105)
                   v1     = (0, 0, -70),
                   v2     = (0, 60, 0),
                   diff   = (.4, .4, .4)
                   pattern= BUILDING_SIDE
                 )
   
   { **************** SIDE SIX ******************* }
   
      PARALLELOGRAM ( loc    = (100, 0, 70),
                      v1     = (62, 0, 35),
                      v2     = (0, 360, 0)
                      diff   = (.4, .4, .4)
                      pattern= BUILDING_SIDE
                    )
      
      TRIANGLE      ( loc    = (100, 360, 70),
                      v1     = (62, 0, 35),
                      v2     = (62, 0, -35)
                      diff   = (.7, .2, .2)
                    )
      
      PARALLELOGRAM ( loc    = (100, 60, 70)
                      v1     = (62, 0, -35),
                      v2     = (0, 300, 0),
                      diff   = (.4, .4, .4)
                      pattern= BUILDING_SIDE
                    )

   END_BBOX

END_BBOX


{ ******** PYRAMID shaped building ********** }

BEGIN_BBOX

   TRIANGLE ( loc    = (120, 0,   200),
              v1     = (0,   0,   100),
              v2     = (43,  250, 50),
              diff   = (.6, .2,   .2),
              pattern= BUILDING_STRIPE
            )

   TRIANGLE ( loc    = (120, 0,   200),
              v1     = (86,  0,   50),
              v2     = (43,  250, 50),
              diff   = (.6, .2,   .2),
              pattern= BUILDING_STRIPE
            )

   TRIANGLE ( loc    = (120, 0,   300),
              v1     = (86,  0,   -50),
              v2     = (43,  250, -50),
              diff   = (.6, .2, .2),
              pattern= BUILDING_STRIPE
            )
END_BBOX

{ **** THE GROUND AND SOME ROADS *** }

BEGIN_BBOX

    PARALLELOGRAM ( loc   = (60, .01, -500)
                    v1    = (20, 0, 0)
                    v2    = (0, 0, 1000)
                    diff  = (.4, .4, .4)
                  )

    PARALLELOGRAM ( loc   = (-150, .01, 150)
                    v1    = (500, 0, 0)
                    v2    = (0, 0, 20)
                    diff  = (.4, .4, .4)
                  )


END_BBOX


{ ** Ground - try a big spherical one for effect ** }

SPHERE  ( loc    = (100, -5000, 0),
          radius = 5000,
          diff   = (.8, .8, 0),
          pattern= CHECK,
          xmult  = 2.5,
          ymult  = 2.5
        )

{
   PARALLELOGRAM ( loc  = (  -3000, 0,  -3000),  { ** big! ** }
                   v1   = (6000,    0,      0),
                   v2   = (  0,     0,   6000),

                   diff = (  .8, .8, 0),
                   pattern = CHECK
                   xmult = 2
                   ymult = 2
                 )
}


{ ** An observer ** }

OBSERVER ( loc    = (-200, 400, -80)
           lookat = (150, 150, 90)
         )

{ ** Lights (but not Bud lights) ** }

LAMP ( loc = (30, 540, 60),
       radius = 5,
       dist = 300
     )

LAMP ( loc = (240, 400, -5),
       radius = 5,
       dist = 200
     )

SKY  ( horiz  = (.3, .3, .75),
       zenith = (.1, .1, .60),
       dither = 4
     )

FOC_LENGTH = 65

00000000  0a 7b 20 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |.{ *************|
00000010  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
00000040  0a 0a 20 20 20 20 22 42  55 49 4c 44 49 4e 47 2e  |..    "BUILDING.|
00000050  51 52 54 22 20 20 2d 20  74 77 6f 20 6d 6f 64 65  |QRT"  - two mode|
00000060  72 6e 20 68 69 67 68 2d  72 69 73 65 20 6f 66 66  |rn high-rise off|
00000070  69 63 65 20 62 75 69 6c  64 69 6e 67 73 2c 0a 20  |ice buildings,. |
00000080  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000090  20 20 20 20 20 77 69 74  68 20 74 68 65 20 61 20  |     with the a |
000000a0  72 6f 61 64 20 62 65 74  77 65 65 6e 20 74 68 65  |road between the|
000000b0  6d 2e 0a 0a 20 20 20 20  20 20 52 65 6e 64 65 72  |m...      Render|
000000c0  65 64 20 62 79 20 51 52  54 20 31 2e 35 20 6f 6e  |ed by QRT 1.5 on|
000000d0  20 61 6e 20 48 50 20 39  30 30 30 2f 33 37 30 0a  | an HP 9000/370.|
000000e0  20 20 20 20 20 20 53 74  65 76 65 20 4b 6f 72 65  |      Steve Kore|
000000f0  6e 2c 20 31 34 20 4d 61  72 20 38 39 0a 0a 20 20  |n, 14 Mar 89..  |
00000100  20 20 20 20 49 6d 61 67  65 20 72 65 71 75 69 72  |    Image requir|
00000110  65 73 20 76 65 72 73 69  6f 6e 20 31 2e 35 20 6f  |es version 1.5 o|
00000120  72 20 6c 61 74 65 72 20  64 75 65 20 74 6f 20 54  |r later due to T|
00000130  52 49 41 4e 47 4c 45 28  29 0a 20 20 20 20 20 20  |RIANGLE().      |
00000140  62 75 67 20 69 6e 20 31  2e 31 20 2d 3e 20 31 2e  |bug in 1.1 -> 1.|
00000150  34 2e 0a 0a 20 20 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |4...  **********|
00000160  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |****************|
*
00000190  2a 2a 2a 20 7d 0a 0a 46  49 4c 45 5f 4e 41 4d 45  |*** }..FILE_NAME|
000001a0  20 3d 20 42 75 69 6c 64  69 6e 67 2e 52 41 57 0a  | = Building.RAW.|
000001b0  0a 0a 7b 20 2a 2a 2a 2a  2a 2a 2a 2a 2a 20 20 20  |..{ *********   |
000001c0  53 6f 6d 65 20 70 61 74  74 65 72 6e 20 64 65 66  |Some pattern def|
000001d0  69 6e 69 74 69 6f 6e 73  20 2a 2a 2a 2a 2a 2a 2a  |initions *******|
000001e0  2a 2a 2a 20 7d 0a 0a 50  41 54 54 45 52 4e 20 28  |*** }..PATTERN (|
000001f0  20 78 5f 73 69 7a 65 20  3d 20 36 30 2c 20 20 20  | x_size = 60,   |
00000200  20 20 20 20 20 20 20 20  20 20 20 20 20 20 7b 20  |              { |
00000210  2a 2a 20 43 68 65 63 6b  65 72 65 64 20 70 61 74  |** Checkered pat|
00000220  74 65 72 6e 20 2a 2a 20  7d 0a 20 20 20 20 20 20  |tern ** }.      |
00000230  20 20 20 20 79 5f 73 69  7a 65 20 3d 20 36 30 2c  |    y_size = 60,|
00000240  0a 20 20 20 20 20 20 20  20 20 20 6e 61 6d 65 20  |.          name |
00000250  20 20 3d 20 43 48 45 43  4b 2c 0a 20 20 20 20 20  |  = CHECK,.     |
00000260  20 20 20 20 20 52 45 43  54 41 4e 47 4c 45 20 28  |     RECTANGLE (|
00000270  0a 20 20 20 20 20 20 20  20 20 20 20 20 73 74 61  |.            sta|
00000280  72 74 5f 78 20 3d 20 30  2c 0a 20 20 20 20 20 20  |rt_x = 0,.      |
00000290  20 20 20 20 20 20 73 74  61 72 74 5f 79 20 3d 20  |      start_y = |
000002a0  30 2c 0a 20 20 20 20 20  20 20 20 20 20 20 20 65  |0,.            e|
000002b0  6e 64 5f 78 20 20 20 3d  20 33 30 2c 0a 20 20 20  |nd_x   = 30,.   |
000002c0  20 20 20 20 20 20 20 20  20 65 6e 64 5f 79 20 20  |         end_y  |
000002d0  20 3d 20 33 30 2c 0a 20  20 20 20 20 20 20 20 20  | = 30,.         |
000002e0  20 20 20 64 69 66 66 20  20 20 20 3d 20 28 2e 31  |   diff    = (.1|
000002f0  2c 31 2e 30 2c 2e 31 29  2c 0a 20 20 20 20 20 20  |,1.0,.1),.      |
00000300  20 20 20 20 29 0a 20 20  20 20 20 20 20 20 20 20  |    ).          |
00000310  52 45 43 54 41 4e 47 4c  45 20 28 0a 20 20 20 20  |RECTANGLE (.    |
00000320  20 20 20 20 20 20 20 20  73 74 61 72 74 5f 78 20  |        start_x |
00000330  3d 20 33 30 2c 0a 20 20  20 20 20 20 20 20 20 20  |= 30,.          |
00000340  20 20 73 74 61 72 74 5f  79 20 3d 20 33 30 2c 0a  |  start_y = 30,.|
00000350  20 20 20 20 20 20 20 20  20 20 20 20 65 6e 64 5f  |            end_|
00000360  78 20 20 20 3d 20 36 30  2c 0a 20 20 20 20 20 20  |x   = 60,.      |
00000370  20 20 20 20 20 20 65 6e  64 5f 79 20 20 20 3d 20  |      end_y   = |
00000380  36 30 2c 0a 20 20 20 20  20 20 20 20 20 20 20 20  |60,.            |
00000390  64 69 66 66 20 20 20 20  3d 20 28 2e 31 2c 31 2e  |diff    = (.1,1.|
000003a0  30 2c 2e 31 29 2c 0a 20  20 20 20 20 20 20 20 20  |0,.1),.         |
000003b0  20 29 0a 20 20 20 20 20  20 20 20 29 0a 0a 50 41  | ).        )..PA|
000003c0  54 54 45 52 4e 20 28 20  78 5f 73 69 7a 65 20 3d  |TTERN ( x_size =|
000003d0  20 31 30 2c 0a 20 20 20  20 20 20 20 20 20 20 79  | 10,.          y|
000003e0  5f 73 69 7a 65 20 3d 20  31 35 2c 0a 20 20 20 20  |_size = 15,.    |
000003f0  20 20 20 20 20 20 6e 61  6d 65 20 20 20 3d 20 42  |      name   = B|
00000400  55 49 4c 44 49 4e 47 5f  53 49 44 45 2c 0a 20 20  |UILDING_SIDE,.  |
00000410  20 20 20 20 20 20 20 20  52 45 43 54 41 4e 47 4c  |        RECTANGL|
00000420  45 20 28 0a 20 20 20 20  20 20 20 20 20 20 20 20  |E (.            |
00000430  73 74 61 72 74 5f 78 20  3d 20 31 2c 20 20 73 74  |start_x = 1,  st|
00000440  61 72 74 5f 79 20 3d 20  31 2c 0a 20 20 20 20 20  |art_y = 1,.     |
00000450  20 20 20 20 20 20 20 65  6e 64 5f 78 20 20 20 3d  |       end_x   =|
00000460  20 39 2c 20 20 65 6e 64  5f 79 20 20 20 3d 20 31  | 9,  end_y   = 1|
00000470  34 0a 0a 20 20 20 20 20  20 20 20 20 20 20 20 64  |4..            d|
00000480  69 66 66 20 20 20 20 3d  20 28 2e 32 2c 20 2e 32  |iff    = (.2, .2|
00000490  2c 20 2e 32 29 2c 0a 20  20 20 20 20 20 20 20 20  |, .2),.         |
000004a0  20 20 20 6d 69 72 72 6f  72 20 20 3d 20 28 2e 37  |   mirror  = (.7|
000004b0  35 2c 20 2e 37 35 2c 20  2e 37 35 29 0a 20 20 20  |5, .75, .75).   |
000004c0  20 20 20 20 20 20 20 29  0a 20 20 20 20 20 20 20  |       ).       |
000004d0  20 29 0a 20 20 20 0a 50  41 54 54 45 52 4e 20 28  | ).   .PATTERN (|
000004e0  20 78 5f 73 69 7a 65 20  3d 20 31 30 2c 0a 20 20  | x_size = 10,.  |
000004f0  20 20 20 20 20 20 20 20  79 5f 73 69 7a 65 20 3d  |        y_size =|
00000500  20 31 35 2c 0a 20 20 20  20 20 20 20 20 20 20 6e  | 15,.          n|
00000510  61 6d 65 20 3d 20 42 55  49 4c 44 49 4e 47 5f 53  |ame = BUILDING_S|
00000520  54 52 49 50 45 0a 20 20  20 20 20 20 20 20 20 20  |TRIPE.          |
00000530  52 45 43 54 41 4e 47 4c  45 20 28 0a 20 20 20 20  |RECTANGLE (.    |
00000540  20 20 20 20 20 20 20 20  73 74 61 72 74 5f 78 20  |        start_x |
00000550  3d 20 30 2c 20 20 73 74  61 72 74 5f 79 20 3d 20  |= 0,  start_y = |
00000560  33 2c 0a 20 20 20 20 20  20 20 20 20 20 20 20 65  |3,.            e|
00000570  6e 64 5f 78 20 20 20 3d  20 31 30 2c 20 65 6e 64  |nd_x   = 10, end|
00000580  5f 79 20 3d 20 31 32 3b  0a 0a 20 20 20 20 20 20  |_y = 12;..      |
00000590  20 20 20 20 20 20 64 69  66 66 20 20 20 20 3d 20  |      diff    = |
000005a0  28 2e 32 2c 20 2e 32 2c  20 2e 32 29 2c 0a 20 20  |(.2, .2, .2),.  |
000005b0  20 20 20 20 20 20 20 20  20 20 6d 69 72 72 6f 72  |          mirror|
000005c0  20 20 3d 20 28 2e 36 35  2c 20 2e 36 35 2c 20 2e  |  = (.65, .65, .|
000005d0  36 35 29 0a 20 20 20 20  20 20 20 20 20 20 29 0a  |65).          ).|
000005e0  20 20 20 20 20 20 20 20  29 0a 0a 0a 20 20 20 7b  |        )...   {|
000005f0  20 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  | ***************|
00000600  2a 20 53 49 44 45 20 4f  4e 45 20 2a 2a 2a 2a 2a  |* SIDE ONE *****|
00000610  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 20 7d  |************** }|
00000620  0a 20 20 20 0a 42 45 47  49 4e 5f 42 42 4f 58 0a  |.   .BEGIN_BBOX.|
00000630  0a 20 20 20 42 45 47 49  4e 5f 42 42 4f 58 0a 20  |.   BEGIN_BBOX. |
00000640  20 20 0a 20 20 20 20 20  20 50 41 52 41 4c 4c 45  |  .      PARALLE|
00000650  4c 4f 47 52 41 4d 20 28  20 6c 6f 63 20 20 20 20  |LOGRAM ( loc    |
00000660  3d 20 28 31 30 30 2c 20  30 2c 20 30 29 2c 0a 20  |= (100, 0, 0),. |
00000670  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000680  20 20 20 20 20 76 31 20  20 20 20 20 3d 20 28 30  |     v1     = (0|
00000690  2c 20 30 2c 20 37 30 29  2c 0a 20 20 20 20 20 20  |, 0, 70),.      |
000006a0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000006b0  76 32 20 20 20 20 20 3d  20 28 30 2c 20 36 30 2c  |v2     = (0, 60,|
000006c0  20 30 29 0a 20 20 20 20  20 20 20 20 20 20 20 20  | 0).            |
000006d0  20 20 20 20 20 20 20 20  20 20 64 69 66 66 20 20  |          diff  |
000006e0  20 3d 20 28 2e 34 2c 20  2e 34 2c 20 2e 34 29 0a  | = (.4, .4, .4).|
000006f0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000700  20 20 20 20 20 20 70 61  74 74 65 72 6e 3d 20 42  |      pattern= B|
00000710  55 49 4c 44 49 4e 47 5f  53 49 44 45 0a 20 20 20  |UILDING_SIDE.   |
00000720  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000730  20 29 0a 20 20 20 0a 20  20 20 20 20 20 54 52 49  | ).   .      TRI|
00000740  41 4e 47 4c 45 20 20 20  20 20 20 28 20 6c 6f 63  |ANGLE      ( loc|
00000750  20 20 20 20 3d 20 28 31  30 30 2c 20 36 30 2c 20  |    = (100, 60, |
00000760  30 29 2c 0a 20 20 20 20  20 20 20 20 20 20 20 20  |0),.            |
00000770  20 20 20 20 20 20 20 20  20 20 76 31 20 20 20 20  |          v1    |
00000780  20 3d 20 28 30 2c 20 30  2c 20 37 30 29 2c 0a 20  | = (0, 0, 70),. |
00000790  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000007a0  20 20 20 20 20 76 32 20  20 20 20 20 3d 20 28 36  |     v2     = (6|
000007b0  32 2c 20 30 2c 20 33 35  29 0a 20 20 20 20 20 20  |2, 0, 35).      |
000007c0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000007d0  64 69 66 66 20 20 20 3d  20 28 2e 37 2c 20 2e 32  |diff   = (.7, .2|
000007e0  2c 20 2e 32 29 0a 20 20  20 20 20 20 20 20 20 20  |, .2).          |
000007f0  20 20 20 20 20 20 20 20  20 20 29 0a 20 20 20 0a  |          ).   .|
00000800  20 20 20 20 20 20 50 41  52 41 4c 4c 45 4c 4f 47  |      PARALLELOG|
00000810  52 41 4d 20 28 20 6c 6f  63 20 20 20 20 3d 20 28  |RAM ( loc    = (|
00000820  31 30 30 2c 20 36 30 2c  20 30 29 2c 0a 20 20 20  |100, 60, 0),.   |
00000830  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000840  20 20 20 76 31 20 20 20  20 20 3d 20 28 36 32 2c  |   v1     = (62,|
00000850  20 30 2c 20 33 35 29 2c  0a 20 20 20 20 20 20 20  | 0, 35),.       |
00000860  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 76  |               v|
00000870  32 20 20 20 20 20 3d 20  28 30 2c 20 36 30 2c 20  |2     = (0, 60, |
00000880  30 29 0a 20 20 20 20 20  20 20 20 20 20 20 20 20  |0).             |
00000890  20 20 20 20 20 20 20 20  20 64 69 66 66 20 20 20  |         diff   |
000008a0  3d 20 28 2e 34 2c 20 2e  34 2c 20 2e 34 29 0a 20  |= (.4, .4, .4). |
000008b0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000008c0  20 20 20 20 20 70 61 74  74 65 72 6e 3d 20 42 55  |     pattern= BU|
000008d0  49 4c 44 49 4e 47 5f 53  49 44 45 0a 20 20 20 20  |ILDING_SIDE.    |
000008e0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000008f0  29 0a 20 20 20 0a 20 20  20 7b 20 2a 2a 2a 2a 2a  |).   .   { *****|
00000900  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 20 53 49 44 45  |*********** SIDE|
00000910  20 54 57 4f 20 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  | TWO ***********|
00000920  2a 2a 2a 2a 2a 2a 2a 2a  20 7d 0a 20 20 20 0a 20  |******** }.   . |
00000930  20 20 20 20 20 50 41 52  41 4c 4c 45 4c 4f 47 52  |     PARALLELOGR|
00000940  41 4d 20 28 20 6c 6f 63  20 20 20 20 3d 20 28 31  |AM ( loc    = (1|
00000950  30 30 2c 20 30 2c 20 30  29 2c 0a 20 20 20 20 20  |00, 0, 0),.     |
00000960  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000970  20 76 31 20 20 20 20 20  3d 20 28 36 32 2c 20 30  | v1     = (62, 0|
00000980  2c 20 2d 33 35 29 2c 0a  20 20 20 20 20 20 20 20  |, -35),.        |
00000990  20 20 20 20 20 20 20 20  20 20 20 20 20 20 76 32  |              v2|
000009a0  20 20 20 20 20 3d 20 28  30 2c 20 31 32 30 2c 20  |     = (0, 120, |
000009b0  30 29 0a 20 20 20 20 20  20 20 20 20 20 20 20 20  |0).             |
000009c0  20 20 20 20 20 20 20 20  20 64 69 66 66 20 20 20  |         diff   |
000009d0  3d 20 28 2e 34 2c 20 2e  34 2c 20 2e 34 29 0a 20  |= (.4, .4, .4). |
000009e0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000009f0  20 20 20 20 20 70 61 74  74 65 72 6e 3d 20 42 55  |     pattern= BU|
00000a00  49 4c 44 49 4e 47 5f 53  49 44 45 0a 20 20 20 20  |ILDING_SIDE.    |
00000a10  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000a20  29 0a 20 20 20 0a 20 20  20 20 20 20 54 52 49 41  |).   .      TRIA|
00000a30  4e 47 4c 45 20 20 20 20  20 20 28 20 6c 6f 63 20  |NGLE      ( loc |
00000a40  20 20 20 3d 20 28 31 30  30 2c 20 31 32 30 2c 20  |   = (100, 120, |
00000a50  30 29 2c 0a 20 20 20 20  20 20 20 20 20 20 20 20  |0),.            |
00000a60  20 20 20 20 20 20 20 20  20 20 76 31 20 20 20 20  |          v1    |
00000a70  20 3d 20 28 36 32 2c 20  30 2c 20 33 35 29 2c 0a  | = (62, 0, 35),.|
00000a80  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000a90  20 20 20 20 20 20 76 32  20 20 20 20 20 3d 20 28  |      v2     = (|
00000aa0  36 32 2c 20 30 2c 20 2d  33 35 29 0a 20 20 20 20  |62, 0, -35).    |
00000ab0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000ac0  20 20 64 69 66 66 20 20  20 3d 20 28 2e 37 2c 20  |  diff   = (.7, |
00000ad0  2e 32 2c 20 2e 32 29 0a  20 20 20 20 20 20 20 20  |.2, .2).        |
00000ae0  20 20 20 20 20 20 20 20  20 20 20 20 29 0a 20 20  |            ).  |
00000af0  20 0a 20 20 20 45 4e 44  5f 42 42 4f 58 0a 20 20  | .   END_BBOX.  |
00000b00  20 0a 20 20 20 42 45 47  49 4e 5f 42 42 4f 58 0a  | .   BEGIN_BBOX.|
00000b10  20 20 20 20 20 20 50 41  52 41 4c 4c 45 4c 4f 47  |      PARALLELOG|
00000b20  52 41 4d 20 28 20 6c 6f  63 20 20 20 20 3d 20 28  |RAM ( loc    = (|
00000b30  31 36 32 2c 20 31 32 30  2c 20 2d 33 35 29 0a 20  |162, 120, -35). |
00000b40  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000b50  20 20 20 20 20 76 31 20  20 20 20 20 3d 20 28 30  |     v1     = (0|
00000b60  2c 20 30 2c 20 37 30 29  2c 0a 20 20 20 20 20 20  |, 0, 70),.      |
00000b70  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000b80  76 32 20 20 20 20 20 3d  20 28 30 2c 20 36 30 2c  |v2     = (0, 60,|
00000b90  20 30 29 2c 0a 20 20 20  20 20 20 20 20 20 20 20  | 0),.           |
00000ba0  20 20 20 20 20 20 20 20  20 20 20 64 69 66 66 20  |           diff |
00000bb0  20 20 3d 20 28 2e 34 2c  20 2e 34 2c 20 2e 34 29  |  = (.4, .4, .4)|
00000bc0  0a 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |.               |
00000bd0  20 20 20 20 20 20 20 70  61 74 74 65 72 6e 3d 20  |       pattern= |
00000be0  42 55 49 4c 44 49 4e 47  5f 53 49 44 45 0a 20 20  |BUILDING_SIDE.  |
00000bf0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000c00  20 20 29 0a 20 20 20 0a  20 20 20 7b 20 2a 2a 2a  |  ).   .   { ***|
00000c10  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 20 53 49  |************* SI|
00000c20  44 45 20 54 48 52 45 45  20 2a 2a 2a 2a 2a 2a 2a  |DE THREE *******|
00000c30  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 20 7d 0a 20  |************ }. |
00000c40  20 20 0a 20 20 20 20 20  20 50 41 52 41 4c 4c 45  |  .      PARALLE|
00000c50  4c 4f 47 52 41 4d 20 28  20 6c 6f 63 20 20 20 20  |LOGRAM ( loc    |
00000c60  3d 20 28 31 36 32 2c 20  30 2c 20 2d 33 35 29 2c  |= (162, 0, -35),|
00000c70  0a 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |.               |
00000c80  20 20 20 20 20 20 20 76  31 20 20 20 20 20 3d 20  |       v1     = |
00000c90  28 36 32 2c 20 30 2c 20  33 35 29 2c 0a 20 20 20  |(62, 0, 35),.   |
00000ca0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000cb0  20 20 20 76 32 20 20 20  20 20 3d 20 28 30 2c 20  |   v2     = (0, |
00000cc0  31 38 30 2c 20 30 29 0a  20 20 20 20 20 20 20 20  |180, 0).        |
00000cd0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 64 69  |              di|
00000ce0  66 66 20 20 20 3d 20 28  2e 34 2c 20 2e 34 2c 20  |ff   = (.4, .4, |
00000cf0  2e 34 29 0a 20 20 20 20  20 20 20 20 20 20 20 20  |.4).            |
00000d00  20 20 20 20 20 20 20 20  20 20 70 61 74 74 65 72  |          patter|
00000d10  6e 3d 20 42 55 49 4c 44  49 4e 47 5f 53 49 44 45  |n= BUILDING_SIDE|
00000d20  0a 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |.               |
00000d30  20 20 20 20 20 29 0a 20  20 20 0a 20 20 20 20 20  |     ).   .     |
00000d40  20 54 52 49 41 4e 47 4c  45 20 20 20 20 20 20 28  | TRIANGLE      (|
00000d50  20 6c 6f 63 20 20 20 20  3d 20 28 31 36 32 2c 20  | loc    = (162, |
00000d60  31 38 30 2c 20 2d 33 35  29 2c 0a 20 20 20 20 20  |180, -35),.     |
00000d70  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000d80  20 76 31 20 20 20 20 20  3d 20 28 30 2c 20 30 2c  | v1     = (0, 0,|
00000d90  20 37 30 29 2c 0a 20 20  20 20 20 20 20 20 20 20  | 70),.          |
00000da0  20 20 20 20 20 20 20 20  20 20 20 20 76 32 20 20  |            v2  |
00000db0  20 20 20 3d 20 28 36 32  2c 20 30 2c 20 33 35 29  |   = (62, 0, 35)|
00000dc0  0a 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |.               |
00000dd0  20 20 20 20 20 20 20 64  69 66 66 20 20 20 3d 20  |       diff   = |
00000de0  28 2e 37 2c 20 2e 32 2c  20 2e 32 29 0a 20 20 20  |(.7, .2, .2).   |
00000df0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000e00  20 29 0a 20 20 20 20 20  20 0a 20 20 20 20 20 20  | ).      .      |
00000e10  50 41 52 41 4c 4c 45 4c  4f 47 52 41 4d 20 28 20  |PARALLELOGRAM ( |
00000e20  6c 6f 63 20 20 20 20 3d  20 28 32 32 34 2c 20 31  |loc    = (224, 1|
00000e30  38 30 2c 20 30 29 0a 20  20 20 20 20 20 20 20 20  |80, 0).         |
00000e40  20 20 20 20 20 20 20 20  20 20 20 20 20 76 31 20  |             v1 |
00000e50  20 20 20 20 3d 20 28 2d  36 32 2c 20 30 2c 20 33  |    = (-62, 0, 3|
00000e60  35 29 2c 0a 20 20 20 20  20 20 20 20 20 20 20 20  |5),.            |
00000e70  20 20 20 20 20 20 20 20  20 20 76 32 20 20 20 20  |          v2    |
00000e80  20 3d 20 28 30 2c 20 36  30 2c 20 30 29 2c 0a 20  | = (0, 60, 0),. |
00000e90  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000ea0  20 20 20 20 20 64 69 66  66 20 20 20 3d 20 28 2e  |     diff   = (.|
00000eb0  34 2c 20 2e 34 2c 20 2e  34 29 0a 20 20 20 20 20  |4, .4, .4).     |
00000ec0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000ed0  20 70 61 74 74 65 72 6e  3d 20 42 55 49 4c 44 49  | pattern= BUILDI|
00000ee0  4e 47 5f 53 49 44 45 0a  20 20 20 20 20 20 20 20  |NG_SIDE.        |
00000ef0  20 20 20 20 20 20 20 20  20 20 20 20 29 0a 20 20  |            ).  |
00000f00  20 0a 20 20 20 45 4e 44  5f 42 42 4f 58 0a 20 20  | .   END_BBOX.  |
00000f10  20 0a 20 20 20 7b 20 2a  2a 2a 2a 2a 2a 2a 2a 2a  | .   { *********|
00000f20  2a 2a 2a 2a 2a 2a 2a 20  53 49 44 45 20 46 4f 55  |******* SIDE FOU|
00000f30  52 20 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |R **************|
00000f40  2a 2a 2a 2a 2a 20 7d 0a  20 20 20 0a 20 20 20 42  |***** }.   .   B|
00000f50  45 47 49 4e 5f 42 42 4f  58 0a 20 20 20 0a 20 20  |EGIN_BBOX.   .  |
00000f60  20 20 20 20 50 41 52 41  4c 4c 45 4c 4f 47 52 41  |    PARALLELOGRA|
00000f70  4d 20 28 20 6c 6f 63 20  20 20 20 3d 20 28 32 32  |M ( loc    = (22|
00000f80  34 2c 20 30 2c 20 30 29  2c 0a 20 20 20 20 20 20  |4, 0, 0),.      |
00000f90  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000fa0  76 31 20 20 20 20 20 3d  20 28 30 2c 20 30 2c 20  |v1     = (0, 0, |
00000fb0  37 30 29 2c 0a 20 20 20  20 20 20 20 20 20 20 20  |70),.           |
00000fc0  20 20 20 20 20 20 20 20  20 20 20 76 32 20 20 20  |           v2   |
00000fd0  20 20 3d 20 28 30 2c 20  32 34 30 2c 20 30 29 20  |  = (0, 240, 0) |
00000fe0  0a 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |.               |
00000ff0  20 20 20 20 20 20 20 64  69 66 66 20 20 20 3d 20  |       diff   = |
00001000  28 2e 34 2c 20 2e 34 2c  20 2e 34 29 0a 20 20 20  |(.4, .4, .4).   |
00001010  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00001020  20 20 20 70 61 74 74 65  72 6e 3d 20 42 55 49 4c  |   pattern= BUIL|
00001030  44 49 4e 47 5f 53 49 44  45 0a 20 20 20 20 20 20  |DING_SIDE.      |
00001040  20 20 20 20 20 20 20 20  20 20 20 20 20 20 29 0a  |              ).|
00001050  20 20 20 20 20 20 0a 20  20 20 20 20 20 54 52 49  |      .      TRI|
00001060  41 4e 47 4c 45 20 20 20  20 20 20 28 20 6c 6f 63  |ANGLE      ( loc|
00001070  20 20 20 20 3d 20 28 32  32 34 2c 20 32 34 30 2c  |    = (224, 240,|
00001080  20 30 29 0a 20 20 20 20  20 20 20 20 20 20 20 20  | 0).            |
00001090  20 20 20 20 20 20 20 20  20 20 76 31 20 20 20 20  |          v1    |
000010a0  20 3d 20 28 30 2c 30 2c  20 37 30 29 2c 0a 20 20  | = (0,0, 70),.  |
000010b0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000010c0  20 20 20 20 76 32 20 20  20 20 20 3d 20 28 2d 36  |    v2     = (-6|
000010d0  32 2c 20 30 2c 20 33 35  29 0a 20 20 20 20 20 20  |2, 0, 35).      |
000010e0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000010f0  64 69 66 66 20 20 20 3d  20 28 2e 37 2c 20 2e 32  |diff   = (.7, .2|
00001100  2c 20 2e 32 29 0a 20 20  20 20 20 20 20 20 20 20  |, .2).          |
00001110  20 20 20 20 20 20 20 20  20 20 29 0a 20 20 20 0a  |          ).   .|
00001120  20 20 20 20 20 20 50 41  52 41 4c 4c 45 4c 4f 47  |      PARALLELOG|
00001130  52 41 4d 20 28 20 6c 6f  63 20 20 20 20 3d 20 28  |RAM ( loc    = (|
00001140  32 32 34 2c 20 32 34 30  2c 20 37 30 29 0a 20 20  |224, 240, 70).  |
00001150  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00001160  20 20 20 20 76 31 20 20  20 20 20 3d 20 28 2d 36  |    v1     = (-6|
00001170  32 2c 20 30 2c 20 2d 33  35 29 2c 0a 20 20 20 20  |2, 0, -35),.    |
00001180  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00001190  20 20 76 32 20 20 20 20  20 3d 20 28 30 2c 20 36  |  v2     = (0, 6|
000011a0  30 2c 20 30 29 2c 0a 20  20 20 20 20 20 20 20 20  |0, 0),.         |
000011b0  20 20 20 20 20 20 20 20  20 20 20 20 20 64 69 66  |             dif|
000011c0  66 20 20 20 3d 20 28 2e  34 2c 20 2e 34 2c 20 2e  |f   = (.4, .4, .|
000011d0  34 29 0a 20 20 20 20 20  20 20 20 20 20 20 20 20  |4).             |
000011e0  20 20 20 20 20 20 20 20  20 70 61 74 74 65 72 6e  |         pattern|
000011f0  3d 20 42 55 49 4c 44 49  4e 47 5f 53 49 44 45 0a  |= BUILDING_SIDE.|
00001200  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00001210  20 20 20 20 29 0a 20 20  20 0a 20 20 20 7b 20 2a  |    ).   .   { *|
00001220  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 20  |*************** |
00001230  53 49 44 45 20 46 49 56  45 20 2a 2a 2a 2a 2a 2a  |SIDE FIVE ******|
00001240  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 20 7d 0a  |************* }.|
00001250  20 20 20 0a 20 20 20 20  20 20 50 41 52 41 4c 4c  |   .      PARALL|
00001260  45 4c 4f 47 52 41 4d 20  28 20 6c 6f 63 20 20 20  |ELOGRAM ( loc   |
00001270  20 3d 20 28 32 32 34 2c  20 30 2c 20 37 30 29 2c  | = (224, 0, 70),|
00001280  0a 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |.               |
00001290  20 20 20 20 20 20 20 76  31 20 20 20 20 20 3d 20  |       v1     = |
000012a0  28 2d 36 32 2c 20 30 2c  20 33 35 29 2c 0a 20 20  |(-62, 0, 35),.  |
000012b0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000012c0  20 20 20 20 76 32 20 20  20 20 20 3d 20 28 30 2c  |    v2     = (0,|
000012d0  20 33 30 30 2c 20 30 29  0a 20 20 20 20 20 20 20  | 300, 0).       |
000012e0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 64  |               d|
000012f0  69 66 66 20 20 20 3d 20  28 2e 34 2c 20 2e 34 2c  |iff   = (.4, .4,|
00001300  20 2e 34 29 0a 20 20 20  20 20 20 20 20 20 20 20  | .4).           |
00001310  20 20 20 20 20 20 20 20  20 20 20 70 61 74 74 65  |           patte|
00001320  72 6e 3d 20 42 55 49 4c  44 49 4e 47 5f 53 49 44  |rn= BUILDING_SID|
00001330  45 0a 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |E.              |
00001340  20 20 20 20 20 20 29 0a  20 20 20 0a 20 20 20 20  |      ).   .    |
00001350  20 20 54 52 49 41 4e 47  4c 45 20 20 20 20 20 20  |  TRIANGLE      |
00001360  28 20 6c 6f 63 20 20 20  20 3d 20 28 32 32 34 2c  |( loc    = (224,|
00001370  20 33 30 30 2c 20 37 30  29 2c 0a 20 20 20 20 20  | 300, 70),.     |
00001380  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00001390  20 76 31 20 20 20 20 20  3d 20 28 2d 36 32 2c 20  | v1     = (-62, |
000013a0  30 2c 20 33 35 29 2c 0a  20 20 20 20 20 20 20 20  |0, 35),.        |
000013b0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 76 32  |              v2|
000013c0  20 20 20 20 20 3d 20 28  2d 36 32 2c 20 30 2c 20  |     = (-62, 0, |
000013d0  2d 33 35 29 0a 20 20 20  20 20 20 20 20 20 20 20  |-35).           |
000013e0  20 20 20 20 20 20 20 20  20 20 20 64 69 66 66 20  |           diff |
000013f0  20 20 3d 20 28 2e 37 2c  20 2e 32 2c 20 2e 32 29  |  = (.7, .2, .2)|
00001400  0a 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |.               |
00001410  20 20 20 20 20 29 0a 20  20 20 0a 20 20 20 45 4e  |     ).   .   EN|
00001420  44 5f 42 42 4f 58 0a 20  20 20 0a 20 20 20 42 45  |D_BBOX.   .   BE|
00001430  47 49 4e 5f 42 42 4f 58  0a 20 20 20 0a 20 20 20  |GIN_BBOX.   .   |
00001440  50 41 52 41 4c 4c 45 4c  4f 47 52 41 4d 20 28 20  |PARALLELOGRAM ( |
00001450  6c 6f 63 20 20 20 20 3d  20 28 31 36 32 2c 20 33  |loc    = (162, 3|
00001460  30 30 2c 20 31 30 35 29  0a 20 20 20 20 20 20 20  |00, 105).       |
00001470  20 20 20 20 20 20 20 20  20 20 20 20 76 31 20 20  |            v1  |
00001480  20 20 20 3d 20 28 30 2c  20 30 2c 20 2d 37 30 29  |   = (0, 0, -70)|
00001490  2c 0a 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |,.              |
000014a0  20 20 20 20 20 76 32 20  20 20 20 20 3d 20 28 30  |     v2     = (0|
000014b0  2c 20 36 30 2c 20 30 29  2c 0a 20 20 20 20 20 20  |, 60, 0),.      |
000014c0  20 20 20 20 20 20 20 20  20 20 20 20 20 64 69 66  |             dif|
000014d0  66 20 20 20 3d 20 28 2e  34 2c 20 2e 34 2c 20 2e  |f   = (.4, .4, .|
000014e0  34 29 0a 20 20 20 20 20  20 20 20 20 20 20 20 20  |4).             |
000014f0  20 20 20 20 20 20 70 61  74 74 65 72 6e 3d 20 42  |      pattern= B|
00001500  55 49 4c 44 49 4e 47 5f  53 49 44 45 0a 20 20 20  |UILDING_SIDE.   |
00001510  20 20 20 20 20 20 20 20  20 20 20 20 20 20 29 0a  |              ).|
00001520  20 20 20 0a 20 20 20 7b  20 2a 2a 2a 2a 2a 2a 2a  |   .   { *******|
00001530  2a 2a 2a 2a 2a 2a 2a 2a  2a 20 53 49 44 45 20 53  |********* SIDE S|
00001540  49 58 20 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |IX *************|
00001550  2a 2a 2a 2a 2a 2a 20 7d  0a 20 20 20 0a 20 20 20  |****** }.   .   |
00001560  20 20 20 50 41 52 41 4c  4c 45 4c 4f 47 52 41 4d  |   PARALLELOGRAM|
00001570  20 28 20 6c 6f 63 20 20  20 20 3d 20 28 31 30 30  | ( loc    = (100|
00001580  2c 20 30 2c 20 37 30 29  2c 0a 20 20 20 20 20 20  |, 0, 70),.      |
00001590  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000015a0  76 31 20 20 20 20 20 3d  20 28 36 32 2c 20 30 2c  |v1     = (62, 0,|
000015b0  20 33 35 29 2c 0a 20 20  20 20 20 20 20 20 20 20  | 35),.          |
000015c0  20 20 20 20 20 20 20 20  20 20 20 20 76 32 20 20  |            v2  |
000015d0  20 20 20 3d 20 28 30 2c  20 33 36 30 2c 20 30 29  |   = (0, 360, 0)|
000015e0  0a 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |.               |
000015f0  20 20 20 20 20 20 20 64  69 66 66 20 20 20 3d 20  |       diff   = |
00001600  28 2e 34 2c 20 2e 34 2c  20 2e 34 29 0a 20 20 20  |(.4, .4, .4).   |
00001610  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00001620  20 20 20 70 61 74 74 65  72 6e 3d 20 42 55 49 4c  |   pattern= BUIL|
00001630  44 49 4e 47 5f 53 49 44  45 0a 20 20 20 20 20 20  |DING_SIDE.      |
00001640  20 20 20 20 20 20 20 20  20 20 20 20 20 20 29 0a  |              ).|
00001650  20 20 20 20 20 20 0a 20  20 20 20 20 20 54 52 49  |      .      TRI|
00001660  41 4e 47 4c 45 20 20 20  20 20 20 28 20 6c 6f 63  |ANGLE      ( loc|
00001670  20 20 20 20 3d 20 28 31  30 30 2c 20 33 36 30 2c  |    = (100, 360,|
00001680  20 37 30 29 2c 0a 20 20  20 20 20 20 20 20 20 20  | 70),.          |
00001690  20 20 20 20 20 20 20 20  20 20 20 20 76 31 20 20  |            v1  |
000016a0  20 20 20 3d 20 28 36 32  2c 20 30 2c 20 33 35 29  |   = (62, 0, 35)|
000016b0  2c 0a 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |,.              |
000016c0  20 20 20 20 20 20 20 20  76 32 20 20 20 20 20 3d  |        v2     =|
000016d0  20 28 36 32 2c 20 30 2c  20 2d 33 35 29 0a 20 20  | (62, 0, -35).  |
000016e0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000016f0  20 20 20 20 64 69 66 66  20 20 20 3d 20 28 2e 37  |    diff   = (.7|
00001700  2c 20 2e 32 2c 20 2e 32  29 0a 20 20 20 20 20 20  |, .2, .2).      |
00001710  20 20 20 20 20 20 20 20  20 20 20 20 20 20 29 0a  |              ).|
00001720  20 20 20 20 20 20 0a 20  20 20 20 20 20 50 41 52  |      .      PAR|
00001730  41 4c 4c 45 4c 4f 47 52  41 4d 20 28 20 6c 6f 63  |ALLELOGRAM ( loc|
00001740  20 20 20 20 3d 20 28 31  30 30 2c 20 36 30 2c 20  |    = (100, 60, |
00001750  37 30 29 0a 20 20 20 20  20 20 20 20 20 20 20 20  |70).            |
00001760  20 20 20 20 20 20 20 20  20 20 76 31 20 20 20 20  |          v1    |
00001770  20 3d 20 28 36 32 2c 20  30 2c 20 2d 33 35 29 2c  | = (62, 0, -35),|
00001780  0a 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |.               |
00001790  20 20 20 20 20 20 20 76  32 20 20 20 20 20 3d 20  |       v2     = |
000017a0  28 30 2c 20 33 30 30 2c  20 30 29 2c 0a 20 20 20  |(0, 300, 0),.   |
000017b0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000017c0  20 20 20 64 69 66 66 20  20 20 3d 20 28 2e 34 2c  |   diff   = (.4,|
000017d0  20 2e 34 2c 20 2e 34 29  0a 20 20 20 20 20 20 20  | .4, .4).       |
000017e0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 70  |               p|
000017f0  61 74 74 65 72 6e 3d 20  42 55 49 4c 44 49 4e 47  |attern= BUILDING|
00001800  5f 53 49 44 45 0a 20 20  20 20 20 20 20 20 20 20  |_SIDE.          |
00001810  20 20 20 20 20 20 20 20  20 20 29 0a 0a 20 20 20  |          )..   |
00001820  45 4e 44 5f 42 42 4f 58  0a 0a 45 4e 44 5f 42 42  |END_BBOX..END_BB|
00001830  4f 58 0a 0a 0a 7b 20 2a  2a 2a 2a 2a 2a 2a 2a 20  |OX...{ ******** |
00001840  50 59 52 41 4d 49 44 20  73 68 61 70 65 64 20 62  |PYRAMID shaped b|
00001850  75 69 6c 64 69 6e 67 20  2a 2a 2a 2a 2a 2a 2a 2a  |uilding ********|
00001860  2a 2a 20 7d 0a 0a 42 45  47 49 4e 5f 42 42 4f 58  |** }..BEGIN_BBOX|
00001870  0a 0a 20 20 20 54 52 49  41 4e 47 4c 45 20 28 20  |..   TRIANGLE ( |
00001880  6c 6f 63 20 20 20 20 3d  20 28 31 32 30 2c 20 30  |loc    = (120, 0|
00001890  2c 20 20 20 32 30 30 29  2c 0a 20 20 20 20 20 20  |,   200),.      |
000018a0  20 20 20 20 20 20 20 20  76 31 20 20 20 20 20 3d  |        v1     =|
000018b0  20 28 30 2c 20 20 20 30  2c 20 20 20 31 30 30 29  | (0,   0,   100)|
000018c0  2c 0a 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |,.              |
000018d0  76 32 20 20 20 20 20 3d  20 28 34 33 2c 20 20 32  |v2     = (43,  2|
000018e0  35 30 2c 20 35 30 29 2c  0a 20 20 20 20 20 20 20  |50, 50),.       |
000018f0  20 20 20 20 20 20 20 64  69 66 66 20 20 20 3d 20  |       diff   = |
00001900  28 2e 36 2c 20 2e 32 2c  20 20 20 2e 32 29 2c 0a  |(.6, .2,   .2),.|
00001910  20 20 20 20 20 20 20 20  20 20 20 20 20 20 70 61  |              pa|
00001920  74 74 65 72 6e 3d 20 42  55 49 4c 44 49 4e 47 5f  |ttern= BUILDING_|
00001930  53 54 52 49 50 45 0a 20  20 20 20 20 20 20 20 20  |STRIPE.         |
00001940  20 20 20 29 0a 0a 20 20  20 54 52 49 41 4e 47 4c  |   )..   TRIANGL|
00001950  45 20 28 20 6c 6f 63 20  20 20 20 3d 20 28 31 32  |E ( loc    = (12|
00001960  30 2c 20 30 2c 20 20 20  32 30 30 29 2c 0a 20 20  |0, 0,   200),.  |
00001970  20 20 20 20 20 20 20 20  20 20 20 20 76 31 20 20  |            v1  |
00001980  20 20 20 3d 20 28 38 36  2c 20 20 30 2c 20 20 20  |   = (86,  0,   |
00001990  35 30 29 2c 0a 20 20 20  20 20 20 20 20 20 20 20  |50),.           |
000019a0  20 20 20 76 32 20 20 20  20 20 3d 20 28 34 33 2c  |   v2     = (43,|
000019b0  20 20 32 35 30 2c 20 35  30 29 2c 0a 20 20 20 20  |  250, 50),.    |
000019c0  20 20 20 20 20 20 20 20  20 20 64 69 66 66 20 20  |          diff  |
000019d0  20 3d 20 28 2e 36 2c 20  2e 32 2c 20 20 20 2e 32  | = (.6, .2,   .2|
000019e0  29 2c 0a 20 20 20 20 20  20 20 20 20 20 20 20 20  |),.             |
000019f0  20 70 61 74 74 65 72 6e  3d 20 42 55 49 4c 44 49  | pattern= BUILDI|
00001a00  4e 47 5f 53 54 52 49 50  45 0a 20 20 20 20 20 20  |NG_STRIPE.      |
00001a10  20 20 20 20 20 20 29 0a  0a 20 20 20 54 52 49 41  |      )..   TRIA|
00001a20  4e 47 4c 45 20 28 20 6c  6f 63 20 20 20 20 3d 20  |NGLE ( loc    = |
00001a30  28 31 32 30 2c 20 30 2c  20 20 20 33 30 30 29 2c  |(120, 0,   300),|
00001a40  0a 20 20 20 20 20 20 20  20 20 20 20 20 20 20 76  |.              v|
00001a50  31 20 20 20 20 20 3d 20  28 38 36 2c 20 20 30 2c  |1     = (86,  0,|
00001a60  20 20 20 2d 35 30 29 2c  0a 20 20 20 20 20 20 20  |   -50),.       |
00001a70  20 20 20 20 20 20 20 76  32 20 20 20 20 20 3d 20  |       v2     = |
00001a80  28 34 33 2c 20 20 32 35  30 2c 20 2d 35 30 29 2c  |(43,  250, -50),|
00001a90  0a 20 20 20 20 20 20 20  20 20 20 20 20 20 20 64  |.              d|
00001aa0  69 66 66 20 20 20 3d 20  28 2e 36 2c 20 2e 32 2c  |iff   = (.6, .2,|
00001ab0  20 2e 32 29 2c 0a 20 20  20 20 20 20 20 20 20 20  | .2),.          |
00001ac0  20 20 20 20 70 61 74 74  65 72 6e 3d 20 42 55 49  |    pattern= BUI|
00001ad0  4c 44 49 4e 47 5f 53 54  52 49 50 45 0a 20 20 20  |LDING_STRIPE.   |
00001ae0  20 20 20 20 20 20 20 20  20 29 0a 45 4e 44 5f 42  |         ).END_B|
00001af0  42 4f 58 0a 0a 7b 20 2a  2a 2a 2a 20 54 48 45 20  |BOX..{ **** THE |
00001b00  47 52 4f 55 4e 44 20 41  4e 44 20 53 4f 4d 45 20  |GROUND AND SOME |
00001b10  52 4f 41 44 53 20 2a 2a  2a 20 7d 0a 0a 42 45 47  |ROADS *** }..BEG|
00001b20  49 4e 5f 42 42 4f 58 0a  0a 20 20 20 20 50 41 52  |IN_BBOX..    PAR|
00001b30  41 4c 4c 45 4c 4f 47 52  41 4d 20 28 20 6c 6f 63  |ALLELOGRAM ( loc|
00001b40  20 20 20 3d 20 28 36 30  2c 20 2e 30 31 2c 20 2d  |   = (60, .01, -|
00001b50  35 30 30 29 0a 20 20 20  20 20 20 20 20 20 20 20  |500).           |
00001b60  20 20 20 20 20 20 20 20  20 76 31 20 20 20 20 3d  |         v1    =|
00001b70  20 28 32 30 2c 20 30 2c  20 30 29 0a 20 20 20 20  | (20, 0, 0).    |
00001b80  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00001b90  76 32 20 20 20 20 3d 20  28 30 2c 20 30 2c 20 31  |v2    = (0, 0, 1|
00001ba0  30 30 30 29 0a 20 20 20  20 20 20 20 20 20 20 20  |000).           |
00001bb0  20 20 20 20 20 20 20 20  20 64 69 66 66 20 20 3d  |         diff  =|
00001bc0  20 28 2e 34 2c 20 2e 34  2c 20 2e 34 29 0a 20 20  | (.4, .4, .4).  |
00001bd0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00001be0  29 0a 0a 20 20 20 20 50  41 52 41 4c 4c 45 4c 4f  |)..    PARALLELO|
00001bf0  47 52 41 4d 20 28 20 6c  6f 63 20 20 20 3d 20 28  |GRAM ( loc   = (|
00001c00  2d 31 35 30 2c 20 2e 30  31 2c 20 31 35 30 29 0a  |-150, .01, 150).|
00001c10  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00001c20  20 20 20 20 76 31 20 20  20 20 3d 20 28 35 30 30  |    v1    = (500|
00001c30  2c 20 30 2c 20 30 29 0a  20 20 20 20 20 20 20 20  |, 0, 0).        |
00001c40  20 20 20 20 20 20 20 20  20 20 20 20 76 32 20 20  |            v2  |
00001c50  20 20 3d 20 28 30 2c 20  30 2c 20 32 30 29 0a 20  |  = (0, 0, 20). |
00001c60  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00001c70  20 20 20 64 69 66 66 20  20 3d 20 28 2e 34 2c 20  |   diff  = (.4, |
00001c80  2e 34 2c 20 2e 34 29 0a  20 20 20 20 20 20 20 20  |.4, .4).        |
00001c90  20 20 20 20 20 20 20 20  20 20 29 0a 0a 0a 45 4e  |          )...EN|
00001ca0  44 5f 42 42 4f 58 0a 0a  0a 7b 20 2a 2a 20 47 72  |D_BBOX...{ ** Gr|
00001cb0  6f 75 6e 64 20 2d 20 74  72 79 20 61 20 62 69 67  |ound - try a big|
00001cc0  20 73 70 68 65 72 69 63  61 6c 20 6f 6e 65 20 66  | spherical one f|
00001cd0  6f 72 20 65 66 66 65 63  74 20 2a 2a 20 7d 0a 0a  |or effect ** }..|
00001ce0  53 50 48 45 52 45 20 20  28 20 6c 6f 63 20 20 20  |SPHERE  ( loc   |
00001cf0  20 3d 20 28 31 30 30 2c  20 2d 35 30 30 30 2c 20  | = (100, -5000, |
00001d00  30 29 2c 0a 20 20 20 20  20 20 20 20 20 20 72 61  |0),.          ra|
00001d10  64 69 75 73 20 3d 20 35  30 30 30 2c 0a 20 20 20  |dius = 5000,.   |
00001d20  20 20 20 20 20 20 20 64  69 66 66 20 20 20 3d 20  |       diff   = |
00001d30  28 2e 38 2c 20 2e 38 2c  20 30 29 2c 0a 20 20 20  |(.8, .8, 0),.   |
00001d40  20 20 20 20 20 20 20 70  61 74 74 65 72 6e 3d 20  |       pattern= |
00001d50  43 48 45 43 4b 2c 0a 20  20 20 20 20 20 20 20 20  |CHECK,.         |
00001d60  20 78 6d 75 6c 74 20 20  3d 20 32 2e 35 2c 0a 20  | xmult  = 2.5,. |
00001d70  20 20 20 20 20 20 20 20  20 79 6d 75 6c 74 20 20  |         ymult  |
00001d80  3d 20 32 2e 35 0a 20 20  20 20 20 20 20 20 29 0a  |= 2.5.        ).|
00001d90  0a 7b 0a 20 20 20 50 41  52 41 4c 4c 45 4c 4f 47  |.{.   PARALLELOG|
00001da0  52 41 4d 20 28 20 6c 6f  63 20 20 3d 20 28 20 20  |RAM ( loc  = (  |
00001db0  2d 33 30 30 30 2c 20 30  2c 20 20 2d 33 30 30 30  |-3000, 0,  -3000|
00001dc0  29 2c 20 20 7b 20 2a 2a  20 62 69 67 21 20 2a 2a  |),  { ** big! **|
00001dd0  20 7d 0a 20 20 20 20 20  20 20 20 20 20 20 20 20  | }.             |
00001de0  20 20 20 20 20 20 76 31  20 20 20 3d 20 28 36 30  |      v1   = (60|
00001df0  30 30 2c 20 20 20 20 30  2c 20 20 20 20 20 20 30  |00,    0,      0|
00001e00  29 2c 0a 20 20 20 20 20  20 20 20 20 20 20 20 20  |),.             |
00001e10  20 20 20 20 20 20 76 32  20 20 20 3d 20 28 20 20  |      v2   = (  |
00001e20  30 2c 20 20 20 20 20 30  2c 20 20 20 36 30 30 30  |0,     0,   6000|
00001e30  29 2c 0a 0a 20 20 20 20  20 20 20 20 20 20 20 20  |),..            |
00001e40  20 20 20 20 20 20 20 64  69 66 66 20 3d 20 28 20  |       diff = ( |
00001e50  20 2e 38 2c 20 2e 38 2c  20 30 29 2c 0a 20 20 20  | .8, .8, 0),.   |
00001e60  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00001e70  70 61 74 74 65 72 6e 20  3d 20 43 48 45 43 4b 0a  |pattern = CHECK.|
00001e80  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00001e90  20 20 20 78 6d 75 6c 74  20 3d 20 32 0a 20 20 20  |   xmult = 2.   |
00001ea0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00001eb0  79 6d 75 6c 74 20 3d 20  32 0a 20 20 20 20 20 20  |ymult = 2.      |
00001ec0  20 20 20 20 20 20 20 20  20 20 20 29 0a 7d 0a 0a  |           ).}..|
00001ed0  0a 7b 20 2a 2a 20 41 6e  20 6f 62 73 65 72 76 65  |.{ ** An observe|
00001ee0  72 20 2a 2a 20 7d 0a 0a  4f 42 53 45 52 56 45 52  |r ** }..OBSERVER|
00001ef0  20 28 20 6c 6f 63 20 20  20 20 3d 20 28 2d 32 30  | ( loc    = (-20|
00001f00  30 2c 20 34 30 30 2c 20  2d 38 30 29 0a 20 20 20  |0, 400, -80).   |
00001f10  20 20 20 20 20 20 20 20  6c 6f 6f 6b 61 74 20 3d  |        lookat =|
00001f20  20 28 31 35 30 2c 20 31  35 30 2c 20 39 30 29 0a  | (150, 150, 90).|
00001f30  20 20 20 20 20 20 20 20  20 29 0a 0a 7b 20 2a 2a  |         )..{ **|
00001f40  20 4c 69 67 68 74 73 20  28 62 75 74 20 6e 6f 74  | Lights (but not|
00001f50  20 42 75 64 20 6c 69 67  68 74 73 29 20 2a 2a 20  | Bud lights) ** |
00001f60  7d 0a 0a 4c 41 4d 50 20  28 20 6c 6f 63 20 3d 20  |}..LAMP ( loc = |
00001f70  28 33 30 2c 20 35 34 30  2c 20 36 30 29 2c 0a 20  |(30, 540, 60),. |
00001f80  20 20 20 20 20 20 72 61  64 69 75 73 20 3d 20 35  |      radius = 5|
00001f90  2c 0a 20 20 20 20 20 20  20 64 69 73 74 20 3d 20  |,.       dist = |
00001fa0  33 30 30 0a 20 20 20 20  20 29 0a 0a 4c 41 4d 50  |300.     )..LAMP|
00001fb0  20 28 20 6c 6f 63 20 3d  20 28 32 34 30 2c 20 34  | ( loc = (240, 4|
00001fc0  30 30 2c 20 2d 35 29 2c  0a 20 20 20 20 20 20 20  |00, -5),.       |
00001fd0  72 61 64 69 75 73 20 3d  20 35 2c 0a 20 20 20 20  |radius = 5,.    |
00001fe0  20 20 20 64 69 73 74 20  3d 20 32 30 30 0a 20 20  |   dist = 200.  |
00001ff0  20 20 20 29 0a 0a 53 4b  59 20 20 28 20 68 6f 72  |   )..SKY  ( hor|
00002000  69 7a 20 20 3d 20 28 2e  33 2c 20 2e 33 2c 20 2e  |iz  = (.3, .3, .|
00002010  37 35 29 2c 0a 20 20 20  20 20 20 20 7a 65 6e 69  |75),.       zeni|
00002020  74 68 20 3d 20 28 2e 31  2c 20 2e 31 2c 20 2e 36  |th = (.1, .1, .6|
00002030  30 29 2c 0a 20 20 20 20  20 20 20 64 69 74 68 65  |0),.       dithe|
00002040  72 20 3d 20 34 0a 20 20  20 20 20 29 0a 0a 46 4f  |r = 4.     )..FO|
00002050  43 5f 4c 45 4e 47 54 48  20 3d 20 36 35 0a 0a     |C_LENGTH = 65..|
0000205f