<?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='ScriptNodeEventOutControl_Java.x3d' name='title'/>
    <meta content='Script node interface between VRML and Java: this conformance example tests event-based VRML-Java functionality.' name='description'/>
    <meta content='Don Brutzman' name='creator'/>
    <meta content='VRML97 script classes, not X3D Scene Authoring Interface (SAI)' name='warning'/>
    <meta content='30 November 1997' name='created'/>
    <meta content='8 July 2001' name='translated'/>
    <meta content='20 October 2019' name='modified'/>
    <meta content='ScriptEventPassingVrmlJava.png' name='Image'/>
    <meta content='ScriptFieldInvocationVrmlJava.png' name='Image'/>
    <meta content='https://www.web3d.org/x3d/content/examples/Basic/ScriptConformance/ScriptNodeEventOutControl_Java.x3d' name='identifier'/>
    <meta content='VRML 97 Specification, Annex B, Java platform scripting reference' name='reference'/>
    <meta content='https://www.web3d.org/technicalinfo/specifications/vrml97/part1/java.html' name='reference'/>
    <meta content='https://www.web3d.org/technicalinfo/specifications/vrml97/part1/java.html#B.5' name='reference'/>
    <meta content='Don Brutzman, "The Virtual Reality Modeling Language and Java," Communications of the ACM, vol. 41 no. 6, June 1998, pp. 57-64.' name='reference'/>
    <meta content='VrmlJavaPaper.pdf' name='reference'/>
    <meta content='ScriptNodeEventOutControl.java' name='reference'/>
    <meta content='VRML97javadoc/index.html' name='reference'/>
    <meta content='Makefile' name='reference'/>
    <meta content='Makefile.out' name='reference'/>
    <meta content='Vrml97ScriptNodePackages.jar' name='reference'/>
    <meta content='ScriptNodeEventOutControl_JavaConsoleOutput.txt' name='reference'/>
    <meta content='ScriptNodeEventOutControl_JavaSnapshots.html' name='reference'/>
    <meta content='ScriptNodeEventOutControl_EcmaScript.x3d' name='reference'/>
    <meta content='VRML X3D Java Script conformance' name='subject'/>
    <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='ScriptNodeEventOutControl_Java.x3d'/>
    <Viewpoint description='View test' position='0 0 12'/>
    <Group>
      <TouchSensor DEF='ClickTextToTest' description='Click text to test'/>
      <Transform DEF='TextPosition'>
        <!-- TextPosition translation is modified by InterfaceScriptNode. -->
        <Shape>
          <Text DEF='MessageToUser' string='"Default text in VRML scene will be replaced by" "Java initialize() in Script using EventOut control." "This text appears first, if Java initialization fails." ""'>
            <FontStyle justify='"MIDDLE" "MIDDLE"' size='0.8'/>
          </Text>
          <Appearance>
            <Material DEF='TextMaterial' diffuseColor='0.8 0.2 0.2' shininess='0.9'/>
          </Appearance>
        </Shape>
        <!-- Selectable Text design pattern has transparent Box and TouchSensor description as a tooltip -->
        <Shape>
          <Box size='15 4 .001'/>
          <Appearance>
            <Material transparency='0.95'/>
          </Appearance>
        </Shape>
      </Transform>
      <!-- Warning: VRML97-style scripting, not X3D Scene Authoring Interface (SAI) -->
      <Script DEF='InterfaceScriptNode' url='"ScriptNodeEventOutControl.class" "https://www.web3d.org/x3d/content/examples/Basic/ScriptConformance/ScriptNodeEventOutControl.class"'>
        <!-- No default values are allowed for eventIn or eventOut. -->
        <field accessType='inputOnly' name='startTime' type='SFTime'/>
        <field accessType='outputOnly' name='changedText' type='MFString'/>
        <field accessType='outputOnly' name='changedPosition' type='SFVec3f'/>
        <field accessType='outputOnly' name='changedColor' type='SFColor'/>
      </Script>
    </Group>
    <ROUTE fromField='touchTime' fromNode='ClickTextToTest' toField='startTime' toNode='InterfaceScriptNode'/>
    <ROUTE fromField='changedText' fromNode='InterfaceScriptNode' toField='set_string' toNode='MessageToUser'/>
    <ROUTE fromField='changedPosition' fromNode='InterfaceScriptNode' toField='set_translation' toNode='TextPosition'/>
    <ROUTE fromField='changedColor' fromNode='InterfaceScriptNode' toField='diffuseColor' toNode='TextMaterial'/>
  </Scene>
</X3D>