X3D Model Documentation: CameraExamples.x3d

  1  <?xml version="1.0" encoding="UTF-8"?>
  2  <!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 3.3//EN" "https://www.web3d.org/specifications/x3d-3.3.dtd">
  3  <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'>
  4       <head>
  5            <meta name='titlecontent='CameraExamples.x3d'/>
  6            <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.'/>
  7            <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.'/>
  8            <meta name='creatorcontent='Don Brutzman and Jeff Weekley'/>
  9            <meta name='createdcontent='18 June 2009'/>
 10            <meta name='modifiedcontent='29 January 2024'/>
 11            <meta name=' TODO content=' Schematron rules, backed up by initialize() checks '/>
 12            <meta name='referencecontent='BeyondViewpointCameraNodesWeb3D2009.pdf'/>
 13            <meta name='MovingImagecontent='CameraExamplesDemo.mp4'/>
 14            <meta name='referencecontent='https://www.web3d.org/x3d/specifications/ISO-IEC-FDIS-19775-1.2-X3D-AbstractSpecification/Part01/components/navigation.html'/>
 15            <meta name='subjectcontent='Camera nodes for Viewpoint navigation control'/>
 16            <meta name='referencecontent='CameraPrototypes.x3d'/>
 17            <meta name='referencecontent='CameraExamplesConsoleLog.txt'/>
 18            <meta name='referencecontent='http://sourceforge.net/p/x3d/code/HEAD/tree/www.web3d.org/x3d/content/examples/Basic/development/CameraExamples.avi'/>
 19            <meta name='referencecontent='https://www.web3d.org/x3d/content/examples/Basic/UniversalMediaMaterials/gridBack.x3d'/>
 20            <meta name='identifiercontent='https://www.web3d.org/x3d/content/examples/Basic/development/CameraExamples.x3d'/>
 21            <meta name='referencecontent='http://sourceforge.net/p/x3d/code/HEAD/tree/www.web3d.org/x3d/content/examples/Basic/development/CameraExamples.x3d'/>
 22            <meta name='generatorcontent='X3D-Edit 4.0, https://savage.nps.edu/X3D-Edit'/>
 23            <meta name='licensecontent='../license.html'/>
 24       </head>
<!--

<!--
Event Graph ROUTE Table shows event connections.
-->

<!-- to top 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
-->
 25       <Scene>
 26            <!-- =============== Camera ============== -->
 27            <WorldInfo title='CameraExamples.x3d'/>
 28            <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" '>
 29                 <field name='descriptiontype='SFStringaccessType='inputOutput'
                appinfo='Text description to be displayed for this Camera'/>
 30                 <field name='positiontype='SFVec3faccessType='inputOutput'
                appinfo='Camera position in local transformation frame, which is default prior to first CameraShot initialPosition getting activated'/>
 31                 <field name='orientationtype='SFRotationaccessType='inputOutput'
                appinfo='Camera rotation in local transformation frame, which is default prior to first CameraShot initialPosition getting activated'/>
 32                 <field name='fieldOfViewtype='SFFloataccessType='inputOutput'
                appinfo='pi/4'/>
 33                 <field name='set_fractiontype='SFFloataccessType='inputOnly'
                appinfo='input fraction drives interpolators'/>
 34                 <field name='set_bindtype='SFBoolaccessType='inputOnly'
                appinfo='input event binds or unbinds this Camera'/>
 35                 <field name='bindTimetype='SFTimeaccessType='outputOnly'
                appinfo='output event indicates when this Camera is bound'/>
 36                 <field name='isBoundtype='SFBoolaccessType='outputOnly'
                appinfo='output event indicates whether this Camera is bound or unbound'/>
 37                 <field name='nearClipPlanetype='SFFloataccessType='inputOutput'
                appinfo='Vector distance to near clipping plane corresponds to NavigationInfo.avatarSize[0]'/>
 38                 <field name='farClipPlanetype='SFFloataccessType='inputOutput'
                appinfo='Vector distance to far clipping plane corresponds to NavigationInfo.visibilityLimit'/>
 39                 <field name='shotstype='MFNodeaccessType='inputOutput'
                appinfo='Array of CameraShot nodes which in turn contain CameraMovement nodes'/>
 40                 <field name='headlighttype='SFBoolaccessType='inputOutput'
                appinfo='Whether camera headlight is on or off'/>
 41                 <field name='headlightColortype='SFColoraccessType='inputOutput'
                appinfo='Camera headlight color'/>
 42                 <field name='headlightIntensitytype='SFFloataccessType='inputOutput'
                appinfo='Camera headlight intensity'/>
 43                 <field name='filterColortype='SFColoraccessType='inputOutput'
                appinfo='Camera filter color that modifies virtual lens capture'/>
 44                 <field name='filterTransparencytype='SFFloataccessType='inputOutput'
                appinfo='Camera filter transparency that modifies virtual lens capture'/>
 45                 <field name='upVectortype='SFVec3faccessType='inputOutput'
                appinfo='upVector changes modify camera orientation (and possibly vice versa)'/>
 46                 <field name='fStoptype='SFFloataccessType='inputOutput'
                appinfo='Focal length divided effective aperture diameter indicating width of focal plane'/>
 47                 <field name='focusDistancetype='SFFloataccessType='inputOutput'
                appinfo='Distance to focal plane of sharpest focus'/>
 48                 <field name='isActivetype='SFBoolaccessType='outputOnly'
                appinfo='Mark start/stop with true/false output respectively useful to trigger external animations'/>
 49                 <field name='totalDurationtype='SFTimeaccessType='outputOnly'
                appinfo='Total duration of contained enabled CameraShot (and thus CameraMovement) move durations'/>
 50                 <field name='offlineRendertype='SFNodeaccessType='inputOutput'
                appinfo='OfflineRender node'/>
 51                 <field name='traceEnabledtype='SFBoolaccessType='initializeOnly'
                appinfo='enable console output to trace script computations and prototype progress'/>
 52                 <!-- Viewpoint-related fields, NavigationInfo-related fields and Camera-unique fields -->
 53            </ExternProtoDeclare>
 54            <!-- =============== CameraShot ============== -->
 55            <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" '>
 56                 <field name='descriptiontype='SFStringaccessType='inputOutput'
                appinfo='Text description to be displayed for this CameraShot'/>
 57                 <field name='enabledtype='SFBoolaccessType='inputOutput'
                appinfo='Whether this CameraShot can be activated'/>
 58                 <field name='movestype='MFNodeaccessType='inputOutput'
                appinfo='Set of CameraMovement nodes'>
 59                      <!-- initializing CameraMovement nodes are inserted here by scene author using ProtoInstance -->
 60                 </field>
 61                 <field name='initialPositiontype='SFVec3faccessType='inputOutput'
                appinfo='Setup to reinitialize camera position for this shot'/>
 62                 <field name='initialOrientationtype='SFRotationaccessType='inputOutput'
                appinfo='Setup to reinitialize camera rotation for this shot'/>
 63                 <field name='initialAimPointtype='SFVec3faccessType='inputOutput'
                appinfo='Setup to reinitialize aimpoint (relative location for camera direction) for this shot'/>
 64                 <field name='initialFieldOfViewtype='SFFloataccessType='inputOutput'
                appinfo='pi/4'/>
 65                 <field name='initialFStoptype='SFFloataccessType='inputOutput'
                appinfo='Focal length divided effective aperture diameter indicating width of focal plane'/>
 66                 <field name='initialFocusDistancetype='SFFloataccessType='inputOutput'
                appinfo='Distance to focal plane of sharpest focus'/>
 67                 <field name='shotDurationtype='SFTimeaccessType='outputOnly'
                appinfo='Subtotal duration of contained CameraMovement move durations'/>
 68                 <field name='isActivetype='SFBoolaccessType='outputOnly'
                appinfo='Mark start/stop with true/false output respectively useful to trigger external animations'/>
 69                 <field name='traceEnabledtype='SFBoolaccessType='initializeOnly'
                appinfo='enable console output to trace script computations and prototype progress'/>
 70            </ExternProtoDeclare>
 71            <!-- =============== CameraMovement ============== -->
 72            <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" '>
 73                 <field name='descriptiontype='SFStringaccessType='inputOutput'
                appinfo='Text description to be displayed for this CameraMovement'/>
 74                 <field name='enabledtype='SFBoolaccessType='inputOutput'
                appinfo='Whether this CameraMovement can be activated'/>
 75                 <field name='durationtype='SFFloataccessType='inputOutput'
                appinfo='Duration in seconds for this move'/>
 76                 <field name='goalPositiontype='SFVec3faccessType='inputOutput'
                appinfo='Goal camera position for this move'/>
 77                 <field name='goalOrientationtype='SFRotationaccessType='inputOutput'
                appinfo='Goal camera rotation for this move'/>
 78                 <field name='trackingtype='SFBoolaccessType='inputOutput'
                appinfo='Whether or not camera direction is tracking towards the aimPoint'/>
 79                 <field name='goalAimPointtype='SFVec3faccessType='inputOutput'
                appinfo='Goal aimPoint for this move, ignored if tracking=false'/>
 80                 <field name='goalFieldOfViewtype='SFFloataccessType='inputOutput'
                appinfo='Goal fieldOfView for this move'/>
 81                 <field name='goalFStoptype='SFFloataccessType='inputOutput'
                appinfo='Focal length divided effective aperture diameter indicating width of focal plane'/>
 82                 <field name='goalFocusDistancetype='SFFloataccessType='inputOutput'
                appinfo='Distance to focal plane of sharpest focus'/>
 83                 <field name='isActivetype='SFBoolaccessType='outputOnly'
                appinfo='Mark start/stop with true/false output respectively useful to trigger external animations'/>
 84                 <field name='traceEnabledtype='SFBoolaccessType='initializeOnly'
                appinfo='enable console output to trace script computations and prototype progress'/>
 85            </ExternProtoDeclare>
 86            <!-- =============== OfflineRender ============== -->
 87            <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" '>
 88                 <field name='descriptiontype='SFStringaccessType='inputOutput'
                appinfo='Text description to be displayed for this OfflineRender'/>
 89                 <field name='enabledtype='SFBoolaccessType='inputOutput'
                appinfo='Whether this OfflineRender can be activated'/>
 90                 <field name='frameRatetype='SFFloataccessType='inputOutput'
                appinfo='Frames per second recorded for this rendering'/>
 91                 <field name='frameSizetype='SFVec2faccessType='inputOutput'
                appinfo='Size of frame in number of pixels width and height'/>
 92                 <field name='pixelAspectRatiotype='SFFloataccessType='inputOutput'
                appinfo='Relative dimensions of pixel height/width typically 1.33 or 1'/>
 93                 <field name='set_startTimetype='SFTimeaccessType='inputOnly'
                appinfo='Begin render operation'/>
 94                 <field name='progresstype='SFFloataccessType='outputOnly'
                appinfo='Progress performing render operation (0..1)'/>
 95                 <field name='renderCompleteTimetype='SFTimeaccessType='outputOnly'
                appinfo='Render operation complete'/>
 96                 <field name='movieFormattype='MFStringaccessType='initializeOnly'
                appinfo='Format of rendered output movie (mpeg mp4 etc.), use first supported format'/>
 97                 <field name='imageFormattype='MFStringaccessType='initializeOnly'
                appinfo='Format of rendered output images (png jpeg gif tiff etc.) use first supported format'/>
 98                 <field name='traceEnabledtype='SFBoolaccessType='initializeOnly'
                appinfo='enable console output to trace script computations and prototype progress'/>
 99                 <!-- TODO non-photorealistic rendering (NPR) parameters -->
100            </ExternProtoDeclare>
101            <!-- =============== Lights, camera, action! ============== -->
102            <DirectionalLight direction='0 -1 0global='trueintensity='0.8'/>
103            <NavigationInfo type='"EXAMINE" "FLY" "ANY"'/>
104            <Viewpoint description='Camera test scene entry viewposition='0 2 12'/>
105            <Viewpoint description='Camera test scene from aboveorientation='1 0 0 -1.57079position='0 150 0'/>
106            <!-- Keep prototype instances in same file while developing, then move later -->
107            <!-- We will create examples matching those in the paper -->
108            <!-- =============== Camera.SimpleShotsTest ============== -->
109 
110                 <fieldValue name='descriptionvalue='SimpleShotsTest for camera Zoom Dolly Pan Boom and Tilt'/>
111                 <fieldValue name='headlightvalue='true'/>
112                 <fieldValue name='positionvalue='-4 4 10'/>
113                 <fieldValue name='shots'>
114                      <ProtoInstance name='CameraShotDEF='Zoom'>
115                           <fieldValue name='descriptionvalue='Simple shot of Camera Zoom'/>
116                           <fieldValue name='initialPositionvalue='-50 1 -10'/>
117                           <fieldValue name='initialOrientationvalue='0 1 0 0'/>
118                           <fieldValue name='moves'>
119                                <ProtoInstance name='CameraMovement'>
120                                     <fieldValue name='descriptionvalue='Camera Zoom In'/>
121                                     <fieldValue name='durationvalue='3'/>
122                                     <fieldValue name='goalPositionvalue='-50 1 -15'/>
123                                     <fieldValue name='goalOrientationvalue='0 1 0 0'/>
124                                </ProtoInstance>
125                                <ProtoInstance name='CameraMovement'>
126                                     <fieldValue name='descriptionvalue='Camera Zoom Out'/>
127                                     <fieldValue name='durationvalue='3'/>
128                                     <fieldValue name='goalPositionvalue='-50 1 -10'/>
129                                     <fieldValue name='goalOrientationvalue='0 1 0 0'/>
130                                </ProtoInstance>
131                                <ProtoInstance name='CameraMovement'>
132                                     <fieldValue name='descriptionvalue='Camera Pause'/>
133                                     <fieldValue name='durationvalue='1'/>
134                                     <fieldValue name='goalPositionvalue='-50 1 -10'/>
135                                     <fieldValue name='goalOrientationvalue='0 1 0 0'/>
136                                </ProtoInstance>
137                           </fieldValue>
138                      </ProtoInstance>
139                      <ProtoInstance name='CameraShotDEF='Dolly'>
140                           <fieldValue name='descriptionvalue='Simple shot of Camera Dolly'/>
141                           <fieldValue name='initialPositionvalue='-40 1 -10'/>
142                           <fieldValue name='initialOrientationvalue='0 1 0 0'/>
143                           <fieldValue name='moves'>
144                                <ProtoInstance name='CameraMovementDEF='DollyMove1'>
145                                     <fieldValue name='descriptionvalue='Camera Dolly from Right to Left'/>
146                                     <fieldValue name='durationvalue='3'/>
147                                     <fieldValue name='goalPositionvalue='-45 1 -10'/>
148                                     <fieldValue name='goalOrientationvalue='0 1 0 0'/>
149                                </ProtoInstance>
150                                <ProtoInstance name='CameraMovement'>
151                                     <fieldValue name='descriptionvalue='Camera Dolly from Left to Right'/>
152                                     <fieldValue name='durationvalue='3'/>
153                                     <fieldValue name='goalPositionvalue='-40 1 -10'/>
154                                     <fieldValue name='goalOrientationvalue='0 1 0 0'/>
155                                </ProtoInstance>
156                                <ProtoInstance name='CameraMovement'>
157                                     <fieldValue name='descriptionvalue='Camera Pause'/>
158                                     <fieldValue name='durationvalue='1'/>
159                                     <fieldValue name='goalPositionvalue='-40 1 -10'/>
160                                     <fieldValue name='goalOrientationvalue='0 1 0 0'/>
161                                </ProtoInstance>
162                           </fieldValue>
163                      </ProtoInstance>
164                      <ProtoInstance name='CameraShotDEF='Pan'>
165                           <fieldValue name='descriptionvalue='Simple shot of Camera Pan left right and back to center'/>
166                           <fieldValue name='initialPositionvalue='-30 1 -10'/>
167                           <fieldValue name='initialOrientationvalue='0 1 0 0'/>
168                           <fieldValue name='moves'>
169                                <ProtoInstance name='CameraMovementDEF='PanLeft'>
170                                     <fieldValue name='descriptionvalue='Pan Left'/>
171                                     <fieldValue name='durationvalue='2'/>
172                                     <fieldValue name='goalPositionvalue='-30 1 -10'/>
173                                     <fieldValue name='goalOrientationvalue='0 1 0 0.4'/>
174                                </ProtoInstance>
175                                <ProtoInstance name='CameraMovementDEF='PanRight'>
176                                     <fieldValue name='descriptionvalue='Pan Right'/>
177                                     <fieldValue name='durationvalue='3'/>
178                                     <fieldValue name='goalPositionvalue='-30 1 -10'/>
179                                     <fieldValue name='goalOrientationvalue='0 1 0 -0.4'/>
180                                </ProtoInstance>
181                                <ProtoInstance name='CameraMovement'>
182                                     <fieldValue name='descriptionvalue='Camera Pan back to Center'/>
183                                     <fieldValue name='durationvalue='2'/>
184                                     <fieldValue name='goalPositionvalue='-30 1 -10'/>
185                                     <fieldValue name='goalOrientationvalue='0 1 0 0'/>
186                                </ProtoInstance>
187                                <ProtoInstance name='CameraMovement'>
188                                     <fieldValue name='descriptionvalue='Camera Pause'/>
189                                     <fieldValue name='durationvalue='2'/>
190                                     <fieldValue name='goalPositionvalue='-30 1 -10'/>
191                                     <fieldValue name='goalOrientationvalue='0 1 0 0'/>
192                                </ProtoInstance>
193                           </fieldValue>
194                      </ProtoInstance>
195                      <ProtoInstance name='CameraShotDEF='CameraBoom'>
196                           <fieldValue name='descriptionvalue='Camera Boom'/>
197                           <fieldValue name='initialPositionvalue='-20 1 -10'/>
198                           <fieldValue name='initialOrientationvalue='0 1 0 0'/>
199                           <fieldValue name='moves'>
200                                <ProtoInstance name='CameraMovementDEF='CameraBoomUp'>
201                                     <fieldValue name='descriptionvalue='Camera Boom Up'/>
202                                     <fieldValue name='durationvalue='3'/>
203                                     <fieldValue name='goalPositionvalue='-20 5 -10'/>
204                                     <fieldValue name='goalOrientationvalue='0 1 0 0'/>
205                                </ProtoInstance>
206                                <ProtoInstance name='CameraMovementDEF='BoomDown'>
207                                     <fieldValue name='descriptionvalue='Camera Boom Down'/>
208                                     <fieldValue name='durationvalue='3'/>
209                                     <fieldValue name='goalPositionvalue='-20 1 -10'/>
210                                     <fieldValue name='goalOrientationvalue='0 1 0 0'/>
211                                </ProtoInstance>
212                                <ProtoInstance name='CameraMovementDEF='BoomPause'>
213                                     <fieldValue name='descriptionvalue='Camera Pause'/>
214                                     <fieldValue name='durationvalue='2'/>
215                                     <fieldValue name='goalPositionvalue='-20 1 -10'/>
216                                     <fieldValue name='goalOrientationvalue='0 1 0 0'/>
217                                </ProtoInstance>
218                           </fieldValue>
219                      </ProtoInstance>
220                      <ProtoInstance name='CameraShotDEF='CameraTilt'>
221                           <fieldValue name='descriptionvalue='Camera Tilt'/>
222                           <fieldValue name='initialPositionvalue='-10 1 -10'/>
223                           <fieldValue name='initialOrientationvalue='0 0 1 0'/>
224                           <fieldValue name='traceEnabledvalue='true'/>
225                           <fieldValue name='moves'>
226                                <ProtoInstance name='CameraMovement'>
227                                     <fieldValue name='descriptionvalue='Camera Tilt Pause'/>
228                                     <fieldValue name='durationvalue='1'/>
229                                     <fieldValue name='goalPositionvalue='-10 1 -10'/>
230                                     <fieldValue name='goalOrientationvalue='0 0 1 0'/>
231                                </ProtoInstance>
232                                <ProtoInstance name='CameraMovementDEF='TiltDown'>
233                                     <fieldValue name='descriptionvalue='Camera Tilt Left'/>
234                                     <fieldValue name='durationvalue='3'/>
235                                     <fieldValue name='goalPositionvalue='-10 1 -10'/>
236                                     <fieldValue name='goalOrientationvalue='0 0 1 0.785'/>
237                                </ProtoInstance>
238                                <ProtoInstance name='CameraMovementDEF='TiltPause'>
239                                     <fieldValue name='descriptionvalue='Camera Tilt Pause'/>
240                                     <fieldValue name='durationvalue='1'/>
241                                     <fieldValue name='goalPositionvalue='-10 1 -10'/>
242                                     <fieldValue name='goalOrientationvalue='0 0 1 0.785'/>
243                                </ProtoInstance>
244                                <ProtoInstance name='CameraMovement'>
245                                     <fieldValue name='descriptionvalue='Camera Tilt Right'/>
246                                     <fieldValue name='durationvalue='3'/>
247                                     <fieldValue name='goalPositionvalue='-10 1 -10'/>
248                                     <fieldValue name='goalOrientationvalue='0 0 1 -0.785'/>
249                                </ProtoInstance>
250                                <ProtoInstance name='CameraMovement'>
251                                     <fieldValue name='descriptionvalue='Camera Tilt Pause'/>
252                                     <fieldValue name='durationvalue='1'/>
253                                     <fieldValue name='goalPositionvalue='-10 1 -10'/>
254                                     <fieldValue name='goalOrientationvalue='0 0 1 -0.785'/>
255                                </ProtoInstance>
256                                <ProtoInstance name='CameraMovementDEF='TiltReset'>
257                                     <fieldValue name='descriptionvalue='Camera Tilt Reset'/>
258                                     <fieldValue name='durationvalue='1'/>
259                                     <fieldValue name='goalPositionvalue='-10 1 -10'/>
260                                     <fieldValue name='goalOrientationvalue='0 0 1 0'/>
261                                </ProtoInstance>
262                                <ProtoInstance name='CameraMovementDEF='TiltUp'>
263                                     <fieldValue name='descriptionvalue='Return to home'/>
264                                     <fieldValue name='durationvalue='2'/>
265                                     <fieldValue name='goalPositionvalue='0 2 12'/>
266                                     <fieldValue name='goalOrientationvalue='0 0 1 0'/>
267                                </ProtoInstance>
268                           </fieldValue>
269                      </ProtoInstance>
270                 </fieldValue>
271            </ProtoInstance>
272            <Group DEF='AnimationGroup.SimpleShots'>
273 
               <!-- ROUTE information for CameraTimer.SimpleShots node:  [from Camera.SimpleShotsTest.totalDuration to cycleInterval ] [from TextTouch.SimpleShots.touchTime to startTime ] [from fraction_changed to Camera.SimpleShotsTest.set_fraction ] -->
               <TimeSensor DEF='CameraTimer.SimpleShots'/>
274                 <!-- initialize clock to match totalDuration of combined Shot Moves -->
275                 < ROUTE  fromNode='Camera.SimpleShotsTest' fromField='totalDuration' toNode='CameraTimer.SimpleShots' toField='cycleInterval'/>
276                 <!-- TimeSensor animates the CameraClock since that maintains the computed PositionInterpolator and OrientationInterpolator -->
277                 < ROUTE  fromNode='CameraTimer.SimpleShots' fromField='fraction_changed' toNode='Camera.SimpleShotsTest' toField='set_fraction'/>
278                 <Transform DEF='Trigger.SimpleShotstranslation='-4 4 0'>
279 
                    <!-- ROUTE information for TextTouchActive.SimpleShotsFilter node:  [from TextTouch.SimpleShots.isActive to set_boolean ] [from inputTrue to Camera.SimpleShotsTest.set_bind ] -->
                    <BooleanFilter DEF='TextTouchActive.SimpleShotsFilter'/>
280 
                    <!-- 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'/>
281                      < ROUTE  fromNode='TextTouchActive.SimpleShotsFilter' fromField='inputTrue' toNode='Camera.SimpleShotsTest' toField='set_bind'/>
282                      < ROUTE  fromNode='TextTouch.SimpleShots' fromField='isActive' toNode='TextTouchActive.SimpleShotsFilter' toField='set_boolean'/>
283                      < ROUTE  fromNode='TextTouch.SimpleShots' fromField='touchTime' toNode='CameraTimer.SimpleShots' toField='startTime'/>
284                      <!-- Selectable Text design pattern has transparent Box and TouchSensor description as a tooltip -->
285                      <Shape>
286                           <Text string='"Click to animate" "SimpleShotsTest"'>
287                                <FontStyle justify='"MIDDLE" "MIDDLE"'/>
288                           </Text>
289                           <Appearance>
290 
                              <!-- Material ArtDeco5 is a DEF node that has 1 USE node: USE_1 -->
                              <Material DEF='ArtDeco5ambientIntensity='0.24diffuseColor='0.945455 0.318988 0.321717shininess='0.01specularColor='0.072727 0.021705 0.010732'>
291                                     <!-- Universal Media Library: ArtDeco 5 -->
292                                </Material>
293                           </Appearance>
294                      </Shape>
295                      <!-- Simplify intersection test for user selecting text -->
296 
                    <!-- Shape TransparentBox is a DEF node that has 1 USE node: USE_1 -->
                    <Shape DEF='TransparentBox'>
297                           <Appearance>
298                                <Material transparency='1'/>
299                           </Appearance>
300                           <Box size='6 2 0.0001'/>
301                      </Shape>
302                      <TouchSensor description='Click to animate SimpleShotsTest'/>
303                 </Transform>
304            </Group>
305            <Group DEF='SimpleShotsTargets'>
306                 <Transform DEF='TargetBoxZoomtranslation='-50 1 -20'>
307                      <Shape>
308                           <Box/>
309                           <Appearance>
310                                <Material/>
311                                <ImageTexture   url=' "images/CameraMoveZoom.png " "https://www.web3d.org/x3d/content/examples/Basic/development/images/CameraMoveZoom.png " '/>
312                           </Appearance>
313                      </Shape>
314                      <Transform translation='0 2 0'>
315                           <Shape>
316                                <Text string='"Zoom in, out"'>
317                                     <FontStyle justify='"MIDDLE" "MIDDLE"'/>
318                                </Text>
319                                <Appearance>
320                                     <Material/>
321                                </Appearance>
322                           </Shape>
323                      </Transform>
324                 </Transform>
325                 <Transform DEF='TargetBoxDollytranslation='-40 1 -20'>
326                      <Shape>
327                           <Box/>
328                           <Appearance>
329                                <Material/>
330                                <ImageTexture   url=' "images/CameraMoveDolly.png " "https://www.web3d.org/x3d/content/examples/Basic/development/images/CameraMoveDolly.png " '/>
331                           </Appearance>
332                      </Shape>
333                      <Transform translation='0 2 0'>
334                           <Shape>
335                                <Text string='"Dolly left, right"'>
336                                     <FontStyle justify='"MIDDLE" "MIDDLE"'/>
337                                </Text>
338                                <Appearance>
339                                     <Material/>
340                                </Appearance>
341                           </Shape>
342                      </Transform>
343                 </Transform>
344                 <Transform DEF='TargetBoxPantranslation='-30 1 -20'>
345                      <Shape>
346                           <Box/>
347                           <Appearance>
348                                <Material/>
349                                <ImageTexture   url=' "images/CameraMovePan.png " "https://www.web3d.org/x3d/content/examples/Basic/development/images/CameraMovePan.png " '/>
350                           </Appearance>
351                      </Shape>
352                      <Transform translation='0 2 0'>
353                           <Shape>
354                                <Text string='"Pan left, right"'>
355                                     <FontStyle justify='"MIDDLE" "MIDDLE"'/>
356                                </Text>
357                                <Appearance>
358                                     <Material/>
359                                </Appearance>
360                           </Shape>
361                      </Transform>
362                 </Transform>
363                 <Transform DEF='TargetBoxBoomtranslation='-20 1 -20'>
364                      <Shape>
365                           <Box/>
366                           <Appearance>
367                                <Material/>
368                                <ImageTexture   url=' "images/CameraMoveBoom.png " "https://www.web3d.org/x3d/content/examples/Basic/development/images/CameraMoveBoom.png " '/>
369                           </Appearance>
370                      </Shape>
371                      <Transform translation='0 2 0'>
372                           <Shape>
373                                <Text string='"Boom up, down"'>
374                                     <FontStyle justify='"MIDDLE" "MIDDLE"'/>
375                                </Text>
376                                <Appearance>
377                                     <Material/>
378                                </Appearance>
379                           </Shape>
380                      </Transform>
381                 </Transform>
382                 <Transform DEF='TargetBoxTilttranslation='-10 1 -20'>
383                      <Shape>
384                           <Box/>
385                           <Appearance>
386                                <Material/>
387                                <ImageTexture   url=' "images/CameraMoveTilt.png " "https://www.web3d.org/x3d/content/examples/Basic/development/images/CameraMoveTilt.png " '/>
388                           </Appearance>
389                      </Shape>
390                      <Transform translation='0 2 0'>
391                           <Shape>
392                                <Text string='"Tilt left, right"'>
393                                     <FontStyle justify='"MIDDLE" "MIDDLE"'/>
394                                </Text>
395                                <Appearance>
396                                     <Material/>
397                                </Appearance>
398                           </Shape>
399                      </Transform>
400                 </Transform>
401            </Group>
402            <!-- =============== Camera.AimPointTest ============== -->
403 
404                 <fieldValue name='descriptionvalue='AimPointTest for moving camera tracking moving target'/>
405                 <fieldValue name='positionvalue='4 4 10'/>
406                 <fieldValue name='shots'>
407                      <ProtoInstance name='CameraShotDEF='Shot5'>
408                           <fieldValue name='descriptionvalue='#3 Tracking shot'/>
409                           <fieldValue name='initialPositionvalue='6 6 10'/>
410                           <fieldValue name='initialOrientationvalue='0 1 0 0'/>
411                           <fieldValue name='moves'>
412 
                              <!-- ROUTE information for MoveAimPoint3.1 node:  [from BoxPath.value_changed to goalAimPoint ] -->
                              <ProtoInstance name='CameraMovementDEF='MoveAimPoint3.1'>
413                                     <fieldValue name='descriptionvalue='AimPoint 3.1 moving BoxPath'/>
414                                     <fieldValue name='trackingvalue='true'/>
415                                     <fieldValue name='durationvalue='8'/>
416                                     <fieldValue name='goalPositionvalue='6 6 10'/>
417                                     <!-- goalAimPoint modified by ROUTE to match moving Box -->
418                                </ProtoInstance>
419 
                              <!-- ROUTE information for MoveAimPoint3.2 node:  [from BoxPath.value_changed to goalAimPoint ] -->
                              <ProtoInstance name='CameraMovementDEF='MoveAimPoint3.2'>
420                                     <fieldValue name='descriptionvalue='AimPoint 3.2 pan right while tracking'/>
421                                     <fieldValue name='trackingvalue='true'/>
422                                     <fieldValue name='durationvalue='8'/>
423                                     <fieldValue name='goalPositionvalue='40 6 12'/>
424                                     <!-- goalAimPoint modified by ROUTE to match moving Box -->
425                                </ProtoInstance>
426 
                              <!-- ROUTE information for MoveAimPoint3.3 node:  [from BoxPath.value_changed to goalAimPoint ] -->
                              <ProtoInstance name='CameraMovementDEF='MoveAimPoint3.3'>
427                                     <fieldValue name='descriptionvalue='AimPoint 3.3 boom up while tracking'/>
428                                     <fieldValue name='trackingvalue='true'/>
429                                     <fieldValue name='durationvalue='3'/>
430                                     <fieldValue name='goalPositionvalue='40 20 13'/>
431                                     <!-- goalAimPoint modified by ROUTE to match moving Box -->
432                                </ProtoInstance>
433                                <ProtoInstance name='CameraMovementDEF='MoveAimPoint3.4'>
434                                     <fieldValue name='descriptionvalue='AimPoint 3.4 restore camera back to home'/>
435                                     <fieldValue name='trackingvalue='true'/>
436                                     <fieldValue name='durationvalue='5'/>
437                                     <fieldValue name='goalPositionvalue='4 4 10'/>
438                                     <fieldValue name='goalAimPointvalue='4 4 0'/>
439                                     <fieldValue name='goalOrientationvalue='0 1 0 0'/>
440                                     <!-- can test tracking or not using these values -->
441                                </ProtoInstance>
442                           </fieldValue>
443                      </ProtoInstance>
444                 </fieldValue>
445            </ProtoInstance>
446            <Group DEF='AnimationGroup.AimPointTest'>
447 
               <!-- ROUTE information for CameraTimer.AimPointTest node:  [from Camera.AimPointTest.totalDuration to cycleInterval ] [from TextTouch.AimPointTest.touchTime to startTime ] [from fraction_changed to Camera.AimPointTest.set_fraction ] -->
               <TimeSensor DEF='CameraTimer.AimPointTest'/>
448                 <!-- initialize clock to match totalDuration of combined Shot Moves -->
449                 < ROUTE  fromNode='Camera.AimPointTest' fromField='totalDuration' toNode='CameraTimer.AimPointTest' toField='cycleInterval'/>
450                 <!-- TimeSensor animates the CameraClock since that maintains the computed PositionInterpolator and OrientationInterpolator -->
451                 < ROUTE  fromNode='CameraTimer.AimPointTest' fromField='fraction_changed' toNode='Camera.AimPointTest' toField='set_fraction'/>
452                 <Transform DEF='Trigger.AimPointTesttranslation='4 4 0'>
453 
                    <!-- ROUTE information for TextTouchActive.AimPointFilter node:  [from TextTouch.AimPointTest.isActive to set_boolean ] [from inputTrue to Camera.AimPointTest.set_bind ] -->
                    <BooleanFilter DEF='TextTouchActive.AimPointFilter'/>
454 
                    <!-- 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'/>
455                      < ROUTE  fromNode='TextTouchActive.AimPointFilter' fromField='inputTrue' toNode='Camera.AimPointTest' toField='set_bind'/>
456                      < ROUTE  fromNode='TextTouch.AimPointTest' fromField='isActive' toNode='TextTouchActive.AimPointFilter' toField='set_boolean'/>
457                      < ROUTE  fromNode='TextTouch.AimPointTest' fromField='touchTime' toNode='CameraTimer.AimPointTest' toField='startTime'/>
458                      <Shape>
459                           <Text string='"Click to animate" "AimPointTest"'>
460                                <FontStyle justify='"MIDDLE" "MIDDLE"'/>
461                           </Text>
462                           <Appearance>
463                                <Material USE='ArtDeco5'/>
464                           </Appearance>
465                      </Shape>
466                      <Shape USE='TransparentBox'/>
467                      <TouchSensor description='Click to animate AimPointTest'/>
468                 </Transform>
469            </Group>
470            <!-- TODO build a test once implemented -->
471            <ProtoInstance name='OfflineRender'/>
472            <!-- =============== animate a camera shape to visualize view changes ============== -->
473 
474                 <!-- move CameraShape using active Camera -->
475                 < ROUTE  fromNode='Camera.SimpleShotsTest' fromField='position' toNode='CameraShapeTransform' toField='translation'/>
476                 < ROUTE  fromNode='Camera.SimpleShotsTest' fromField='orientation' toNode='CameraShapeTransform' toField='rotation'/>
477                 < ROUTE  fromNode='Camera.AimPointTest' fromField='position' toNode='CameraShapeTransform' toField='translation'/>
478                 < ROUTE  fromNode='Camera.AimPointTest' fromField='orientation' toNode='CameraShapeTransform' toField='rotation'/>
479                 <Transform DEF='CameraOffsetTransformtranslation='0 0 0.25'>
480 
                    <!-- ROUTE information for CameraShapeTouched node:  [from isActive to ViewFrustumToggle.set_boolean ] -->
                    <TouchSensor DEF='CameraShapeTouched'/>
481                      <Inline DEF='CameraShape'   url=' "CameraShape.x3d" "https://www.web3d.org/x3d/content/examples/Basic/development/CameraShape.x3d" '/>
482                      <Shape DEF='SightLine'>
483                           <IndexedLineSet coordIndex='0 1'>
484                                <Coordinate point='0 0 0 0 0 -100'/>
485                           </IndexedLineSet>
486                           <Appearance>
487                                <Material emissiveColor='0.8 0.8 0.4'/>
488                           </Appearance>
489                      </Shape>
490                 </Transform>
491                 <!-- Display frustum to show camera view within the scene, toggled by user selecting CameraShape -->
492                 <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" '>
493                      <field name='ViewpointNodetype='SFNodeaccessType='initializeOnly'
                     appinfo='required: insert Viewpoint DEF or USE node for view of interest'/>
494                      <field name='NavigationInfoNodetype='SFNodeaccessType='initializeOnly'
                     appinfo='required: insert NavigationInfo DEF or USE node of interest'/>
495                      <field name='visibletype='SFBoolaccessType='inputOutput'
                     appinfo='whether or not frustum geometry is rendered'/>
496                      <field name='lineColortype='SFColoraccessType='inputOutput'
                     appinfo='RGB color of ViewFrustum outline, default value 0.9 0.9 0.9'/>
497                      <field name='frustumColortype='SFColoraccessType='inputOutput'
                     appinfo='RGB color of ViewFrustum hull geometry, default value 0.8 0.8 0.8'/>
498                      <field name='transparencytype='SFFloataccessType='inputOutput'
                     appinfo='transparency of ViewFrustum hull geometry, default value 0.5'/>
499                      <field name='aspectRatiotype='SFFloataccessType='inputOutput'
                     appinfo='assumed ratio height/width, default value 0.75'/>
500                      <field name='tracetype='SFBoolaccessType='initializeOnly'
                     appinfo='debug support, default false'/>
501                 </ExternProtoDeclare>
502 
               <!-- ROUTE information for ViewFrustumNode node:  [from ViewFrustumToggle.toggle to visible ] -->
               <ProtoInstance name='ViewFrustumDEF='ViewFrustumNode'>
503                      <fieldValue name='ViewpointNode'>
504                           <Viewpoint DEF='FrustumViewpointdescription='viewpoint for ViewFrustumposition='0 0 0'/>
505                      </fieldValue>
506                      <fieldValue name='NavigationInfoNode'>
507                           <NavigationInfo DEF='TestNavigationInfotransitionType='"ANIMATE"visibilityLimit='100'/>
508                      </fieldValue>
509                      <fieldValue name='visiblevalue='false'/>
510                      <fieldValue name='lineColorvalue='0.9 0.9 0.9'/>
511                      <fieldValue name='frustumColorvalue='0.8 0.8 0.8'/>
512                      <fieldValue name='transparencyvalue='0.95'/>
513                 </ProtoInstance>
514 
               <!-- ROUTE information for ViewFrustumToggle node:  [from CameraShapeTouched.isActive to set_boolean ] [from toggle to ViewFrustumNode.visible ] -->
               <BooleanToggle DEF='ViewFrustumTogglecontainerField='children'/>
515                 < ROUTE  fromNode='CameraShapeTouched' fromField='isActive' toNode='ViewFrustumToggle' toField='set_boolean'/>
516                 < ROUTE  fromNode='ViewFrustumToggle' fromField='toggle' toNode='ViewFrustumNode' toField='visible'/>
517            </Transform>
518            <!-- =============== add checkerboard, axes and other things to look at while animating ============== -->
519            <Background skyColor='0.282353 0.380392 0.470588'/>
520            <Transform rotation='1 0 0 -1.57079scale='10 10 10'>
521                 <Shape>
522                      <Appearance>
523                           <Material ambientIntensity='0.01diffuseColor='1.0 1.0 1.0shininess='0.05'/>
524                      </Appearance>
525                      <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'>
526                           <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'/>
527                           <Color color='0.435294 0.741176 0 0 0.560784 0.580392'/>
528                      </IndexedFaceSet>
529                 </Shape>
530            </Transform>
531            <Transform scale='3 3 3translation='0 0.25 0'>
532                 <Inline DEF='CoordinateAxes'   url=' "../../X3dForWebAuthors/Chapter03Grouping/CoordinateAxes.x3d" "../../Savage/Tools/Authoring/CoordinateAxes.x3d" "https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/Chapter03Grouping/CoordinateAxes.x3d" "https://savage.nps.edu/Savage/Tools/Authoring/CoordinateAxes.x3d" "../../X3dForWebAuthors/Chapter03Grouping/CoordinateAxes.wrl" "../../Savage/Tools/Authoring/CoordinateAxes.wrl" "https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/Chapter03Grouping/CoordinateAxes.wrl" "https://savage.nps.edu/Savage/Tools/Authoring/CoordinateAxes.wrl" '/>
533            </Transform>
534 
          <!-- ROUTE information for MovingBoxTransform node:  [from BoxPath.value_changed to translation ] -->
          <Transform DEF='MovingBoxTransform'>
535 
               <!-- ROUTE information for BoxPath node:  [from BoxTimer.fraction_changed to set_fraction ] [from value_changed to MovingBoxTransform.translation ] [from value_changed to MoveAimPoint3.1.goalAimPoint ] [from value_changed to MoveAimPoint3.2.goalAimPoint ] [from value_changed to MoveAimPoint3.3.goalAimPoint ] -->
               <PositionInterpolator DEF='BoxPathkey='0 0.25 0.5 0.75 1keyValue='-5 1 5 45 1 5 45 1 -45 -5 1 -45 -5 1 5'/>
536 
               <!-- ROUTE information for BoxTimer node:  [from fraction_changed to BoxPath.set_fraction ] -->
               <TimeSensor DEF='BoxTimercycleInterval='10loop='true'/>
537                 < ROUTE  fromNode='BoxPath' fromField='value_changed' toNode='MovingBoxTransform' toField='translation'/>
538                 < ROUTE  fromNode='BoxPath' fromField='value_changed' toNode='MoveAimPoint3.1' toField='goalAimPoint'/>
539                 < ROUTE  fromNode='BoxPath' fromField='value_changed' toNode='MoveAimPoint3.2' toField='goalAimPoint'/>
540                 < ROUTE  fromNode='BoxPath' fromField='value_changed' toNode='MoveAimPoint3.3' toField='goalAimPoint'/>
541                 < ROUTE  fromNode='BoxTimer' fromField='fraction_changed' toNode='BoxPath' toField='set_fraction'/>
542                 <Shape>
543                      <Box/>
544                      <Appearance>
545                           <Material/>
546                           <ImageTexture   url=' "../earth-topo.png " "https://www.web3d.org/x3d/content/examples/Basic/earth-topo.png " '/>
547                      </Appearance>
548                 </Shape>
549            </Transform>
550            <!-- ================ CrossHair visualization for center of screen ================ -->
551            <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" '>
552                 <field name='enabledtype='SFBoolaccessType='initializeOnly'
                appinfo='whether CrissHair orititype is enabled or not'/>
553                 <field name='set_enabledtype='SFBoolaccessType='inputOnly'
                appinfo='control whether enabled/disabled'/>
554                 <field name='markerColortype='SFColoraccessType='inputOutput'
                appinfo='color of CrossHair marker'/>
555                 <field name='scaletype='SFVec3faccessType='inputOutput'
                appinfo='size of CrossHair in meters'/>
556                 <field name='positionOffsetFromCameratype='SFVec3faccessType='inputOutput'
                appinfo='distance in front of HUD viewpoint'/>
557            </ExternProtoDeclare>
558 
          <!-- ROUTE information for CrossHairInstance node:  [from Camera.SimpleShotsTest.isBound to set_enabled ] [from Camera.AimPointTest.isBound to set_enabled ] -->
          <ProtoInstance name='CrossHairDEF='CrossHairInstance'>
559                 <fieldValue name='enabledvalue='true'/>
560                 <fieldValue name='markerColorvalue='1 0.5 0'/>
561                 <fieldValue name='scalevalue='1 1 1'/>
562                 <fieldValue name='positionOffsetFromCameravalue='0 0 -6'/>
563            </ProtoInstance>
564            <!-- turn on CrossHairInstance when animated camera viewpoints are bound -->
565            < ROUTE  fromNode='Camera.SimpleShotsTest' fromField='isBound' toNode='CrossHairInstance' toField='set_enabled'/>
566            < ROUTE  fromNode='Camera.AimPointTest' fromField='isBound' toNode='CrossHairInstance' toField='set_enabled'/>
567            <!-- 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'/> -->
568            <!-- =============== TODO Launch Prototype Example ============== -->
569            <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" '>
570                 <Transform translation='0 -3 0'>
571                      <Shape>
572                           <Text string='"CameraPrototype" "defines a prototype" "" "Click on this text to see" "CameraExample scene"'>
573                                <FontStyle justify='"MIDDLE" "MIDDLE"size='0.5'/>
574                           </Text>
575                           <Appearance>
576                                <Material diffuseColor='1 1 0.2'/>
577                           </Appearance>
578                      </Shape>
579                 </Transform>
580            </Anchor>
581       </Scene>
582  </X3D>
<!--

<!--
Event Graph ROUTE Table shows event connections.
-->

<!-- to top 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
-->
X3D Tooltips element index: Anchor, Appearance, Background, BooleanFilter, BooleanToggle, Box, Color, Coordinate, DirectionalLight, ExternProtoDeclare, field, fieldValue, FontStyle, Group, head, ImageTexture, IndexedFaceSet, IndexedLineSet, Inline, Material, meta, NavigationInfo, PositionInterpolator, ProtoInstance, ROUTE, Scene, Shape, Text, TimeSensor, TouchSensor, Transform, Viewpoint, WorldInfo, X3D, accessType and type, XML data types, field types

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.


TouchSensor
description='Click to animate SimpleShotsTest' 
User-interaction hint for this node.(TouchSensor description is providing a tooltip)  


TouchSensor
description='Click to animate AimPointTest' 
User-interaction hint for this node.(TouchSensor description is providing a tooltip)  

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 chain 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 chain 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 events from this node.
This ProtoInstance contains SFNode/MFNode fieldValue declarations with
direct access to other nodes, and thus has potential to produce run-time animation. 


ProtoInstance
CameraMovement
No ROUTE connection found for output events from this node.
This ProtoInstance contains SFNode/MFNode fieldValue declarations with
direct access to other nodes, and thus has potential to produce run-time animation. 


ProtoInstance
CameraMovement
No ROUTE connection found for output events from this node.
This ProtoInstance contains SFNode/MFNode fieldValue declarations with
direct access to other nodes, and thus has potential to produce run-time animation. 


ProtoInstance
CameraMovement
No ROUTE connection found for output events from this node.
This ProtoInstance contains SFNode/MFNode fieldValue declarations with
direct access to other nodes, and thus has potential to produce run-time animation. 


ProtoInstance
CameraMovement
No ROUTE connection found for output events from this node.
This ProtoInstance contains SFNode/MFNode fieldValue declarations with
direct access to other nodes, and thus has potential to produce run-time animation. 


ProtoInstance
CameraMovement
No ROUTE connection found for output events from this node.
This ProtoInstance contains SFNode/MFNode fieldValue declarations with
direct access to other nodes, and thus has potential to produce run-time animation. 


ProtoInstance
CameraMovement
No ROUTE connection found for output events from this node.
This ProtoInstance contains SFNode/MFNode fieldValue declarations with
direct access to other nodes, and thus has potential to produce run-time animation. 


ProtoInstance
CameraMovement
No ROUTE connection found for output events from this node.
This ProtoInstance contains SFNode/MFNode fieldValue declarations with
direct access to other nodes, and thus has potential to produce run-time animation. 


ProtoInstance
CameraMovement
No ROUTE connection found for output events from this node.
This ProtoInstance contains SFNode/MFNode fieldValue declarations with
direct access to other nodes, and thus has potential to produce run-time animation. 


ProtoInstance
CameraMovement
No ROUTE connection found for output events from this node.
This ProtoInstance contains SFNode/MFNode fieldValue declarations with
direct access to other nodes, and thus has potential to produce run-time animation. 


ProtoInstance
OfflineRender
No ROUTE connection found for output events from this node.
This ProtoInstance contains SFNode/MFNode fieldValue declarations with
direct access to other nodes, and thus has potential to produce run-time animation. 

BoomDown
ProtoInstance
CameraMovement
No ROUTE connection found for output events from this node.
This ProtoInstance contains SFNode/MFNode fieldValue declarations with
direct access to other nodes, and thus has potential to produce run-time animation. 

BoomPause
ProtoInstance
CameraMovement
No ROUTE connection found for output events from this node.
This ProtoInstance contains SFNode/MFNode fieldValue declarations with
direct access to other nodes, and thus has potential to produce run-time animation. 

CameraBoom
ProtoInstance
CameraShot
No ROUTE connection found for output events from this node.
This ProtoInstance contains SFNode/MFNode fieldValue declarations with
direct access to other nodes, and thus has potential to produce run-time animation. 

CameraBoomUp
ProtoInstance
CameraMovement
No ROUTE connection found for output events from this node.
This ProtoInstance contains SFNode/MFNode fieldValue declarations with
direct access to other nodes, and thus has potential to produce run-time animation. 

CameraTilt
ProtoInstance
CameraShot
No ROUTE connection found for output events from this node.
This ProtoInstance contains SFNode/MFNode fieldValue declarations with
direct access to other nodes, and thus has potential to produce run-time animation. 

Dolly
ProtoInstance
CameraShot
No ROUTE connection found for output events from this node.
This ProtoInstance contains SFNode/MFNode fieldValue declarations with
direct access to other nodes, and thus has potential to produce run-time animation. 

DollyMove1
ProtoInstance
CameraMovement
No ROUTE connection found for output events from this node.
This ProtoInstance contains SFNode/MFNode fieldValue declarations with
direct access to other nodes, and thus has potential to produce run-time animation. 

MoveAimPoint3.4
ProtoInstance
CameraMovement
No ROUTE connection found for output events from this node.
This ProtoInstance contains SFNode/MFNode fieldValue declarations with
direct access to other nodes, and thus has potential to produce run-time animation. 

Pan
ProtoInstance
CameraShot
No ROUTE connection found for output events from this node.
This ProtoInstance contains SFNode/MFNode fieldValue declarations with
direct access to other nodes, and thus has potential to produce run-time animation. 

PanLeft
ProtoInstance
CameraMovement
No ROUTE connection found for output events from this node.
This ProtoInstance contains SFNode/MFNode fieldValue declarations with
direct access to other nodes, and thus has potential to produce run-time animation. 

PanRight
ProtoInstance
CameraMovement
No ROUTE connection found for output events from this node.
This ProtoInstance contains SFNode/MFNode fieldValue declarations with
direct access to other nodes, and thus has potential to produce run-time animation. 

Shot5
ProtoInstance
CameraShot
No ROUTE connection found for output events from this node.
This ProtoInstance contains SFNode/MFNode fieldValue declarations with
direct access to other nodes, and thus has potential to produce run-time animation. 

TiltDown
ProtoInstance
CameraMovement
No ROUTE connection found for output events from this node.
This ProtoInstance contains SFNode/MFNode fieldValue declarations with
direct access to other nodes, and thus has potential to produce run-time animation. 

TiltPause
ProtoInstance
CameraMovement
No ROUTE connection found for output events from this node.
This ProtoInstance contains SFNode/MFNode fieldValue declarations with
direct access to other nodes, and thus has potential to produce run-time animation. 

TiltReset
ProtoInstance
CameraMovement
No ROUTE connection found for output events from this node.
This ProtoInstance contains SFNode/MFNode fieldValue declarations with
direct access to other nodes, and thus has potential to produce run-time animation. 

TiltUp
ProtoInstance
CameraMovement
No ROUTE connection found for output events from this node.
This ProtoInstance contains SFNode/MFNode fieldValue declarations with
direct access to other nodes, and thus has potential to produce run-time animation. 

Zoom
ProtoInstance
CameraShot
No ROUTE connection found for output events from this node.
This ProtoInstance contains SFNode/MFNode fieldValue declarations with
direct access to other nodes, and thus has potential to produce run-time animation. 


Anchor
description='launch CameraExample scene' 
User-interaction hint for this node. 
Additional guidance on X3D animation can be found in the 10-Step Animation Design Process and Event Tracing hint sheets. Have fun with X3D! 😀

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