1 |
<?xml version="1.0" encoding="UTF-8"?>
|
2 |
<!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 3.2//EN" "https://www.web3d.org/specifications/x3d-3.2.dtd">
|
3 | <X3D profile='Immersive' version='3.2' xmlns:xsd='http://www.w3.org/2001/XMLSchema-instance' xsd:noNamespaceSchemaLocation='https://www.web3d.org/specifications/x3d-3.2.xsd'> |
4 | <head> |
5 | <component level='3' name='Navigation'/> |
6 | <meta name='title' content='Web3dTimeline.x3d'/> |
7 | <meta name='info' content='Presenters can edit events under TimelineEventsGroup.'/> |
8 | <meta name='description' content='Time line of X3D history with a viewpoint for each milestone. Use PgDown and PgUp to look through each viewpoint. Clicking (selecting) text for any milestone binds that viewpoint, then returns to prior milestone when unclicked (deselected).'/> |
9 | <meta name='creator' content='Don Brutzman, Anita Havele, Johannes Behr, Byounghyun Yoo'/> |
10 | <meta name='created' content='28 July 2008'/> |
11 | <meta name='modified' content='11 September 2024'/> |
12 | <meta name='Image' content='Web3dTimelineEntryView.png'/> |
13 | <meta name='Image' content='Web3dTimelinePanorama.png'/> |
14 | <meta name='info' content='Point paper by Anita Havele and Don Brutzman'/> |
15 | <meta name='reference' content='Declarative3dTimelineSceneUseCaseHaveleBrutzman.pdf'/> |
16 | <meta name='reference' content='Declarative3dTimelineSceneUseCaseHaveleBrutzman.doc'/> |
17 | <meta name='reference' content='http://events.declarative3d.org/Dec3D2012'/> |
18 | <meta name='info' content='Corresponding X3DOM translation by Nils Michaelis of Fraunhofer'/> |
19 | <meta name='reference' content='http://examples.x3dom.org/x3dTimeLine'/> |
20 | <meta name='reference' content='http://examples.x3dom.org/x3dTimeLine/timeline.js'/> |
21 | <meta name='reference' content='http://examples.x3dom.org/x3dTimeLine/timeline.css'/> |
22 | <meta name='reference' content='http://examples.x3dom.org/x3dTimeLine/timestamps.txt'/> |
23 | <meta name='identifier' content='https://www.web3d.org/x3d/content/examples/Basic/Web3dOutreach/Web3dTimeline.x3d'/> |
24 | <meta name='generator' content='X3D-Edit 4.0, https://savage.nps.edu/X3D-Edit'/> |
25 | <meta name='license' content='../license.html'/> |
26 | </head> |
27 | <Scene> |
28 | <WorldInfo title='Web3D Timeline'/> |
29 | <Background groundColor='1 1 1' skyColor='1 1 1'/> |
30 | <DirectionalLight direction='0 -0.5 -1'/> |
31 |
<!-- Viewpoint
OverviewViewpoint is a DEF node that has 1 USE node: USE_1 --> <Viewpoint DEF='OverviewViewpoint' description='Web3D Timeline' orientation='-0.33 0.94 0 0.4' position='18 8 21'/> |
32 | <!-- <Fog visibilityRange='2000'/> <Viewpoint DEF='vp2' description='Starting view' position='3 10 20'/> --> |
33 | <Group DEF='InitialSetupAndPrototype'> |
34 | <!-- floor --> |
35 | <Transform translation='0 0 -50'> |
36 | <Shape> |
37 | <Appearance> |
38 | <Material diffuseColor='1 1 1' emissiveColor='1 1 1'/> |
39 | <ImageTexture url=' "images/lines.png " "https://www.web3d.org/x3d/content/examples/Basic/Web3dOutreach/images/lines.png " '/> |
40 | <TextureTransform rotation='1.57'/> |
41 | </Appearance> |
42 | <Box size='125 0.01 125'/> |
43 | </Shape> |
44 | </Transform> |
45 | <ProtoDeclare name='TimelineElement'> |
46 | <ProtoInterface> |
47 |
<field name='name' type='MFString' accessType='inputOutput'
appinfo='Name for this timeline element'/> |
48 |
<field name='title' type='MFString' accessType='inputOutput'
appinfo='Displayed title'/> |
49 |
<field name='description' type='SFString' accessType='inputOutput'
appinfo='Viewpoint, Anchor description'/> |
50 |
<field name='hidden' type='SFBool' value='false' accessType='inputOutput'
appinfo='Whether to hide this entry. TODO: is Viewpoint hidden also?'/> |
51 |
<field name='imageUrl' type='MFString' accessType='inputOutput'
appinfo='"Link to display image"'/> |
52 |
<field name='soundUrl' type='MFString' accessType='inputOutput'
appinfo='"Link to narrative"'/> |
53 |
<field name='referenceUrl' type='MFString' accessType='inputOutput'
appinfo='"Link to reference, launched in separate frame"'/> |
54 |
<field name='imagePixelHeight' type='SFInt32' value='0' accessType='inputOutput'
appinfo='author must initialize'/> |
55 |
<field name='imagePixelWidth' type='SFInt32' value='0' accessType='inputOutput'
appinfo='author must initialize'/> |
56 |
<field name='translation' type='SFVec3f' value='0 0 0' accessType='inputOutput'
appinfo='default value 0 0 0'/> |
57 | </ProtoInterface> |
58 | <ProtoBody> |
59 | <Transform DEF='RootTransform'> |
60 | <IS> |
61 | <connect nodeField='translation' protoField='translation'/> |
62 | </IS> |
63 | <!-- TODO try to omit this viewpoint from scene's active list of viewpoints if hidden='true' --> |
64 | <Switch DEF='HideSwitch' whichChoice='0'> |
65 |
<!-- ROUTE information for TimelineElementViewpointGroup node:
[from TimelineElementScript.displayViewpointGroup to displayed
]
-->
<ViewpointGroup DEF='TimelineElementViewpointGroup' containerField='children'> |
66 | <!-- test ability to hide in BSContact --> |
67 | </ViewpointGroup> |
68 | </Switch> |
69 |
<!-- ROUTE information for TimelineElementViewpoint node:
[from TouchViewpointSelectBooleanFilter.inputTrue to set_bind
]
-->
<Viewpoint DEF='TimelineElementViewpoint' position='2 3 14'> |
70 | <IS> |
71 | <connect nodeField='description' protoField='description'/> |
72 | </IS> |
73 | </Viewpoint> |
74 |
<!-- ROUTE information for proximity node:
[from isActive to it0.set_boolean
]
[from exitTime to bt.set_triggerTime
]
-->
<ProximitySensor DEF='proximity' center='0 0 12' size='40 40 13'/> |
75 | <Transform translation='-0.2 -0.3 0'> |
76 | <Shape> |
77 | <Appearance> |
78 | <Material DEF='NameMaterial' diffuseColor='0.619608 0.258824 0'/> |
79 | </Appearance> |
80 | <Text> |
81 | <IS> |
82 | <connect nodeField='string' protoField='name'/> |
83 | </IS> |
84 | <FontStyle family='"SANS"' justify='"END" "FIRST"' size='1.5' spacing='0.8'/> |
85 | </Text> |
86 | </Shape> |
87 | </Transform> |
88 | <Transform translation='0.2 0 0'> |
89 | <Shape> |
90 | <Appearance> |
91 | <Material DEF='TitleMaterial' diffuseColor='0 0.184314 0.658824'/> |
92 | </Appearance> |
93 | <Text> |
94 | <IS> |
95 | <connect nodeField='string' protoField='title'/> |
96 | </IS> |
97 | <FontStyle family='"SANS"' justify='"BEGIN" "FIRST"' size='0.9'/> |
98 | </Text> |
99 | </Shape> |
100 | </Transform> |
101 | <Group> |
102 |
<!-- ROUTE information for TouchToView node:
[from isActive to TouchViewpointSelectBooleanFilter.set_boolean
]
-->
<TouchSensor DEF='TouchToView' description='touch to view'/> |
103 |
<!-- ROUTE information for TouchViewpointSelectBooleanFilter node:
[from TouchToView.isActive to set_boolean
]
[from inputTrue to TimelineElementViewpoint.set_bind
]
-->
<BooleanFilter DEF='TouchViewpointSelectBooleanFilter'/> |
104 | < ROUTE fromNode='TouchToView' fromField='isActive' toNode='TouchViewpointSelectBooleanFilter' toField='set_boolean'/> |
105 | < ROUTE fromNode='TouchViewpointSelectBooleanFilter' fromField='inputTrue' toNode='TimelineElementViewpoint' toField='set_bind'/> |
106 | <Shape DEF='TransparentTouchForNameTitleShape'> |
107 | <Box size='8 3 0.1'/> |
108 | <Appearance> |
109 | <Material transparency='1'/> |
110 | </Appearance> |
111 | </Shape> |
112 | </Group> |
113 |
<!-- ROUTE information for TimelineElementSwitch node:
[from it0.triggerValue to whichChoice
]
[from it1.triggerValue to whichChoice
]
[from TimelineElementScript.hideSwitchChoice to whichChoice
]
-->
<Switch DEF='TimelineElementSwitch' whichChoice='1'> |
114 | <Group> |
115 | <Transform DEF='HideBackgroundTextTransform' scale='12 8 0.01' translation='0 3.5 -0.5'> |
116 | <!-- Hide other TimeLineElement entries that are behind this one --> |
117 | <Shape> |
118 | <Appearance> |
119 | <Material diffuseColor='1 1 1'/> |
120 | </Appearance> |
121 | <!-- hide next entry, but try not to chop of dates from perspective view --> |
122 | <Box size='0.9 1 0.01'/> |
123 | </Shape> |
124 | </Transform> |
125 | <Transform DEF='ImageTransform' scale='8 8 0.01' translation='-4 1 0'> |
126 | <Anchor parameter='"target=Web3dTimelineReferenceFrame"'> |
127 | <IS> |
128 | <connect nodeField='url' protoField='referenceUrl'/> |
129 | <connect nodeField='description' protoField='description'/> |
130 | </IS> |
131 | <Shape> |
132 | <Appearance> |
133 | <Material diffuseColor='1 1 1' emissiveColor='1 1 1'/> |
134 | <ImageTexture> |
135 | <IS> |
136 | <connect nodeField='url' protoField='imageUrl'/> |
137 | </IS> |
138 | </ImageTexture> |
139 | </Appearance> |
140 | <IndexedFaceSet DEF='ImageIFS' solid='false' coordIndex='0 1 2 3 -1'> |
141 |
<!-- ROUTE information for ImageCoordinate node:
[from TimelineElementScript.pointArray to point
]
-->
<Coordinate DEF='ImageCoordinate'/> |
142 | <TextureCoordinate point='0 0 0 1 1 1 1 0'/> |
143 | </IndexedFaceSet> |
144 | </Shape> |
145 | </Anchor> |
146 | </Transform> |
147 | </Group> |
148 | <Group DEF='EmptyNode'/> |
149 | </Switch> |
150 |
<!-- ROUTE information for bt node:
[from proximity.exitTime to set_triggerTime
]
[from triggerTrue to it1.set_boolean
]
-->
<BooleanTrigger DEF='bt'/> |
151 |
<!-- ROUTE information for it0 node:
[from proximity.isActive to set_boolean
]
[from triggerValue to TimelineElementSwitch.whichChoice
]
-->
<IntegerTrigger DEF='it0' integerKey='0'/> |
152 |
<!-- ROUTE information for it1 node:
[from bt.triggerTrue to set_boolean
]
[from triggerValue to TimelineElementSwitch.whichChoice
]
-->
<IntegerTrigger DEF='it1' integerKey='1'/> |
153 | < ROUTE fromNode='proximity' fromField='isActive' toNode='it0' toField='set_boolean'/> |
154 | < ROUTE fromNode='it0' fromField='triggerValue' toNode='TimelineElementSwitch' toField='whichChoice'/> |
155 | < ROUTE fromNode='proximity' fromField='exitTime' toNode='bt' toField='set_triggerTime'/> |
156 | < ROUTE fromNode='bt' fromField='triggerTrue' toNode='it1' toField='set_boolean'/> |
157 | < ROUTE fromNode='it1' fromField='triggerValue' toNode='TimelineElementSwitch' toField='whichChoice'/> |
158 | </Transform> |
159 | <!-- This embedded Script computes and updates IFS/Coordinate geometry dimensions to match image size --> |
160 |
<!-- ROUTE information for TimelineElementScript node:
[from pointArray to ImageCoordinate.point
]
[from hideSwitchChoice to TimelineElementSwitch.whichChoice
]
[from displayViewpointGroup to TimelineElementViewpointGroup.displayed
]
-->
<Script DEF='TimelineElementScript'> |
161 | <field name='name' type='MFString' accessType='inputOutput'/> |
162 |
<field name='imagePixelHeight' type='SFInt32' accessType='inputOutput'
appinfo='default value 0'/> |
163 |
<field name='imagePixelWidth' type='SFInt32' accessType='inputOutput'
appinfo='default value 0'/> |
164 |
<field name='hidden' type='SFBool' accessType='inputOutput'
appinfo='Whether to hide this entry. TODO: is Viewpoint hidden also?'/> |
165 |
<field name='traceEnabled' type='SFBool' value='false' accessType='inputOutput'
appinfo='debug trace to Browser output console'/> |
166 |
<field name='pointArray' type='MFVec3f' accessType='outputOnly'
appinfo='compute scale based on image pixel height, width'/> |
167 |
<field name='hideSwitchChoice' type='SFInt32' accessType='outputOnly'
appinfo='hide node if hidden'/> |
168 |
<field name='displayViewpointGroup' type='SFBool' accessType='outputOnly'
appinfo='display Viewpoint if not hidden'/> |
169 | <IS> |
170 | <connect nodeField='name' protoField='name'/> |
171 | <connect nodeField='imagePixelHeight' protoField='imagePixelHeight'/> |
172 | <connect nodeField='imagePixelWidth' protoField='imagePixelWidth'/> |
173 | <connect nodeField='hidden' protoField='hidden'/> |
174 | </IS> |
<![CDATA[
ecmascript: function initialize () { computePointArray (); hide (); tracePrint ('initialization() successful'); } function computePointArray () { if ((imagePixelHeight <= 0) || (imagePixelWidth <= 0)) { tracePrint ('cannot compute new scale, imagePixelHeight=' + imagePixelHeight.toString() + ', imagePixelWidth=' + imagePixelWidth.toString()); return; } else if (imagePixelHeight < imagePixelWidth) { height = imagePixelHeight/imagePixelWidth; width = 1.0; } else if (imagePixelHeight > imagePixelWidth) { height = 1.0; width = imagePixelWidth/imagePixelHeight; } else // same { height = 1.0; width = 1.0; } p0 = new SFVec3f (0.0, 0.0, 0.0); p1 = new SFVec3f (0.0, height, 0.0); p2 = new SFVec3f (width, height, 0.0); p3 = new SFVec3f (width, 0.0, 0.0); pointArray = new MFVec3f (p0, p1, p2, p3); tracePrint ('computed new ImageCoordinate.point=' + pointArray.toString()); if (hidden) { hideSwitchChoice = -1; } } function set_imagePixelHeight (eventValue) { computePointArray (); } function set_imagePixelWidth (eventValue) { computePointArray (); } function set_name (eventValue) { // input eventValue received for inputOutput field name = eventValue; } function hide () { // input eventValue received for inputOutput field tracePrint ("set_hidden: hidden=" + hidden); if (hidden) { hideSwitchChoice = -1; displayViewpointGroup = false; } else { hideSwitchChoice = 0; displayViewpointGroup = true; } } function set_hidden (eventValue) { hidden = eventValue; hide (); } // ================== Trace output functions ================== function tracePrint (outputString) { // if traceEnabled is true, print outputString on X3D browser console if (traceEnabled) Browser.println ('[TimelineElementScript ' + name.toString() + ': ' + outputString.toString() + ']'); } function alwaysPrint (outputString) { // always print outputString on X3D browser console Browser.println ('[TimelineElementScript ' + name.toString() + ': ' + outputString.toString() + ']'); } function set_traceEnabled (eventValue) { // input eventValue received for inputOutput field traceEnabled = eventValue; } // ===========================================================
]]>
|
|
176 | </Script> |
177 | < ROUTE fromNode='TimelineElementScript' fromField='pointArray' toNode='ImageCoordinate' toField='point'/> |
178 | < ROUTE fromNode='TimelineElementScript' fromField='hideSwitchChoice' toNode='TimelineElementSwitch' toField='whichChoice'/> |
179 | < ROUTE fromNode='TimelineElementScript' fromField='displayViewpointGroup' toNode='TimelineElementViewpointGroup' toField='displayed'/> |
180 | </ProtoBody> |
181 | </ProtoDeclare> |
182 | </Group> |
183 | <Transform DEF='TimelineEventsGroup' translation='0 5 0'> |
184 | <!-- Depends on the audience, but Len suggests removal of the following for most audiences: 1) 1997 Community 2) 1999 MPEG 3) 2005 April (membership & IPR) Add x3dom - year? X3D V3.3 (Volume, Units) - 2012 --> |
185 | <!-- 1994 --> |
186 | <ProtoInstance name='TimelineElement' DEF='Slide1_VRML1.0'> |
187 | <fieldValue name='name' value='"1994"'/> |
188 | <fieldValue name='title' value='"SIGGRAPH meeting " "VRML 1.0 Specification"'/> |
189 | <fieldValue name='description' value='Community effort adapted SGI OpenInventor'/> |
190 | <fieldValue name='imageUrl' value=' "images/vrml.banner.gif" "https://www.web3d.org/x3d/content/examples/Basic/Web3dOutreach/images/vrml.banner.gif"'/> |
191 | <fieldValue name='imagePixelHeight' value='130'/> |
192 | <fieldValue name='imagePixelWidth' value='560'/> |
193 | <fieldValue name='referenceUrl' value='"https://www.web3d.org/x3d/specifications/vrml/VRML1.0"'/> |
194 | <!-- ensure MFString referenceUrl value is surrounded by "quotation marks" --> |
195 | </ProtoInstance> |
196 | <!-- 1997 --> |
197 | <ProtoInstance name='TimelineElement' DEF='Slide2_VRML2.0'> |
198 | <fieldValue name='translation' value='0 0 -15'/> |
199 | <fieldValue name='name' value='"1997"'/> |
200 | <fieldValue name='title' value='"VRML 2.0" "Community standard"'/> |
201 | <fieldValue name='description' value='VRML 2.0 revised the VRML 1 architecture for better performance'/> |
202 | <fieldValue name='imageUrl' value=' "images/vrml97.gif" "https://www.web3d.org/x3d/content/examples/Basic/Web3dOutreach/images/vrml97.gif"'/> |
203 | <fieldValue name='imagePixelHeight' value='85'/> |
204 | <fieldValue name='imagePixelWidth' value='470'/> |
205 | <fieldValue name='referenceUrl' value='"http://new.web3d.org/files/specifications/14772/V2.0"'/> |
206 | </ProtoInstance> |
207 | <!-- 1997 --> |
208 | <ProtoInstance name='TimelineElement' DEF='Slide3_VRML97'> |
209 | <fieldValue name='translation' value='0 0 -30'/> |
210 | <fieldValue name='name' value='"1997"'/> |
211 | <fieldValue name='title' value='"VRML 97" "International Standard"'/> |
212 | <fieldValue name='description' value='VRML 2.0 became the VRML 97 ISO International Standard'/> |
213 | <fieldValue name='imageUrl' value=' "images/vrml97-0.gif" "https://www.web3d.org/x3d/content/examples/Basic/Web3dOutreach/images/vrml97-0.gif"'/> |
214 | <fieldValue name='imagePixelHeight' value='85'/> |
215 | <fieldValue name='imagePixelWidth' value='470'/> |
216 | <fieldValue name='referenceUrl' value='"http://new.web3d.org/files/specifications/14772/V2.0"'/> |
217 | </ProtoInstance> |
218 | <!-- 1999 --> |
219 | <ProtoInstance name='TimelineElement' DEF='Slide4_MPEG-4'> |
220 | <fieldValue name='translation' value='0 0 -45'/> |
221 | <fieldValue name='name' value='"1999"'/> |
222 | <fieldValue name='title' value='"MPEG-4" "Interactive Profile"'/> |
223 | <fieldValue name='description' value='MPEG-4 adopted an X3D subset for encoding 3D graphics'/> |
224 | <fieldValue name='hidden' value='true'/> |
225 | <fieldValue name='imageUrl' value=' "images/mpeg_logo_bw.gif" "https://www.web3d.org/x3d/content/examples/Basic/Web3dOutreach/images/mpeg_logo_bw.gif"'/> |
226 | <fieldValue name='referenceUrl' value='"https://www.web3d.org/files/specifications/19775-1/V3.2/Part01/MPEG4interactive.html" "http://www.ece.cmu.edu/~ee899/project/jie_sem/index.html"'/> |
227 | <fieldValue name='imagePixelHeight' value='74'/> |
228 | <fieldValue name='imagePixelWidth' value='256'/> |
229 | <!-- only first available choice in url array will be launched --> |
230 | </ProtoInstance> |
231 | <!-- 2001 --> |
232 | <ProtoInstance name='TimelineElement' DEF='Slide5_X3dDesign'> |
233 | <fieldValue name='translation' value='0 0 -60'/> |
234 | <fieldValue name='name' value='"2001"'/> |
235 | <fieldValue name='title' value='"X3D architecture design" "Extensible 3D Graphics"'/> |
236 | <fieldValue name='description' value='X3D architecture extensions to VRML defined'/> |
237 | <fieldValue name='imageUrl' value=' "images/x3d2-s.gif" "https://www.web3d.org/x3d/content/examples/Basic/Web3dOutreach/images/x3d2-s.gif"'/> |
238 | <fieldValue name='imagePixelHeight' value='97'/> |
239 | <fieldValue name='imagePixelWidth' value='154'/> |
240 | <fieldValue name='referenceUrl' value='"https://www.web3d.org/about/faq"'/> |
241 | </ProtoInstance> |
242 | <!-- December 2004 --> |
243 | <ProtoInstance name='TimelineElement' DEF='Slide6_X3dEncoding'> |
244 | <fieldValue name='translation' value='0 0 -75'/> |
245 | <fieldValue name='name' value='"2004" "December"'/> |
246 | <fieldValue name='title' value='".x3d Encoding" "XML Validation"'/> |
247 | <fieldValue name='description' value='XML-X3D'/> |
248 | <fieldValue name='imageUrl' value=' "images/X3dSpecificationLogo.png" "https://www.web3d.org/x3d/content/examples/Basic/Web3dOutreach/images/X3dSpecificationLogo.png"'/> |
249 | <fieldValue name='imagePixelHeight' value='88'/> |
250 | <fieldValue name='imagePixelWidth' value='176'/> |
251 | <fieldValue name='referenceUrl' value='"http://www.w3.org/XML/1999/XML-in-10-points.html" "https://www.web3d.org/files/specifications/19776-1/V3.2/Part01/X3D_XML.html"'/> |
252 | <!-- only first available choice in url array will be launched --> |
253 | </ProtoInstance> |
254 | <!-- 2005 --> |
255 | <ProtoInstance name='TimelineElement' DEF='Slide7_Web3DConsortium'> |
256 | <fieldValue name='translation' value='0 0 -90'/> |
257 | <fieldValue name='name' value='"2005" "April"'/> |
258 | <fieldValue name='title' value='"Web3D Consortium" "Non-profit Membership" "Royalty-Free IPR Policy"'/> |
259 | <fieldValue name='description' value='Web3D Intellectual Property Rights Policy keeps X3D royalty free for any use'/> |
260 | <fieldValue name='imageUrl' value=' "images/web3d-Consortium-3dlogo.jpg" "https://www.web3d.org/x3d/content/examples/Basic/Web3dOutreach/images/web3d-Consortium-3dlogo.jpg"'/> |
261 | <fieldValue name='imagePixelHeight' value='108'/> |
262 | <fieldValue name='imagePixelWidth' value='214'/> |
263 | <fieldValue name='referenceUrl' value='"https://www.web3d.org/realtime-3d/about/legal"'/> |
264 | <!-- 1072 x 540 --> |
265 | </ProtoInstance> |
266 | <!-- November 2005 --> |
267 | <ProtoInstance name='TimelineElement' DEF='Slide8_X3dStandard'> |
268 | <fieldValue name='translation' value='0 0 -105'/> |
269 | <fieldValue name='name' value='"2005" "November"'/> |
270 | <fieldValue name='title' value='"X3D Graphics Standard" "version 3.0" "ISO approved"'/> |
271 | <fieldValue name='description' value='X3D version 3.0'/> |
272 | <fieldValue name='imageUrl' value=' "images/X3dSpecificationLogo.png" "https://www.web3d.org/x3d/content/examples/Basic/Web3dOutreach/images/X3dSpecificationLogo.png"'/> |
273 | <fieldValue name='imagePixelHeight' value='88'/> |
274 | <fieldValue name='imagePixelWidth' value='176'/> |
275 | <fieldValue name='referenceUrl' value='"https://www.web3d.org/documents/specifications/19775-1/V3.0/index.html"'/> |
276 | </ProtoInstance> |
277 | <!-- 2006 --> |
278 | <ProtoInstance name='TimelineElement' DEF='Slide9_SceneAcessInterface'> |
279 | <fieldValue name='translation' value='0 0 -120'/> |
280 | <fieldValue name='name' value='"2006" "April"'/> |
281 | <fieldValue name='title' value='"Scene Acess Interface:" "SAI for JavaScript Java"'/> |
282 | <fieldValue name='description' value='SAI APIs provide consistent X3D code access using JavaScript or Java'/> |
283 | <fieldValue name='imageUrl' value=' "images/X3dAnywhere_150_138.gif" "https://www.web3d.org/x3d/content/examples/Basic/Web3dOutreach/images/X3dAnywhere_150_138.gif"'/> |
284 | <fieldValue name='imagePixelHeight' value='138'/> |
285 | <fieldValue name='imagePixelWidth' value='150'/> |
286 | <fieldValue name='referenceUrl' value='"https://www.web3d.org/files/specifications/19777-1/V3.0/Part1/X3D_ECMAScript.html"'/> |
287 | </ProtoInstance> |
288 | <!-- December 2006 --> |
289 | <ProtoInstance name='TimelineElement' DEF='Slide10_X3dVersion3.1'> |
290 | <fieldValue name='translation' value='0 0 -135'/> |
291 | <fieldValue name='name' value='"2006" "December"'/> |
292 | <fieldValue name='title' value='"X3D" "version 3.1"'/> |
293 | <fieldValue name='description' value='Computer Aided Design (CAD) 3D Textures and Shaders support'/> |
294 | <fieldValue name='imageUrl' value=' "images/logo_iso.gif" "https://www.web3d.org/x3d/content/examples/Basic/Web3dOutreach/images/logo_iso.gif"'/> |
295 | <fieldValue name='imagePixelHeight' value='58'/> |
296 | <fieldValue name='imagePixelWidth' value='202'/> |
297 | <fieldValue name='referenceUrl' value='"https://www.web3d.org/files/specifications/19775-1/V3.1/index.html"'/> |
298 | <!-- Web3dBanner.jpg 864 x 432, reduced 216 x 106 --> |
299 | </ProtoInstance> |
300 | <!-- 2007 --> |
301 | <ProtoInstance name='TimelineElement' DEF='Slide11_X3dForWebAuthors'> |
302 | <fieldValue name='translation' value='0 0 -150'/> |
303 | <fieldValue name='name' value='"2007" "March"'/> |
304 | <fieldValue name='title' value='"X3D for Web Authors" "Book slides examples" "Don Brutzman Leonard Daly"'/> |
305 | <fieldValue name='description' value='X3D for Web Authors book slidesets example scenes and video Don Brutzman and Leonard Daly'/> |
306 | <fieldValue name='imageUrl' value=' "images/X3dForWebAuthorsBookCoverScan.400x498.jpg" "https://www.web3d.org/x3d/content/examples/Basic/Web3dOutreach/images/X3dForWebAuthorsBookCoverScan.400x498.jpg"'/> |
307 | <fieldValue name='imagePixelHeight' value='125'/> |
308 | <fieldValue name='imagePixelWidth' value='100'/> |
309 | <fieldValue name='referenceUrl' value='"https://x3dgraphics.com"'/> |
310 | </ProtoInstance> |
311 | <!-- December 2007 --> |
312 | <ProtoInstance name='TimelineElement' DEF='Slide12_X3dCompressedBinaryEncoding'> |
313 | <fieldValue name='translation' value='0 0 -165'/> |
314 | <fieldValue name='name' value='"2007" "December"'/> |
315 | <fieldValue name='title' value='"X3D Compressed" "Binary Encoding (CBE)" "for geometry and data"'/> |
316 | <fieldValue name='description' value='X3D Compressed Binary Encoding provides geometric and XML compression'/> |
317 | <fieldValue name='imageUrl' value=' "images/CadTeapot.png" "https://www.web3d.org/x3d/content/examples/Basic/Web3dOutreach/images/CadTeapot.png"'/> |
318 | <fieldValue name='imagePixelHeight' value='243'/> |
319 | <fieldValue name='imagePixelWidth' value='427'/> |
320 | <fieldValue name='referenceUrl' value='"http://web3d.org/x3d/wiki/index.php/X3D_Binary_Compression_Capabilities_and_Plans"'/> |
321 | </ProtoInstance> |
322 | <!-- 2008 --> |
323 | <ProtoInstance name='TimelineElement' DEF='Slide13_X3dEarth'> |
324 | <fieldValue name='translation' value='0 0 -180'/> |
325 | <fieldValue name='name' value='"2008" "March"'/> |
326 | <fieldValue name='title' value='"X3D Earth" "Geospatial Component"'/> |
327 | <fieldValue name='description' value='X3D Earth working group has built a Geospatial component for X3D'/> |
328 | <fieldValue name='imageUrl' value=' "images/x3d-earth.jpg" "https://www.web3d.org/x3d/content/examples/Basic/Web3dOutreach/images/x3d-earth.jpg"'/> |
329 | <fieldValue name='imagePixelHeight' value='368'/> |
330 | <fieldValue name='imagePixelWidth' value='368'/> |
331 | <fieldValue name='referenceUrl' value='"https://www.web3d.org/working-groups/x3d-earth"'/> |
332 | </ProtoInstance> |
333 | <!-- June 2008 --> |
334 | <ProtoInstance name='TimelineElement' DEF='Slide14_X3dVersion3.2'> |
335 | <fieldValue name='translation' value='0 0 -195'/> |
336 | <fieldValue name='name' value='"2008" "June"'/> |
337 | <fieldValue name='title' value='"X3D" "version 3.2"'/> |
338 | <fieldValue name='description' value='X3D v3.2 is the current version of X3D in common use'/> |
339 | <fieldValue name='imageUrl' value=' "images/logo_iso.gif" "https://www.web3d.org/x3d/content/examples/Basic/Web3dOutreach/images/logo_iso.gif"'/> |
340 | <fieldValue name='imagePixelHeight' value='58'/> |
341 | <fieldValue name='imagePixelWidth' value='202'/> |
342 | <fieldValue name='referenceUrl' value='"https://www.web3d.org/files/specifications/19775-1/V3.2/Part01/Architecture.html"'/> |
343 | </ProtoInstance> |
344 | <!-- February 2009 --> |
345 | <ProtoInstance name='TimelineElement' DEF='Slide15_DICOM'> |
346 | <fieldValue name='translation' value='0 0 -210'/> |
347 | <fieldValue name='name' value='"2009" "February"'/> |
348 | <fieldValue name='title' value='"X3D and DICOM" "Medical standards"'/> |
349 | <fieldValue name='description' value='X3D volume visualization for DICOM'/> |
350 | <fieldValue name='imageUrl' value=' "images/DicomLogo.png" "https://www.web3d.org/x3d/content/examples/Basic/Web3dOutreach/images/DicomLogo.png"'/> |
351 | <fieldValue name='imagePixelHeight' value='105'/> |
352 | <fieldValue name='imagePixelWidth' value='377'/> |
353 | <fieldValue name='referenceUrl' value='"http://medical.nema.org"'/> |
354 | </ProtoInstance> |
355 | <!-- March 2010 --> |
356 | <ProtoInstance name='TimelineElement' DEF='Slide16_X3DOM'> |
357 | <fieldValue name='translation' value='0 0 -225'/> |
358 | <fieldValue name='name' value='"2010" "March"'/> |
359 | <fieldValue name='title' value='"X3DOM" "development begins"'/> |
360 | <fieldValue name='description' value='X3DOM maps X3D to HTML5'/> |
361 | <fieldValue name='imageUrl' value=' "images/X3domTeaser.png" "https://www.web3d.org/x3d/content/examples/Basic/Web3dOutreach/images/X3domTeaser.png" "http://www.x3dom.org/wp-content/uploads/2009/10/teaser.png"'/> |
362 | <fieldValue name='imagePixelHeight' value='370'/> |
363 | <fieldValue name='imagePixelWidth' value='270'/> |
364 | <fieldValue name='referenceUrl' value='"http://www.x3dom.org"'/> |
365 | </ProtoInstance> |
366 | <!-- June 2011 --> |
367 | <ProtoInstance name='TimelineElement' DEF='Slide17_X3dAugmentedReality'> |
368 | <fieldValue name='translation' value='0 0 -240'/> |
369 | <fieldValue name='name' value='"2011" "June"'/> |
370 | <fieldValue name='title' value='"X3D AR" "Augmented Reality"'/> |
371 | <fieldValue name='description' value='Augmented Reality working group efforts'/> |
372 | <fieldValue name='imageUrl' value=' "images/X3dArImage4.jpg" "https://www.web3d.org/x3d/content/examples/Basic/Web3dOutreach/images/X3dArImage4.jpg"'/> |
373 | <fieldValue name='imagePixelHeight' value='120'/> |
374 | <fieldValue name='imagePixelWidth' value='168'/> |
375 | <fieldValue name='referenceUrl' value='"https://www.web3d.org/working-groups/augmented-reality-ar"'/> |
376 | </ProtoInstance> |
377 | <!-- November 2011 --> |
378 | <ProtoInstance name='TimelineElement' DEF='Slide18_Declarative3D'> |
379 | <fieldValue name='translation' value='0 0 -255'/> |
380 | <fieldValue name='name' value='"2011" "November"'/> |
381 | <fieldValue name='title' value='"Declarative 3D" "W3C Community Group"'/> |
382 | <fieldValue name='description' value='W3C Community Group efforts for Declarative 3D begin'/> |
383 | <fieldValue name='imageUrl' value=' "images/W3cCommunityGroupLogo.png" "https://www.web3d.org/x3d/content/examples/Basic/Web3dOutreach/images/W3cCommunityGroupLogo.png"'/> |
384 | <fieldValue name='imagePixelHeight' value='91'/> |
385 | <fieldValue name='imagePixelWidth' value='209'/> |
386 | <fieldValue name='referenceUrl' value='"http://www.w3.org/community/declarative3d"'/> |
387 | </ProtoInstance> |
388 | <!-- April 2012 --> |
389 | <ProtoInstance name='TimelineElement' DEF='Slide19_WWW2012'> |
390 | <fieldValue name='translation' value='0 0 -270'/> |
391 | <fieldValue name='name' value='"2012" "April"'/> |
392 | <fieldValue name='title' value='"WWW 2012 Workshop" "on Declarative 3D"'/> |
393 | <fieldValue name='description' value='X3D v3.2 is draft international standard'/> |
394 | <fieldValue name='imageUrl' value=' "images/Www2012Logo.png" "https://www.web3d.org/x3d/content/examples/Basic/Web3dOutreach/images/Www2012Logo.png"'/> |
395 | <fieldValue name='imagePixelHeight' value='170'/> |
396 | <fieldValue name='imagePixelWidth' value='348'/> |
397 | <fieldValue name='referenceUrl' value='"http://events.declarative3d.org/Dec3D2012"'/> |
398 | </ProtoInstance> |
399 | </Transform> |
400 | <!-- Web3D 3D logo --> |
401 | <Transform DEF='trans_web3dlogo' rotation='0 1 0 3.14' scale='0.7 0.7 0.7' translation='14 9.4 12'> |
402 | <Group> |
403 | <!-- TODO Animation to spin logo, user-controllable or in different place --> |
404 | <Billboard axisOfRotation='0 0 0'> |
405 |
<!-- ROUTE information for Web3dLogoTransform node:
[from Web3dLogoSpinner.value_changed to set_rotation
]
-->
<Transform DEF='Web3dLogoTransform' scale='0.6 0.6 0.6'> |
406 | <!-- TODO White box behind --> |
407 | <Anchor parameter='"target=Web3dTimelineReferenceFrame"' url=' "https://www.web3d.org" '> |
408 | <Inline url=' "Web3dLogo.x3d" "https://www.web3d.org/x3d/content/examples/Basic/Web3dOutreach/Web3dLogo.x3d" "Web3dLogo.wrl" "https://www.web3d.org/x3d/content/examples/Basic/Web3dOutreach/Web3dLogo.wrl" '/> |
409 | </Anchor> |
410 |
<!-- ROUTE information for Web3dLogoSpinner node:
[from Web3dLogoClock.fraction_changed to set_fraction
]
[from value_changed to Web3dLogoTransform.set_rotation
]
-->
<OrientationInterpolator DEF='Web3dLogoSpinner' key='0 0.3333 0.6667 1' keyValue='0 1 0 0 0 1 0 2.094395 0 1 0 4.18879 0 1 0 0'/> |
411 |
<!-- ROUTE information for Web3dLogoClock node:
[from fraction_changed to Web3dLogoSpinner.set_fraction
]
-->
<TimeSensor DEF='Web3dLogoClock' cycleInterval='30' loop='true'/> |
412 | < ROUTE fromNode='Web3dLogoSpinner' fromField='value_changed' toNode='Web3dLogoTransform' toField='set_rotation'/> |
413 | < ROUTE fromNode='Web3dLogoClock' fromField='fraction_changed' toNode='Web3dLogoSpinner' toField='set_fraction'/> |
414 | </Transform> |
415 | </Billboard> |
416 | </Group> |
417 | <Transform translation='0 -6.2 0'> |
418 | <Billboard axisOfRotation='0 0 0'> |
419 | <TouchSensor description='Select PageUp/PageDown to see each milestone, click on images for detail links'/> |
420 | <Shape> |
421 | <Text string='"Web3D Progress Timeline"'> |
422 | <FontStyle justify='"MIDDLE" "MIDDLE"' style='BOLD'/> |
423 | </Text> |
424 | <Appearance> |
425 | <Material ambientIntensity='0' diffuseColor='0.337 0.392 0.556' shininess='0'/> |
426 | </Appearance> |
427 | </Shape> |
428 | <Shape> |
429 | <Box size='10 3 0.1'/> |
430 | <Appearance> |
431 | <Material transparency='1.0'/> |
432 | </Appearance> |
433 | </Shape> |
434 | </Billboard> |
435 | </Transform> |
436 | </Transform> |
437 | <!-- start and end at same Viewpoint to enable a consistent Viewpoint tour by browser --> |
438 | <Viewpoint USE='OverviewViewpoint'/> |
439 | </Scene> |
440 | </X3D> |
Event Graph ROUTE Table entries with 12 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.
TouchSensor |
description='Select PageUp/PageDown to see each milestone, click on images for detail links' User-interaction hint for this node.(TouchSensor description is providing a tooltip) |
TouchToView
TouchSensor isActive SFBool |
TouchViewpointSelectBooleanFilter
BooleanFilter set_boolean SFBool |
then
|
TouchViewpointSelectBooleanFilter
BooleanFilter inputTrue SFBool |
TimelineElementViewpoint
Viewpoint set_bind SFBool |
Web3dLogoClock
TimeSensor fraction_changed SFFloat |
Web3dLogoSpinner
OrientationInterpolator set_fraction SFFloat |
then
|
Web3dLogoSpinner
OrientationInterpolator value_changed SFRotation |
Web3dLogoTransform
Transform set_rotation SFRotation |
TimelineElementScript
Script pointArray MFVec3f |
ImageCoordinate
Coordinate point MFVec3f |
|
TimelineElementScript
Script hideSwitchChoice SFInt32 |
TimelineElementSwitch
Switch whichChoice SFInt32 |
|
TimelineElementScript
Script displayViewpointGroup SFBool |
TimelineElementViewpointGroup
ViewpointGroup displayed SFBool |
proximity
ProximitySensor isActive SFBool |
it0
IntegerTrigger set_boolean SFBool |
then
|
it0
IntegerTrigger triggerValue SFInt32 |
TimelineElementSwitch
Switch whichChoice SFInt32 |
||||||
proximity
ProximitySensor exitTime SFTime |
bt
BooleanTrigger set_triggerTime SFTime |
then
|
bt
BooleanTrigger triggerTrue SFBool |
it1
IntegerTrigger set_boolean SFBool |
then
|
it1
IntegerTrigger triggerValue SFInt32 |
TimelineElementSwitch
Switch whichChoice SFInt32 |
Slide1_VRML1.0
ProtoInstance TimelineElement |
No ROUTE connection found for output events from this node. This ProtoInstance contains SFNode/MFNode fieldValue declarations with direct access to other nodes, and thus has potential to produce run-time animation. |
Slide10_X3dVersion3.1
ProtoInstance TimelineElement |
No ROUTE connection found for output events from this node. This ProtoInstance contains SFNode/MFNode fieldValue declarations with direct access to other nodes, and thus has potential to produce run-time animation. |
Slide11_X3dForWebAuthors
ProtoInstance TimelineElement |
No ROUTE connection found for output events from this node. This ProtoInstance contains SFNode/MFNode fieldValue declarations with direct access to other nodes, and thus has potential to produce run-time animation. |
Slide12_X3dCompressedBinaryEncoding
ProtoInstance TimelineElement |
No ROUTE connection found for output events from this node. This ProtoInstance contains SFNode/MFNode fieldValue declarations with direct access to other nodes, and thus has potential to produce run-time animation. |
Slide13_X3dEarth
ProtoInstance TimelineElement |
No ROUTE connection found for output events from this node. This ProtoInstance contains SFNode/MFNode fieldValue declarations with direct access to other nodes, and thus has potential to produce run-time animation. |
Slide14_X3dVersion3.2
ProtoInstance TimelineElement |
No ROUTE connection found for output events from this node. This ProtoInstance contains SFNode/MFNode fieldValue declarations with direct access to other nodes, and thus has potential to produce run-time animation. |
Slide15_DICOM
ProtoInstance TimelineElement |
No ROUTE connection found for output events from this node. This ProtoInstance contains SFNode/MFNode fieldValue declarations with direct access to other nodes, and thus has potential to produce run-time animation. |
Slide16_X3DOM
ProtoInstance TimelineElement |
No ROUTE connection found for output events from this node. This ProtoInstance contains SFNode/MFNode fieldValue declarations with direct access to other nodes, and thus has potential to produce run-time animation. |
Slide17_X3dAugmentedReality
ProtoInstance TimelineElement |
No ROUTE connection found for output events from this node. This ProtoInstance contains SFNode/MFNode fieldValue declarations with direct access to other nodes, and thus has potential to produce run-time animation. |
Slide18_Declarative3D
ProtoInstance TimelineElement |
No ROUTE connection found for output events from this node. This ProtoInstance contains SFNode/MFNode fieldValue declarations with direct access to other nodes, and thus has potential to produce run-time animation. |
Slide19_WWW2012
ProtoInstance TimelineElement |
No ROUTE connection found for output events from this node. This ProtoInstance contains SFNode/MFNode fieldValue declarations with direct access to other nodes, and thus has potential to produce run-time animation. |
Slide2_VRML2.0
ProtoInstance TimelineElement |
No ROUTE connection found for output events from this node. This ProtoInstance contains SFNode/MFNode fieldValue declarations with direct access to other nodes, and thus has potential to produce run-time animation. |
Slide3_VRML97
ProtoInstance TimelineElement |
No ROUTE connection found for output events from this node. This ProtoInstance contains SFNode/MFNode fieldValue declarations with direct access to other nodes, and thus has potential to produce run-time animation. |
Slide4_MPEG-4
ProtoInstance TimelineElement |
No ROUTE connection found for output events from this node. This ProtoInstance contains SFNode/MFNode fieldValue declarations with direct access to other nodes, and thus has potential to produce run-time animation. |
Slide5_X3dDesign
ProtoInstance TimelineElement |
No ROUTE connection found for output events from this node. This ProtoInstance contains SFNode/MFNode fieldValue declarations with direct access to other nodes, and thus has potential to produce run-time animation. |
Slide6_X3dEncoding
ProtoInstance TimelineElement |
No ROUTE connection found for output events from this node. This ProtoInstance contains SFNode/MFNode fieldValue declarations with direct access to other nodes, and thus has potential to produce run-time animation. |
Slide7_Web3DConsortium
ProtoInstance TimelineElement |
No ROUTE connection found for output events from this node. This ProtoInstance contains SFNode/MFNode fieldValue declarations with direct access to other nodes, and thus has potential to produce run-time animation. |
Slide8_X3dStandard
ProtoInstance TimelineElement |
No ROUTE connection found for output events from this node. This ProtoInstance contains SFNode/MFNode fieldValue declarations with direct access to other nodes, and thus has potential to produce run-time animation. |
Slide9_SceneAcessInterface
ProtoInstance TimelineElement |
No ROUTE connection found for output events from this node. This ProtoInstance contains SFNode/MFNode fieldValue declarations with direct access to other nodes, and thus has potential to produce run-time animation. |
<!--
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)
<ProtoInstance
name='ProtoName'>
<field
name='fieldName'/> </ProtoInstance>
-->
<!-- For additional help information about X3D scenes, please see X3D Tooltips, X3D Resources, and X3D Scene Authoring Hints. -->