<?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=' CameraExamples.x3d '/>
<meta name='descriptioncontent='Camera, CameraShot and CameraMove examples that demonstrate storyboard capabilities and precise camera operation. This is a developmental effort for potential X3D Specification improvement.'/>
<meta name='documentationcontent='Two demos are found in the scene, click the "red text" on left or right to start. (a) SimpleShotsTest shows Zoom in/out, Pan left/right, Boom up/down, Tilt left/right, with each is defined by a CameraShot collecting a series of CameraMovements. (b) AimPointTest gradually slews the camera view to look at the sliding cube, then follows it around before returning to original viewpoint.'/>
<meta name='creatorcontent='Don Brutzman and Jeff Weekley'/>
<meta name='createdcontent='18 June 2009'/>
<meta name='modifiedcontent='29 January 2024'/>
<meta name=' TODO content=' Schematron rules, backed up by initialize() checks '/>
<meta name='referencecontent=' BeyondViewpointCameraNodesWeb3D2009.pdf '/>
<meta name='MovingImagecontent=' CameraExamplesDemo.mp4 '/>
<meta name='referencecontent=' https://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/Part01/components/navigation.html '/>
<meta name='subjectcontent='Camera nodes for Viewpoint navigation control'/>
<meta name='referencecontent=' CameraPrototypes.x3d '/>
<meta name='referencecontent=' CameraExamplesConsoleLog.txt '/>
<meta name='referencecontent=' http://sourceforge.net/p/x3d/code/HEAD/tree/www.web3d.org/x3d/content/examples/Basic/development/CameraExamples.avi '/>
<meta name='referencecontent=' https://www.web3d.org/x3d/content/examples/Basic/UniversalMediaMaterials/gridBack.x3d '/>
<meta name='identifiercontent=' https://www.web3d.org/x3d/content/examples/Basic/development/CameraExamples.x3d '/>
<meta name='referencecontent=' http://sourceforge.net/p/x3d/code/HEAD/tree/www.web3d.org/x3d/content/examples/Basic/development/CameraExamples.x3d '/>
<meta name='generatorcontent='X3D-Edit 4.0, https://savage.nps.edu/X3D-Edit'/>
<meta name='licensecontent=' ../license.html'/>
</head>
<!-- -->
<Scene>
<!-- =============== Camera ============== -->
<WorldInfo title='CameraExamples.x3d'/>
<ExternProtoDeclare name='Cameraappinfo='Camera node provides direct control of scene view to enable cinematic camera animation shot by shot and move by move along with still digital-photography settings for offline rendering of camera images'
  url=' "CameraPrototypes.x3d#Camera" "https://www.web3d.org/x3d/content/examples/Basic/development/CameraPrototypes.x3d#Camera" "CameraPrototypes.wrl#Camera" "https://www.web3d.org/x3d/content/examples/Basic/development/CameraPrototypes.wrl#Camera" ' >
<field name='descriptiontype='SFStringaccessType='inputOutput'
 appinfo='Text description to be displayed for this Camera' />

<field name='positiontype='SFVec3faccessType='inputOutput'
 appinfo='Camera position in local transformation frame, which is default prior to first CameraShot initialPosition getting activated' />

<field name='orientationtype='SFRotationaccessType='inputOutput'
 appinfo='Camera rotation in local transformation frame, which is default prior to first CameraShot initialPosition getting activated' />

<field name='fieldOfViewtype='SFFloataccessType='inputOutput'
 appinfo='pi/4' />

<field name='set_fractiontype='SFFloataccessType='inputOnly'
 appinfo='input fraction drives interpolators' />

<field name='set_bindtype='SFBoolaccessType='inputOnly'
 appinfo='input event binds or unbinds this Camera' />

<field name='bindTimetype='SFTimeaccessType='outputOnly'
 appinfo='output event indicates when this Camera is bound' />

<field name='isBoundtype='SFBoolaccessType='outputOnly'
 appinfo='output event indicates whether this Camera is bound or unbound' />

<field name='nearClipPlanetype='SFFloataccessType='inputOutput'
 appinfo='Vector distance to near clipping plane corresponds to NavigationInfo.avatarSize[0]' />

<field name='farClipPlanetype='SFFloataccessType='inputOutput'
 appinfo='Vector distance to far clipping plane corresponds to NavigationInfo.visibilityLimit' />

<field name='shotstype='MFNodeaccessType='inputOutput'
 appinfo='Array of CameraShot nodes which in turn contain CameraMovement nodes' />

<field name='headlighttype='SFBoolaccessType='inputOutput'
 appinfo='Whether camera headlight is on or off' />

<field name='headlightColortype='SFColoraccessType='inputOutput'
 appinfo='Camera headlight color' />

<field name='headlightIntensitytype='SFFloataccessType='inputOutput'
 appinfo='Camera headlight intensity' />

<field name='filterColortype='SFColoraccessType='inputOutput'
 appinfo='Camera filter color that modifies virtual lens capture' />

<field name='filterTransparencytype='SFFloataccessType='inputOutput'
 appinfo='Camera filter transparency that modifies virtual lens capture' />

<field name='upVectortype='SFVec3faccessType='inputOutput'
 appinfo='upVector changes modify camera orientation (and possibly vice versa)' />

<field name='fStoptype='SFFloataccessType='inputOutput'
 appinfo='Focal length divided effective aperture diameter indicating width of focal plane' />

<field name='focusDistancetype='SFFloataccessType='inputOutput'
 appinfo='Distance to focal plane of sharpest focus' />

<field name='isActivetype='SFBoolaccessType='outputOnly'
 appinfo='Mark start/stop with true/false output respectively useful to trigger external animations' />

<field name='totalDurationtype='SFTimeaccessType='outputOnly'
 appinfo='Total duration of contained enabled CameraShot (and thus CameraMovement) move durations' />

<field name='offlineRendertype='SFNodeaccessType='inputOutput'
 appinfo='OfflineRender node' />

<field name='traceEnabledtype='SFBoolaccessType='initializeOnly'
 appinfo='enable console output to trace script computations and prototype progress' />

<!-- Viewpoint-related fields, NavigationInfo-related fields and Camera-unique fields -->
</ExternProtoDeclare>
<!-- =============== CameraShot ============== -->
<ExternProtoDeclare name='CameraShotappinfo='CameraShot collects a specific set of CameraMovement animations that make up an individual shot'
  url=' "CameraPrototypes.x3d#CameraShot" "https://www.web3d.org/x3d/content/examples/Basic/development/CameraPrototypes.x3d#CameraShot" "CameraPrototypes.wrl#CameraShot" "https://www.web3d.org/x3d/content/examples/Basic/development/CameraPrototypes.wrl#CameraShot" ' >
<field name='descriptiontype='SFStringaccessType='inputOutput'
 appinfo='Text description to be displayed for this CameraShot' />

<field name='enabledtype='SFBoolaccessType='inputOutput'
 appinfo='Whether this CameraShot can be activated' />

<field name='movestype='MFNodeaccessType='inputOutput'
 appinfo='Set of CameraMovement nodes' >
<!-- initializing CameraMovement nodes are inserted here by scene author using ProtoInstance -->
</field>
<field name='initialPositiontype='SFVec3faccessType='inputOutput'
 appinfo='Setup to reinitialize camera position for this shot' />

<field name='initialOrientationtype='SFRotationaccessType='inputOutput'
 appinfo='Setup to reinitialize camera rotation for this shot' />

<field name='initialAimPointtype='SFVec3faccessType='inputOutput'
 appinfo='Setup to reinitialize aimpoint (relative location for camera direction) for this shot' />

<field name='initialFieldOfViewtype='SFFloataccessType='inputOutput'
 appinfo='pi/4' />

<field name='initialFStoptype='SFFloataccessType='inputOutput'
 appinfo='Focal length divided effective aperture diameter indicating width of focal plane' />

<field name='initialFocusDistancetype='SFFloataccessType='inputOutput'
 appinfo='Distance to focal plane of sharpest focus' />

<field name='shotDurationtype='SFTimeaccessType='outputOnly'
 appinfo='Subtotal duration of contained CameraMovement move durations' />

<field name='isActivetype='SFBoolaccessType='outputOnly'
 appinfo='Mark start/stop with true/false output respectively useful to trigger external animations' />

<field name='traceEnabledtype='SFBoolaccessType='initializeOnly'
 appinfo='enable console output to trace script computations and prototype progress' />
</ExternProtoDeclare>
<!-- =============== CameraMovement ============== -->
<ExternProtoDeclare name='CameraMovementappinfo='CameraMovement defines a single camera movement animation'
  url=' "CameraPrototypes.x3d#CameraMovement" "https://www.web3d.org/x3d/content/examples/Basic/development/CameraPrototypes.x3d#CameraMovement" "CameraPrototypes.wrl#CameraMovement" "https://www.web3d.org/x3d/content/examples/Basic/development/CameraPrototypes.wrl#CameraMovement" ' >
<field name='descriptiontype='SFStringaccessType='inputOutput'
 appinfo='Text description to be displayed for this CameraMovement' />

<field name='enabledtype='SFBoolaccessType='inputOutput'
 appinfo='Whether this CameraMovement can be activated' />

<field name='durationtype='SFFloataccessType='inputOutput'
 appinfo='Duration in seconds for this move' />

<field name='goalPositiontype='SFVec3faccessType='inputOutput'
 appinfo='Goal camera position for this move' />

<field name='goalOrientationtype='SFRotationaccessType='inputOutput'
 appinfo='Goal camera rotation for this move' />

<field name='trackingtype='SFBoolaccessType='inputOutput'
 appinfo='Whether or not camera direction is tracking towards the aimPoint' />

<field name='goalAimPointtype='SFVec3faccessType='inputOutput'
 appinfo='Goal aimPoint for this move, ignored if tracking=false' />

<field name='goalFieldOfViewtype='SFFloataccessType='inputOutput'
 appinfo='Goal fieldOfView for this move' />

<field name='goalFStoptype='SFFloataccessType='inputOutput'
 appinfo='Focal length divided effective aperture diameter indicating width of focal plane' />

<field name='goalFocusDistancetype='SFFloataccessType='inputOutput'
 appinfo='Distance to focal plane of sharpest focus' />

<field name='isActivetype='SFBoolaccessType='outputOnly'
 appinfo='Mark start/stop with true/false output respectively useful to trigger external animations' />

<field name='traceEnabledtype='SFBoolaccessType='initializeOnly'
 appinfo='enable console output to trace script computations and prototype progress' />
</ExternProtoDeclare>
<!-- =============== OfflineRender ============== -->
<ExternProtoDeclare name='OfflineRenderappinfo='OfflineRender defines a parameters for offline rendering of Camera animation output to a movie file (or possibly a still shot)'
  url=' "CameraPrototypes.x3d#OfflineRender" "https://www.web3d.org/x3d/content/examples/Basic/development/CameraPrototypes.x3d#OfflineRender" "CameraPrototypes.wrl#OfflineRender" "https://www.web3d.org/x3d/content/examples/Basic/development/CameraPrototypes.wrl#OfflineRender" ' >
<field name='descriptiontype='SFStringaccessType='inputOutput'
 appinfo='Text description to be displayed for this OfflineRender' />

<field name='enabledtype='SFBoolaccessType='inputOutput'
 appinfo='Whether this OfflineRender can be activated' />

<field name='frameRatetype='SFFloataccessType='inputOutput'
 appinfo='Frames per second recorded for this rendering' />

<field name='frameSizetype='SFVec2faccessType='inputOutput'
 appinfo='Size of frame in number of pixels width and height' />

<field name='pixelAspectRatiotype='SFFloataccessType='inputOutput'
 appinfo='Relative dimensions of pixel height/width typically 1.33 or 1' />

<field name='set_startTimetype='SFTimeaccessType='inputOnly'
 appinfo='Begin render operation' />

<field name='progresstype='SFFloataccessType='outputOnly'
 appinfo='Progress performing render operation (0..1)' />

<field name='renderCompleteTimetype='SFTimeaccessType='outputOnly'
 appinfo='Render operation complete' />

<field name='movieFormattype='MFStringaccessType='initializeOnly'
 appinfo='Format of rendered output movie (mpeg mp4 etc.), use first supported format' />

<field name='imageFormattype='MFStringaccessType='initializeOnly'
 appinfo='Format of rendered output images (png jpeg gif tiff etc.) use first supported format' />

<field name='traceEnabledtype='SFBoolaccessType='initializeOnly'
 appinfo='enable console output to trace script computations and prototype progress' />

<!-- TODO non-photorealistic rendering (NPR) parameters -->
</ExternProtoDeclare>
<!-- =============== Lights, camera, action! ============== -->
<DirectionalLight direction='0 -1 0global='trueintensity='0.8'/>
<NavigationInfo type='"EXAMINE" "FLY" "ANY"'/>
<Viewpoint description='Camera test scene entry viewposition='0 2 12'/>
<Viewpoint description='Camera test scene from aboveorientation='1 0 0 -1.57079position='0 150 0'/>
<!-- Keep prototype instances in same file while developing, then move later -->
<!-- We will create examples matching those in the paper -->
<!-- =============== Camera.SimpleShotsTest ============== -->
<fieldValue name='descriptionvalue='SimpleShotsTest for camera Zoom Dolly Pan Boom and Tilt'/>
<fieldValue name='headlightvalue='true'/>
<fieldValue name='positionvalue='-4 4 10'/>
<fieldValue name='shots'>
<ProtoInstance name='CameraShotDEF='Zoom'>
<fieldValue name='descriptionvalue='Simple shot of Camera Zoom'/>
<fieldValue name='initialPositionvalue='-50 1 -10'/>
<fieldValue name='initialOrientationvalue='0 1 0 0'/>
<fieldValue name='moves'>
<ProtoInstance name='CameraMovement'>
<fieldValue name='descriptionvalue='Camera Zoom In'/>
<fieldValue name='durationvalue='3'/>
<fieldValue name='goalPositionvalue='-50 1 -15'/>
<fieldValue name='goalOrientationvalue='0 1 0 0'/>
</ProtoInstance>
<ProtoInstance name='CameraMovement'>
<fieldValue name='descriptionvalue='Camera Zoom Out'/>
<fieldValue name='durationvalue='3'/>
<fieldValue name='goalPositionvalue='-50 1 -10'/>
<fieldValue name='goalOrientationvalue='0 1 0 0'/>
</ProtoInstance>
<ProtoInstance name='CameraMovement'>
<fieldValue name='descriptionvalue='Camera Pause'/>
<fieldValue name='durationvalue='1'/>
<fieldValue name='goalPositionvalue='-50 1 -10'/>
<fieldValue name='goalOrientationvalue='0 1 0 0'/>
</ProtoInstance>
</fieldValue>
</ProtoInstance>
<ProtoInstance name='CameraShotDEF='Dolly'>
<fieldValue name='descriptionvalue='Simple shot of Camera Dolly'/>
<fieldValue name='initialPositionvalue='-40 1 -10'/>
<fieldValue name='initialOrientationvalue='0 1 0 0'/>
<fieldValue name='moves'>
<ProtoInstance name='CameraMovementDEF='DollyMove1'>
<fieldValue name='descriptionvalue='Camera Dolly from Right to Left'/>
<fieldValue name='durationvalue='3'/>
<fieldValue name='goalPositionvalue='-45 1 -10'/>
<fieldValue name='goalOrientationvalue='0 1 0 0'/>
</ProtoInstance>
<ProtoInstance name='CameraMovement'>
<fieldValue name='descriptionvalue='Camera Dolly from Left to Right'/>
<fieldValue name='durationvalue='3'/>
<fieldValue name='goalPositionvalue='-40 1 -10'/>
<fieldValue name='goalOrientationvalue='0 1 0 0'/>
</ProtoInstance>
<ProtoInstance name='CameraMovement'>
<fieldValue name='descriptionvalue='Camera Pause'/>
<fieldValue name='durationvalue='1'/>
<fieldValue name='goalPositionvalue='-40 1 -10'/>
<fieldValue name='goalOrientationvalue='0 1 0 0'/>
</ProtoInstance>
</fieldValue>
</ProtoInstance>
<ProtoInstance name='CameraShotDEF='Pan'>
<fieldValue name='descriptionvalue='Simple shot of Camera Pan left right and back to center'/>
<fieldValue name='initialPositionvalue='-30 1 -10'/>
<fieldValue name='initialOrientationvalue='0 1 0 0'/>
<fieldValue name='moves'>
<ProtoInstance name='CameraMovementDEF='PanLeft'>
<fieldValue name='descriptionvalue='Pan Left'/>
<fieldValue name='durationvalue='2'/>
<fieldValue name='goalPositionvalue='-30 1 -10'/>
<fieldValue name='goalOrientationvalue='0 1 0 0.4'/>
</ProtoInstance>
<ProtoInstance name='CameraMovementDEF='PanRight'>
<fieldValue name='descriptionvalue='Pan Right'/>
<fieldValue name='durationvalue='3'/>
<fieldValue name='goalPositionvalue='-30 1 -10'/>
<fieldValue name='goalOrientationvalue='0 1 0 -0.4'/>
</ProtoInstance>
<ProtoInstance name='CameraMovement'>
<fieldValue name='descriptionvalue='Camera Pan back to Center'/>
<fieldValue name='durationvalue='2'/>
<fieldValue name='goalPositionvalue='-30 1 -10'/>
<fieldValue name='goalOrientationvalue='0 1 0 0'/>
</ProtoInstance>
<ProtoInstance name='CameraMovement'>
<fieldValue name='descriptionvalue='Camera Pause'/>
<fieldValue name='durationvalue='2'/>
<fieldValue name='goalPositionvalue='-30 1 -10'/>
<fieldValue name='goalOrientationvalue='0 1 0 0'/>
</ProtoInstance>
</fieldValue>
</ProtoInstance>
<ProtoInstance name='CameraShotDEF='CameraBoom'>
<fieldValue name='descriptionvalue='Camera Boom'/>
<fieldValue name='initialPositionvalue='-20 1 -10'/>
<fieldValue name='initialOrientationvalue='0 1 0 0'/>
<fieldValue name='moves'>
<ProtoInstance name='CameraMovementDEF='CameraBoomUp'>
<fieldValue name='descriptionvalue='Camera Boom Up'/>
<fieldValue name='durationvalue='3'/>
<fieldValue name='goalPositionvalue='-20 5 -10'/>
<fieldValue name='goalOrientationvalue='0 1 0 0'/>
</ProtoInstance>
<ProtoInstance name='CameraMovementDEF='BoomDown'>
<fieldValue name='descriptionvalue='Camera Boom Down'/>
<fieldValue name='durationvalue='3'/>
<fieldValue name='goalPositionvalue='-20 1 -10'/>
<fieldValue name='goalOrientationvalue='0 1 0 0'/>
</ProtoInstance>
<ProtoInstance name='CameraMovementDEF='BoomPause'>
<fieldValue name='descriptionvalue='Camera Pause'/>
<fieldValue name='durationvalue='2'/>
<fieldValue name='goalPositionvalue='-20 1 -10'/>
<fieldValue name='goalOrientationvalue='0 1 0 0'/>
</ProtoInstance>
</fieldValue>
</ProtoInstance>
<ProtoInstance name='CameraShotDEF='CameraTilt'>
<fieldValue name='descriptionvalue='Camera Tilt'/>
<fieldValue name='initialPositionvalue='-10 1 -10'/>
<fieldValue name='initialOrientationvalue='0 0 1 0'/>
<fieldValue name='traceEnabledvalue='true'/>
<fieldValue name='moves'>
<ProtoInstance name='CameraMovement'>
<fieldValue name='descriptionvalue='Camera Tilt Pause'/>
<fieldValue name='durationvalue='1'/>
<fieldValue name='goalPositionvalue='-10 1 -10'/>
<fieldValue name='goalOrientationvalue='0 0 1 0'/>
</ProtoInstance>
<ProtoInstance name='CameraMovementDEF='TiltDown'>
<fieldValue name='descriptionvalue='Camera Tilt Left'/>
<fieldValue name='durationvalue='3'/>
<fieldValue name='goalPositionvalue='-10 1 -10'/>
<fieldValue name='goalOrientationvalue='0 0 1 0.785'/>
</ProtoInstance>
<ProtoInstance name='CameraMovementDEF='TiltPause'>
<fieldValue name='descriptionvalue='Camera Tilt Pause'/>
<fieldValue name='durationvalue='1'/>
<fieldValue name='goalPositionvalue='-10 1 -10'/>
<fieldValue name='goalOrientationvalue='0 0 1 0.785'/>
</ProtoInstance>
<ProtoInstance name='CameraMovement'>
<fieldValue name='descriptionvalue='Camera Tilt Right'/>
<fieldValue name='durationvalue='3'/>
<fieldValue name='goalPositionvalue='-10 1 -10'/>
<fieldValue name='goalOrientationvalue='0 0 1 -0.785'/>
</ProtoInstance>
<ProtoInstance name='CameraMovement'>
<fieldValue name='descriptionvalue='Camera Tilt Pause'/>
<fieldValue name='durationvalue='1'/>
<fieldValue name='goalPositionvalue='-10 1 -10'/>
<fieldValue name='goalOrientationvalue='0 0 1 -0.785'/>
</ProtoInstance>
<ProtoInstance name='CameraMovementDEF='TiltReset'>
<fieldValue name='descriptionvalue='Camera Tilt Reset'/>
<fieldValue name='durationvalue='1'/>
<fieldValue name='goalPositionvalue='-10 1 -10'/>
<fieldValue name='goalOrientationvalue='0 0 1 0'/>
</ProtoInstance>
<ProtoInstance name='CameraMovementDEF='TiltUp'>
<fieldValue name='descriptionvalue='Return to home'/>
<fieldValue name='durationvalue='2'/>
<fieldValue name='goalPositionvalue='0 2 12'/>
<fieldValue name='goalOrientationvalue='0 0 1 0'/>
</ProtoInstance>
</fieldValue>
</ProtoInstance>
</fieldValue>
</ProtoInstance>
<Group DEF='AnimationGroup.SimpleShots'>

<!-- initialize clock to match totalDuration of combined Shot Moves -->
< ROUTE  fromNode=' Camera.SimpleShotsTest' fromField='totalDuration' toNode=' CameraTimer.SimpleShots' toField='cycleInterval'/>
<!-- TimeSensor animates the CameraClock since that maintains the computed PositionInterpolator and OrientationInterpolator -->
< ROUTE  fromNode=' CameraTimer.SimpleShots' fromField='fraction_changed' toNode=' Camera.SimpleShotsTest' toField='set_fraction'/>
<Transform DEF='Trigger.SimpleShotstranslation='-4 4 0'>
<!-- ROUTE information for TextTouchActive.SimpleShotsFilter node:  [from TextTouch.SimpleShots.isActive to set_boolean ] [from inputTrue to Camera.SimpleShotsTest.set_bind ] -->
<BooleanFilter DEF='TextTouchActive.SimpleShotsFilter'/>

<!-- ROUTE information for TextTouch.SimpleShots node:  [from isActive to TextTouchActive.SimpleShotsFilter.set_boolean ] [from touchTime to CameraTimer.SimpleShots.startTime ] -->
<TouchSensor DEF='TextTouch.SimpleShotsdescription='touch to animate Camera SimpleShotsTest'/>

< ROUTE  fromNode=' TextTouchActive.SimpleShotsFilter' fromField='inputTrue' toNode=' Camera.SimpleShotsTest' toField='set_bind'/>
< ROUTE  fromNode=' TextTouch.SimpleShots' fromField='isActive' toNode=' TextTouchActive.SimpleShotsFilter' toField='set_boolean'/>
< ROUTE  fromNode=' TextTouch.SimpleShots' fromField='touchTime' toNode=' CameraTimer.SimpleShots' toField='startTime'/>
<!-- Selectable Text design pattern has transparent Box and TouchSensor description as a tooltip -->
<Shape>
<Text string='"Click to animate" "SimpleShotsTest"'>
<FontStyle justify='"MIDDLE" "MIDDLE"'/>
</Text>
<Appearance>
<Material DEF='ArtDeco5ambientIntensity='0.24diffuseColor='0.945455 0.318988 0.321717shininess='0.01specularColor='0.072727 0.021705 0.010732'>
<!-- Universal Media Library: ArtDeco 5 -->
</Material>
</Appearance>
</Shape>
<!-- Simplify intersection test for user selecting text -->
<Shape DEF='TransparentBox'>
<Appearance>
<Material transparency='1'/>
</Appearance>
<Box size='6 2 0.0001'/>
</Shape>
<TouchSensor description='Click to animate SimpleShotsTest'/>
</Transform>
</Group>
<Group DEF='SimpleShotsTargets'>
<Transform DEF='TargetBoxZoomtranslation='-50 1 -20'>
<Shape>
<Box/>
<Appearance> </Appearance>
</Shape>
<Transform translation='0 2 0'>
<Shape>
<Text string='"Zoom in, out"'>
<FontStyle justify='"MIDDLE" "MIDDLE"'/>
</Text>
<Appearance>
<Material/>
</Appearance>
</Shape>
</Transform>
</Transform>
<Transform DEF='TargetBoxDollytranslation='-40 1 -20'>
<Shape>
<Box/>
<Appearance> </Appearance>
</Shape>
<Transform translation='0 2 0'>
<Shape>
<Text string='"Dolly left, right"'>
<FontStyle justify='"MIDDLE" "MIDDLE"'/>
</Text>
<Appearance>
<Material/>
</Appearance>
</Shape>
</Transform>
</Transform>
<Transform DEF='TargetBoxPantranslation='-30 1 -20'>
<Shape>
<Box/>
<Appearance> </Appearance>
</Shape>
<Transform translation='0 2 0'>
<Shape>
<Text string='"Pan left, right"'>
<FontStyle justify='"MIDDLE" "MIDDLE"'/>
</Text>
<Appearance>
<Material/>
</Appearance>
</Shape>
</Transform>
</Transform>
<Transform DEF='TargetBoxBoomtranslation='-20 1 -20'>
<Shape>
<Box/>
<Appearance> </Appearance>
</Shape>
<Transform translation='0 2 0'>
<Shape>
<Text string='"Boom up, down"'>
<FontStyle justify='"MIDDLE" "MIDDLE"'/>
</Text>
<Appearance>
<Material/>
</Appearance>
</Shape>
</Transform>
</Transform>
<Transform DEF='TargetBoxTilttranslation='-10 1 -20'>
<Shape>
<Box/>
<Appearance> </Appearance>
</Shape>
<Transform translation='0 2 0'>
<Shape>
<Text string='"Tilt left, right"'>
<FontStyle justify='"MIDDLE" "MIDDLE"'/>
</Text>
<Appearance>
<Material/>
</Appearance>
</Shape>
</Transform>
</Transform>
</Group>
<!-- =============== Camera.AimPointTest ============== -->
<fieldValue name='descriptionvalue='AimPointTest for moving camera tracking moving target'/>
<fieldValue name='positionvalue='4 4 10'/>
<fieldValue name='shots'>
<ProtoInstance name='CameraShotDEF='Shot5'>
<fieldValue name='descriptionvalue='#3 Tracking shot'/>
<fieldValue name='initialPositionvalue='6 6 10'/>
<fieldValue name='initialOrientationvalue='0 1 0 0'/>
<fieldValue name='moves'>
<!-- ROUTE information for MoveAimPoint3.1 node:  [from BoxPath.value_changed to goalAimPoint ] -->
<ProtoInstance name='CameraMovementDEF='MoveAimPoint3.1'>
<fieldValue name='descriptionvalue='AimPoint 3.1 moving BoxPath'/>
<fieldValue name='trackingvalue='true'/>
<fieldValue name='durationvalue='8'/>
<fieldValue name='goalPositionvalue='6 6 10'/>
<!-- goalAimPoint modified by ROUTE to match moving Box -->
</ProtoInstance>
<!-- ROUTE information for MoveAimPoint3.2 node:  [from BoxPath.value_changed to goalAimPoint ] -->
<ProtoInstance name='CameraMovementDEF='MoveAimPoint3.2'>
<fieldValue name='descriptionvalue='AimPoint 3.2 pan right while tracking'/>
<fieldValue name='trackingvalue='true'/>
<fieldValue name='durationvalue='8'/>
<fieldValue name='goalPositionvalue='40 6 12'/>
<!-- goalAimPoint modified by ROUTE to match moving Box -->
</ProtoInstance>
<!-- ROUTE information for MoveAimPoint3.3 node:  [from BoxPath.value_changed to goalAimPoint ] -->
<ProtoInstance name='CameraMovementDEF='MoveAimPoint3.3'>
<fieldValue name='descriptionvalue='AimPoint 3.3 boom up while tracking'/>
<fieldValue name='trackingvalue='true'/>
<fieldValue name='durationvalue='3'/>
<fieldValue name='goalPositionvalue='40 20 13'/>
<!-- goalAimPoint modified by ROUTE to match moving Box -->
</ProtoInstance>
<ProtoInstance name='CameraMovementDEF='MoveAimPoint3.4'>
<fieldValue name='descriptionvalue='AimPoint 3.4 restore camera back to home'/>
<fieldValue name='trackingvalue='true'/>
<fieldValue name='durationvalue='5'/>
<fieldValue name='goalPositionvalue='4 4 10'/>
<fieldValue name='goalAimPointvalue='4 4 0'/>
<fieldValue name='goalOrientationvalue='0 1 0 0'/>
<!-- can test tracking or not using these values -->
</ProtoInstance>
</fieldValue>
</ProtoInstance>
</fieldValue>
</ProtoInstance>
<Group DEF='AnimationGroup.AimPointTest'>

<!-- initialize clock to match totalDuration of combined Shot Moves -->
< ROUTE  fromNode=' Camera.AimPointTest' fromField='totalDuration' toNode=' CameraTimer.AimPointTest' toField='cycleInterval'/>
<!-- TimeSensor animates the CameraClock since that maintains the computed PositionInterpolator and OrientationInterpolator -->
< ROUTE  fromNode=' CameraTimer.AimPointTest' fromField='fraction_changed' toNode=' Camera.AimPointTest' toField='set_fraction'/>
<Transform DEF='Trigger.AimPointTesttranslation='4 4 0'>
<!-- ROUTE information for TextTouchActive.AimPointFilter node:  [from TextTouch.AimPointTest.isActive to set_boolean ] [from inputTrue to Camera.AimPointTest.set_bind ] -->
<BooleanFilter DEF='TextTouchActive.AimPointFilter'/>

<!-- ROUTE information for TextTouch.AimPointTest node:  [from isActive to TextTouchActive.AimPointFilter.set_boolean ] [from touchTime to CameraTimer.AimPointTest.startTime ] -->
<TouchSensor DEF='TextTouch.AimPointTestdescription='touch to animate Camera AimPointTest'/>

< ROUTE  fromNode=' TextTouchActive.AimPointFilter' fromField='inputTrue' toNode=' Camera.AimPointTest' toField='set_bind'/>
< ROUTE  fromNode=' TextTouch.AimPointTest' fromField='isActive' toNode=' TextTouchActive.AimPointFilter' toField='set_boolean'/>
< ROUTE  fromNode=' TextTouch.AimPointTest' fromField='touchTime' toNode=' CameraTimer.AimPointTest' toField='startTime'/>
<Shape>
<Text string='"Click to animate" "AimPointTest"'>
<FontStyle justify='"MIDDLE" "MIDDLE"'/>
</Text>
<Appearance>
<Material USE=' ArtDeco5'/>
</Appearance>
</Shape>
<Shape USE=' TransparentBox'/>
<TouchSensor description='Click to animate AimPointTest'/>
</Transform>
</Group>
<!-- TODO build a test once implemented -->
<ProtoInstance name='OfflineRender'/>
<!-- =============== animate a camera shape to visualize view changes ============== -->
<!-- move CameraShape using active Camera -->
< ROUTE  fromNode=' Camera.SimpleShotsTest' fromField='position' toNode=' CameraShapeTransform' toField='translation'/>
< ROUTE  fromNode=' Camera.SimpleShotsTest' fromField='orientation' toNode=' CameraShapeTransform' toField='rotation'/>
< ROUTE  fromNode=' Camera.AimPointTest' fromField='position' toNode=' CameraShapeTransform' toField='translation'/>
< ROUTE  fromNode=' Camera.AimPointTest' fromField='orientation' toNode=' CameraShapeTransform' toField='rotation'/>
<Transform DEF='CameraOffsetTransformtranslation='0 0 0.25'>
<!-- ROUTE information for CameraShapeTouched node:  [from isActive to ViewFrustumToggle.set_boolean ] -->
<TouchSensor DEF='CameraShapeTouched'/>

<Inline DEF='CameraShape'
  url=' CameraShape.x3d"https://www.web3d.org/x3d/content/examples/Basic/development/CameraShape.x3d" ' />

<Shape DEF='SightLine'>
<IndexedLineSet coordIndex='0 1'>
<Coordinate point='0 0 0 0 0 -100'/>
</IndexedLineSet>
<Appearance>
<Material emissiveColor='0.8 0.8 0.4'/>
</Appearance>
</Shape>
</Transform>
<!-- Display frustum to show camera view within the scene, toggled by user selecting CameraShape -->
<ExternProtoDeclare name='ViewFrustumappinfo='Display view frustum associated with a given pair of Viewpoint NavigationInfo nodes'
  url=' "../../X3dForWebAuthors/Chapter14Prototypes/ViewFrustumPrototype.x3d#ViewFrustum" "https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/Chapter14Prototypes/ViewFrustumPrototype.x3d#ViewFrustum" "../../X3dForWebAuthors/Chapter14Prototypes/ViewFrustumPrototype.wrl#ViewFrustum" "https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/Chapter14Prototypes/ViewFrustumPrototype.wrl#ViewFrustum" ' >
<field name='ViewpointNodetype='SFNodeaccessType='initializeOnly'
 appinfo='required: insert Viewpoint DEF or USE node for view of interest' />

<field name='NavigationInfoNodetype='SFNodeaccessType='initializeOnly'
 appinfo='required: insert NavigationInfo DEF or USE node of interest' />

<field name='visibletype='SFBoolaccessType='inputOutput'
 appinfo='whether or not frustum geometry is rendered' />

<field name='lineColortype='SFColoraccessType='inputOutput'
 appinfo='RGB color of ViewFrustum outline, default value 0.9 0.9 0.9' />

<field name='frustumColortype='SFColoraccessType='inputOutput'
 appinfo='RGB color of ViewFrustum hull geometry, default value 0.8 0.8 0.8' />

<field name='transparencytype='SFFloataccessType='inputOutput'
 appinfo='transparency of ViewFrustum hull geometry, default value 0.5' />

<field name='aspectRatiotype='SFFloataccessType='inputOutput'
 appinfo='assumed ratio height/width, default value 0.75' />

<field name='tracetype='SFBoolaccessType='initializeOnly'
 appinfo='debug support, default false' />
</ExternProtoDeclare>
<!-- ROUTE information for ViewFrustumNode node:  [from ViewFrustumToggle.toggle to visible ] -->
<ProtoInstance name='ViewFrustumDEF='ViewFrustumNode'>
<fieldValue name='ViewpointNode'>
<Viewpoint DEF='FrustumViewpointdescription='viewpoint for ViewFrustumposition='0 0 0'/>
</fieldValue>
<fieldValue name='NavigationInfoNode'>
<NavigationInfo DEF='TestNavigationInfotransitionType='"ANIMATE"visibilityLimit='100'/>
</fieldValue>
<fieldValue name='visiblevalue='false'/>
<fieldValue name='lineColorvalue='0.9 0.9 0.9'/>
<fieldValue name='frustumColorvalue='0.8 0.8 0.8'/>
<fieldValue name='transparencyvalue='0.95'/>
</ProtoInstance>
<!-- ROUTE information for ViewFrustumToggle node:  [from CameraShapeTouched.isActive to set_boolean ] [from toggle to ViewFrustumNode.visible ] -->
<BooleanToggle DEF='ViewFrustumTogglecontainerField='children'/>

< ROUTE  fromNode=' CameraShapeTouched' fromField='isActive' toNode=' ViewFrustumToggle' toField='set_boolean'/>
< ROUTE  fromNode=' ViewFrustumToggle' fromField='toggle' toNode=' ViewFrustumNode' toField='visible'/>
</Transform>
<!-- =============== add checkerboard, axes and other things to look at while animating ============== -->
<Background skyColor='0.282353 0.380392 0.470588'/>
<Transform rotation='1 0 0 -1.57079scale='10 10 10'>
<Shape>
<Appearance>
<Material ambientIntensity='0.01diffuseColor='1.0 1.0 1.0shininess='0.05'/>
</Appearance>
<IndexedFaceSet colorPerVertex='falsenormalPerVertex='falsesolid='falsecolorIndex='0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0coordIndex='0 8 9 1 -1 1 9 10 2 -1 2 10 11 3 -1 3 11 12 4 -1 4 12 13 5 -1 5 13 14 6 -1 6 14 15 7 -1 8 16 17 9 -1 9 17 18 10 -1 10 18 19 11 -1 11 19 20 12 -1 12 20 21 13 -1 13 21 22 14 -1 14 22 23 15 -1 16 24 25 17 -1 17 25 26 18 -1 18 26 27 19 -1 19 27 28 20 -1 20 28 29 21 -1 21 29 30 22 -1 22 30 31 23 -1 24 32 33 25 -1 25 33 34 26 -1 26 34 35 27 -1 27 35 36 28 -1 28 36 37 29 -1 29 37 38 30 -1 30 38 39 31 -1 32 40 41 33 -1 33 41 42 34 -1 34 42 43 35 -1 35 43 44 36 -1 36 44 45 37 -1 37 45 46 38 -1 38 46 47 39 -1 40 48 49 41 -1 41 49 50 42 -1 42 50 51 43 -1 43 51 52 44 -1 44 52 53 45 -1 45 53 54 46 -1 46 54 55 47 -1 48 56 57 49 -1 49 57 58 50 -1 50 58 59 51 -1 51 59 60 52 -1 52 60 61 53 -1 53 61 62 54 -1 54 62 63 55 -1'>
<Coordinate point='-5.25 5.25 0.0 -3.75 5.25 0.0 -2.25 5.25 0.0 -0.75 5.25 0.0 0.75 5.25 0.0 2.25 5.25 0.0 3.75 5.25 0.0 5.25 5.25 0.0 -5.25 3.75 0.0 -3.75 3.75 0.0 -2.25 3.75 0.0 -0.75 3.75 0.0 0.75 3.75 0.0 2.25 3.75 0.0 3.75 3.75 0.0 5.25 3.75 0.0 -5.25 2.25 0.0 -3.75 2.25 0.0 -2.25 2.25 0.0 -0.75 2.25 0.0 0.75 2.25 0.0 2.25 2.25 0.0 3.75 2.25 0.0 5.25 2.25 0.0 -5.25 0.75 0.0 -3.75 0.75 0.0 -2.25 0.75 0.0 -0.75 0.75 0.0 0.75 0.75 0.0 2.25 0.75 0.0 3.75 0.75 0.0 5.25 0.75 0.0 -5.25 -0.75 0.0 -3.75 -0.75 0.0 -2.25 -0.75 0.0 -0.75 -0.75 0.0 0.75 -0.75 0.0 2.25 -0.75 0.0 3.75 -0.75 0.0 5.25 -0.75 0.0 -5.25 -2.25 0.0 -3.75 -2.25 0.0 -2.25 -2.25 0.0 -0.75 -2.25 0.0 0.75 -2.25 0.0 2.25 -2.25 0.0 3.75 -2.25 0.0 5.25 -2.25 0.0 -5.25 -3.75 0.0 -3.75 -3.75 0.0 -2.25 -3.75 0.0 -0.75 -3.75 0.0 0.75 -3.75 0.0 2.25 -3.75 0.0 3.75 -3.75 0.0 5.25 -3.75 0.0 -5.25 -5.25 0.0 -3.75 -5.25 0.0 -2.25 -5.25 0.0 -0.75 -5.25 0.0 0.75 -5.25 0.0 2.25 -5.25 0.0 3.75 -5.25 0.0 5.25 -5.25 0.0'/>
<Color color='0.435294 0.741176 0 0 0.560784 0.580392'/>
</IndexedFaceSet>
</Shape>
</Transform>
<Transform scale='3 3 3translation='0 0.25 0'> </Transform>
<!-- ROUTE information for MovingBoxTransform node:  [from BoxPath.value_changed to translation ] -->
<Transform DEF='MovingBoxTransform'>

<!-- ROUTE information for BoxTimer node:  [from fraction_changed to BoxPath.set_fraction ] -->
<TimeSensor DEF='BoxTimercycleInterval='10loop='true'/>

< ROUTE  fromNode=' BoxPath' fromField='value_changed' toNode=' MovingBoxTransform' toField='translation'/>
< ROUTE  fromNode=' BoxPath' fromField='value_changed' toNode=' MoveAimPoint3.1' toField='goalAimPoint'/>
< ROUTE  fromNode=' BoxPath' fromField='value_changed' toNode=' MoveAimPoint3.2' toField='goalAimPoint'/>
< ROUTE  fromNode=' BoxPath' fromField='value_changed' toNode=' MoveAimPoint3.3' toField='goalAimPoint'/>
< ROUTE  fromNode=' BoxTimer' fromField='fraction_changed' toNode=' BoxPath' toField='set_fraction'/>
<Shape>
<Box/>
<Appearance> </Appearance>
</Shape>
</Transform>
<!-- ================ CrossHair visualization for center of screen ================ -->
<ExternProtoDeclare name='CrossHairappinfo='CrossHair prototype provides a heads-up display (HUD) crosshair at the view center, which is useful for assessing NavigationInfo lookAt point'
  url=' "../../Savage/Tools/HeadsUpDisplays/CrossHairPrototype.x3d#CrossHair" "https://savage.nps.edu/Savage/Tools/HeadsUpDisplays/CrossHairPrototype.x3d#CrossHair" "../../Savage/Tools/HeadsUpDisplays/CrossHairPrototype.wrl#CrossHair" "https://savage.nps.edu/Savage/Tools/HeadsUpDisplays/CrossHairPrototype.wrl#CrossHair" ' >
<field name='enabledtype='SFBoolaccessType='initializeOnly'
 appinfo='whether CrissHair orititype is enabled or not' />

<field name='set_enabledtype='SFBoolaccessType='inputOnly'
 appinfo='control whether enabled/disabled' />

<field name='markerColortype='SFColoraccessType='inputOutput'
 appinfo='color of CrossHair marker' />

<field name='scaletype='SFVec3faccessType='inputOutput'
 appinfo='size of CrossHair in meters' />

<field name='positionOffsetFromCameratype='SFVec3faccessType='inputOutput'
 appinfo='distance in front of HUD viewpoint' />
</ExternProtoDeclare>
<!-- ROUTE information for CrossHairInstance node:  [from Camera.SimpleShotsTest.isBound to set_enabled ] [from Camera.AimPointTest.isBound to set_enabled ] -->
<ProtoInstance name='CrossHairDEF='CrossHairInstance'>
<fieldValue name='enabledvalue='true'/>
<fieldValue name='markerColorvalue='1 0.5 0'/>
<fieldValue name='scalevalue='1 1 1'/>
<fieldValue name='positionOffsetFromCameravalue='0 0 -6'/>
</ProtoInstance>
<!-- turn on CrossHairInstance when animated camera viewpoints are bound -->
< ROUTE  fromNode=' Camera.SimpleShotsTest' fromField='isBound' toNode=' CrossHairInstance' toField='set_enabled'/>
< ROUTE  fromNode=' Camera.AimPointTest' fromField='isBound' toNode=' CrossHairInstance' toField='set_enabled'/>
<!-- turn off CrossHairInstance when animated camera viewpoints are unbound <BooleanFilter DEF='NegateCrossHair'/> <ROUTE fromField='isBound' fromNode='Camera.SimpleShotsTest' toField='set_boolean' toNode='NegateCrossHair'/> <ROUTE fromField='isBound' fromNode='Camera.AimPointTest' toField='set_boolean' toNode='NegateCrossHair'/> <ROUTE fromField='inputNegate' fromNode='NegateCrossHair' toField='set_enabled' toNode='CrossHairInstance'/> -->
<!-- =============== TODO Launch Prototype Example ============== -->
<Anchor description='launch CameraExample sceneparameter='"target=_blank"'
  url=' CameraExample.x3d"https://www.web3d.org/x3d/content/examples/Basic/development/CameraExample.x3d" "CameraExample.wrl" "https://www.web3d.org/x3d/content/examples/Basic/development/CameraExample.wrl" ' >
<Transform translation='0 -3 0'>
<Shape>
<Text string='"CameraPrototype" "defines a prototype" "" "Click on this text to see" "CameraExample scene"'>
<FontStyle justify='"MIDDLE" "MIDDLE"size='0.5'/>
</Text>
<Appearance>
<Material diffuseColor='1 1 0.2'/>
</Appearance>
</Shape>
</Transform>
</Anchor>
</Scene>
</X3D>
<!--

to top <!-- Event Graph ROUTE Table shows event connections -->
 
<!-- Index for DEF nodes: AnimationGroup.AimPointTest, AnimationGroup.SimpleShots, ArtDeco5, BoomDown, BoomPause, BoxPath, BoxTimer, Camera.AimPointTest, Camera.SimpleShotsTest, CameraBoom, CameraBoomUp, CameraOffsetTransform, CameraShape, CameraShapeTouched, CameraShapeTransform, CameraTilt, CameraTimer.AimPointTest, CameraTimer.SimpleShots, CoordinateAxes, CrossHairInstance, Dolly, DollyMove1, FrustumViewpoint, MoveAimPoint3.1, MoveAimPoint3.2, MoveAimPoint3.3, MoveAimPoint3.4, MovingBoxTransform, Pan, PanLeft, PanRight, Shot5, SightLine, SimpleShotsTargets, TargetBoxBoom, TargetBoxDolly, TargetBoxPan, TargetBoxTilt, TargetBoxZoom, TestNavigationInfo, TextTouch.AimPointTest, TextTouch.SimpleShots, TextTouchActive.AimPointFilter, TextTouchActive.SimpleShotsFilter, TiltDown, TiltPause, TiltReset, TiltUp, TransparentBox, Trigger.AimPointTest, Trigger.SimpleShots, ViewFrustumNode, ViewFrustumToggle, Zoom

Index for Viewpoint nodes: Viewpoint_1, Viewpoint_2, FrustumViewpoint Index for ExternProtoDeclare definitions: Camera, CameraMovement, CameraShot, CrossHair, OfflineRender, ViewFrustum
-->

Event Graph ROUTE Table entries with 23 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.

CameraShapeTouched
TouchSensor
isActive
SFBool

ROUTE
event to
(1)
ViewFrustumToggle
BooleanToggle
set_boolean
SFBool

 
 
then
ViewFrustumToggle
BooleanToggle
toggle
SFBool

ROUTE
event to
(2)
ViewFrustumNode
ProtoInstance
visible
SFBool


The following ROUTE begins an event-routing loop! Loop occurs at nodeDepth=5.
 
ROUTE Camera.AimPointTest.totalDuration TO CameraTimer.AimPointTest.cycleInterval
TextTouch.AimPointTest
TouchSensor
isActive
SFBool

ROUTE
event to
(1)
TextTouchActive.AimPointFilter
BooleanFilter
set_boolean
SFBool

 
 
then
TextTouchActive.AimPointFilter
BooleanFilter
inputTrue
SFBool

ROUTE
event to
(2)
Camera.AimPointTest
ProtoInstance
set_bind
SFBool

 
 
then
Camera.AimPointTest
ProtoInstance
isBound
SFBool

ROUTE
event to
(3)
CrossHairInstance
ProtoInstance
set_enabled
SFBool
 
 
 
then
Camera.AimPointTest
ProtoInstance
orientation
SFRotation

ROUTE
event to
(3)
CameraShapeTransform
Transform
rotation
SFRotation
 
 
 
then
Camera.AimPointTest
ProtoInstance
position
SFVec3f

ROUTE
event to
(3)
CameraShapeTransform
Transform
translation
SFVec3f
 
 
 
then
Camera.AimPointTest
ProtoInstance
totalDuration
SFTime

ROUTE
event to
(3)
CameraTimer.AimPointTest
TimeSensor
cycleInterval
SFTime

 
 
then
CameraTimer.AimPointTest
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(4)
Camera.AimPointTest
ProtoInstance
set_fraction
SFFloat

 
 
then
Camera.AimPointTest
ProtoInstance
isBound
SFBool

ROUTE
event to
(5)
CrossHairInstance
ProtoInstance
set_enabled
SFBool
 
 
 
then
Camera.AimPointTest
ProtoInstance
orientation
SFRotation

ROUTE
event to
(5)
CameraShapeTransform
Transform
rotation
SFRotation
 
 
 
then
Camera.AimPointTest
ProtoInstance
position
SFVec3f

ROUTE
event to
(5)
CameraShapeTransform
Transform
translation
SFVec3f
 
 
 
then
Camera.AimPointTest
ProtoInstance
totalDuration
SFTime

ROUTE
event to
(5)
CameraTimer.AimPointTest
TimeSensor
cycleInterval
SFTime

 
 
then
CameraTimer.AimPointTest
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(6)
Camera.AimPointTest
ProtoInstance
set_fraction
SFFloat

 
 
then
Camera.AimPointTest
ProtoInstance
isBound
SFBool

ROUTE
event to
(7)
CrossHairInstance
ProtoInstance
set_enabled
SFBool
 
 
 
then
Camera.AimPointTest
ProtoInstance
orientation
SFRotation

ROUTE
event to
(7)
CameraShapeTransform
Transform
rotation
SFRotation
 
 
 
then
Camera.AimPointTest
ProtoInstance
position
SFVec3f

ROUTE
event to
(7)
CameraShapeTransform
Transform
translation
SFVec3f
 
 
 
then
Camera.AimPointTest
ProtoInstance
totalDuration
SFTime

ROUTE
event to
(7)
CameraTimer.AimPointTest
TimeSensor
cycleInterval
SFTime

 
 
then
CameraTimer.AimPointTest
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(8)
Camera.AimPointTest
ProtoInstance
set_fraction
SFFloat
TextTouch.AimPointTest
TouchSensor
touchTime
SFTime

ROUTE
event to
(1)
CameraTimer.AimPointTest
TimeSensor
startTime
SFTime

 
 
then
CameraTimer.AimPointTest
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(2)
Camera.AimPointTest
ProtoInstance
set_fraction
SFFloat

 
 
then
Camera.AimPointTest
ProtoInstance
isBound
SFBool

ROUTE
event to
(3)
CrossHairInstance
ProtoInstance
set_enabled
SFBool
 
 
 
then
Camera.AimPointTest
ProtoInstance
orientation
SFRotation

ROUTE
event to
(3)
CameraShapeTransform
Transform
rotation
SFRotation
 
 
 
then
Camera.AimPointTest
ProtoInstance
position
SFVec3f

ROUTE
event to
(3)
CameraShapeTransform
Transform
translation
SFVec3f
 
 
 
then
Camera.AimPointTest
ProtoInstance
totalDuration
SFTime

ROUTE
event to
(3)
CameraTimer.AimPointTest
TimeSensor
cycleInterval
SFTime

 
 
then
CameraTimer.AimPointTest
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(4)
Camera.AimPointTest
ProtoInstance
set_fraction
SFFloat

 
 
then
Camera.AimPointTest
ProtoInstance
isBound
SFBool

ROUTE
event to
(5)
CrossHairInstance
ProtoInstance
set_enabled
SFBool
 
 
 
then
Camera.AimPointTest
ProtoInstance
orientation
SFRotation

ROUTE
event to
(5)
CameraShapeTransform
Transform
rotation
SFRotation
 
 
 
then
Camera.AimPointTest
ProtoInstance
position
SFVec3f

ROUTE
event to
(5)
CameraShapeTransform
Transform
translation
SFVec3f
 
 
 
then
Camera.AimPointTest
ProtoInstance
totalDuration
SFTime

ROUTE
event to
(5)
CameraTimer.AimPointTest
TimeSensor
cycleInterval
SFTime

 
 
then
CameraTimer.AimPointTest
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(6)
Camera.AimPointTest
ProtoInstance
set_fraction
SFFloat

 
 
then
Camera.AimPointTest
ProtoInstance
isBound
SFBool

ROUTE
event to
(7)
CrossHairInstance
ProtoInstance
set_enabled
SFBool
 
 
 
then
Camera.AimPointTest
ProtoInstance
orientation
SFRotation

ROUTE
event to
(7)
CameraShapeTransform
Transform
rotation
SFRotation
 
 
 
then
Camera.AimPointTest
ProtoInstance
position
SFVec3f

ROUTE
event to
(7)
CameraShapeTransform
Transform
translation
SFVec3f
 
 
 
then
Camera.AimPointTest
ProtoInstance
totalDuration
SFTime

ROUTE
event to
(7)
CameraTimer.AimPointTest
TimeSensor
cycleInterval
SFTime

 
 
then
CameraTimer.AimPointTest
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(8)
Camera.AimPointTest
ProtoInstance
set_fraction
SFFloat


The following ROUTE begins an event-routing loop! Loop occurs at nodeDepth=5.
 
ROUTE Camera.SimpleShotsTest.totalDuration TO CameraTimer.SimpleShots.cycleInterval
TextTouch.SimpleShots
TouchSensor
isActive
SFBool

ROUTE
event to
(1)
TextTouchActive.SimpleShotsFilter
BooleanFilter
set_boolean
SFBool

 
 
then
TextTouchActive.SimpleShotsFilter
BooleanFilter
inputTrue
SFBool

ROUTE
event to
(2)
Camera.SimpleShotsTest
ProtoInstance
set_bind
SFBool

 
 
then
Camera.SimpleShotsTest
ProtoInstance
isBound
SFBool

ROUTE
event to
(3)
CrossHairInstance
ProtoInstance
set_enabled
SFBool
 
 
 
then
Camera.SimpleShotsTest
ProtoInstance
orientation
SFRotation

ROUTE
event to
(3)
CameraShapeTransform
Transform
rotation
SFRotation
 
 
 
then
Camera.SimpleShotsTest
ProtoInstance
position
SFVec3f

ROUTE
event to
(3)
CameraShapeTransform
Transform
translation
SFVec3f
 
 
 
then
Camera.SimpleShotsTest
ProtoInstance
totalDuration
SFTime

ROUTE
event to
(3)
CameraTimer.SimpleShots
TimeSensor
cycleInterval
SFTime

 
 
then
CameraTimer.SimpleShots
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(4)
Camera.SimpleShotsTest
ProtoInstance
set_fraction
SFFloat

 
 
then
Camera.SimpleShotsTest
ProtoInstance
isBound
SFBool

ROUTE
event to
(5)
CrossHairInstance
ProtoInstance
set_enabled
SFBool
 
 
 
then
Camera.SimpleShotsTest
ProtoInstance
orientation
SFRotation

ROUTE
event to
(5)
CameraShapeTransform
Transform
rotation
SFRotation
 
 
 
then
Camera.SimpleShotsTest
ProtoInstance
position
SFVec3f

ROUTE
event to
(5)
CameraShapeTransform
Transform
translation
SFVec3f
 
 
 
then
Camera.SimpleShotsTest
ProtoInstance
totalDuration
SFTime

ROUTE
event to
(5)
CameraTimer.SimpleShots
TimeSensor
cycleInterval
SFTime

 
 
then
CameraTimer.SimpleShots
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(6)
Camera.SimpleShotsTest
ProtoInstance
set_fraction
SFFloat

 
 
then
Camera.SimpleShotsTest
ProtoInstance
isBound
SFBool

ROUTE
event to
(7)
CrossHairInstance
ProtoInstance
set_enabled
SFBool
 
 
 
then
Camera.SimpleShotsTest
ProtoInstance
orientation
SFRotation

ROUTE
event to
(7)
CameraShapeTransform
Transform
rotation
SFRotation
 
 
 
then
Camera.SimpleShotsTest
ProtoInstance
position
SFVec3f

ROUTE
event to
(7)
CameraShapeTransform
Transform
translation
SFVec3f
 
 
 
then
Camera.SimpleShotsTest
ProtoInstance
totalDuration
SFTime

ROUTE
event to
(7)
CameraTimer.SimpleShots
TimeSensor
cycleInterval
SFTime

 
 
then
CameraTimer.SimpleShots
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(8)
Camera.SimpleShotsTest
ProtoInstance
set_fraction
SFFloat
TextTouch.SimpleShots
TouchSensor
touchTime
SFTime

ROUTE
event to
(1)
CameraTimer.SimpleShots
TimeSensor
startTime
SFTime

 
 
then
CameraTimer.SimpleShots
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(2)
Camera.SimpleShotsTest
ProtoInstance
set_fraction
SFFloat

 
 
then
Camera.SimpleShotsTest
ProtoInstance
isBound
SFBool

ROUTE
event to
(3)
CrossHairInstance
ProtoInstance
set_enabled
SFBool
 
 
 
then
Camera.SimpleShotsTest
ProtoInstance
orientation
SFRotation

ROUTE
event to
(3)
CameraShapeTransform
Transform
rotation
SFRotation
 
 
 
then
Camera.SimpleShotsTest
ProtoInstance
position
SFVec3f

ROUTE
event to
(3)
CameraShapeTransform
Transform
translation
SFVec3f
 
 
 
then
Camera.SimpleShotsTest
ProtoInstance
totalDuration
SFTime

ROUTE
event to
(3)
CameraTimer.SimpleShots
TimeSensor
cycleInterval
SFTime

 
 
then
CameraTimer.SimpleShots
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(4)
Camera.SimpleShotsTest
ProtoInstance
set_fraction
SFFloat

 
 
then
Camera.SimpleShotsTest
ProtoInstance
isBound
SFBool

ROUTE
event to
(5)
CrossHairInstance
ProtoInstance
set_enabled
SFBool
 
 
 
then
Camera.SimpleShotsTest
ProtoInstance
orientation
SFRotation

ROUTE
event to
(5)
CameraShapeTransform
Transform
rotation
SFRotation
 
 
 
then
Camera.SimpleShotsTest
ProtoInstance
position
SFVec3f

ROUTE
event to
(5)
CameraShapeTransform
Transform
translation
SFVec3f
 
 
 
then
Camera.SimpleShotsTest
ProtoInstance
totalDuration
SFTime

ROUTE
event to
(5)
CameraTimer.SimpleShots
TimeSensor
cycleInterval
SFTime

 
 
then
CameraTimer.SimpleShots
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(6)
Camera.SimpleShotsTest
ProtoInstance
set_fraction
SFFloat

 
 
then
Camera.SimpleShotsTest
ProtoInstance
isBound
SFBool

ROUTE
event to
(7)
CrossHairInstance
ProtoInstance
set_enabled
SFBool
 
 
 
then
Camera.SimpleShotsTest
ProtoInstance
orientation
SFRotation

ROUTE
event to
(7)
CameraShapeTransform
Transform
rotation
SFRotation
 
 
 
then
Camera.SimpleShotsTest
ProtoInstance
position
SFVec3f

ROUTE
event to
(7)
CameraShapeTransform
Transform
translation
SFVec3f
 
 
 
then
Camera.SimpleShotsTest
ProtoInstance
totalDuration
SFTime

ROUTE
event to
(7)
CameraTimer.SimpleShots
TimeSensor
cycleInterval
SFTime

 
 
then
CameraTimer.SimpleShots
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(8)
Camera.SimpleShotsTest
ProtoInstance
set_fraction
SFFloat


BoxTimer
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(1)
BoxPath
PositionInterpolator
set_fraction
SFFloat

 
 
then
BoxPath
PositionInterpolator
value_changed
SFVec3f

ROUTE
event to
(2)
MovingBoxTransform
Transform
translation
SFVec3f
 
 
 
then
BoxPath
PositionInterpolator
value_changed
SFVec3f

ROUTE
event to
(2)
MoveAimPoint3.1
ProtoInstance
goalAimPoint
SFVec3f
 
 
 
then
BoxPath
PositionInterpolator
value_changed
SFVec3f

ROUTE
event to
(2)
MoveAimPoint3.2
ProtoInstance
goalAimPoint
SFVec3f
 
 
 
then
BoxPath
PositionInterpolator
value_changed
SFVec3f

ROUTE
event to
(2)
MoveAimPoint3.3
ProtoInstance
goalAimPoint
SFVec3f



ProtoInstance
CameraMovement
No ROUTE connection found for output from this node.
Contains SFNode/MFNode field with indirect access to other nodes. 



ProtoInstance
CameraMovement
No ROUTE connection found for output from this node.
Contains SFNode/MFNode field with indirect access to other nodes. 



ProtoInstance
CameraMovement
No ROUTE connection found for output from this node.
Contains SFNode/MFNode field with indirect access to other nodes. 



ProtoInstance
CameraMovement
No ROUTE connection found for output from this node.
Contains SFNode/MFNode field with indirect access to other nodes. 



ProtoInstance
CameraMovement
No ROUTE connection found for output from this node.
Contains SFNode/MFNode field with indirect access to other nodes. 



ProtoInstance
CameraMovement
No ROUTE connection found for output from this node.
Contains SFNode/MFNode field with indirect access to other nodes. 



ProtoInstance
CameraMovement
No ROUTE connection found for output from this node.
Contains SFNode/MFNode field with indirect access to other nodes. 



ProtoInstance
CameraMovement
No ROUTE connection found for output from this node.
Contains SFNode/MFNode field with indirect access to other nodes. 



ProtoInstance
CameraMovement
No ROUTE connection found for output from this node.
Contains SFNode/MFNode field with indirect access to other nodes. 



ProtoInstance
CameraMovement
No ROUTE connection found for output from this node.
Contains SFNode/MFNode field with indirect access to other nodes. 



ProtoInstance
OfflineRender
No ROUTE connection found for output from this node.
Contains SFNode/MFNode field with indirect access to other nodes. 


BoomDown
ProtoInstance
CameraMovement
No ROUTE connection found for output from this node.
Contains SFNode/MFNode field with indirect access to other nodes. 


BoomPause
ProtoInstance
CameraMovement
No ROUTE connection found for output from this node.
Contains SFNode/MFNode field with indirect access to other nodes. 


     
The following ROUTE begins an event-routing loop! Loop occurs at nodeDepth=3.
 
ROUTE Camera.AimPointTest.totalDuration TO CameraTimer.AimPointTest.cycleInterval
Camera.AimPointTest
ProtoInstance
totalDuration
SFTime

ROUTE
event to
(1)
CameraTimer.AimPointTest
TimeSensor
cycleInterval
SFTime

 
 
then
CameraTimer.AimPointTest
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(2)
Camera.AimPointTest
ProtoInstance
set_fraction
SFFloat

 
 
then
Camera.AimPointTest
ProtoInstance
isBound
SFBool

ROUTE
event to
(3)
CrossHairInstance
ProtoInstance
set_enabled
SFBool
 
 
 
then
Camera.AimPointTest
ProtoInstance
orientation
SFRotation

ROUTE
event to
(3)
CameraShapeTransform
Transform
rotation
SFRotation
 
 
 
then
Camera.AimPointTest
ProtoInstance
position
SFVec3f

ROUTE
event to
(3)
CameraShapeTransform
Transform
translation
SFVec3f
 
 
 
then
Camera.AimPointTest
ProtoInstance
totalDuration
SFTime

ROUTE
event to
(3)
CameraTimer.AimPointTest
TimeSensor
cycleInterval
SFTime

 
 
then
CameraTimer.AimPointTest
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(4)
Camera.AimPointTest
ProtoInstance
set_fraction
SFFloat

 
 
then
Camera.AimPointTest
ProtoInstance
isBound
SFBool

ROUTE
event to
(5)
CrossHairInstance
ProtoInstance
set_enabled
SFBool
 
 
 
then
Camera.AimPointTest
ProtoInstance
orientation
SFRotation

ROUTE
event to
(5)
CameraShapeTransform
Transform
rotation
SFRotation
 
 
 
then
Camera.AimPointTest
ProtoInstance
position
SFVec3f

ROUTE
event to
(5)
CameraShapeTransform
Transform
translation
SFVec3f
 
 
 
then
Camera.AimPointTest
ProtoInstance
totalDuration
SFTime

ROUTE
event to
(5)
CameraTimer.AimPointTest
TimeSensor
cycleInterval
SFTime

 
 
then
CameraTimer.AimPointTest
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(6)
Camera.AimPointTest
ProtoInstance
set_fraction
SFFloat

 
 
then
Camera.AimPointTest
ProtoInstance
isBound
SFBool

ROUTE
event to
(7)
CrossHairInstance
ProtoInstance
set_enabled
SFBool
 
 
 
then
Camera.AimPointTest
ProtoInstance
orientation
SFRotation

ROUTE
event to
(7)
CameraShapeTransform
Transform
rotation
SFRotation
 
 
 
then
Camera.AimPointTest
ProtoInstance
position
SFVec3f

ROUTE
event to
(7)
CameraShapeTransform
Transform
translation
SFVec3f
 
 
 
then
Camera.AimPointTest
ProtoInstance
totalDuration
SFTime

ROUTE
event to
(7)
CameraTimer.AimPointTest
TimeSensor
cycleInterval
SFTime

 
 
then
CameraTimer.AimPointTest
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(8)
Camera.AimPointTest
ProtoInstance
set_fraction
SFFloat
Camera.AimPointTest
ProtoInstance
position
SFVec3f

ROUTE
event to
(1)
CameraShapeTransform
Transform
translation
SFVec3f
Camera.AimPointTest
ProtoInstance
orientation
SFRotation

ROUTE
event to
(1)
CameraShapeTransform
Transform
rotation
SFRotation
Camera.AimPointTest
ProtoInstance
isBound
SFBool

ROUTE
event to
(1)
CrossHairInstance
ProtoInstance
set_enabled
SFBool


     
The following ROUTE begins an event-routing loop! Loop occurs at nodeDepth=3.
 
ROUTE Camera.SimpleShotsTest.totalDuration TO CameraTimer.SimpleShots.cycleInterval
Camera.SimpleShotsTest
ProtoInstance
totalDuration
SFTime

ROUTE
event to
(1)
CameraTimer.SimpleShots
TimeSensor
cycleInterval
SFTime

 
 
then
CameraTimer.SimpleShots
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(2)
Camera.SimpleShotsTest
ProtoInstance
set_fraction
SFFloat

 
 
then
Camera.SimpleShotsTest
ProtoInstance
isBound
SFBool

ROUTE
event to
(3)
CrossHairInstance
ProtoInstance
set_enabled
SFBool
 
 
 
then
Camera.SimpleShotsTest
ProtoInstance
orientation
SFRotation

ROUTE
event to
(3)
CameraShapeTransform
Transform
rotation
SFRotation
 
 
 
then
Camera.SimpleShotsTest
ProtoInstance
position
SFVec3f

ROUTE
event to
(3)
CameraShapeTransform
Transform
translation
SFVec3f
 
 
 
then
Camera.SimpleShotsTest
ProtoInstance
totalDuration
SFTime

ROUTE
event to
(3)
CameraTimer.SimpleShots
TimeSensor
cycleInterval
SFTime

 
 
then
CameraTimer.SimpleShots
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(4)
Camera.SimpleShotsTest
ProtoInstance
set_fraction
SFFloat

 
 
then
Camera.SimpleShotsTest
ProtoInstance
isBound
SFBool

ROUTE
event to
(5)
CrossHairInstance
ProtoInstance
set_enabled
SFBool
 
 
 
then
Camera.SimpleShotsTest
ProtoInstance
orientation
SFRotation

ROUTE
event to
(5)
CameraShapeTransform
Transform
rotation
SFRotation
 
 
 
then
Camera.SimpleShotsTest
ProtoInstance
position
SFVec3f

ROUTE
event to
(5)
CameraShapeTransform
Transform
translation
SFVec3f
 
 
 
then
Camera.SimpleShotsTest
ProtoInstance
totalDuration
SFTime

ROUTE
event to
(5)
CameraTimer.SimpleShots
TimeSensor
cycleInterval
SFTime

 
 
then
CameraTimer.SimpleShots
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(6)
Camera.SimpleShotsTest
ProtoInstance
set_fraction
SFFloat

 
 
then
Camera.SimpleShotsTest
ProtoInstance
isBound
SFBool

ROUTE
event to
(7)
CrossHairInstance
ProtoInstance
set_enabled
SFBool
 
 
 
then
Camera.SimpleShotsTest
ProtoInstance
orientation
SFRotation

ROUTE
event to
(7)
CameraShapeTransform
Transform
rotation
SFRotation
 
 
 
then
Camera.SimpleShotsTest
ProtoInstance
position
SFVec3f

ROUTE
event to
(7)
CameraShapeTransform
Transform
translation
SFVec3f
 
 
 
then
Camera.SimpleShotsTest
ProtoInstance
totalDuration
SFTime

ROUTE
event to
(7)
CameraTimer.SimpleShots
TimeSensor
cycleInterval
SFTime

 
 
then
CameraTimer.SimpleShots
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(8)
Camera.SimpleShotsTest
ProtoInstance
set_fraction
SFFloat
Camera.SimpleShotsTest
ProtoInstance
position
SFVec3f

ROUTE
event to
(1)
CameraShapeTransform
Transform
translation
SFVec3f
Camera.SimpleShotsTest
ProtoInstance
orientation
SFRotation

ROUTE
event to
(1)
CameraShapeTransform
Transform
rotation
SFRotation
Camera.SimpleShotsTest
ProtoInstance
isBound
SFBool

ROUTE
event to
(1)
CrossHairInstance
ProtoInstance
set_enabled
SFBool


CameraBoom
ProtoInstance
CameraShot
No ROUTE connection found for output from this node.
Contains SFNode/MFNode field with indirect access to other nodes. 


CameraBoomUp
ProtoInstance
CameraMovement
No ROUTE connection found for output from this node.
Contains SFNode/MFNode field with indirect access to other nodes. 


CameraTilt
ProtoInstance
CameraShot
No ROUTE connection found for output from this node.
Contains SFNode/MFNode field with indirect access to other nodes. 


      CrossHairInstance
ProtoInstance
CrossHair
No ROUTE connection found for output from this node.
Contains SFNode/MFNode field with indirect access to other nodes. 


Dolly
ProtoInstance
CameraShot
No ROUTE connection found for output from this node.
Contains SFNode/MFNode field with indirect access to other nodes. 


DollyMove1
ProtoInstance
CameraMovement
No ROUTE connection found for output from this node.
Contains SFNode/MFNode field with indirect access to other nodes. 


      MoveAimPoint3.1
ProtoInstance
CameraMovement
No ROUTE connection found for output from this node.
Contains SFNode/MFNode field with indirect access to other nodes. 


      MoveAimPoint3.2
ProtoInstance
CameraMovement
No ROUTE connection found for output from this node.
Contains SFNode/MFNode field with indirect access to other nodes. 


      MoveAimPoint3.3
ProtoInstance
CameraMovement
No ROUTE connection found for output from this node.
Contains SFNode/MFNode field with indirect access to other nodes. 


MoveAimPoint3.4
ProtoInstance
CameraMovement
No ROUTE connection found for output from this node.
Contains SFNode/MFNode field with indirect access to other nodes. 


Pan
ProtoInstance
CameraShot
No ROUTE connection found for output from this node.
Contains SFNode/MFNode field with indirect access to other nodes. 


PanLeft
ProtoInstance
CameraMovement
No ROUTE connection found for output from this node.
Contains SFNode/MFNode field with indirect access to other nodes. 


PanRight
ProtoInstance
CameraMovement
No ROUTE connection found for output from this node.
Contains SFNode/MFNode field with indirect access to other nodes. 


Shot5
ProtoInstance
CameraShot
No ROUTE connection found for output from this node.
Contains SFNode/MFNode field with indirect access to other nodes. 


TiltDown
ProtoInstance
CameraMovement
No ROUTE connection found for output from this node.
Contains SFNode/MFNode field with indirect access to other nodes. 


TiltPause
ProtoInstance
CameraMovement
No ROUTE connection found for output from this node.
Contains SFNode/MFNode field with indirect access to other nodes. 


TiltReset
ProtoInstance
CameraMovement
No ROUTE connection found for output from this node.
Contains SFNode/MFNode field with indirect access to other nodes. 


TiltUp
ProtoInstance
CameraMovement
No ROUTE connection found for output from this node.
Contains SFNode/MFNode field with indirect access to other nodes. 


      ViewFrustumNode
ProtoInstance
ViewFrustum
No ROUTE connection found for output from this node.
Contains SFNode/MFNode field with indirect access to other nodes. 


Zoom
ProtoInstance
CameraShot
No ROUTE connection found for output from this node.
Contains SFNode/MFNode field with indirect access to other nodes. 


-->

<!-- Online at
https://www.web3d.org/x3d/content/examples/Basic/development/CameraExamplesIndex.html -->
<!-- Version control at
https://sourceforge.net/p/x3d/code/HEAD/tree/www.web3d.org/x3d/content/examples/Basic/development/CameraExamples.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)
    <ProtoInstance name='ProtoName'> <field name='fieldName'/> </ProtoInstance> -->

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