<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 3.0//EN" "https://www.web3d.org/specifications/x3d-3.0.dtd">
<X3D profile='Immersive' version='3.0' xmlns:xsd='http://www.w3.org/2001/XMLSchema-instance' xsd:noNamespaceSchemaLocation='https://www.web3d.org/specifications/x3d-3.0.xsd'>
  <head>
    <meta content='ViewpointSequencerExample.x3d' name='title'/>
    <meta content='Animate through a set of Viewpoints and repeat' name='description'/>
    <meta content='Don Brutzman' name='creator'/>
    <meta content='11 December 2002' name='created'/>
    <meta content='28 November 2019' name='modified'/>
    <meta content='Viewpoint Tour' name='subject'/>
    <meta content='https://www.web3d.org/x3d/content/examples/Savage/Tools/Animation/ViewpointSequencerExample.x3d' name='identifier'/>
    <meta content='X3D-Edit 3.2, https://www.web3d.org/x3d/tools/X3D-Edit' name='generator'/>
    <meta content='../../license.html' name='license'/>
  </head>
  <Scene>
    <WorldInfo title='ViewpointSequencerExample.x3d'/>
    <ExternProtoDeclare appinfo='Sequentially binds each Viewpoint in a set of Viewpoint USE nodes, creating an automatic tour for a scene' name='ViewpointSequencer' url='"../../../Savage/Tools/Animation/ViewpointSequencerPrototype.x3d#ViewpointSequencer" "https://www.web3d.org/x3d/content/examples/Savage/Tools/Animation/ViewpointSequencerPrototype.x3d#ViewpointSequencer" "../../../Savage/Tools/Animation/ViewpointSequencerPrototype.wrl#ViewpointSequencer" "https://www.web3d.org/x3d/content/examples/Savage/Tools/Animation/ViewpointSequencerPrototype.wrl#ViewpointSequencer"'>
      <field accessType='initializeOnly' appinfo='Viewpoint USE nodes that are sequentially bound' name='viewpoints' type='MFNode'/>
      <field accessType='inputOutput' appinfo='number of seconds between viewpoint shifts' name='interval' type='SFTime'/>
      <field accessType='inputOutput' appinfo='whether ViewpointSequencer is enabled or not' name='enabled' type='SFBool'/>
      <field accessType='inputOnly' appinfo='whether ViewpointSequencer is enabled or not' name='set_enabled' type='SFBool'/>
      <field accessType='inputOnly' appinfo='bind previous Viewpoint in list' name='previous' type='SFBool'/>
      <field accessType='inputOnly' appinfo='bind next Viewpoint in list' name='next' type='SFBool'/>
      <field accessType='inputOutput' appinfo='Select message to toggle ViewpointSequencer' name='toggleMessage' type='MFString'/>
      <field accessType='initializeOnly' appinfo='Font size for toggleMessage text' name='toggleMessageFontSize' type='SFFloat'/>
      <field accessType='inputOutput' appinfo='Color for toggleMessage text' name='toggleMessageColor' type='SFColor'/>
      <field accessType='inputOutput' appinfo='enable console output' name='traceEnabled' type='SFBool'/>
    </ExternProtoDeclare>
    <!-- ===============Example============== -->
    <Group DEF='Viewpoints'>
      <Viewpoint DEF='View0' description='View zero (+Y axis)' orientation='1 0 0 -1.57' position='0 10 0'/>
      <Viewpoint DEF='View1' description='View one (+Z axis)'/>
      <Viewpoint DEF='View2' description='View two (+X axis)' orientation='0 1 0 1.57' position='10 0 0'/>
      <Viewpoint DEF='View3' description='View three (-Z axis)' orientation='0 1 0 3.14' position='0 0 -10'/>
      <Viewpoint DEF='View4' description='View four (-X axis)' orientation='0 1 0 -1.57' position='-10 0 0'/>
    </Group>
    <Transform translation='0 -2 0'>
      <ProtoInstance name='ViewpointSequencer'>
        <fieldValue name='viewpoints'>
          <Viewpoint USE='View0'/>
          <Viewpoint USE='View1'/>
          <Viewpoint USE='View2'/>
          <Viewpoint USE='View3'/>
          <Viewpoint USE='View4'/>
        </fieldValue>
        <fieldValue name='interval' value='2'/>
        <!-- initially enabled is off, scene provides selectable text to activate -->
        <fieldValue name='enabled' value='false'/>
        <fieldValue name='traceEnabled' value='true'/>
      </ProtoInstance>
    </Transform>
    <Shape>
      <Box DEF='BackdropBox' size='0.2 0.4 0.6'/>
      <Appearance>
        <Material diffuseColor='1 0.4 0.2'/>
      </Appearance>
    </Shape>
    <Inline DEF='CoordinateAxes' url='"../../../X3dForWebAuthors/Chapter03Grouping/CoordinateAxes.x3d" "../../Tools/Authoring/CoordinateAxes.x3d" "https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/Chapter03Grouping/CoordinateAxes.x3d" "https://www.web3d.org/x3d/content/examples/Savage/Tools/Authoring/CoordinateAxes.x3d" "../../../X3dForWebAuthors/Chapter03Grouping/CoordinateAxes.wrl" "../../Tools/Authoring/CoordinateAxes.wrl" "https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/Chapter03Grouping/CoordinateAxes.wrl" "https://www.web3d.org/x3d/content/examples/Savage/Tools/Authoring/CoordinateAxes.wrl"'/>
  </Scene>
</X3D>