<
ExternProtoDeclare name='
Shuttle'
url='
"
Example14.wrl#Shuttle"
"
http://www.web3d.org/x3d/content/examples/Basic/Vrml97Specification/Example14.wrl#Shuttle"
"
Example14.x3d#Shuttle"
"
http://www.web3d.org/x3d/content/examples/Basic/Vrml97Specification/Example14.x3d#Shuttle"
'>
<field name='rate' type='SFTime' accessType='initializeOnly'/>
<field name='distance' type='SFFloat' accessType='initializeOnly'/>
<field name='children' type='MFNode' accessType='initializeOnly'/>
<field name='startTime' type='SFTime' accessType='inputOutput'/>
<field name='stopTime' type='SFTime' accessType='inputOutput'/>
<field name='loop' type='SFBool' accessType='initializeOnly'/>
</
ExternProtoDeclare>
<
ExternProtoDeclare name='
Pendulum'
url='
"
Example14.wrl#Pendulum"
"
Example14.wrl#Pendulum"
'>
<field name='rate' type='SFTime' accessType='initializeOnly'/>
<field name='maxAngle' type='SFFloat' accessType='initializeOnly'/>
<field name='children' type='MFNode' accessType='initializeOnly'/>
<field name='startTime' type='SFTime' accessType='inputOutput'/>
<field name='stopTime' type='SFTime' accessType='inputOutput'/>
<field name='loop' type='SFBool' accessType='initializeOnly'/>
</
ExternProtoDeclare>
<
NavigationInfo speed='
20'
type='
"WALK" "ANY"'
transitionType='
"ANIMATE"'/>
<
Viewpoint description='
zoom in'
position='
0 0 150'/>
<!--
Near ROUTEs:
[
from enterTime to WALK.startTime
]
[
from enterTime to Arm.startTime
]
[
from exitTime to WALK.stopTime
]
[
from exitTime to Arm.stopTime
]
-->
<
ProximitySensor DEF='
Near'
size='
200 200 200'/>
<!--
WALK ROUTEs:
[
from Near.enterTime to startTime
]
[
from Near.exitTime to stopTime
]
-->
<
ProtoInstance name='
Shuttle'
DEF='
WALK'
containerField='
children'>
<
fieldValue name='
stopTime'
value='
1'/>
<
fieldValue name='
rate'
value='
10'/>
<
fieldValue name='
distance'
value='
20'/>
<
fieldValue name='
children'>
<
Transform rotation='
0 1 0 1.57'>
<
Shape>
<
Appearance DEF='
A'>
<Material diffuseColor='0 0.5 0.7'/>
</
Appearance>
<!-- head -->
<
Box/>
</
Shape>
<
Transform scale='
1 5 1'
translation='
0 -5 0'>
<
Shape>
<
Appearance USE='
A'/>
<!-- body -->
<
Sphere/>
</
Shape>
</
Transform>
<
Transform rotation='
0 1 0 1.57'
translation='
1.5 0 0'>
<!--
Arm ROUTEs:
[
from Near.enterTime to startTime
]
[
from Near.exitTime to stopTime
]
-->
<
ProtoInstance name='
Pendulum'
DEF='
Arm'
containerField='
children'>
<
fieldValue name='
stopTime'
value='
1'/>
<
fieldValue name='
rate'
value='
1'/>
<
fieldValue name='
maxAngle'
value='
0.52'/>
<
fieldValue name='
children'>
<
Transform translation='
0 -3 0'>
<
Shape>
<
Appearance USE='
A'/>
<
Cylinder height='
4'
radius='
0.5'/>
</
Shape>
</
Transform>
</
fieldValue>
</
ProtoInstance>
</
Transform>
<
Transform rotation='
0 -1 0 1.57'
translation='
-1.5 0 0'>
<
ProtoInstance name='
Pendulum'
USE='
Arm'
containerField='
children'/>
</
Transform>
</
Transform>
</
fieldValue>
</
ProtoInstance>
<
ROUTE fromNode='
Near'
fromField='
enterTime'
toNode='
WALK'
toField='
startTime'/>
<
ROUTE fromNode='
Near'
fromField='
enterTime'
toNode='
Arm'
toField='
startTime'/>
<
ROUTE fromNode='
Near'
fromField='
exitTime'
toNode='
WALK'
toField='
stopTime'/>
<
ROUTE fromNode='
Near'
fromField='
exitTime'
toNode='
Arm'
toField='
stopTime'/>