<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 3.3//EN" "https://www.web3d.org/specifications/x3d-3.3.dtd">
<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'>
  <head>
    <meta content='StringSensorExample.x3d' name='title'/>
    <meta content='A StringSensor example that displays typed text in the world.' name='description'/>
    <meta content='Leonard Daly and Don Brutzman' name='creator'/>
    <meta content='7 June 2006' name='created'/>
    <meta content='25 August 2023' name='modified'/>
    <meta content='https://X3dGraphics.com' name='reference'/>
    <meta content='https://www.web3d.org/x3d/content/examples/X3dResources.html' name='reference'/>
    <meta content='Copyright (c) 2006, Daly Realism and Don Brutzman' name='rights'/>
    <meta content='X3D book, X3D graphics, X3D-Edit, http://www.x3dGraphics.com' name='subject'/>
    <meta content='https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/Chapter08UserInteractivity/StringSensorExample.x3d' name='identifier'/>
    <meta content='X3D-Edit 3.3, https://www.web3d.org/x3d/tools/X3D-Edit' name='generator'/>
    <meta content='../license.html' name='license'/>
  </head>
  <Scene>
    <WorldInfo title='StringSensorExample.x3d'/>
    <Background skyColor='1 1 1'/>
    <Viewpoint description='Book View' position='-0.02 0.01 6.85'/>
    <StringSensor DEF='GenText'/>
    <Transform translation='0 0.8 0'>
      <Transform translation='0 0 -.1'>
        <Shape>
          <Appearance>
            <Material diffuseColor='1 1 .6'/>
          </Appearance>
          <Box size='8 1.5 .01'/>
        </Shape>
      </Transform>
      <Transform translation='-3.8 0.2 0'>
        <Shape>
          <Appearance>
            <Material diffuseColor='0 0 1'/>
          </Appearance>
          <Text DEF='DisplayText'>
            <FontStyle justify='"BEGIN" "MIDDLE"' size='0.75'/>
          </Text>
        </Shape>
      </Transform>
      <!-- convert StringSensor SFString into Text node MFString by using explicit typecasting in ECMAScript -->
      <Script DEF='Converter' url='"StringSensorScriptConverter.js" "https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/Chapter08UserInteractivity/StringSensorScriptConverter.js"'>
        <field accessType='inputOnly' name='SFString_MFString' type='SFString'/>
        <field accessType='outputOnly' name='MFString_out' type='MFString'/>
        <field accessType='outputOnly' name='SFFloat_Xout' type='SFFloat'/>
        <field accessType='outputOnly' name='SFFloat_Yout' type='SFFloat'/>
        <field accessType='outputOnly' name='SFFloat_Zout' type='SFFloat'/>
      </Script>
      <ROUTE fromField='enteredText' fromNode='GenText' toField='SFString_MFString' toNode='Converter'/>
      <ROUTE fromField='MFString_out' fromNode='Converter' toField='string' toNode='DisplayText'/>
      <Transform translation='0 -1.25 0'>
        <Group>
          <Shape>
            <Text string='"StringSensor lets users enter text..." "please type to test"'>
              <FontStyle family='"SANS"' justify='"MIDDLE" "BEGIN"' size='0.5'/>
            </Text>
            <Appearance>
              <Material diffuseColor='0.7 0.7 0.7'/>
            </Appearance>
          </Shape>
        </Group>
      </Transform>
    </Transform>
  </Scene>
</X3D>