| 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://www.web3d.org/x3d/tools/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.
| line 419
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 direct ROUTE connection found for events to/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 direct ROUTE connection found for events to/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 direct ROUTE connection found for events to/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 direct ROUTE connection found for events to/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 direct ROUTE connection found for events to/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 direct ROUTE connection found for events to/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 direct ROUTE connection found for events to/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 direct ROUTE connection found for events to/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 direct ROUTE connection found for events to/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 direct ROUTE connection found for events to/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 direct ROUTE connection found for events to/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 direct ROUTE connection found for events to/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 direct ROUTE connection found for events to/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 direct ROUTE connection found for events to/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 direct ROUTE connection found for events to/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 direct ROUTE connection found for events to/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 direct ROUTE connection found for events to/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 direct ROUTE connection found for events to/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 direct ROUTE connection found for events to/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-coding 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.
-->