Skip to content
Snippets Groups Projects
SliderExample.x3d 5.04 KiB
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 3.0//EN" "http://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='http://www.web3d.org/specifications/x3d-3.0.xsd'>
  <head>
    <meta content='SliderExample.x3d' name='title'/>
    <meta content='Mike Hunsberger' name='creator'/>
    <meta content='12 February 2001' name='created'/>
    <meta content='11 November 2015' name='modified'/>
    <meta content='This example uses an external proto SliderProto to generate a slider that produces integer values.' name='description'/>
    <meta content='needs troubleshooting.' name='warning'/>
    <meta content='https://savage.nps.edu/Savage/Tools/ExerciseClock/SliderExample.x3d' name='identifier'/>
    <meta content='X3D-Edit 3.2, https://savage.nps.edu/X3D-Edit' name='generator'/>
    <meta content='../../license.html' name='license'/>
  </head>
  <Scene>
    <ExternProtoDeclare name='Slider' url='"SliderPrototype.x3d#Slider" "https://savage.nps.edu/Savage/Tools/ExerciseClock/SliderPrototype.x3d#Slider" "SliderPrototype.wrl#Slider" "https://savage.nps.edu/Savage/Tools/ExerciseClock/SliderPrototype.wrl#Slider"'>
      <field accessType='initializeOnly' name='height' type='SFFloat'/>
      <field accessType='initializeOnly' name='radius' type='SFFloat'/>
      <field accessType='initializeOnly' name='min' type='SFInt32'/>
      <field accessType='initializeOnly' name='max' type='SFInt32'/>
      <field accessType='initializeOnly' name='value' type='SFInt32'/>
      <field accessType='inputOnly' name='set_min' type='SFInt32'/>
      <field accessType='inputOnly' name='set_max' type='SFInt32'/>
      <field accessType='outputOnly' name='set_value' type='SFInt32'/>
      <field accessType='outputOnly' name='value_changed' type='SFInt32'/>
    </ExternProtoDeclare>
    <ExternProtoDeclare name='ScaledSFFloat' url='"SliderPrototype.x3d#ScaledSFFloat" "https://savage.nps.edu/Savage/Tools/ExerciseClock/SliderPrototype.x3d#ScaledSFFloat" "SliderPrototype.wrl#ScaledSFFloat" "https://savage.nps.edu/Savage/Tools/ExerciseClock/SliderPrototype.wrl#ScaledSFFloat"'>
      <field accessType='initializeOnly' name='oldMin' type='SFFloat'/>
      <field accessType='initializeOnly' name='oldMax' type='SFFloat'/>
      <field accessType='initializeOnly' name='newMin' type='SFFloat'/>
      <field accessType='initializeOnly' name='newMax' type='SFFloat'/>
      <field accessType='inputOnly' name='set_oldMin' type='SFFloat'/>
      <field accessType='inputOnly' name='set_oldMax' type='SFFloat'/>
      <field accessType='inputOnly' name='set_newMin' type='SFFloat'/>
      <field accessType='inputOnly' name='set_newMax' type='SFFloat'/>
      <field accessType='inputOnly' name='set_value' type='SFFloat'/>
      <field accessType='outputOnly' name='value_changed' type='SFFloat'/>
    </ExternProtoDeclare>
    <ExternProtoDeclare name='SingleTypeConversion' url='"SliderPrototype.x3d#SingleTypeConversion" "https://savage.nps.edu/Savage/Tools/ExerciseClock/SliderPrototype.x3d#SingleTypeConversion" "SliderPrototype.wrl#SingleTypeConversion" "https://savage.nps.edu/Savage/Tools/ExerciseClock/SliderPrototype.wrl#SingleTypeConversion"'>
      <field accessType='inputOnly' name='SFBoolValue' type='SFBool'/>
      <field accessType='inputOnly' name='SFFloatValue' type='SFFloat'/>
      <field accessType='inputOnly' name='SFInt32Value' type='SFInt32'/>
      <field accessType='inputOnly' name='SFStringValue' type='SFString'/>
      <field accessType='outputOnly' name='SFBoolResult' type='SFBool'/>
      <field accessType='outputOnly' name='SFFloatResult' type='SFFloat'/>
      <field accessType='outputOnly' name='SFInt32Result' type='SFInt32'/>
      <field accessType='outputOnly' name='SFStringResult' type='SFString'/>
      <field accessType='outputOnly' name='MFStringResult' type='MFString'/>
    </ExternProtoDeclare>
    <Viewpoint description='Slider Example'/>
    <Transform rotation='0 0 1 -1.57079'>
      <ProtoInstance DEF='Slider' name='Slider'>
        <fieldValue name='min' value='0'/>
        <fieldValue name='max' value='24'/>
        <fieldValue name='height' value='5'/>
        <fieldValue name='radius' value='0.1'/>
        <fieldValue name='value' value='12'/>
      </ProtoInstance>
    </Transform>
    <Transform translation='4 2 0'>
      <Shape>
        <Text DEF='VALUE_TEXT' string='"Value"'/>
      </Shape>
    </Transform>
    <ProtoInstance DEF='Converter' name='SingleTypeConversion'/>
    <ProtoInstance DEF='Scaler' name='ScaledSFFloat'>
      <fieldValue name='oldMin' value='0'/>
      <fieldValue name='oldMax' value='24'/>
      <fieldValue name='newMin' value='0'/>
      <fieldValue name='newMax' value='1'/>
    </ProtoInstance>
    <ROUTE fromField='value_changed' fromNode='Slider' toField='SFInt32Value' toNode='Converter'/>
    <ROUTE fromField='SFFloatResult' fromNode='Converter' toField='set_value' toNode='Scaler'/>
    <ROUTE fromField='MFStringResult' fromNode='Converter' toField='set_string' toNode='VALUE_TEXT'/>
  </Scene>
</X3D>