<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 3.3//EN" "https://www.web3d.org/specifications/x3d-3.3.dtd">
<X3D profile='Immersive' version='3.3 xmlns:xsd='http://www.w3.org/2001/XMLSchema-instance' xsd:noNamespaceSchemaLocation =' https://www.web3d.org/specifications/x3d-3.3.xsd '>
<head>
<meta name='titlecontent='Temple.x3d'/>
<meta name='descriptioncontent='Temple of the Glowing Orb: this world creates a glowing rotating orb when the pedestal is touched.'/>
<meta name='creatorcontent='David R. Nadeau, John L. Moreland, Michael M. Heck'/>
<meta name='translatorcontent='Don Brutzman'/>
<meta name='createdcontent='1 July 1998'/>
<meta name='translatedcontent='2 February 2014'/>
<meta name='modifiedcontent='20 October 2019'/>
<meta name='referencecontent='originals/temple.wrl'/>
<meta name='referencecontent=' http://www.siggraph.org/s98 '/>
<meta name='referencecontent=' http://www.siggraph.org/s98/conference/courses/18.html '/>
<meta name='referencecontent=' http://www.sdsc.edu/~moreland/courses/Siggraph98/vrml97/slides/mt0008.htm '/>
<meta name='referencecontent=' http://www.sdsc.edu/~moreland/courses/Siggraph98/vrml97/slides/mt0309.htm '/>
<meta name='referencecontent=' http://www.sdsc.edu/~moreland/courses/Siggraph98/vrml97/slides/mt0383.htm '/>
<meta name='referencecontent=' http://www.sdsc.edu/~moreland/courses/Siggraph98/vrml97/vrml97.htm '/>
<meta name='referencecontent=' https://www.web3d.org/x3d/content/examples/X3dResources.html '/>
<meta name='identifiercontent=' https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Siggraph98Course/Temple.x3d '/>
<meta name='generatorcontent='Vrml97ToX3dNist, http://ovrt.nist.gov/v2_x3d.html'/>
<meta name='generatorcontent='X3D-Edit, https://savage.nps.edu/X3D-Edit'/>
<meta name='licensecontent=' ../license.html'/>
</head>
<!-- -->
<Scene>
<!-- The orb animations include: -->
<!-- 1. An OrientationInterpolator rotating an inner emissive textured sphere. -->
<!-- 2. An OrientationInterpolator rotating an outer emissive textured semi-transparent sphere. -->
<!-- 3. An OrientationInterpolator rotating a pair of rings, angled at a 45 degree angle. -->
<!-- 4. An OrientationInterpolator rotating a second pair of rings, angled at a 45 degree angle. -->
<!-- A ScalarInterpolator with semi-random floating point keyValue that are routed in to a PointLight, thereby causing a flickering effect. That effect is turned on only after the pedestal has been touched. -->
<WorldInfo info='"Copyright (c) 1997, David R. Nadeau"title='Temple of the Orb'/>
<Viewpoint description='Entry viewposition='0.0 1.6 9.0'/>
<NavigationInfo headlight='falsespeed='2.0type='"WALK" "ANY"'/>
<Background skyAngle='1.371 1.571skyColor='0.0 0.1 0.2 0.0 0.1 0.3 0.0 0.0 0.0'/>
<!-- ROUTE information for OrbLight node:  [from OrbLightIntensity.value_changed to set_intensity ] -->
<PointLight DEF='OrbLightcolor='0.3 0.7 1.0intensity='0.0location='0.0 2.0 0.0'/>
<DirectionalLight color='1.0 0.5 0.0direction='1.0 0.1 -0.5'/>
<DirectionalLight color='1.0 0.5 0.0direction='1.0 0.1 -0.5'/>
<DirectionalLight color='1.0 0.0 0.0direction='-1.0 -0.4 -0.5'/>
<DirectionalLight color='1.0 0.0 0.0direction='-1.0 -0.4 -0.5'/>
<Transform translation='0.0 3.64 0.0'>
<Group DEF='VaultedCeiling'>
<Inline DEF='Vault'
  url=' "vault.x3d" "https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Siggraph98Course/vault.x3d" "vault.wrl" "https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Siggraph98Course/vault.wrl" '/>

<Transform rotation='0.0 1.0 0.0 1.57'>
<Inline USE='Vault'/>
</Transform>
<Transform rotation='0.0 1.0 0.0 3.14'>
<Inline USE='Vault'/>
</Transform>
<Transform rotation='0.0 1.0 0.0 -1.57'>
<Inline USE='Vault'/>
</Transform>
</Group>
<Transform translation='-2.0 0.0 0.0'>
<Group USE='VaultedCeiling'/>
</Transform>
<Transform translation='2.0 0.0 0.0'>
<Group USE='VaultedCeiling'/>
</Transform>
<Transform translation='0.0 0.0 -2.0'>
<Group USE='VaultedCeiling'/>
</Transform>
<Transform translation='0.0 0.0 2.0'>
<Group USE='VaultedCeiling'/>
</Transform>
</Transform>
<Transform translation='-3.0 0.0 -1.0'> </Transform>
<Transform translation='-1.0 0.0 -1.0'>
<Transform USE='Column'/>
</Transform>
<Transform translation='1.0 0.0 -1.0'>
<Transform USE='Column'/>
</Transform>
<Transform translation='3.0 0.0 -1.0'>
<Transform USE='Column'/>
</Transform>
<Transform translation='-3.0 0.0 1.0'>
<Transform USE='Column'/>
</Transform>
<Transform translation='-1.0 0.0 1.0'>
<Transform USE='Column'/>
</Transform>
<Transform translation='1.0 0.0 1.0'>
<Transform USE='Column'/>
</Transform>
<Transform translation='3.0 0.0 1.0'>
<Transform USE='Column'/>
</Transform>
<Transform translation='-1.0 0.0 -3.0'>
<Transform USE='Column'/>
</Transform>
<Transform translation='-1.0 0.0 3.0'>
<Transform USE='Column'/>
</Transform>
<Transform translation='1.0 0.0 -3.0'>
<Transform USE='Column'/>
</Transform>
<Transform translation='1.0 0.0 3.0'>
<Transform USE='Column'/>
</Transform>
<Transform translation='-11.5 0.0 -11.5'>
<Shape>
<Appearance>
<TextureTransform scale='16.0 16.0'/>
<Material ambientIntensity='0.5diffuseColor='1.0 1.0 1.0'/>
<ImageTexture
  url=' "stone2.jpg" "https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Siggraph98Course/stone2.jpg" '/>
</Appearance>
<ElevationGrid solid='falsexDimension='8xSpacing='3.0zDimension='8zSpacing='3.0height='0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0'/>
</Shape>
</Transform>
<Collision enabled='false'>
<!-- ROUTE information for OrbAll node:  [from OrbScaler.value_changed to set_scale ] -->
<Transform DEF='OrbAllscale='0.01 0.01 0.01translation='0.0 1.625 0.0'>
<Transform rotation='0.0 0.0 1.0 0.785'>
<!-- ROUTE information for RingSet1 node:  [from RingSet1Rotator.value_changed to set_rotation ] -->
<Transform DEF='RingSet1'>
<Transform DEF='Ring1rotation='0.0 0.0 1.0 0.35translation='0.0 0.0525 0.0'>
<Shape DEF='Ring'>
<Appearance>
<Material ambientIntensity='0.0diffuseColor='0.0 0.0 0.0emissiveColor='0.0 0.3 0.8shininess='1.0specularColor='0.0 0.1 0.1'/>
</Appearance>
<Cylinder bottom='falseheight='0.008radius='0.15top='false'/>
</Shape>
</Transform>
<Transform DEF='Ring2rotation='0.0 0.0 1.0 -0.35translation='0.0 -0.0525 0.0'>
<Shape USE='Ring'/>
</Transform>
</Transform>
</Transform>
<Transform rotation='0.0 0.0 1.0 -0.785'>
<!-- ROUTE information for RingSet2 node:  [from RingSet2Rotator.value_changed to set_rotation ] -->
<Transform DEF='RingSet2scale='0.9 0.9 0.9'>
<Transform USE='Ring1'/>
<Transform USE='Ring2'/>
</Transform>
</Transform>
<!-- ROUTE information for Orb node:  [from OrbRotator.value_changed to set_rotation ] -->
<Transform DEF='Orb'>
<Shape>
<Appearance>
<TextureTransform scale='2.0 2.0'/>
<ImageTexture
  url=' "brtsky.jpg" "https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Siggraph98Course/brtsky.jpg" '/>
</Appearance>
<Sphere radius='0.1'/>
</Shape>
</Transform>
</Transform>
</Collision>
<Transform translation='0.0 1.625 0.0'>
<!-- ROUTE information for OrbSound node:  [from OrbVolume.value_changed to set_intensity ] -->
<Sound DEF='OrbSoundintensity='0.0maxBack='15.0maxFront='15.0'>
<!-- ROUTE information for OrbClip node:  [from PedestalTouch.touchTime to set_startTime ] -->
<AudioClip DEF='OrbClipstartTime='-1.0'
  url=' "willow1.wav" "https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Siggraph98Course/willow1.wav" '/>
</Sound>
</Transform>
<Collision enabled='false'>
<Transform scale='3.25 3.25 3.25translation='0.0 0.015 0.0'>
<Shape>
<Appearance>
<Material DEF='GranitMaterialambientIntensity='0.0diffuseColor='0.8 0.8 1.0'/>
<ImageTexture DEF='GranitTexture'
  url=' "granit_g.jpg" "https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Siggraph98Course/granit_g.jpg" '/>
</Appearance>
<IndexedFaceSet coordIndex='0 1 4 -1 1 2 4 -1 2 3 4 -1 3 0 4 -1texCoordIndex='0 1 2 -1 0 1 2 -1 0 1 2 -1 0 1 2 -1'>
<TextureCoordinate point='0.0 0.0 1.0 0.0 0.5 1.0'/>
<Coordinate point='-0.06 0.0 0.06 0.06 0.0 0.06 0.06 0.0 -0.06 -0.06 0.0 -0.06 0.0 0.3 0.0'/>
</IndexedFaceSet>
</Shape>
<!-- ROUTE information for PedestalTouch node:  [from touchTime to OrbScaleTimer.set_startTime ] [from touchTime to OrbLightTimer.set_startTime ] [from touchTime to OrbClip.set_startTime ] [from touchTime to OrbTimer.set_startTime ] [from touchTime to RingSet1Timer.set_startTime ] [from touchTime to RingSet2Timer.set_startTime ] -->
<TouchSensor DEF='PedestalTouchdescription='Touch center pedestal to see and hear the orb'/>
</Transform>
<Transform scale='3.25 3.25 3.25translation='0.0 0.008 0.0'>
<Shape>
<Appearance>
<Material USE='GranitMaterial'/>
<ImageTexture USE='GranitTexture'/>
</Appearance>
<Box size='0.2 0.025 0.2'/>
</Shape>
</Transform>
</Collision>
<!-- ROUTE information for OrbTimer node:  [from PedestalTouch.touchTime to set_startTime ] [from fraction_changed to OrbRotator.set_fraction ] -->
<TimeSensor DEF='OrbTimercycleInterval='20.0loop='truestartTime='-1.0'/>
<!-- ROUTE information for OrbRotator node:  [from OrbTimer.fraction_changed to set_fraction ] [from value_changed to Orb.set_rotation ] -->
<OrientationInterpolator DEF='OrbRotatorkey='0.0 0.5 1.0keyValue='0.0 1.0 0.0 0.0 0.0 1.0 0.0 3.14 0.0 1.0 0.0 6.28'/>
<ROUTE fromNode='OrbTimerfromField='fraction_changedtoNode='OrbRotatortoField='set_fraction'/>
<ROUTE fromNode='OrbRotatorfromField='value_changedtoNode='OrbtoField='set_rotation'/>
<!-- ROUTE information for RingSet1Timer node:  [from PedestalTouch.touchTime to set_startTime ] [from fraction_changed to RingSet1Rotator.set_fraction ] -->
<TimeSensor DEF='RingSet1TimercycleInterval='2.0loop='truestartTime='-1.0'/>
<!-- ROUTE information for RingSet2Timer node:  [from PedestalTouch.touchTime to set_startTime ] [from fraction_changed to RingSet2Rotator.set_fraction ] -->
<TimeSensor DEF='RingSet2TimercycleInterval='2.2loop='truestartTime='-1.0'/>
<!-- ROUTE information for RingSet1Rotator node:  [from RingSet1Timer.fraction_changed to set_fraction ] [from value_changed to RingSet1.set_rotation ] -->
<OrientationInterpolator DEF='RingSet1Rotatorkey='0.0 0.5 1.0keyValue='0.0 1.0 0.0 0.0 0.0 1.0 0.0 -3.14 0.0 1.0 0.0 -6.28'/>
<ROUTE fromNode='RingSet1TimerfromField='fraction_changedtoNode='RingSet1RotatortoField='set_fraction'/>
<ROUTE fromNode='RingSet1RotatorfromField='value_changedtoNode='RingSet1toField='set_rotation'/>
<!-- ROUTE information for RingSet2Rotator node:  [from RingSet2Timer.fraction_changed to set_fraction ] [from value_changed to RingSet2.set_rotation ] -->
<OrientationInterpolator DEF='RingSet2Rotatorkey='0.0 0.5 1.0keyValue='0.0 1.0 0.0 0.0 0.0 1.0 0.0 3.14 0.0 1.0 0.0 6.28'/>
<ROUTE fromNode='RingSet2TimerfromField='fraction_changedtoNode='RingSet2RotatortoField='set_fraction'/>
<ROUTE fromNode='RingSet2RotatorfromField='value_changedtoNode='RingSet2toField='set_rotation'/>
<!-- ROUTE information for OrbLightTimer node:  [from PedestalTouch.touchTime to set_startTime ] [from fraction_changed to OrbLightIntensity.set_fraction ] -->
<TimeSensor DEF='OrbLightTimercycleInterval='12.0startTime='-1.0'/>
<!-- ROUTE information for OrbLightIntensity node:  [from OrbLightTimer.fraction_changed to set_fraction ] [from value_changed to OrbLight.set_intensity ] -->
<ScalarInterpolator DEF='OrbLightIntensitykey='0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0keyValue='0.0 0.5 0.7 1.0 0.9 0.8 1.0 0.9 0.9 0.5 0.0'/>
<ROUTE fromNode='OrbLightTimerfromField='fraction_changedtoNode='OrbLightIntensitytoField='set_fraction'/>
<ROUTE fromNode='OrbLightIntensityfromField='value_changedtoNode='OrbLighttoField='set_intensity'/>
<!-- ROUTE information for OrbScaleTimer node:  [from PedestalTouch.touchTime to set_startTime ] [from fraction_changed to OrbScaler.set_fraction ] [from fraction_changed to OrbVolume.set_fraction ] -->
<TimeSensor DEF='OrbScaleTimercycleInterval='12.0startTime='-1.0'/>
<!-- ROUTE information for OrbScaler node:  [from OrbScaleTimer.fraction_changed to set_fraction ] [from value_changed to OrbAll.set_scale ] -->
<PositionInterpolator DEF='OrbScalerkey='0.0 0.3 0.9 1.0keyValue='0.001 0.001 0.001 3.25 3.25 3.25 3.25 3.25 3.25 0.001 0.001 0.001'/>
<!-- ROUTE information for OrbVolume node:  [from OrbScaleTimer.fraction_changed to set_fraction ] [from value_changed to OrbSound.set_intensity ] -->
<ScalarInterpolator DEF='OrbVolumekey='0.0 0.3 0.9 1.0keyValue='0.0 1.0 1.0 0.0'/>
<ROUTE fromNode='PedestalTouchfromField='touchTimetoNode='OrbScaleTimertoField='set_startTime'/>
<ROUTE fromNode='PedestalTouchfromField='touchTimetoNode='OrbLightTimertoField='set_startTime'/>
<ROUTE fromNode='PedestalTouchfromField='touchTimetoNode='OrbCliptoField='set_startTime'/>
<ROUTE fromNode='PedestalTouchfromField='touchTimetoNode='OrbTimertoField='set_startTime'/>
<ROUTE fromNode='PedestalTouchfromField='touchTimetoNode='RingSet1TimertoField='set_startTime'/>
<ROUTE fromNode='PedestalTouchfromField='touchTimetoNode='RingSet2TimertoField='set_startTime'/>
<ROUTE fromNode='OrbScaleTimerfromField='fraction_changedtoNode='OrbScalertoField='set_fraction'/>
<ROUTE fromNode='OrbScaleTimerfromField='fraction_changedtoNode='OrbVolumetoField='set_fraction'/>
<ROUTE fromNode='OrbScalerfromField='value_changedtoNode='OrbAlltoField='set_scale'/>
<ROUTE fromNode='OrbVolumefromField='value_changedtoNode='OrbSoundtoField='set_intensity'/>
</Scene>
</X3D>
<!--

Index for DEF nodes : Column, GranitMaterial, GranitTexture, Orb, OrbAll, OrbClip, OrbLight, OrbLightIntensity, OrbLightTimer, OrbRotator, OrbScaler, OrbScaleTimer, OrbSound, OrbTimer, OrbVolume, PedestalTouch, Ring, Ring1, Ring2, RingSet1, RingSet1Rotator, RingSet1Timer, RingSet2, RingSet2Rotator, RingSet2Timer, Vault, VaultedCeiling

Index for Viewpoint image : Viewpoint_1
-->

<!-- Color key: <X3dNode DEF='idName' field='value'/> matches <XmlElement DEF='idName' attribute='value'/>
(Light blue background: behavior node) (Grey background: inserted documentation) (Magenta background: X3D Extensibility)
-->

<!-- For additional help information about X3D scenes, please see X3D Tooltips, X3D Resources and X3D Scene Authoring Hints. -->