<?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='ExclusionZonePrototype.x3d' name='title'/>
    <meta content='ExclusionZone range markers (zero or three)' name='description'/>
    <meta content='LT Patrick Sullivan' name='creator'/>
    <meta content='27 July 2006' name='created'/>
    <meta content='28 November 2019' name='modified'/>
    <meta content='change whichChoice field to enabled' name='warning'/>
    <meta content='https://www.web3d.org/x3d/content/examples/Savage/Tools/Symbology/ExclusionZonePrototype.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='ExclusionZonePrototype.x3d'/>
    <ProtoDeclare name='ExclusionZones'>
      <ProtoInterface>
        <field accessType='inputOutput' appinfo='Usually to raise ranges off the surface' name='translation' type='SFVec3f' value='0 1 0'/>
        <field accessType='inputOutput' appinfo='Length in Meters for the radius of the range' name='OutterRange' type='SFVec3f' value='1 1 1'/>
        <field accessType='inputOutput' appinfo='Length in Meters for the radius of the range' name='MiddleRange' type='SFVec3f' value='1 1 1'/>
        <field accessType='inputOutput' appinfo='Length in Meters for the radius of the range' name='InnerRange' type='SFVec3f' value='1 1 1'/>
        <field accessType='inputOutput' appinfo='Turns zones on and off' name='whichChoice' type='SFInt32' value='-1'/>
      </ProtoInterface>
      <ProtoBody>
        <Switch whichChoice='-1'>
          <IS>
            <connect nodeField='whichChoice' protoField='whichChoice'/>
          </IS>
          <Transform scale='2 2 2'>
            <IS>
              <connect nodeField='translation' protoField='translation'/>
            </IS>
            <Transform DEF='OutterRange'>
              <IS>
                <connect nodeField='scale' protoField='OutterRange'/>
              </IS>
              <Shape>
                <IndexedLineSet colorIndex='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0' colorPerVertex='false' coordIndex='1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33'>
                  <Coordinate point='0 0 -1 0.195 0 -0.981 0.382 0 -0.924 0.555 0 -0.832 0.707 0 -0.708 0.831 0 -0.556 0.923 0 -0.383 0.98 0 -0.196 1 0 0 0.98 0 0.195 0.923 0 0.382 0.831 0 0.555 0.707 0 0.707 0.555 0 0.831 0.382 0 0.923 0.195 0 0.98 0 0 1 -0.195 0 0.98 -0.382 0 0.923 -0.555 0 0.831 -0.707 0 0.707 -0.831 0 0.555 -0.923 0 0.382 -0.98 0 0.195 -1 0 0 -0.981 0 -0.195 -0.924 0 -0.382 -0.832 0 -0.555 -0.708 0 -0.707 -0.556 0 -0.831 -0.383 0 -0.923 -0.196 0 -0.98 0 0 -1 0.195 0 -0.981'/>
                  <Color color='0 1 0'/>
                </IndexedLineSet>
              </Shape>
            </Transform>
            <Transform DEF='MiddleRange'>
              <IS>
                <connect nodeField='scale' protoField='MiddleRange'/>
              </IS>
              <Shape>
                <IndexedLineSet colorIndex='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0' colorPerVertex='false' coordIndex='1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33'>
                  <Coordinate point='0 0 -1 0.195 0 -0.981 0.382 0 -0.924 0.555 0 -0.832 0.707 0 -0.708 0.831 0 -0.556 0.923 0 -0.383 0.98 0 -0.196 1 0 0 0.98 0 0.195 0.923 0 0.382 0.831 0 0.555 0.707 0 0.707 0.555 0 0.831 0.382 0 0.923 0.195 0 0.98 0 0 1 -0.195 0 0.98 -0.382 0 0.923 -0.555 0 0.831 -0.707 0 0.707 -0.831 0 0.555 -0.923 0 0.382 -0.98 0 0.195 -1 0 0 -0.981 0 -0.195 -0.924 0 -0.382 -0.832 0 -0.555 -0.708 0 -0.707 -0.556 0 -0.831 -0.383 0 -0.923 -0.196 0 -0.98 0 0 -1 0.195 0 -0.981'/>
                  <Color color='1 1 0'/>
                </IndexedLineSet>
              </Shape>
            </Transform>
            <Transform DEF='InnerRange'>
              <IS>
                <connect nodeField='scale' protoField='InnerRange'/>
              </IS>
              <Shape>
                <IndexedLineSet colorIndex='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0' colorPerVertex='false' coordIndex='1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33'>
                  <Coordinate point='0 0 -1 0.195 0 -0.981 0.382 0 -0.924 0.555 0 -0.832 0.707 0 -0.708 0.831 0 -0.556 0.923 0 -0.383 0.98 0 -0.196 1 0 0 0.98 0 0.195 0.923 0 0.382 0.831 0 0.555 0.707 0 0.707 0.555 0 0.831 0.382 0 0.923 0.195 0 0.98 0 0 1 -0.195 0 0.98 -0.382 0 0.923 -0.555 0 0.831 -0.707 0 0.707 -0.831 0 0.555 -0.923 0 0.382 -0.98 0 0.195 -1 0 0 -0.981 0 -0.195 -0.924 0 -0.382 -0.832 0 -0.555 -0.708 0 -0.707 -0.556 0 -0.831 -0.383 0 -0.923 -0.196 0 -0.98 0 0 -1 0.195 0 -0.981'/>
                  <Color color='1 0 0'/>
                </IndexedLineSet>
              </Shape>
            </Transform>
          </Transform>
        </Switch>
      </ProtoBody>
    </ProtoDeclare>
    <ProtoInstance DEF='ZONESTEST' name='ExclusionZones'>
      <fieldValue name='translation' value='0 0 0'/>
      <fieldValue name='OutterRange' value='100 100 100'/>
      <fieldValue name='MiddleRange' value='50 50 50'/>
      <fieldValue name='InnerRange' value='25 25 25'/>
    </ProtoInstance>
    <Group DEF='SensorGroupDDG77'>
      <TouchSensor DEF='ZoneTouchSensor' description='Click for Exclusion Zone Display'/>
      <IntegerSequencer DEF='SwitchSequencer' key='0 1' keyValue='0 -1'/>
      <ROUTE fromField='isActive' fromNode='ZoneTouchSensor' toField='next' toNode='SwitchSequencer'/>
      <ROUTE fromField='value_changed' fromNode='SwitchSequencer' toField='whichChoice' toNode='ZONESTEST'/>
    </Group>
  </Scene>
</X3D>