#X3D V3.2 utf8
# X3D-to-ClassicVRML XSL translation autogenerated by X3dToVrml97.xslt
# https://www.web3d.org/x3d/content/X3dToVrml97.xslt
# Generated using XSLT processor: Saxonica
PROFILE Immersive
# [X3D] version=3.2
# [X3D] noNamespaceSchemaLocation=https://www.web3d.org/specifications/x3d-3.2.xsd
# [head]
COMPONENT Navigation:3
META "title" "Web3dTimeline.x3d"
META "info" "Presenters can edit events under TimelineEventsGroup."
### Info:
META "description" "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)."
META "creator" "Don Brutzman, Anita Havele, Johannes Behr, Byounghyun Yoo"
META "TODO" "BS Contact BitManagement Bug Report, problem with .x3dv encoding http://www.bitmanagement.de/en/contact"
META "created" "28 July 2008"
META "modified" "20 October 2019"
META "Image" "Web3dTimelineEntryView.png"
META "Image" "Web3dTimelinePanorama.png"
META "info" "Point paper by Anita Havele and Don Brutzman"
### Info:
META "reference" "Declarative3dTimelineSceneUseCaseHaveleBrutzman.pdf"
META "reference" "Declarative3dTimelineSceneUseCaseHaveleBrutzman.doc"
META "reference" "http://events.declarative3d.org/Dec3D2012"
META "info" "Corresponding X3DOM translation by Nils Michaelis of Fraunhofer"
### Info:
META "reference" "http://examples.x3dom.org/x3dTimeLine"
META "reference" "http://examples.x3dom.org/x3dTimeLine/timeline.js"
META "reference" "http://examples.x3dom.org/x3dTimeLine/timeline.css"
META "reference" "http://examples.x3dom.org/x3dTimeLine/timestamps.txt"
META "TODO" "side by side scene and information page, as adjacent frames in HTML parent"
META "TODO" "better images"
META "TODO" "hidden attribute"
META "TODO" "confirm dates and events"
META "identifier" "https://www.web3d.org/x3d/content/examples/Basic/Web3dOutreach/Web3dTimeline.x3d"
META "generator" "X3D-Edit 3.3, https://savage.nps.edu/X3D-Edit"
META "license" "../license.html"
# [Scene] ========== ========== ==========
NavigationInfo { type [ "EXAMINE" "ANY" ] } ### Default X3D NavigationInfo
WorldInfo {
title "Web3D Timeline"
}
Background {
groundColor [ 1 1 1 ]
skyColor [ 1 1 1 ]
}
DirectionalLight {
direction 0 -0.5 -1
}
DEF OverviewViewpoint Viewpoint {
description "Web3D Timeline"
orientation -0.33 0.94 0 0.4
position 18 8 21
}
#
DEF InitialSetupAndPrototype Group {
children [
# floor
Transform {
translation 0 0 -50
children [
Shape {
appearance Appearance {
material Material {
diffuseColor 1 1 1
emissiveColor 1 1 1
}
texture ImageTexture {
url [ "images/lines.png" "https://www.web3d.org/x3d/content/examples/Basic/Web3dOutreach/images/lines.png" ]
}
textureTransform TextureTransform {
rotation 1.57
}
}
geometry Box {
size 125 0.01 125
}
}
]
}
PROTO TimelineElement [
inputOutput MFString name [
""
] # [appinfo] Name for this timeline element
inputOutput MFString title [
""
] # [appinfo] Displayed title
inputOutput SFString description "" # [appinfo] Viewpoint, Anchor description
inputOutput SFBool hidden FALSE # [appinfo] Whether to hide this entry. TODO: is Viewpoint hidden also?
inputOutput MFString imageUrl [
""
] # [appinfo] "Link to display image"
### Warning: ProtoInterface is unreferenced in ProtoBody with no corresponding IS/connect/@protoField
inputOutput MFString soundUrl [
""
] # [appinfo] "Link to narrative"
inputOutput MFString referenceUrl [
""
] # [appinfo] "Link to reference, launched in separate frame"
inputOutput SFInt32 imagePixelHeight 0 # [appinfo] author must initialize
inputOutput SFInt32 imagePixelWidth 0 # [appinfo] author must initialize
inputOutput SFVec3f translation 0 0 0 # [appinfo] default value 0 0 0
] {
DEF RootTransform Transform {
translation IS translation
# TODO try to omit this viewpoint from scene's active list of viewpoints if hidden='true'
children [
# TODO try to omit this viewpoint from scene's active list of viewpoints if hidden='true'
DEF HideSwitch Switch {
whichChoice 0
children [
DEF TimelineElementViewpointGroup ViewpointGroup {
# test ability to hide in BSContact
}
]
}
DEF TimelineElementViewpoint Viewpoint {
position 2 3 14
description IS description
}
DEF proximity ProximitySensor {
center 0 0 12
size 40 40 13
}
Transform {
translation -0.2 -0.3 0
children [
Shape {
appearance Appearance {
material DEF NameMaterial Material {
diffuseColor 0.619608 0.258824 0
}
}
geometry Text {
string IS name
fontStyle FontStyle {
family [ "SANS" ]
justify [ "END" "FIRST" ]
size 1.5
spacing 0.8
}
}
}
]
}
Transform {
translation 0.2 0 0
children [
Shape {
appearance Appearance {
material DEF TitleMaterial Material {
diffuseColor 0 0.184314 0.658824
}
}
geometry Text {
string IS title
fontStyle FontStyle {
family [ "SANS" ]
justify [ "BEGIN" "FIRST" ]
size 0.9
}
}
}
]
}
Group {
children [
DEF TouchToView TouchSensor {
description "touch to view"
}
DEF TouchViewpointSelectBooleanFilter BooleanFilter {
}
DEF TransparentTouchForNameTitleShape Shape {
geometry Box {
size 8 3 0.1
}
appearance Appearance {
material Material {
transparency 1
}
}
}
]
ROUTE TouchToView.isActive TO TouchViewpointSelectBooleanFilter.set_boolean
ROUTE TouchViewpointSelectBooleanFilter.inputTrue TO TimelineElementViewpoint.set_bind
}
DEF TimelineElementSwitch Switch {
whichChoice 1
children [
Group {
children [
DEF HideBackgroundTextTransform Transform {
scale 12 8 0.01
translation 0 3.5 -0.5
children [
# Hide other TimeLineElement entries that are behind this one
Shape {
appearance Appearance {
material Material {
diffuseColor 1 1 1
}
}
# hide next entry, but try not to chop of dates from perspective view
geometry Box {
size 0.9 1 0.01
}
}
]
}
DEF ImageTransform Transform {
scale 8 8 0.01
translation -4 1 0
children [
Anchor {
parameter [ "target=Web3dTimelineReferenceFrame" ]
url IS referenceUrl
description IS description
children [
Shape {
appearance Appearance {
material Material {
diffuseColor 1 1 1
emissiveColor 1 1 1
}
texture ImageTexture {
url IS imageUrl
}
}
geometry DEF ImageIFS IndexedFaceSet {
coordIndex [ 0 1 2 3 -1 ]
solid FALSE
coord DEF ImageCoordinate Coordinate {
}
texCoord TextureCoordinate {
point [ 0 0 0 1 1 1 1 0 ]
}
}
}
]
}
]
}
]
}
DEF EmptyNode Group {
}
]
}
DEF bt BooleanTrigger {
}
DEF it0 IntegerTrigger {
integerKey 0
}
DEF it1 IntegerTrigger {
integerKey 1
}
]
ROUTE proximity.isActive TO it0.set_boolean
ROUTE it0.triggerValue TO TimelineElementSwitch.whichChoice
ROUTE proximity.exitTime TO bt.set_triggerTime
ROUTE bt.triggerTrue TO it1.set_boolean
ROUTE it1.triggerValue TO TimelineElementSwitch.whichChoice
}
DEF TimelineElementScript Script {
inputOutput MFString name IS name
inputOutput SFInt32 imagePixelHeight IS imagePixelHeight # [appinfo] default value 0
inputOutput SFInt32 imagePixelWidth IS imagePixelWidth # [appinfo] default value 0
inputOutput SFBool hidden IS hidden # [appinfo] Whether to hide this entry. TODO: is Viewpoint hidden also?
inputOutput SFBool traceEnabled FALSE # [appinfo] debug trace to Browser output console
outputOnly MFVec3f pointArray # [appinfo] compute scale based on image pixel height, width
outputOnly SFInt32 hideSwitchChoice # [appinfo] hide node if hidden
outputOnly SFBool displayViewpointGroup # [appinfo] display Viewpoint if not hidden
url [ "ecmascript: // ### X3D Browser.print() not supported by all VRML97 viewers, instead simply using print()
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;
}
// ===========================================================
" ]
}
ROUTE TimelineElementScript.pointArray TO ImageCoordinate.point
ROUTE TimelineElementScript.hideSwitchChoice TO TimelineElementSwitch.whichChoice
ROUTE TimelineElementScript.displayViewpointGroup TO TimelineElementViewpointGroup.displayed
}
]
}
DEF TimelineEventsGroup Transform {
translation 0 5 0
children [
# 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
# 1994
DEF Slide1_VRML1.0 TimelineElement {
# ensure MFString referenceUrl value is surrounded by "quotation marks"
name [ "1994" ]
title [ "SIGGRAPH meeting " "VRML 1.0 Specification" ]
description "Community effort adapted SGI OpenInventor"
imageUrl [ "images/vrml.banner.gif" "https://www.web3d.org/x3d/content/examples/Basic/Web3dOutreach/images/vrml.banner.gif" ]
imagePixelHeight 130
imagePixelWidth 560
referenceUrl [ "https://www.web3d.org/x3d/specifications/vrml/VRML1.0" ]
}
# 1997
DEF Slide2_VRML2.0 TimelineElement {
translation 0 0 -15
name [ "1997" ]
title [ "VRML 2.0" "Community standard" ]
description "VRML 2.0 revised the VRML 1 architecture for better performance"
imageUrl [ "images/vrml97.gif" "https://www.web3d.org/x3d/content/examples/Basic/Web3dOutreach/images/vrml97.gif" ]
imagePixelHeight 85
imagePixelWidth 470
referenceUrl [ "http://new.web3d.org/files/specifications/14772/V2.0" ]
}
# 1997
DEF Slide3_VRML97 TimelineElement {
translation 0 0 -30
name [ "1997" ]
title [ "VRML 97" "International Standard" ]
description "VRML 2.0 became the VRML 97 ISO International Standard"
imageUrl [ "images/vrml97-0.gif" "https://www.web3d.org/x3d/content/examples/Basic/Web3dOutreach/images/vrml97-0.gif" ]
imagePixelHeight 85
imagePixelWidth 470
referenceUrl [ "http://new.web3d.org/files/specifications/14772/V2.0" ]
}
# 1999
DEF Slide4_MPEG-4 TimelineElement {
# only first available choice in url array will be launched
translation 0 0 -45
name [ "1999" ]
title [ "MPEG-4" "Interactive Profile" ]
description "MPEG-4 adopted an X3D subset for encoding 3D graphics"
hidden TRUE
imageUrl [ "images/mpeg_logo_bw.gif" "https://www.web3d.org/x3d/content/examples/Basic/Web3dOutreach/images/mpeg_logo_bw.gif" ]
referenceUrl [ "https://www.web3d.org/files/specifications/19775-1/V3.2/Part01/MPEG4interactive.html" "http://www.ece.cmu.edu/~ee899/project/jie_sem/index.html" ]
imagePixelHeight 74
imagePixelWidth 256
}
# 2001
DEF Slide5_X3dDesign TimelineElement {
translation 0 0 -60
name [ "2001" ]
title [ "X3D architecture design" "Extensible 3D Graphics" ]
description "X3D architecture extensions to VRML defined"
imageUrl [ "images/x3d2-s.gif" "https://www.web3d.org/x3d/content/examples/Basic/Web3dOutreach/images/x3d2-s.gif" ]
imagePixelHeight 97
imagePixelWidth 154
referenceUrl [ "https://www.web3d.org/about/faq" ]
}
# December 2004
DEF Slide6_X3dEncoding TimelineElement {
# only first available choice in url array will be launched
translation 0 0 -75
name [ "2004" "December" ]
title [ ".x3d Encoding" "XML Validation" ]
description "XML-X3D"
imageUrl [ "images/X3dSpecificationLogo.png" "https://www.web3d.org/x3d/content/examples/Basic/Web3dOutreach/images/X3dSpecificationLogo.png" ]
imagePixelHeight 88
imagePixelWidth 176
referenceUrl [ "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" ]
}
# 2005
DEF Slide7_Web3DConsortium TimelineElement {
# 1072 x 540
translation 0 0 -90
name [ "2005" "April" ]
title [ "Web3D Consortium" "Non-profit Membership" "Royalty-Free IPR Policy" ]
description "Web3D Intellectual Property Rights Policy keeps X3D royalty free for any use"
imageUrl [ "images/web3d-Consortium-3dlogo.jpg" "https://www.web3d.org/x3d/content/examples/Basic/Web3dOutreach/images/web3d-Consortium-3dlogo.jpg" ]
imagePixelHeight 108
imagePixelWidth 214
referenceUrl [ "https://www.web3d.org/realtime-3d/about/legal" ]
}
# November 2005
DEF Slide8_X3dStandard TimelineElement {
translation 0 0 -105
name [ "2005" "November" ]
title [ "X3D Graphics Standard" "version 3.0" "ISO approved" ]
description "X3D version 3.0"
imageUrl [ "images/X3dSpecificationLogo.png" "https://www.web3d.org/x3d/content/examples/Basic/Web3dOutreach/images/X3dSpecificationLogo.png" ]
imagePixelHeight 88
imagePixelWidth 176
referenceUrl [ "https://www.web3d.org/realtime-3d/specification/current" ]
}
# 2006
DEF Slide9_SceneAcessInterface TimelineElement {
translation 0 0 -120
name [ "2006" "April" ]
title [ "Scene Acess Interface:" "SAI for JavaScript Java" ]
description "SAI APIs provide consistent X3D code access using JavaScript or Java"
imageUrl [ "images/X3dAnywhere_150_138.gif" "https://www.web3d.org/x3d/content/examples/Basic/Web3dOutreach/images/X3dAnywhere_150_138.gif" ]
imagePixelHeight 138
imagePixelWidth 150
referenceUrl [ "https://www.web3d.org/files/specifications/19777-1/V3.0/Part1/X3D_ECMAScript.html" ]
}
# December 2006
DEF Slide10_X3dVersion3.1 TimelineElement {
# Web3dBanner.jpg 864 x 432, reduced 216 x 106
translation 0 0 -135
name [ "2006" "December" ]
title [ "X3D" "version 3.1" ]
description "Computer Aided Design (CAD) 3D Textures and Shaders support"
imageUrl [ "images/logo_iso.gif" "https://www.web3d.org/x3d/content/examples/Basic/Web3dOutreach/images/logo_iso.gif" ]
imagePixelHeight 58
imagePixelWidth 202
referenceUrl [ "https://www.web3d.org/files/specifications/19775-1/V3.1/index.html" ]
}
# 2007
DEF Slide11_X3dForWebAuthors TimelineElement {
translation 0 0 -150
name [ "2007" "March" ]
title [ "X3D for Web Authors" "Book slides examples" "Don Brutzman Leonard Daly" ]
description "X3D for Web Authors book slidesets example scenes and video Don Brutzman and Leonard Daly"
imageUrl [ "images/X3dForWebAuthorsBookCoverScan.400x498.jpg" "https://www.web3d.org/x3d/content/examples/Basic/Web3dOutreach/images/X3dForWebAuthorsBookCoverScan.400x498.jpg" ]
imagePixelHeight 125
imagePixelWidth 100
referenceUrl [ "https://x3dgraphics.com" ]
}
# December 2007
DEF Slide12_X3dCompressedBinaryEncoding TimelineElement {
translation 0 0 -165
name [ "2007" "December" ]
title [ "X3D Compressed" "Binary Encoding (CBE)" "for geometry and data" ]
description "X3D Compressed Binary Encoding provides geometric and XML compression"
imageUrl [ "images/CadTeapot.png" "https://www.web3d.org/x3d/content/examples/Basic/Web3dOutreach/images/CadTeapot.png" ]
imagePixelHeight 243
imagePixelWidth 427
referenceUrl [ "http://web3d.org/x3d/wiki/index.php/X3D_Binary_Compression_Capabilities_and_Plans" ]
}
# 2008
DEF Slide13_X3dEarth TimelineElement {
translation 0 0 -180
name [ "2008" "March" ]
title [ "X3D Earth" "Geospatial Component" ]
description "X3D Earth working group has built a Geospatial component for X3D"
imageUrl [ "images/x3d-earth.jpg" "https://www.web3d.org/x3d/content/examples/Basic/Web3dOutreach/images/x3d-earth.jpg" ]
imagePixelHeight 368
imagePixelWidth 368
referenceUrl [ "https://www.web3d.org/realtime-3d/working-groups/x3d-earth" ]
}
# June 2008
DEF Slide14_X3dVersion3.2 TimelineElement {
translation 0 0 -195
name [ "2008" "June" ]
title [ "X3D" "version 3.2" ]
description "X3D v3.2 is the current version of X3D in common use"
imageUrl [ "images/logo_iso.gif" "https://www.web3d.org/x3d/content/examples/Basic/Web3dOutreach/images/logo_iso.gif" ]
imagePixelHeight 58
imagePixelWidth 202
referenceUrl [ "https://www.web3d.org/files/specifications/19775-1/V3.2/Part01/Architecture.html" ]
}
# February 2009
DEF Slide15_DICOM TimelineElement {
translation 0 0 -210
name [ "2009" "February" ]
title [ "X3D and DICOM" "Medical standards" ]
description "X3D volume visualization for DICOM"
imageUrl [ "images/DicomLogo.png" "https://www.web3d.org/x3d/content/examples/Basic/Web3dOutreach/images/DicomLogo.png" ]
imagePixelHeight 105
imagePixelWidth 377
referenceUrl [ "http://medical.nema.org" ]
}
# March 2010
DEF Slide16_X3DOM TimelineElement {
translation 0 0 -225
name [ "2010" "March" ]
title [ "X3DOM" "development begins" ]
description "X3DOM maps X3D to HTML5"
imageUrl [ "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" ]
imagePixelHeight 370
imagePixelWidth 270
referenceUrl [ "http://www.x3dom.org" ]
}
# June 2011
DEF Slide17_X3dAugmentedReality TimelineElement {
translation 0 0 -240
name [ "2011" "June" ]
title [ "X3D AR" "Augmented Reality" ]
description "Augmented Reality working group efforts"
imageUrl [ "images/X3dArImage4.jpg" "https://www.web3d.org/x3d/content/examples/Basic/Web3dOutreach/images/X3dArImage4.jpg" ]
imagePixelHeight 120
imagePixelWidth 168
referenceUrl [ "https://www.web3d.org/realtime-3d/working-groups/augmented-reality-ar" ]
}
# November 2011
DEF Slide18_Declarative3D TimelineElement {
translation 0 0 -255
name [ "2011" "November" ]
title [ "Declarative 3D" "W3C Community Group" ]
description "W3C Community Group efforts for Declarative 3D begin"
imageUrl [ "images/W3cCommunityGroupLogo.png" "https://www.web3d.org/x3d/content/examples/Basic/Web3dOutreach/images/W3cCommunityGroupLogo.png" ]
imagePixelHeight 91
imagePixelWidth 209
referenceUrl [ "http://www.w3.org/community/declarative3d" ]
}
# April 2012
DEF Slide19_WWW2012 TimelineElement {
translation 0 0 -270
name [ "2012" "April" ]
title [ "WWW 2012 Workshop" "on Declarative 3D" ]
description "X3D v3.2 is draft international standard"
imageUrl [ "images/Www2012Logo.png" "https://www.web3d.org/x3d/content/examples/Basic/Web3dOutreach/images/Www2012Logo.png" ]
imagePixelHeight 170
imagePixelWidth 348
referenceUrl [ "http://events.declarative3d.org/Dec3D2012" ]
}
]
}
# Web3D 3D logo
DEF trans_web3dlogo Transform {
rotation 0 1 0 3.14
scale 0.7 0.7 0.7
translation 14 9.4 12
children [
Group {
children [
# TODO Animation to spin logo, user-controllable or in different place
Billboard {
axisOfRotation 0 0 0
children [
DEF Web3dLogoTransform Transform {
scale 0.6 0.6 0.6
children [
# TODO White box behind
Anchor {
parameter [ "target=Web3dTimelineReferenceFrame" ]
url [ "https://www.web3d.org" ]
children [
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" ]
}
]
}
DEF Web3dLogoSpinner OrientationInterpolator {
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 ]
}
DEF Web3dLogoClock TimeSensor {
cycleInterval 30
loop TRUE
}
]
ROUTE Web3dLogoSpinner.value_changed TO Web3dLogoTransform.set_rotation
ROUTE Web3dLogoClock.fraction_changed TO Web3dLogoSpinner.set_fraction
}
]
}
]
}
Transform {
translation 0 -6.2 0
children [
Billboard {
axisOfRotation 0 0 0
children [
TouchSensor {
description "Select PageUp/PageDown to see each milestone, click on images for detail links"
}
Shape {
geometry Text {
string [ "Web3D Progress Timeline" ]
fontStyle FontStyle {
justify [ "MIDDLE" "MIDDLE" ]
### style='BOLD'
}
}
appearance Appearance {
material Material {
ambientIntensity 0
diffuseColor 0.337 0.392 0.556
shininess 0
}
}
}
Shape {
geometry Box {
size 10 3 0.1
}
appearance Appearance {
material Material {
transparency 1.0
}
}
}
]
}
]
}
]
}
# start and end at same Viewpoint to enable a consistent Viewpoint tour by browser
USE OverviewViewpoint
### Error: Viewpoint is bindable, avoid copying as a USE node