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='TestViewpointJump.x3d'/> |
6 | <meta name='description' content='Conformance Test for Viewpoint: immediate switching (jump=true) and smooth animation (jump=false). Press PgUp/PgDn or touch geometry to change viewpoints.'/> |
7 | <meta name=' warning ' content=' CosmoPlayer 2.1.1 fails when "Animate transition between viewpoints" option is turned off. First, try this test by opening the Control Panel, selecting "Animate transition between viewpoints". Use Page Down key to switch between viewpoints. You should smoothly transition between viewpoints. Next, turn the "Animate transition bewtween viewpoints" option off. Use Page Down key to switch between viewpoints. You should see a jump to the objects labeled "jump=true" and an animated transition to the objects labeled "jump=false". '/> |
8 | <meta name='creator' content='Jeffrey Weekley and Don Brutzman'/> |
9 | <meta name='created' content='25 July 2001'/> |
10 | <meta name='modified' content='20 October 2019'/> |
11 | <meta name='reference' content='https://www.web3d.org/technicalinfo/specifications/vrml97/part1/nodesRef.html#Viewpoint'/> |
12 | <meta name='subject' content='Viewpoint conformance test'/> |
13 | <meta name='identifier' content='https://www.web3d.org/x3d/content/examples/Basic/development/TestViewpointJump.x3d'/> |
14 | <meta name='generator' content='X3D-Edit 3.3, https://savage.nps.edu/X3D-Edit'/> |
15 | <meta name='license' content='../license.html'/> |
16 | </head> |
17 | <Scene> |
18 | <WorldInfo title='TestViewpointJump.x3d'/> |
19 | <Viewpoint description='Initial viewpoint, default jump (jump true)' position='0 0 7.5'/> |
20 | <!-- default value for field is jump='true' --> |
21 |
<!-- ROUTE information for ConeView node:
[from ConeTouchSensor.isActive to set_bind
]
-->
<Viewpoint DEF='ConeView' description='Red Cone (jump true)' orientation='0 -1 0 1' position='-4.6 1.4 1.9'/> |
22 |
<!-- ROUTE information for SphereView node:
[from SphereTouchSensor.isActive to set_bind
]
-->
<Viewpoint DEF='SphereView' description='Blue Sphere (jump false)' jump='false' orientation='0 1 0 .7572' position='4.7 -1.2 3.3'/> |
23 |
<!-- ROUTE information for CubeView node:
[from BoxTouchSensor.isActive to set_bind
]
-->
<Viewpoint DEF='CubeView' description='Magenta Cube (jump true)' orientation='0 -1 0 1.0529' position='-6.1 -1.5 2.7'/> |
24 |
<!-- ROUTE information for CylinderView node:
[from CylinderTouchSensor.isActive to set_bind
]
-->
<Viewpoint DEF='CylinderView' description='White Cylinder (jump false)' jump='false' orientation='0 1 0 1' position='5.6 1.4 2.8'/> |
25 | <Group DEF='Geometry'> |
26 | <Transform DEF='Box' translation='-1.5 -1.5 0'> |
27 | <Shape> |
28 | <Box size='1 1 1'/> |
29 | <Appearance> |
30 | <Material diffuseColor='1 0 1'/> |
31 | </Appearance> |
32 | </Shape> |
33 | <Transform translation='0 1 0'> |
34 | <Billboard> |
35 | <Shape> |
36 | <Text string='"Magenta Cube Viewpoint" "jump=true"'> |
37 | <FontStyle justify='"MIDDLE" "MIDDLE"' size='0.25'/> |
38 | </Text> |
39 | <Appearance> |
40 | <Material diffuseColor='0.4 0.8 0.6' shininess='0.8'/> |
41 | </Appearance> |
42 | </Shape> |
43 | </Billboard> |
44 | </Transform> |
45 |
<!-- ROUTE information for BoxTouchSensor node:
[from isActive to CubeView.set_bind
]
-->
<TouchSensor DEF='BoxTouchSensor' description='click to bind this viewpoint'/> |
46 | < ROUTE fromNode='BoxTouchSensor' fromField='isActive' toNode='CubeView' toField='set_bind'/> |
47 | </Transform> |
48 | <Transform DEF='Sphere' translation='1.5 -1.5 0'> |
49 | <Shape> |
50 | <Sphere radius='0.5'/> |
51 | <Appearance> |
52 | <Material diffuseColor='0 0 1'/> |
53 | </Appearance> |
54 | </Shape> |
55 | <Transform translation='0 1 0'> |
56 | <Billboard> |
57 | <Shape> |
58 | <Text string='"Blue Sphere Viewpoint" "jump=false"'> |
59 | <FontStyle justify='"MIDDLE" "MIDDLE"' size='0.25'/> |
60 | </Text> |
61 | <Appearance> |
62 | <Material diffuseColor='0.4 0.8 0.6' shininess='0.8'/> |
63 | </Appearance> |
64 | </Shape> |
65 | </Billboard> |
66 | </Transform> |
67 |
<!-- ROUTE information for SphereTouchSensor node:
[from isActive to SphereView.set_bind
]
-->
<TouchSensor DEF='SphereTouchSensor' description='click for blue sphere viewpoint'/> |
68 | < ROUTE fromNode='SphereTouchSensor' fromField='isActive' toNode='SphereView' toField='set_bind'/> |
69 | </Transform> |
70 | <Transform DEF='Cone' translation='-1.5 1.25 0'> |
71 | <Shape> |
72 | <Cone bottomRadius='0.5' height='1'/> |
73 | <Appearance> |
74 | <Material diffuseColor='1 0 0'/> |
75 | </Appearance> |
76 | </Shape> |
77 | <Transform translation='0 1 0'> |
78 | <Billboard> |
79 | <Shape> |
80 | <Text string='"Red Cone Viewpoint" "jump=true"'> |
81 | <FontStyle justify='"MIDDLE" "MIDDLE"' size='0.25'/> |
82 | </Text> |
83 | <Appearance> |
84 | <Material diffuseColor='0.4 0.8 0.6' shininess='0.8'/> |
85 | </Appearance> |
86 | </Shape> |
87 | </Billboard> |
88 | </Transform> |
89 |
<!-- ROUTE information for ConeTouchSensor node:
[from isActive to ConeView.set_bind
]
-->
<TouchSensor DEF='ConeTouchSensor' description='click for red cone viewpoint'/> |
90 | < ROUTE fromNode='ConeTouchSensor' fromField='isActive' toNode='ConeView' toField='set_bind'/> |
91 | </Transform> |
92 | <Transform DEF='Cylinder' translation='1.5 1.25 0'> |
93 | <Shape> |
94 | <Cylinder height='1' radius='0.5'/> |
95 | <Appearance> |
96 | <Material diffuseColor='1 1 1'/> |
97 | </Appearance> |
98 | </Shape> |
99 | <Transform translation='0 1 0'> |
100 | <Billboard> |
101 | <Shape> |
102 | <Text string='"White Cylinder Viewpoint" "jump=false"'> |
103 | <FontStyle justify='"MIDDLE" "MIDDLE"' size='0.25'/> |
104 | </Text> |
105 | <Appearance> |
106 | <Material diffuseColor='0.4 0.8 0.6' shininess='0.8'/> |
107 | </Appearance> |
108 | </Shape> |
109 | </Billboard> |
110 | </Transform> |
111 |
<!-- ROUTE information for CylinderTouchSensor node:
[from isActive to CylinderView.set_bind
]
-->
<TouchSensor DEF='CylinderTouchSensor' description='click for white cylinder viewpoint'/> |
112 | < ROUTE fromNode='CylinderTouchSensor' fromField='isActive' toNode='CylinderView' toField='set_bind'/> |
113 | </Transform> |
114 | </Group> |
115 | </Scene> |
116 | </X3D> |
Event Graph ROUTE Table entries with 4 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.
BoxTouchSensor
TouchSensor isActive SFBool |
CubeView
Viewpoint set_bind SFBool |
ConeTouchSensor
TouchSensor isActive SFBool |
ConeView
Viewpoint set_bind SFBool |
CylinderTouchSensor
TouchSensor isActive SFBool |
CylinderView
Viewpoint set_bind SFBool |
SphereTouchSensor
TouchSensor isActive SFBool |
SphereView
Viewpoint set_bind SFBool |
<!--
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. -->