home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format 49 / af049.adf / Genesis / Models / hall.csg < prev    next >
Text File  |  1993-06-09  |  6KB  |  193 lines

  1. #
  2.           Last Supper hall model - by Steve Woodman
  3.  
  4.       A 3D model of a rectory in Milan upon the walls of which
  5.   Leonardo da' Vinci painted his famous "Last Supper" picture.
  6.   This file is a CSG reconstruction of that hall, designed for
  7.   interpretation by the Flexiparse text parser (thanks to Mac)
  8.   and for rendering on the  Genesis solid modelling system (by
  9.   Spike)
  10.  
  11.   © Model data is copyright IBM UK scientific centre, Winchester
  12.  
  13. #
  14.  
  15. cyl1=(cylinder(225) int plane(0,0,-1) int plane(0,0,1) at(0,0,950)
  16.      union empty);
  17. cyl2=((cylinder(225) int plane(0,0,-1) int plane(0,0,1) at(0,0,247))
  18.      yrot(90)
  19.      union empty);
  20. block1=(plane(-1,0,0) int
  21.         plane(0,-1,0) int
  22.         plane(0,0,-1) int
  23.         plane(1,0,0) at(246,0,0) int
  24.         plane(0,1,0) at(0,275,0) int
  25.         plane(0,0,1) at(0,0,700)
  26.         union empty);
  27. block2=(plane(-1,0,0) int
  28.         plane(0,-1,0) int
  29.         plane(0,0,-1) int
  30.         plane(1,0,0) at(246,0,0) int
  31.         plane(0,1,0) at(0,238,0) int
  32.         plane(0,0,1) at(0,0,950)
  33.         union empty);
  34. cyl3=(cylinder(179) int plane(0,0,-1) int plane(0,0,1) at(0,0,936)
  35.      union empty);
  36. cyl4=(cylinder(69) int plane(0,0,-1) int plane(0,0,1) at(0,0,936)
  37.      union empty);
  38. block3=(plane(-1,0,0) int
  39.         plane(0,-1,0) int
  40.         plane(0,0,-1) int
  41.         plane(1,0,0) at(60,0,0) int
  42.         plane(0,1,0) at(0,30,0) int
  43.         plane(0,0,1) at(0,0,936)
  44.         union empty);
  45. cyl5=((cylinder(179) int plane(0,0,-1) int plane(0,0,1) at(0,0,234))
  46.      yrot(-90)
  47.      union empty);
  48. cyl6=((cylinder(69) int plane(0,0,-1) int plane(0,0,1) at(0,0,234))
  49.      yrot(-90)
  50.      union empty);
  51. block4=(plane(-1,0,0) int
  52.         plane(0,-1,0) int
  53.         plane(0,0,-1) int
  54.         plane(1,0,0) at(234,0,0) int
  55.         plane(0,1,0) at(0,30,0) int
  56.         plane(0,0,1) at(0,0,60)
  57.         union empty);
  58. block5=(plane(-1,0,0) int
  59.         plane(0,-1,0) int
  60.         plane(0,0,-1) int
  61.         plane(1,0,0) at(234,0,0) int
  62.         plane(0,1,0) at(0,80,0) int
  63.         plane(0,0,1) at(0,0,702)
  64.         union empty);
  65. block6=(plane(-1,0,0) int
  66.         plane(0,-1,0) int
  67.         plane(0,0,-1) int
  68.         plane(1,0,0) at(234,0,0) int
  69.         plane(0,1,0) at(0,192,0) int
  70.         plane(0,0,1) at(0,0,936)
  71.         union empty);
  72.  
  73. roof=cyl1 at(123,50,0) int
  74.      (
  75.         cyl2 at(0,50,125) union
  76.         cyl2 at(0,50,825) union
  77.         block1 at(0,0,125)
  78.      ) int
  79.      plane(0,-1,0) at(0,238,0);
  80.  
  81. outside=(roof) union block2;
  82.  
  83. xystrip=(
  84.            cyl3 at(123,93,7) int
  85.            plane(0,-1,0) at(0,254,0)
  86.         ) union
  87.         (
  88.            (
  89.               cyl4 at(75,192,7) union
  90.               cyl4 at(171,192,7)
  91.            ) int
  92.            plane(0,-1,0) at(0,192,0)
  93.         ) union
  94.         block3 at(93,233,7);
  95.  
  96. xcyl=cyl5 int
  97.      plane(0,-1,0) at(0,161,0);
  98.  
  99. zfend=(xcyl) union
  100.       (
  101.          cyl6 at(0,99,-48) int
  102.          plane(0,-1,0) at(0,99,0)
  103.       ) union
  104.       block4 at(0,140,-30) union empty;
  105.  
  106. zbend=(xcyl) union
  107.       (
  108.          cyl6 at(0,99,48) int
  109.          plane(0,-1,0) at(0,99,0)
  110.       ) union
  111.       block4 at(0,140,-30) union empty;
  112.  
  113. zystrip=(zfend) at(6,93,124) union
  114.         (zbend) at(6,93,826) union
  115.         block5 at(6,192,124);
  116.  
  117. inside=(zystrip) int
  118.        (xystrip) union
  119.        block6 at(6,0.1,7);
  120.  
  121. medmarch=ellipsoid(148.0610,76.6933,76.6933) union empty;
  122.  
  123. largarch=ellipsoid(144.5829,80,80) union empty;
  124.  
  125. smalarch=ellipsoid(135.1949,64.8635,64.8635) union empty;
  126.  
  127. lwindow=plane(-4,6,0)  at(6.001,213,0) int
  128.         plane(-8,-6,0) at(6.001,125,0) int
  129.         plane(-4,0,6)  at(6.001,0,21)  int
  130.         plane(-4,0,-6) at(6.001,0,-21) int
  131.         plane(1,0,0)   at(6.001,0,0) union empty;
  132.  
  133. rwindow=plane(4,6,0)  at(239.999,213,0) int
  134.         plane(8,-6,0) at(239.999,125,0) int
  135.         plane(4,0,6)  at(239.999,0,21)  int
  136.         plane(4,0,-6) at(239.999,0,-21) int
  137.         plane(-1,0,0) at(239.999,0,0) union empty;
  138.  
  139. hall=(
  140.         (outside) diff
  141.         (inside) diff
  142.         (
  143.            (
  144.               (
  145.                  (smalarch) at(123,192,39.5) union
  146.                  (largarch) at(123,192,125) union
  147.                  (medmarch) at(123,192,225) union
  148.                  (medmarch) at(123,192,325) union
  149.                  (medmarch) at(123,192,425) union
  150.                  (medmarch) at(123,192,525) union
  151.                  (medmarch) at(123,192,625) union
  152.                  (medmarch) at(123,192,725) union
  153.                  (largarch) at(123,192,825) union
  154.                  (smalarch) at(123,192,910.5)
  155.               ) int
  156.               (zystrip)
  157.            ) union
  158.            (
  159.               (
  160.                  (smalarch) yrot(90) at(207.5,192,125) union
  161.                  (largarch) yrot(90) at(123,192,125) union
  162.                  (smalarch) yrot(90) at(38.5,192,125) union
  163.  
  164.                  (smalarch) yrot(90) at(207.5,192,825) union
  165.                  (largarch) yrot(90) at(123,192,825) union
  166.                  (largarch) yrot(90) at(38.5,192,825)
  167.               ) int
  168.               (xystrip)
  169.            )
  170.         ) diff
  171.         (lwindow) at(0,0,125) diff
  172.         (lwindow) at(0,0,225) diff
  173.         (lwindow) at(0,0,325) diff
  174.         (lwindow) at(0,0,525) diff
  175.         (lwindow) at(0,0,725) diff
  176.         (lwindow) at(0,0,825) diff
  177.         (rwindow) at(0,0,125) diff
  178.         (rwindow) at(0,0,225) diff
  179.         (rwindow) at(0,0,325) diff
  180.         (rwindow) at(0,0,525) diff
  181.         (rwindow) at(0,0,725) diff
  182.         (rwindow) at(0,0,825)
  183.      ) union empty;
  184.  
  185. # Seen from outside #
  186. #
  187. draw (hall) at(-123,-60,-500) scale(0.1)
  188.             xrot(-20) yrot(-30) at(128,128,128);
  189. #
  190. # Seen from inside  #
  191. draw (hall) at(-123,-60,-20);
  192. .
  193.