| Cover | TOC | Chap | Prev Chap | Prev Fig | Next Fig | Next Chap |
|
Figure 25.12
Two dungeon rooms controlled by LOD noes and separated by a wall and a pair of sliding doors. |
|
|
Click on the image to view the VRML scene. |
#VRML V2.0 utf8
# The VRML 2.0 Sourcebook
# Copyright (c) 1997
# Andrea L. Ames, David R. Nadeau, and John L. Moreland
Group {
children [
# First room
LOD {
range [ 20.0 ]
level [
Inline { url "droom.wrl" },
Group { }
]
},
# Second room
Transform {
translation 0.0 0.0 -10.0
children LOD {
range [ 20.0 ]
level [
Inline { url "droom.wrl" },
Group { }
]
}
},
# Wall between first and second rooms
Transform {
translation 0.0 0.0 -5.0
children Inline { url "dwall2.wrl" }
},
# Left and right door panels
Transform {
translation 0.0 0.0 -4.95
children [
DEF LeftDoor Transform {
children Transform {
translation -0.75 0.0 0.0
children DEF Door Inline { url "ddoor.wrl" }
}
},
DEF RightDoor Transform {
children Transform {
translation 0.75 0.0 0.0
children USE Door
}
},
DEF TouchDoor TouchSensor { }
]
},
# Animation clock
DEF Clock TimeSensor {
cycleInterval 5.0
},
# Animation paths for the left and right doors
DEF LeftOpen PositionInterpolator {
key [ 0.0, 0.1, 0.9, 1.0 ]
keyValue [
0.0 0.0 0.0, -1.3 0.0 0.0,
-1.3 0.0 0.0, 0.0 0.0 0.0
]
},
DEF RightOpen PositionInterpolator {
key [ 0.0, 0.1, 0.9, 1.0 ]
keyValue [
0.0 0.0 0.0, 1.3 0.0 0.0,
1.3 0.0 0.0, 0.0 0.0 0.0
]
}
]
}
ROUTE TouchDoor.touchTime TO Clock.set_startTime
ROUTE Clock.fraction_changed TO LeftOpen.set_fraction
ROUTE Clock.fraction_changed TO RightOpen.set_fraction
ROUTE LeftOpen.value_changed TO LeftDoor.set_translation
ROUTE RightOpen.value_changed TO RightDoor.set_translation