<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 3.0//EN" "https://www.web3d.org/specifications/x3d-3.0.dtd">
<X3D profile='Immersive'  version='3.0 xmlns:xsd='http://www.w3.org/2001/XMLSchema-instance' xsd:noNamespaceSchemaLocation =' https://www.web3d.org/specifications/x3d-3.0.xsd ' >
<head>
<meta name='titlecontent=' TestViewpointJump.x3d '/>
<meta name='descriptioncontent='Conformance Test for Viewpoint: immediate switching (jump=true) and smooth animation (jump=false). Press PgUp/PgDn or touch geometry to change viewpoints.'/>
<meta name=' warning content=' CosmoPlayer 2.1.1 fails when "Animate transition between viewpoints"
option is turned off. First, try this test by opening the Control Panel, selecting "Animate transition between viewpoints". Use Page Down key to switch between viewpoints. You should smoothly transition between viewpoints. Next, turn the "Animate transition bewtween viewpoints"
option off. Use Page Down key to switch between viewpoints. You should see a jump to the objects labeled "jump=true"
and an animated transition to the objects labeled "jump=false".
'/>

<meta name='creatorcontent='Jeffrey Weekley and Don Brutzman'/>
<meta name='createdcontent='25 July 2001'/>
<meta name='modifiedcontent='20 October 2019'/>
<meta name='referencecontent=' https://www.web3d.org/technicalinfo/specifications/vrml97/part1/nodesRef.html#Viewpoint '/>
<meta name='subjectcontent='Viewpoint conformance test'/>
<meta name='identifiercontent=' https://www.web3d.org/x3d/content/examples/Basic/development/TestViewpointJump.x3d '/>
<meta name='generatorcontent='X3D-Edit 3.3, https://savage.nps.edu/X3D-Edit'/>
<meta name='licensecontent=' ../license.html'/>
</head>
<!-- -->
<Scene>
<WorldInfo title='TestViewpointJump.x3d'/>
<Viewpoint description='Initial viewpoint, default jump (jump true)position='0 0 7.5'/>
<!-- default value for field is jump='true' -->
<!-- ROUTE information for ConeView node:  [from ConeTouchSensor.isActive to set_bind ] -->
<Viewpoint DEF='ConeViewdescription='Red Cone (jump true)orientation='0 -1 0 1position='-4.6 1.4 1.9'/>

<!-- ROUTE information for SphereView node:  [from SphereTouchSensor.isActive to set_bind ] -->
<Viewpoint DEF='SphereViewdescription='Blue Sphere (jump false)jump='falseorientation='0 1 0 .7572position='4.7 -1.2 3.3'/>

<!-- ROUTE information for CubeView node:  [from BoxTouchSensor.isActive to set_bind ] -->
<Viewpoint DEF='CubeViewdescription='Magenta Cube (jump true)orientation='0 -1 0 1.0529position='-6.1 -1.5 2.7'/>

<!-- ROUTE information for CylinderView node:  [from CylinderTouchSensor.isActive to set_bind ] -->
<Viewpoint DEF='CylinderViewdescription='White Cylinder (jump false)jump='falseorientation='0 1 0 1position='5.6 1.4 2.8'/>

<Group DEF='Geometry'>
<Transform DEF='Boxtranslation='-1.5 -1.5 0'>
<Shape>
<Box size='1 1 1'/>
<Appearance>
<Material diffuseColor='1 0 1'/>
</Appearance>
</Shape>
<Transform translation='0 1 0'>
<Billboard>
<Shape>
<Text string='"Magenta Cube Viewpoint" "jump=true"'>
<FontStyle justify='"MIDDLE" "MIDDLE"size='0.25'/>
</Text>
<Appearance>
<Material diffuseColor='0.4 0.8 0.6shininess='0.8'/>
</Appearance>
</Shape>
</Billboard>
</Transform>
<!-- ROUTE information for BoxTouchSensor node:  [from isActive to CubeView.set_bind ] -->
<TouchSensor DEF='BoxTouchSensordescription='click to bind this viewpoint'/>

< ROUTE  fromNode=' BoxTouchSensor' fromField='isActive' toNode=' CubeView' toField='set_bind'/>
</Transform>
<Transform DEF='Spheretranslation='1.5 -1.5 0'>
<Shape>
<Sphere radius='0.5'/>
<Appearance>
<Material diffuseColor='0 0 1'/>
</Appearance>
</Shape>
<Transform translation='0 1 0'>
<Billboard>
<Shape>
<Text string='"Blue Sphere Viewpoint" "jump=false"'>
<FontStyle justify='"MIDDLE" "MIDDLE"size='0.25'/>
</Text>
<Appearance>
<Material diffuseColor='0.4 0.8 0.6shininess='0.8'/>
</Appearance>
</Shape>
</Billboard>
</Transform>
<!-- ROUTE information for SphereTouchSensor node:  [from isActive to SphereView.set_bind ] -->
<TouchSensor DEF='SphereTouchSensordescription='click for blue sphere viewpoint'/>

< ROUTE  fromNode=' SphereTouchSensor' fromField='isActive' toNode=' SphereView' toField='set_bind'/>
</Transform>
<Transform DEF='Conetranslation='-1.5 1.25 0'>
<Shape>
<Cone bottomRadius='0.5height='1'/>
<Appearance>
<Material diffuseColor='1 0 0'/>
</Appearance>
</Shape>
<Transform translation='0 1 0'>
<Billboard>
<Shape>
<Text string='"Red Cone Viewpoint" "jump=true"'>
<FontStyle justify='"MIDDLE" "MIDDLE"size='0.25'/>
</Text>
<Appearance>
<Material diffuseColor='0.4 0.8 0.6shininess='0.8'/>
</Appearance>
</Shape>
</Billboard>
</Transform>
<!-- ROUTE information for ConeTouchSensor node:  [from isActive to ConeView.set_bind ] -->
<TouchSensor DEF='ConeTouchSensordescription='click for red cone viewpoint'/>

< ROUTE  fromNode=' ConeTouchSensor' fromField='isActive' toNode=' ConeView' toField='set_bind'/>
</Transform>
<Transform DEF='Cylindertranslation='1.5 1.25 0'>
<Shape>
<Cylinder height='1radius='0.5'/>
<Appearance>
<Material diffuseColor='1 1 1'/>
</Appearance>
</Shape>
<Transform translation='0 1 0'>
<Billboard>
<Shape>
<Text string='"White Cylinder Viewpoint" "jump=false"'>
<FontStyle justify='"MIDDLE" "MIDDLE"size='0.25'/>
</Text>
<Appearance>
<Material diffuseColor='0.4 0.8 0.6shininess='0.8'/>
</Appearance>
</Shape>
</Billboard>
</Transform>
<!-- ROUTE information for CylinderTouchSensor node:  [from isActive to CylinderView.set_bind ] -->
<TouchSensor DEF='CylinderTouchSensordescription='click for white cylinder viewpoint'/>

< ROUTE  fromNode=' CylinderTouchSensor' fromField='isActive' toNode=' CylinderView' toField='set_bind'/>
</Transform>
</Group>
</Scene>
</X3D>
<!--

to top <!-- Event Graph ROUTE Table shows event connections -->
 
<!-- Index for DEF nodes: Box, BoxTouchSensor, Cone, ConeTouchSensor, ConeView, CubeView, Cylinder, CylinderTouchSensor, CylinderView, Geometry, Sphere, SphereTouchSensor, SphereView

Index for Viewpoint nodes: Viewpoint_1, ConeView, CubeView, CylinderView, SphereView
-->

Event Graph ROUTE Table entries with 4 ROUTE connections total, showing X3D event-model relationships for this scene.

Each row shows an event cascade that may occur during a single timestamp interval between frame renderings, as part of the X3D execution model.

BoxTouchSensor
TouchSensor
isActive
SFBool

ROUTE
event to
(1)
CubeView
Viewpoint
set_bind
SFBool


ConeTouchSensor
TouchSensor
isActive
SFBool

ROUTE
event to
(1)
ConeView
Viewpoint
set_bind
SFBool


CylinderTouchSensor
TouchSensor
isActive
SFBool

ROUTE
event to
(1)
CylinderView
Viewpoint
set_bind
SFBool


SphereTouchSensor
TouchSensor
isActive
SFBool

ROUTE
event to
(1)
SphereView
Viewpoint
set_bind
SFBool


-->

<!-- Online at
https://www.web3d.org/x3d/content/examples/Basic/development/TestViewpointJumpIndex.html -->
<!-- Version control at
https://sourceforge.net/p/x3d/code/HEAD/tree/www.web3d.org/x3d/content/examples/Basic/development/TestViewpointJump.x3d -->

<!-- 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)
-->

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