<?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='Interactive' 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='TestCycleTimeStart.x3d' name='title'/>
    <meta content='Andreas' name='creator'/>
    <meta content='Joe D. Williams' name='creator'/>
    <meta content='Test design patterns for animation control.' name='description'/>
    <meta content='10 September 2023' name='created'/>
    <meta content='19 September 2023' name='modified'/>
    <meta content='https://www.web3d.org/x3d/content/examples/ConformanceNist/Sensors/TimeSensor/cycletimeIndex.html' name='reference'/>
    <meta content='https://sourceforge.net/p/x3d/code/HEAD/tree/www.web3d.org/x3d/content/examples/HumanoidAnimation/WinterAndSpring/originals/cycleTimeStart.x3d' name='reference'/>
    <meta content='https://www.web3d.org/x3d/content/examples/HumanoidAnimation/WinterAndSpring/TestCycleTimeStart.x3d' name='identifier'/>
    <meta content='X3D-Edit 4.0, https://www.web3d.org/x3d/tools/X3D-Edit' name='generator'/>
    <meta content='../license.html' name='license'/>
  </head>
  <Scene>
    <WorldInfo title='TestCycleTimeStart.x3d'/>
    <Viewpoint description='hello in there'/>
    <TimeSensor DEF='REDTIME1' cycleInterval='1' loop='true'/>
    <TimeSensor DEF='GREENTIME2' cycleInterval='5' loop='false'/>
    <TimeSensor DEF='BLUETIME3' cycleInterval='10' loop='false'/>
    <BooleanFilter DEF='GREENFILTER'/>
    <TimeTrigger DEF='BLUETRIGGER'/>
    <ROUTE fromField='cycleTime' fromNode='REDTIME1' toField='set_stopTime' toNode='REDTIME1'/>
    <ROUTE fromField='stopTime' fromNode='REDTIME1' toField='set_startTime' toNode='GREENTIME2'/>
    <ROUTE fromField='isActive' fromNode='GREENTIME2' toField='set_boolean' toNode='GREENFILTER'/>
    <ROUTE fromField='inputFalse' fromNode='GREENFILTER' toField='set_boolean' toNode='BLUETRIGGER'/>
    <ROUTE fromField='triggerTime' fromNode='BLUETRIGGER' toField='set_startTime' toNode='BLUETIME3'/>
    <Transform DEF='REDBALL'>
      <Shape>
        <Appearance>
          <Material diffuseColor='1 0 0'/>
        </Appearance>
        <Sphere/>
      </Shape>
    </Transform>
    <Transform DEF='GREENBALL' translation='0 0 0'>
      <Shape>
        <Appearance>
          <Material diffuseColor='0 1 0'/>
        </Appearance>
        <Sphere/>
      </Shape>
    </Transform>
    <Transform DEF='BLUEBALL'>
      <Shape>
        <Appearance>
          <Material diffuseColor='0 0 1'/>
        </Appearance>
        <Sphere/>
      </Shape>
    </Transform>
    <PositionInterpolator DEF='REDINTERP1' key='0 0.25 0.5 0.75 1' keyValue='0 0 0 2 0 0 0 0 0 -2 0 0 0 0 0'/>
    <PositionInterpolator DEF='GREENINTERP2' key='0 0.25 0.5 0.75 1' keyValue='0 0 0 0 2 0 0 0 0 0 -2 0 0 0 0'/>
    <PositionInterpolator DEF='BLUEINTERP3' key='0 0.25 0.5 0.75 1' keyValue='0 0 0 0 -2 0 0 0 0 0 2 0 0 0 0'/>
    <ROUTE fromField='fraction_changed' fromNode='REDTIME1' toField='set_fraction' toNode='REDINTERP1'/>
    <ROUTE fromField='value_changed' fromNode='REDINTERP1' toField='set_translation' toNode='REDBALL'/>
    <ROUTE fromField='fraction_changed' fromNode='GREENTIME2' toField='set_fraction' toNode='GREENINTERP2'/>
    <ROUTE fromField='value_changed' fromNode='GREENINTERP2' toField='set_translation' toNode='GREENBALL'/>
    <ROUTE fromField='fraction_changed' fromNode='BLUETIME3' toField='set_fraction' toNode='BLUEINTERP3'/>
    <ROUTE fromField='value_changed' fromNode='BLUEINTERP3' toField='set_translation' toNode='BLUEBALL'/>
  </Scene>
</X3D>