1 |
<?xml version="1.0" encoding="UTF-8"?>
|
2 |
<!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 3.0//EN" "https://www.web3d.org/specifications/x3d-3.0.dtd">
|
3 | <X3D profile='Immersive' version='3.0' xmlns:xsd='http://www.w3.org/2001/XMLSchema-instance' xsd:noNamespaceSchemaLocation='https://www.web3d.org/specifications/x3d-3.0.xsd'> |
4 | <head> |
5 | <meta name='title' content='Figure25_12DungeonRoomsWithSlidingDoors.x3d'/> |
6 | <meta name='creator' content='Figure 25.12, The VRML 2.0 Sourcebook, Copyright [1997] By Andrea L. Ames, David R. Nadeau, and John L. Moreland'/> |
7 | <meta name='reference' content='http://www.wiley.com/legacy/compbooks/vrml2sbk/ch25/25fig12.htm'/> |
8 | <meta name='translator' content='Don Brutzman'/> |
9 | <meta name='created' content='4 October 2000'/> |
10 | <meta name='modified' content='20 October 2019'/> |
11 | <meta name='description' content='Two dungeon rooms controlled by LOD nodes and separated by a wall and a pair of sliding doors.'/> |
12 | <meta name='identifier' content='https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter25LevelOfDetail/Figure25_12DungeonRoomsWithSlidingDoors.x3d'/> |
13 | <meta name='generator' content='X3D-Edit 3.3, https://savage.nps.edu/X3D-Edit'/> |
14 | <meta name='license' content='../../license.html'/> |
15 | </head> |
16 | <Scene> |
17 | <Viewpoint description='Click door for next dungeon room' fieldOfView='1.05' position='0 2 10'/> |
18 | <NavigationInfo avatarSize='0.5 1.6 0.5' headlight='false' speed='2' type='"WALK" "EXAMINE" "ANY"'/> |
19 | <Group> |
20 | <LOD range='20'> |
21 |
<!-- Inline
DungeonRoom is a DEF node that has 1 USE node: USE_1 --> <Inline DEF='DungeonRoom' url=' "Figure25_08DungeonRoom.x3d" "https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter25LevelOfDetail/Figure25_08DungeonRoom.x3d" "Figure25_08DungeonRoom.wrl" "https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter25LevelOfDetail/Figure25_08DungeonRoom.wrl" '/> |
22 | <WorldInfo info='"null node"'/> |
23 | </LOD> |
24 | <Transform translation='0 0 -10'> |
25 | <LOD range='20'> |
26 | <Inline USE='DungeonRoom'/> |
27 | <WorldInfo info='"null node"'/> |
28 | </LOD> |
29 | </Transform> |
30 | <Transform translation='0 0 -5'> |
31 | <Inline url=' "Figure25_10DungeonWallWithDoorway.x3d" "https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter25LevelOfDetail/Figure25_10DungeonWallWithDoorway.x3d" "Figure25_10DungeonWallWithDoorway.wrl" "https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter25LevelOfDetail/Figure25_10DungeonWallWithDoorway.wrl" '/> |
32 | </Transform> |
33 | <Transform rotation='0 1 0 1.57' scale='1 1 2' translation='0 0 -15'> |
34 | <Inline url=' "Figure25_07DungeonRoomWall.x3d" "https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter25LevelOfDetail/Figure25_07DungeonRoomWall.x3d" "Figure25_07DungeonRoomWall.wrl" "https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter25LevelOfDetail/Figure25_07DungeonRoomWall.wrl" '/> |
35 | </Transform> |
36 | <Transform translation='0 0 -4.95'> |
37 |
<!-- ROUTE information for LeftDoor node:
[from LeftOpen.value_changed to set_translation
]
-->
<Transform DEF='LeftDoor'> |
38 | <Transform translation='-0.75 0 0'> |
39 |
<!-- Inline
Door is a DEF node that has 1 USE node: USE_1 --> <Inline DEF='Door' url=' "Figure25_11DungeonDoor.x3d" "https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter25LevelOfDetail/Figure25_11DungeonDoor.x3d" "Figure25_11DungeonDoor.wrl" "https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter25LevelOfDetail/Figure25_11DungeonDoor.wrl" '/> |
40 | </Transform> |
41 | </Transform> |
42 |
<!-- ROUTE information for RightDoor node:
[from RightOpen.value_changed to set_translation
]
-->
<Transform DEF='RightDoor'> |
43 | <Transform translation='0.75 0 0'> |
44 | <Inline USE='Door'/> |
45 | </Transform> |
46 | </Transform> |
47 |
<!-- ROUTE information for TouchDoor node:
[from touchTime to Clock.set_startTime
]
-->
<TouchSensor DEF='TouchDoor' description='touch to open doors for 10 seconds'/> |
48 | </Transform> |
49 |
<!-- ROUTE information for Clock node:
[from TouchDoor.touchTime to set_startTime
]
[from fraction_changed to LeftOpen.set_fraction
]
[from fraction_changed to RightOpen.set_fraction
]
-->
<TimeSensor DEF='Clock' cycleInterval='10'/> |
50 |
<!-- ROUTE information for LeftOpen node:
[from Clock.fraction_changed to set_fraction
]
[from value_changed to LeftDoor.set_translation
]
-->
<PositionInterpolator DEF='LeftOpen' key='0 0.05 0.8 1' keyValue='0 0 0 -1.3 0 0 -1.3 0 0 0 0 0'/> |
51 |
<!-- ROUTE information for RightOpen node:
[from Clock.fraction_changed to set_fraction
]
[from value_changed to RightDoor.set_translation
]
-->
<PositionInterpolator DEF='RightOpen' key='0 0.05 0.8 1' keyValue='0 0 0 1.3 0 0 1.3 0 0 0 0 0'/> |
52 | </Group> |
53 | < ROUTE fromNode='TouchDoor' fromField='touchTime' toNode='Clock' toField='set_startTime'/> |
54 | < ROUTE fromNode='Clock' fromField='fraction_changed' toNode='LeftOpen' toField='set_fraction'/> |
55 | < ROUTE fromNode='Clock' fromField='fraction_changed' toNode='RightOpen' toField='set_fraction'/> |
56 | < ROUTE fromNode='LeftOpen' fromField='value_changed' toNode='LeftDoor' toField='set_translation'/> |
57 | < ROUTE fromNode='RightOpen' fromField='value_changed' toNode='RightDoor' toField='set_translation'/> |
58 | </Scene> |
59 | </X3D> |
Event Graph ROUTE Table entries with 5 ROUTE connections total, showing X3D event-model relationships for this scene.
Each row shows an event cascade that may occur during a single timestamp interval between frame renderings, as part of the X3D execution model.
TouchDoor
TouchSensor touchTime SFTime |
Clock
TimeSensor set_startTime SFTime |
then
|
Clock
TimeSensor fraction_changed SFFloat |
LeftOpen
PositionInterpolator set_fraction SFFloat |
then
|
LeftOpen
PositionInterpolator value_changed SFVec3f |
LeftDoor
Transform set_translation SFVec3f |
|||
then
|
Clock
TimeSensor fraction_changed SFFloat |
RightOpen
PositionInterpolator set_fraction SFFloat |
then
|
RightOpen
PositionInterpolator value_changed SFVec3f |
RightDoor
Transform set_translation SFVec3f |
<!--
Color legend: X3D terminology
<X3dNode
DEF='idName' field='value'/>
matches XML terminology
<XmlElement
DEF='idName' attribute='value'/>
(Light-blue background: event-based behavior node or statement)
(Grey background inside box: inserted documentation)
(Magenta background: X3D Extensibility)
-->
<!-- For additional help information about X3D scenes, please see X3D Tooltips, X3D Resources, and X3D Scene Authoring Hints. -->