home *** CD-ROM | disk | FTP | other *** search
/ Late Night VRML 2.0 with Java CD-ROM / code.zip / Ch22 / chess.wrl < prev    next >
Text File  |  1997-03-12  |  11KB  |  328 lines

  1. #VRML V2.0 utf8
  2.  
  3. # A chess board and pieces
  4.  
  5. # Created by Bernie Roehl, February 1997
  6.  
  7. PROTO Piece [
  8.     field SFNode appearance NULL
  9.     field SFNode geometry NULL
  10.     exposedField SFVec3f initialLocation 0 0 0
  11.     eventIn SFVec3f set_location
  12.     eventOut SFVec3f location_changed
  13.     eventOut SFBool isActive
  14. ]
  15. {
  16.     Transform {
  17.         rotation 1 0 0 1.5708
  18.         translation IS initialLocation
  19.         children [
  20.             DEF T Transform {
  21.                 scale 0.03 0.10 0.03
  22.                 rotation 1 0 0 -1.5708
  23.                 set_translation IS set_location
  24.                 translation_changed IS location_changed
  25.                 children Shape {
  26.                     appearance IS appearance
  27.                     geometry IS geometry
  28.                 }
  29.             }
  30.             DEF PS PlaneSensor { isActive IS isActive }
  31.         ]
  32.     }
  33. ROUTE PS.translation_changed TO T.set_translation
  34. }
  35.  
  36. # The pieces:
  37.  
  38. DEF WhitePawn1 Piece {
  39.     appearance DEF White Appearance {
  40.         material Material { diffuseColor 1 1 1 }
  41.     }
  42.     geometry DEF PawnShape
  43.          Extrusion {
  44.              crossSection [
  45.                  1 0, 0.92388 -0.382683, 0.707107 -0.70107,
  46.                  0.38283 -0.92388, 0 -1,
  47.                  -0.38283 -0.92388, -0.707107 -0.70107,
  48.                  -0.92388 -0.382683, -1 0,
  49.                  -0.92388 0.382683, -0.707107 0.70107,
  50.                  -0.38283 0.92388, 0 1,
  51.                  0.38283 0.92388, 0.707107 0.70107,
  52.                  0.92388 0.382683, 1 0
  53.              ]
  54.              spine [
  55.                  0 0 0, 0 0.10 0, 0 0.10 0, 0 0.60 0,
  56.                  0 0.70 0, 0 0.80 0, 0 0.90 0, 0 1 0
  57.              ]
  58.              scale [
  59.                  1 1, 1 1, 0.85 0.85, 0.2 0.2,
  60.                  0.50 0.50, 0.90 0.90, 0.5 0.5, 0.1 0.1
  61.              ]
  62.          }
  63.     initialLocation -0.42 0 0.30
  64. }
  65.  
  66. DEF WhitePawn2 Piece { appearance USE White geometry USE PawnShape initialLocation -0.30 0 0.30 }
  67. DEF WhitePawn3 Piece { appearance USE White geometry USE PawnShape initialLocation -0.18 0 0.30 }
  68. DEF WhitePawn4 Piece { appearance USE White geometry USE PawnShape initialLocation -0.06 0 0.30 }
  69. DEF WhitePawn5 Piece { appearance USE White geometry USE PawnShape initialLocation  0.06 0 0.30 }
  70. DEF WhitePawn6 Piece { appearance USE White geometry USE PawnShape initialLocation  0.18 0 0.30 }
  71. DEF WhitePawn7 Piece { appearance USE White geometry USE PawnShape initialLocation  0.30 0 0.30 }
  72. DEF WhitePawn8 Piece { appearance USE White geometry USE PawnShape initialLocation  0.42 0 0.30 }
  73.  
  74. DEF WhiteRook1 Piece {
  75.     appearance USE White
  76.     geometry DEF RookShape
  77.          Extrusion {
  78.              crossSection [
  79.                  1 0, 0.92388 -0.382683, 0.707107 -0.70107,
  80.                  0.38283 -0.92388, 0 -1,
  81.                  -0.38283 -0.92388, -0.707107 -0.70107,
  82.                  -0.92388 -0.382683, -1 0,
  83.                  -0.92388 0.382683, -0.707107 0.70107,
  84.                  -0.38283 0.92388, 0 1,
  85.                  0.38283 0.92388, 0.707107 0.70107,
  86.                  0.92388 0.382683, 1 0
  87.              ]
  88.              spine [
  89.                  0 0 0, 0 0.25 0, 0 0.25 0, 0 0.85 0, 0 0.85 0, 0 1 0
  90.              ]
  91.              scale [
  92.                  1 1, 1 1, 0.75 0.75, 0.75 0.75, 1 1, 1 1
  93.              ]
  94.          }
  95.     initialLocation -0.42 0 0.42
  96. }
  97.  
  98. DEF WhiteRook2 Piece { appearance USE White geometry USE RookShape initialLocation 0.42 0 0.42 }
  99.  
  100. DEF WhiteKnight1 Piece {
  101.     appearance USE White
  102.     geometry DEF KnightShape
  103.          Extrusion {
  104.              crossSection [
  105.                  1 0, 0.92388 -0.382683, 0.707107 -0.70107,
  106.                  0.38283 -0.92388, 0 -1,
  107.                  -0.38283 -0.92388, -0.707107 -0.70107,
  108.                  -0.92388 -0.382683, -1 0,
  109.                  -0.92388 0.382683, -0.707107 0.70107,
  110.                  -0.38283 0.92388, 0 1,
  111.                  0.38283 0.92388, 0.707107 0.70107,
  112.                  0.92388 0.382683, 1 0
  113.              ]
  114.              spine [
  115.                   0 0    0,
  116.                   0 0.2  0,
  117.                   0 0.2  0,
  118.                   0 0.5  0,
  119.                   0 0.7  0.5,
  120.                   0 0.8  1,
  121.                   0 1.0  0.5,
  122.                   0 1.1  0,
  123.                   0 1.0 -0.5,
  124.                   0 0.8 -1
  125.              ]
  126.              scale [
  127.                  1 1,
  128.                  1 1,
  129.                  0.85 0.85,
  130.                  0.25 0.25,
  131.                  0.25 0.25,
  132.                  0.15 0.15,
  133.                  0.25 0.25,
  134.                  0.25 0.25,
  135.                  0.25 0.25,
  136.                  0.15 0.15
  137.              ]
  138.          }
  139.     initialLocation -0.30 0 0.42
  140. }
  141.  
  142. DEF WhiteKnight2 Piece { appearance USE White geometry USE KnightShape initialLocation 0.30 0 0.42 }
  143.  
  144. DEF WhiteBishop1 Piece {
  145.     appearance USE White
  146.     geometry DEF BishopShape
  147.          Extrusion {
  148.              crossSection [
  149.                  1 0, 0.92388 -0.382683, 0.707107 -0.70107,
  150.                  0.38283 -0.92388, 0 -1,
  151.                  -0.38283 -0.92388, -0.707107 -0.70107,
  152.                  -0.92388 -0.382683, -1 0,
  153.                  -0.92388 0.382683, -0.707107 0.70107,
  154.                  -0.38283 0.92388, 0 1,
  155.                  0.38283 0.92388, 0.707107 0.70107,
  156.                  0.92388 0.382683, 1 0
  157.              ]
  158.              spine [
  159.                  0 0 0, 0 0.10 0, 0 0.10 0, 0 0.75 0,
  160.                  0 0.95 0, 0 1.05 0, 0 1.25 0, 0 1.5 0
  161.              ]
  162.              scale [
  163.                  1 1, 1 1, 0.85 0.85, 0.2 0.2,
  164.                  0.50 0.50, 0.90 0.90, 0.5 0.5, 0.1 0.1
  165.              ]
  166.          }
  167.     initialLocation -0.18 0 0.42
  168. }
  169.  
  170. DEF WhiteBishop2 Piece { appearance USE White geometry USE BishopShape initialLocation 0.18 0 0.42 }
  171.  
  172. DEF WhiteKing Piece {
  173.     appearance USE White
  174.     geometry DEF KingShape
  175.          Extrusion {
  176.              crossSection [
  177.                  1 0, 0.92388 -0.382683, 0.707107 -0.70107,
  178.                  0.38283 -0.92388, 0 -1,
  179.                  -0.38283 -0.92388, -0.707107 -0.70107,
  180.                  -0.92388 -0.382683, -1 0,
  181.                  -0.92388 0.382683, -0.707107 0.70107,
  182.                  -0.38283 0.92388, 0 1,
  183.                  0.38283 0.92388, 0.707107 0.70107,
  184.                  0.92388 0.382683, 1 0
  185.              ]
  186.              spine [
  187.                  0 0 0, 0 0.2 0, 0 1.2 0, 0 1.40 0, 0 1.5 0,
  188.                  0 1.5 0, 0 1.75 0
  189.              ]
  190.              scale [
  191.                  1 1, 0.4 0.4, 0.4 0.4, 1 1, 1 1,
  192.                  0.2 0.2, 0.05 0.05
  193.              ]
  194.          }
  195.     initialLocation 0.06 0 0.42
  196. }
  197.  
  198.  
  199. DEF WhiteQueen Piece {
  200.     appearance USE White
  201.     geometry DEF QueenShape
  202.          Extrusion {
  203.              crossSection [
  204.                  1 0, 0.92388 -0.382683, 0.707107 -0.70107,
  205.                  0.38283 -0.92388, 0 -1,
  206.                  -0.38283 -0.92388, -0.707107 -0.70107,
  207.                  -0.92388 -0.382683, -1 0,
  208.                  -0.92388 0.382683, -0.707107 0.70107,
  209.                  -0.38283 0.92388, 0 1,
  210.                  0.38283 0.92388, 0.707107 0.70107,
  211.                  0.92388 0.382683, 1 0
  212.              ]
  213.              spine [
  214.                  0 0 0, 0 0.2 0, 0 1.0 0, 0 1.20 0, 0 1.3 0
  215.              ]
  216.              scale [
  217.                  1 1, 0.4 0.4, 0.4 0.4, 1 1, 1 1
  218.              ]
  219.          }
  220.     initialLocation -0.06 0 0.42
  221. }
  222.  
  223. DEF BlackPawn1 Piece {
  224.     appearance DEF Black Appearance {
  225.         material Material { diffuseColor 0 0 1 }
  226.     }
  227.     geometry USE PawnShape
  228.     initialLocation -0.42 0 -0.30
  229. }
  230.  
  231. DEF BlackPawn2 Piece { appearance USE Black geometry USE PawnShape initialLocation -0.30 0 -0.30 }
  232. DEF BlackPawn3 Piece { appearance USE Black geometry USE PawnShape initialLocation -0.18 0 -0.30 }
  233. DEF BlackPawn4 Piece { appearance USE Black geometry USE PawnShape initialLocation -0.06 0 -0.30 }
  234. DEF BlackPawn5 Piece { appearance USE Black geometry USE PawnShape initialLocation  0.06 0 -0.30 }
  235. DEF BlackPawn6 Piece { appearance USE Black geometry USE PawnShape initialLocation  0.18 0 -0.30 }
  236. DEF BlackPawn7 Piece { appearance USE Black geometry USE PawnShape initialLocation  0.30 0 -0.30 }
  237. DEF BlackPawn8 Piece { appearance USE Black geometry USE PawnShape initialLocation  0.42 0 -0.30 }
  238.  
  239. DEF BlackRook1 Piece { appearance USE Black geometry USE RookShape initialLocation -0.42 0 -0.42 }
  240. DEF BlackRook2 Piece { appearance USE Black geometry USE RookShape initialLocation 0.42 0 -0.42 }
  241. DEF BlackBishop1 Piece { appearance USE Black geometry USE BishopShape initialLocation -0.18 0 -0.42 }
  242. DEF BlackBishop2 Piece { appearance USE Black geometry USE BishopShape initialLocation 0.18 0 -0.42 }
  243. DEF BlackQueen Piece { appearance USE Black geometry USE QueenShape initialLocation -0.06 0 -0.42 }
  244. DEF BlackKing Piece { appearance USE Black geometry USE KingShape initialLocation 0.06 0 -0.42 }
  245.  
  246. DEF BlackKnight1 Piece {
  247.     appearance USE Black
  248.     geometry DEF KnightShape
  249.          Extrusion {
  250.              crossSection [
  251.                  1 0, 0.92388 -0.382683, 0.707107 -0.70107,
  252.                  0.38283 -0.92388, 0 -1,
  253.                  -0.38283 -0.92388, -0.707107 -0.70107,
  254.                  -0.92388 -0.382683, -1 0,
  255.                  -0.92388 0.382683, -0.707107 0.70107,
  256.                  -0.38283 0.92388, 0 1,
  257.                  0.38283 0.92388, 0.707107 0.70107,
  258.                  0.92388 0.382683, 1 0
  259.              ]
  260.              spine [
  261.                   0 0    0,
  262.                   0 0.2  0,
  263.                   0 0.2  0,
  264.                   0 0.5  0,
  265.                   0 0.7 -0.5,
  266.                   0 0.8 -1,
  267.                   0 1.0 -0.5,
  268.                   0 1.1  0,
  269.                   0 1.0  0.5,
  270.                   0 0.8  1
  271.              ]
  272.              scale [
  273.                  1 1,
  274.                  1 1,
  275.                  0.85 0.85,
  276.                  0.25 0.25,
  277.                  0.25 0.25,
  278.                  0.15 0.15,
  279.                  0.25 0.25,
  280.                  0.25 0.25,
  281.                  0.25 0.25,
  282.                  0.15 0.15
  283.              ]
  284.          }
  285.     initialLocation -0.30 0 -0.42
  286. }
  287.  
  288. DEF BlackKnight2 Piece { appearance USE Black geometry USE KnightShape initialLocation 0.30 0 -0.42 }
  289.  
  290. # The board:
  291.  
  292. Shape {
  293.     appearance Appearance {
  294.         texture PixelTexture { image 2 2 1 0xFF 0x00 0x00 0xFF }
  295. #        texture ImageTexture { url "checks.gif" }
  296.     }
  297.     geometry IndexedFaceSet {
  298.         coord Coordinate {
  299.             point [ -0.48 0 -0.48, -0.48 0 0.48, 0.48 0 0.48, 0.48 0 -0.48 ]
  300.         }
  301.         texCoord TextureCoordinate { point [ 0 0, 0 4, 4 4, 4 0 ] }
  302.         coordIndex [ 0 1 2 3 -1 ]
  303.     }
  304. }
  305.  
  306. NavigationInfo { type "EXAMINE" }
  307.  
  308. # The viewpoints
  309.  
  310. Viewpoint {
  311.     position 0 1 1
  312.     orientation 1 0 0 -0.7854
  313.     description "White's point of view"
  314. }
  315.  
  316. Viewpoint {
  317.     position 0 1 -1
  318.     orientation 0 0.9238 0.3827 3.14159
  319.     description "Black's point of view"
  320. }
  321.  
  322. Viewpoint {
  323.     position 0 1.5 0
  324.     orientation 1 0 0 -1.5708
  325.     description "Overhead view"
  326. }
  327.  
  328.