<?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='direction.x3d' name='title'/>
    <meta content='direction-movie.mpg' name='MovingImage'/>
    <meta content='http://www.nist.gov/vrml.html' name='reference'/>
    <meta content='http://www.itl.nist.gov/div897/ctg/vrml/vrml.html' name='reference'/>
    <meta content='http://www.itl.nist.gov/div897/ctg/vrml/members.html' name='creator'/>
    <meta content='This file was provided by the National Institute of Standards and Technology, and is part of the X3D Conformance Test Suite, available at http://www.nist.gov/vrml.html The information contained within this file is provided for use in establishing conformance to the ISO VRML97 Specification. Conformance to this test does not imply recommendation or endorsement by the National Institute of Standards and Technology (NIST). This software can be redistributed and/or modified freely provided that any derivative works bear some notice that they are derived from it, and any modified versions bear some notice that they have been modified.' name='disclaimer'/>
    <meta content='Interactive Conformance Testing for VRML, Mary Brady and Lynn Rosenthal, NIST, created 8 September 2010 and updated 25 August 2016, https://www.nist.gov/itl/ssd/information-systems-group/interactive-conformance-testing-vrml' name='reference'/>
    <meta content='Correct definition and compliance of this conformance scene is maintained by the X3D Working Group, https://www.web3d.org/working-groups/x3d' name='info'/>
    <meta content='Michael Kass NIST' name='creator'/>
    <meta content='Don Brutzman' name='translator'/>
    <meta content='21 January 2001' name='translated'/>
    <meta content='28 August 2023' name='modified'/>
    <meta content='Test direction. A Sound node can have its "direction" field changed by clicking on any of the 3 buttons in the left portion of this world. Each will change a Sound ellipsoids orientation along one of the 3 axies (X, Y or Z). As a result, sound audibility should be confined to the inner portion of the particular ellipsoid that is aligned with the Sounds direction. Clicking on a button, and then using the worlds Viewpoints to navigate in and out of the 3 ellipsoids should verify that a Sound is audible only along its current "direction" ellipsoid.' name='description'/>
    <meta content='https://www.web3d.org/x3d/content/examples/ConformanceNist/Sounds/Sound/direction.x3d' name='identifier'/>
    <meta content='Vrml97ToX3dNist, http://ovrt.nist.gov/v2_x3d.html' name='generator'/>
    <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='direction.x3d'/>
    <Viewpoint DEF='OUTSIDEMAXFRONT' description='FRONT: Outside maxFront (no sound)' position='0 0 60'/>
    <Viewpoint DEF='BETWEENFRONT' description='Just inside max ellipsoid (max sound)' position='0 0 14'/>
    <Viewpoint DEF='OUTSIDEMAXRIGHT' description='RIGHT: Outside max ellipsoid, (no sound)' orientation='0 1 0 1.57' position='60 0 0'/>
    <Viewpoint DEF='BETWEENRIGHT' description='Just inside max ellipsoid, (max sound)' orientation='0 1 0 1.57' position='14 0 0'/>
    <Viewpoint DEF='OUTSIDEMAXTOP' description='TOP: Outside max ellipsoid, (no sound)' orientation='1 0 0 -1.57' position='0 60 0'/>
    <Viewpoint DEF='BETWEENTOP' description='Just inside max ellipsoid, (max sound)' orientation='1 0 0 -1.57' position='0 14 0'/>
    <ProximitySensor DEF='PROX_SENSOR' size='1000 1000 1000'/>
    <Sound DEF='SOUND1' maxBack='3' maxFront='15' minBack='3' minFront='15'>
      <AudioClip description='chimes' loop='true' url='"chimes.wav" "https://www.web3d.org/x3d/content/examples/ConformanceNist/Sounds/AudioClip/chimes.wav"'/>
    </Sound>
    <Transform>
      <Transform scale='9 6.7 6.7' translation='6 0 0'>
        <Shape>
          <Appearance>
            <Material/>
          </Appearance>
          <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 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 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 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 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 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 0 0' colorPerVertex='false' coordIndex='0 1 2 -1 2 1 3 -1 2 3 4 -1 4 3 5 -1 4 5 6 -1 6 5 7 -1 6 7 8 -1 8 7 9 -1 8 9 10 -1 1 11 3 -1 3 11 12 -1 3 12 5 -1 5 12 13 -1 5 13 7 -1 7 13 14 -1 7 14 9 -1 11 15 12 -1 12 15 16 -1 12 16 13 -1 13 16 17 -1 13 17 14 -1 15 18 16 -1 16 18 19 -1 16 19 17 -1 19 18 20 -1 10 9 21 -1 21 9 22 -1 21 22 23 -1 23 22 24 -1 23 24 25 -1 25 24 26 -1 25 26 27 -1 27 26 28 -1 27 28 29 -1 9 14 22 -1 22 14 30 -1 22 30 24 -1 24 30 31 -1 24 31 26 -1 26 31 32 -1 26 32 28 -1 14 17 30 -1 30 17 33 -1 30 33 31 -1 31 33 34 -1 31 34 32 -1 17 19 33 -1 33 19 35 -1 33 35 34 -1 35 19 20 -1 10 36 8 -1 8 36 37 -1 8 37 6 -1 6 37 38 -1 6 38 4 -1 4 38 39 -1 4 39 2 -1 2 39 40 -1 2 40 0 -1 36 41 37 -1 37 41 42 -1 37 42 38 -1 38 42 43 -1 38 43 39 -1 39 43 44 -1 39 44 40 -1 41 45 42 -1 42 45 46 -1 42 46 43 -1 43 46 47 -1 43 47 44 -1 45 48 46 -1 46 48 49 -1 46 49 47 -1 49 48 50 -1 29 51 27 -1 27 51 52 -1 27 52 25 -1 25 52 53 -1 25 53 23 -1 23 53 54 -1 23 54 21 -1 21 54 36 -1 21 36 10 -1 51 55 52 -1 52 55 56 -1 52 56 53 -1 53 56 57 -1 53 57 54 -1 54 57 41 -1 54 41 36 -1 55 58 56 -1 56 58 59 -1 56 59 57 -1 57 59 45 -1 57 45 41 -1 58 60 59 -1 59 60 48 -1 59 48 45 -1 48 60 50 -1 61 62 63 -1 63 62 64 -1 63 64 65 -1 65 64 66 -1 65 66 67 -1 67 66 68 -1 67 68 69 -1 69 68 1 -1 69 1 0 -1 62 70 64 -1 64 70 71 -1 64 71 66 -1 66 71 72 -1 66 72 68 -1 68 72 11 -1 68 11 1 -1 70 73 71 -1 71 73 74 -1 71 74 72 -1 72 74 15 -1 72 15 11 -1 73 75 74 -1 74 75 18 -1 74 18 15 -1 18 75 20 -1 29 28 76 -1 76 28 77 -1 76 77 78 -1 78 77 79 -1 78 79 80 -1 80 79 81 -1 80 81 82 -1 82 81 62 -1 82 62 61 -1 28 32 77 -1 77 32 83 -1 77 83 79 -1 79 83 84 -1 79 84 81 -1 81 84 70 -1 81 70 62 -1 32 34 83 -1 83 34 85 -1 83 85 84 -1 84 85 73 -1 84 73 70 -1 34 35 85 -1 85 35 75 -1 85 75 73 -1 75 35 20 -1 0 40 69 -1 69 40 86 -1 69 86 67 -1 67 86 87 -1 67 87 65 -1 65 87 88 -1 65 88 63 -1 63 88 89 -1 63 89 61 -1 40 44 86 -1 86 44 90 -1 86 90 87 -1 87 90 91 -1 87 91 88 -1 88 91 92 -1 88 92 89 -1 44 47 90 -1 90 47 93 -1 90 93 91 -1 91 93 94 -1 91 94 92 -1 47 49 93 -1 93 49 95 -1 93 95 94 -1 95 49 50 -1 61 89 82 -1 82 89 96 -1 82 96 80 -1 80 96 97 -1 80 97 78 -1 78 97 98 -1 78 98 76 -1 76 98 51 -1 76 51 29 -1 89 92 96 -1 96 92 99 -1 96 99 97 -1 97 99 100 -1 97 100 98 -1 98 100 55 -1 98 55 51 -1 92 94 99 -1 99 94 101 -1 99 101 100 -1 100 101 58 -1 100 58 55 -1 94 95 101 -1 101 95 60 -1 101 60 58 -1 60 95 50 -1'>
            <Coordinate DEF='SpherePoints' point='1 0 0 0.970142 0.242536 0 0.970142 0 0.242536 0.904534 0.301511 0.301511 0.83205 0 0.5547 0.666667 0.333333 0.666667 0.5547 0 0.83205 0.301511 0.301511 0.904534 0.242536 0 0.970142 0 0.242536 0.970142 0 0 1 0.83205 0.5547 0 0.666667 0.666667 0.333333 0.333333 0.666667 0.666667 0 0.5547 0.83205 0.5547 0.83205 0 0.301511 0.904534 0.301511 0 0.83205 0.5547 0.242536 0.970142 0 0 0.970142 0.242536 0 1 0 -0.242536 0 0.970142 -0.301511 0.301511 0.904534 -0.5547 0 0.83205 -0.666667 0.333333 0.666667 -0.83205 0 0.5547 -0.904534 0.301511 0.301511 -0.970142 0 0.242536 -0.970142 0.242536 0 -1 0 0 -0.333333 0.666667 0.666667 -0.666667 0.666667 0.333333 -0.83205 0.5547 0 -0.301511 0.904534 0.301511 -0.5547 0.83205 0 -0.242536 0.970142 0 0 -0.242536 0.970142 0.301511 -0.301511 0.904534 0.666667 -0.333333 0.666667 0.904534 -0.301511 0.301511 0.970142 -0.242536 0 0 -0.5547 0.83205 0.333333 -0.666667 0.666667 0.666667 -0.666667 0.333333 0.83205 -0.5547 0 0 -0.83205 0.5547 0.301511 -0.904534 0.301511 0.5547 -0.83205 0 0 -0.970142 0.242536 0.242536 -0.970142 0 0 -1 0 -0.970142 -0.242536 0 -0.904534 -0.301511 0.301511 -0.666667 -0.333333 0.666667 -0.301511 -0.301511 0.904534 -0.83205 -0.5547 0 -0.666667 -0.666667 0.333333 -0.333333 -0.666667 0.666667 -0.5547 -0.83205 0 -0.301511 -0.904534 0.301511 -0.242536 -0.970142 0 0 0 -1 0 0.242536 -0.970142 0.242536 0 -0.970142 0.301511 0.301511 -0.904534 0.5547 0 -0.83205 0.666667 0.333333 -0.666667 0.83205 0 -0.5547 0.904534 0.301511 -0.301511 0.970142 0 -0.242536 0 0.5547 -0.83205 0.333333 0.666667 -0.666667 0.666667 0.666667 -0.333333 0 0.83205 -0.5547 0.301511 0.904534 -0.301511 0 0.970142 -0.242536 -0.970142 0 -0.242536 -0.904534 0.301511 -0.301511 -0.83205 0 -0.5547 -0.666667 0.333333 -0.666667 -0.5547 0 -0.83205 -0.301511 0.301511 -0.904534 -0.242536 0 -0.970142 -0.666667 0.666667 -0.333333 -0.333333 0.666667 -0.666667 -0.301511 0.904534 -0.301511 0.904534 -0.301511 -0.301511 0.666667 -0.333333 -0.666667 0.301511 -0.301511 -0.904534 0 -0.242536 -0.970142 0.666667 -0.666667 -0.333333 0.333333 -0.666667 -0.666667 0 -0.5547 -0.83205 0.301511 -0.904534 -0.301511 0 -0.83205 -0.5547 0 -0.970142 -0.242536 -0.301511 -0.301511 -0.904534 -0.666667 -0.333333 -0.666667 -0.904534 -0.301511 -0.301511 -0.333333 -0.666667 -0.666667 -0.666667 -0.666667 -0.333333 -0.301511 -0.904534 -0.301511'/>
            <Color DEF='ELLIPSOID1COLOR' color='1 0 0'/>
          </IndexedLineSet>
        </Shape>
      </Transform>
    </Transform>
    <Transform DEF='TRANS2'>
      <Transform scale='6.7 9 6.7' translation='0 6 0'>
        <Shape>
          <Appearance>
            <Material/>
          </Appearance>
          <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 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 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 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 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 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 0 0' colorPerVertex='false' coordIndex='0 1 2 -1 2 1 3 -1 2 3 4 -1 4 3 5 -1 4 5 6 -1 6 5 7 -1 6 7 8 -1 8 7 9 -1 8 9 10 -1 1 11 3 -1 3 11 12 -1 3 12 5 -1 5 12 13 -1 5 13 7 -1 7 13 14 -1 7 14 9 -1 11 15 12 -1 12 15 16 -1 12 16 13 -1 13 16 17 -1 13 17 14 -1 15 18 16 -1 16 18 19 -1 16 19 17 -1 19 18 20 -1 10 9 21 -1 21 9 22 -1 21 22 23 -1 23 22 24 -1 23 24 25 -1 25 24 26 -1 25 26 27 -1 27 26 28 -1 27 28 29 -1 9 14 22 -1 22 14 30 -1 22 30 24 -1 24 30 31 -1 24 31 26 -1 26 31 32 -1 26 32 28 -1 14 17 30 -1 30 17 33 -1 30 33 31 -1 31 33 34 -1 31 34 32 -1 17 19 33 -1 33 19 35 -1 33 35 34 -1 35 19 20 -1 10 36 8 -1 8 36 37 -1 8 37 6 -1 6 37 38 -1 6 38 4 -1 4 38 39 -1 4 39 2 -1 2 39 40 -1 2 40 0 -1 36 41 37 -1 37 41 42 -1 37 42 38 -1 38 42 43 -1 38 43 39 -1 39 43 44 -1 39 44 40 -1 41 45 42 -1 42 45 46 -1 42 46 43 -1 43 46 47 -1 43 47 44 -1 45 48 46 -1 46 48 49 -1 46 49 47 -1 49 48 50 -1 29 51 27 -1 27 51 52 -1 27 52 25 -1 25 52 53 -1 25 53 23 -1 23 53 54 -1 23 54 21 -1 21 54 36 -1 21 36 10 -1 51 55 52 -1 52 55 56 -1 52 56 53 -1 53 56 57 -1 53 57 54 -1 54 57 41 -1 54 41 36 -1 55 58 56 -1 56 58 59 -1 56 59 57 -1 57 59 45 -1 57 45 41 -1 58 60 59 -1 59 60 48 -1 59 48 45 -1 48 60 50 -1 61 62 63 -1 63 62 64 -1 63 64 65 -1 65 64 66 -1 65 66 67 -1 67 66 68 -1 67 68 69 -1 69 68 1 -1 69 1 0 -1 62 70 64 -1 64 70 71 -1 64 71 66 -1 66 71 72 -1 66 72 68 -1 68 72 11 -1 68 11 1 -1 70 73 71 -1 71 73 74 -1 71 74 72 -1 72 74 15 -1 72 15 11 -1 73 75 74 -1 74 75 18 -1 74 18 15 -1 18 75 20 -1 29 28 76 -1 76 28 77 -1 76 77 78 -1 78 77 79 -1 78 79 80 -1 80 79 81 -1 80 81 82 -1 82 81 62 -1 82 62 61 -1 28 32 77 -1 77 32 83 -1 77 83 79 -1 79 83 84 -1 79 84 81 -1 81 84 70 -1 81 70 62 -1 32 34 83 -1 83 34 85 -1 83 85 84 -1 84 85 73 -1 84 73 70 -1 34 35 85 -1 85 35 75 -1 85 75 73 -1 75 35 20 -1 0 40 69 -1 69 40 86 -1 69 86 67 -1 67 86 87 -1 67 87 65 -1 65 87 88 -1 65 88 63 -1 63 88 89 -1 63 89 61 -1 40 44 86 -1 86 44 90 -1 86 90 87 -1 87 90 91 -1 87 91 88 -1 88 91 92 -1 88 92 89 -1 44 47 90 -1 90 47 93 -1 90 93 91 -1 91 93 94 -1 91 94 92 -1 47 49 93 -1 93 49 95 -1 93 95 94 -1 95 49 50 -1 61 89 82 -1 82 89 96 -1 82 96 80 -1 80 96 97 -1 80 97 78 -1 78 97 98 -1 78 98 76 -1 76 98 51 -1 76 51 29 -1 89 92 96 -1 96 92 99 -1 96 99 97 -1 97 99 100 -1 97 100 98 -1 98 100 55 -1 98 55 51 -1 92 94 99 -1 99 94 101 -1 99 101 100 -1 100 101 58 -1 100 58 55 -1 94 95 101 -1 101 95 60 -1 101 60 58 -1 60 95 50 -1'>
            <Coordinate USE='SpherePoints'/>
            <Color DEF='ELLIPSOID2COLOR' color='0 1 0'/>
          </IndexedLineSet>
        </Shape>
      </Transform>
    </Transform>
    <Transform DEF='TRANS3'>
      <Transform scale='6.7 6.7 9' translation='0 0 6'>
        <Shape>
          <Appearance>
            <Material/>
          </Appearance>
          <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 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 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 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 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 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 0 0' colorPerVertex='false' coordIndex='0 1 2 -1 2 1 3 -1 2 3 4 -1 4 3 5 -1 4 5 6 -1 6 5 7 -1 6 7 8 -1 8 7 9 -1 8 9 10 -1 1 11 3 -1 3 11 12 -1 3 12 5 -1 5 12 13 -1 5 13 7 -1 7 13 14 -1 7 14 9 -1 11 15 12 -1 12 15 16 -1 12 16 13 -1 13 16 17 -1 13 17 14 -1 15 18 16 -1 16 18 19 -1 16 19 17 -1 19 18 20 -1 10 9 21 -1 21 9 22 -1 21 22 23 -1 23 22 24 -1 23 24 25 -1 25 24 26 -1 25 26 27 -1 27 26 28 -1 27 28 29 -1 9 14 22 -1 22 14 30 -1 22 30 24 -1 24 30 31 -1 24 31 26 -1 26 31 32 -1 26 32 28 -1 14 17 30 -1 30 17 33 -1 30 33 31 -1 31 33 34 -1 31 34 32 -1 17 19 33 -1 33 19 35 -1 33 35 34 -1 35 19 20 -1 10 36 8 -1 8 36 37 -1 8 37 6 -1 6 37 38 -1 6 38 4 -1 4 38 39 -1 4 39 2 -1 2 39 40 -1 2 40 0 -1 36 41 37 -1 37 41 42 -1 37 42 38 -1 38 42 43 -1 38 43 39 -1 39 43 44 -1 39 44 40 -1 41 45 42 -1 42 45 46 -1 42 46 43 -1 43 46 47 -1 43 47 44 -1 45 48 46 -1 46 48 49 -1 46 49 47 -1 49 48 50 -1 29 51 27 -1 27 51 52 -1 27 52 25 -1 25 52 53 -1 25 53 23 -1 23 53 54 -1 23 54 21 -1 21 54 36 -1 21 36 10 -1 51 55 52 -1 52 55 56 -1 52 56 53 -1 53 56 57 -1 53 57 54 -1 54 57 41 -1 54 41 36 -1 55 58 56 -1 56 58 59 -1 56 59 57 -1 57 59 45 -1 57 45 41 -1 58 60 59 -1 59 60 48 -1 59 48 45 -1 48 60 50 -1 61 62 63 -1 63 62 64 -1 63 64 65 -1 65 64 66 -1 65 66 67 -1 67 66 68 -1 67 68 69 -1 69 68 1 -1 69 1 0 -1 62 70 64 -1 64 70 71 -1 64 71 66 -1 66 71 72 -1 66 72 68 -1 68 72 11 -1 68 11 1 -1 70 73 71 -1 71 73 74 -1 71 74 72 -1 72 74 15 -1 72 15 11 -1 73 75 74 -1 74 75 18 -1 74 18 15 -1 18 75 20 -1 29 28 76 -1 76 28 77 -1 76 77 78 -1 78 77 79 -1 78 79 80 -1 80 79 81 -1 80 81 82 -1 82 81 62 -1 82 62 61 -1 28 32 77 -1 77 32 83 -1 77 83 79 -1 79 83 84 -1 79 84 81 -1 81 84 70 -1 81 70 62 -1 32 34 83 -1 83 34 85 -1 83 85 84 -1 84 85 73 -1 84 73 70 -1 34 35 85 -1 85 35 75 -1 85 75 73 -1 75 35 20 -1 0 40 69 -1 69 40 86 -1 69 86 67 -1 67 86 87 -1 67 87 65 -1 65 87 88 -1 65 88 63 -1 63 88 89 -1 63 89 61 -1 40 44 86 -1 86 44 90 -1 86 90 87 -1 87 90 91 -1 87 91 88 -1 88 91 92 -1 88 92 89 -1 44 47 90 -1 90 47 93 -1 90 93 91 -1 91 93 94 -1 91 94 92 -1 47 49 93 -1 93 49 95 -1 93 95 94 -1 95 49 50 -1 61 89 82 -1 82 89 96 -1 82 96 80 -1 80 96 97 -1 80 97 78 -1 78 97 98 -1 78 98 76 -1 76 98 51 -1 76 51 29 -1 89 92 96 -1 96 92 99 -1 96 99 97 -1 97 99 100 -1 97 100 98 -1 98 100 55 -1 98 55 51 -1 92 94 99 -1 99 94 101 -1 99 101 100 -1 100 101 58 -1 100 58 55 -1 94 95 101 -1 101 95 60 -1 101 60 58 -1 60 95 50 -1'>
            <Coordinate USE='SpherePoints'/>
            <Color DEF='ELLIPSOID3COLOR' color='0 0 1'/>
          </IndexedLineSet>
        </Shape>
      </Transform>
    </Transform>
    <Transform DEF='DIRECTION_X_TRANS'>
      <TouchSensor DEF='TOUCHX' description='touch to activate X'/>
      <Transform translation='-3 1.5 -5'>
        <Shape>
          <Appearance>
            <Material DEF='XMATERIAL' ambientIntensity='1' diffuseColor='1 0 0'/>
          </Appearance>
          <Box DEF='X' size='1.5 1 0.1'/>
        </Shape>
        <Transform translation='-0.55 0 0.2'>
          <Shape>
            <Appearance>
              <Material ambientIntensity='1' diffuseColor='0 0 0'/>
            </Appearance>
            <Text string='"Direction" "X-axis"'>
              <FontStyle size='0.35'/>
            </Text>
          </Shape>
        </Transform>
      </Transform>
      <TimeSensor DEF='XTIMER'/>
      <ColorInterpolator DEF='XFLASH' key='0 0.5 1' keyValue='1 0 0 1 1 1 1 0 0'/>
    </Transform>
    <Transform DEF='DIRECTION_Y_TRANS'>
      <Transform translation='-3 0 -5'>
        <TouchSensor DEF='TOUCHY' description='touch to activate Y'/>
        <Shape>
          <Appearance>
            <Material DEF='YMATERIAL' ambientIntensity='1' diffuseColor='0 1 0'/>
          </Appearance>
          <Box DEF='Y' size='1.5 1 0.1'/>
        </Shape>
        <Transform translation='-0.55 0 0.2'>
          <Shape>
            <Appearance>
              <Material ambientIntensity='1' diffuseColor='0 0 0'/>
            </Appearance>
            <Text string='"Direction" "Y-axis"'>
              <FontStyle size='0.35'/>
            </Text>
          </Shape>
        </Transform>
      </Transform>
      <TimeSensor DEF='YTIMER'/>
      <ColorInterpolator DEF='YFLASH' key='0 0.5 1' keyValue='0 1 0 1 1 1 0 1 0'/>
    </Transform>
    <Transform DEF='Z_TRANS'>
      <Transform translation='-3 -1.5 -5'>
        <TouchSensor DEF='TOUCHZ' description='touch to activate Z'/>
        <Shape>
          <Appearance>
            <Material DEF='ZMATERIAL' ambientIntensity='1' diffuseColor='0 0 1'/>
          </Appearance>
          <Box DEF='Z' size='1.5 1 0.1'/>
        </Shape>
        <Transform translation='-0.55 0 0.2'>
          <Shape>
            <Appearance>
              <Material ambientIntensity='1' diffuseColor='0 0 0'/>
            </Appearance>
            <Text string='"Direction" "Z-axis"'>
              <FontStyle size='0.35'/>
            </Text>
          </Shape>
        </Transform>
      </Transform>
      <TimeSensor DEF='ZTIMER'/>
      <ColorInterpolator DEF='ZFLASH' key='0 0.5 1' keyValue='0 0 1 1 1 1 0 0 1'/>
    </Transform>
    <Transform DEF='TRANS1'>
      <Transform translation='-0.2 -0.15 -0.5'>
        <Shape>
          <Appearance>
            <Material diffuseColor='1 1 1'/>
          </Appearance>
          <Text DEF='TYPESTRING1' string='"message from Script is inserted here"'>
            <FontStyle size='0.025' style='BOLD'/>
          </Text>
        </Shape>
      </Transform>
    </Transform>
    <Script DEF='SOUND_SCRIPT' directOutput='true' url='"direction.js" "https://www.web3d.org/x3d/content/examples/ConformanceNist/Sounds/Sound/direction.js"'>
      <field accessType='initializeOnly' name='typestring1' type='SFNode'>
        <Text USE='TYPESTRING1'/>
      </field>
      <field accessType='inputOnly' name='printOutsideMaxFront' type='SFBool'/>
      <field accessType='inputOnly' name='printJustOutsideMaxFront' type='SFBool'/>
      <field accessType='inputOnly' name='printBetweenFront' type='SFBool'/>
      <field accessType='inputOnly' name='printMinFront' type='SFBool'/>
      <field accessType='inputOnly' name='printMinCenterFront' type='SFBool'/>
      <field accessType='inputOnly' name='printOutsideMaxRight' type='SFBool'/>
      <field accessType='inputOnly' name='printJustOutsideMaxRight' type='SFBool'/>
      <field accessType='inputOnly' name='printBetweenRight' type='SFBool'/>
      <field accessType='inputOnly' name='printMinRight' type='SFBool'/>
      <field accessType='inputOnly' name='printMinCenterRight' type='SFBool'/>
      <field accessType='inputOnly' name='printOutsideMaxRear' type='SFBool'/>
      <field accessType='inputOnly' name='printJustOutsideMaxRear' type='SFBool'/>
      <field accessType='inputOnly' name='printBetweenRear' type='SFBool'/>
      <field accessType='inputOnly' name='printMinRear' type='SFBool'/>
      <field accessType='inputOnly' name='printMinCenterRear' type='SFBool'/>
      <field accessType='inputOnly' name='printOutsideMaxLeft' type='SFBool'/>
      <field accessType='inputOnly' name='printJustOutsideMaxLeft' type='SFBool'/>
      <field accessType='inputOnly' name='printBetweenLeft' type='SFBool'/>
      <field accessType='inputOnly' name='printMinLeft' type='SFBool'/>
      <field accessType='inputOnly' name='printMinCenterLeft' type='SFBool'/>
      <field accessType='inputOnly' name='printOutsideMaxBottom' type='SFBool'/>
      <field accessType='inputOnly' name='printJustOutsideMaxBottom' type='SFBool'/>
      <field accessType='inputOnly' name='printBetweenBottom' type='SFBool'/>
      <field accessType='inputOnly' name='printMinBottom' type='SFBool'/>
      <field accessType='inputOnly' name='printMinCenterBottom' type='SFBool'/>
      <field accessType='inputOnly' name='printOutsideMaxTop' type='SFBool'/>
      <field accessType='inputOnly' name='printJustOutsideMaxTop' type='SFBool'/>
      <field accessType='inputOnly' name='printBetweenTop' type='SFBool'/>
      <field accessType='inputOnly' name='printMinTop' type='SFBool'/>
      <field accessType='inputOnly' name='printMinCenterTop' type='SFBool'/>
      <field accessType='initializeOnly' name='outsideMaxFrontString' type='MFString' value='"FRONT VIEW: Outside maxFront (no sound)"'/>
      <field accessType='initializeOnly' name='justOutsideMaxFrontString' type='MFString' value='"Just outside maxFront (no sound)"'/>
      <field accessType='initializeOnly' name='betweenFrontString' type='MFString' value='"Midway between ellipsoids(max sound -10dB)"'/>
      <field accessType='initializeOnly' name='minFrontString' type='MFString' value='"At minFront (max sound)"'/>
      <field accessType='initializeOnly' name='minCenterFrontString' type='MFString' value='"At ellipsoid center (max sound)"'/>
      <field accessType='initializeOnly' name='outsideMaxRightString' type='MFString' value='"RIGHT VIEW: Outside max ellipsoid (no sound)"'/>
      <field accessType='initializeOnly' name='justOutsideMaxRightString' type='MFString' value='"Just outside max ellipsoid (no sound)"'/>
      <field accessType='initializeOnly' name='betweenRightString' type='MFString' value='"Midway between ellipsoids (max sound -10dB)"'/>
      <field accessType='initializeOnly' name='minRightString' type='MFString' value='"At min ellipsoid (max sound)"'/>
      <field accessType='initializeOnly' name='minCenterRightString' type='MFString' value='"At ellipsoid center (max sound)"'/>
      <field accessType='initializeOnly' name='outsideMaxRearString' type='MFString' value='"REAR VIEW: Outside maxBack (no sound)"'/>
      <field accessType='initializeOnly' name='justOutsideMaxRearString' type='MFString' value='"Just outside maxBack (no sound)"'/>
      <field accessType='initializeOnly' name='betweenRearString' type='MFString' value='"Midway between maxBack and minBack (max sound -10dB)"'/>
      <field accessType='initializeOnly' name='minRearString' type='MFString' value='"At minBack (max sound)"'/>
      <field accessType='initializeOnly' name='minCenterRearString' type='MFString' value='"At ellipsoid center (max sound)"'/>
      <field accessType='initializeOnly' name='outsideMaxLeftString' type='MFString' value='"LEFT VIEW: Outside max ellipsoid (no sound)"'/>
      <field accessType='initializeOnly' name='justOutsideMaxLeftString' type='MFString' value='"Just outside max ellipsoid (no sound)"'/>
      <field accessType='initializeOnly' name='betweenLeftString' type='MFString' value='"Midway between ellipsoids (max sound -10dB)"'/>
      <field accessType='initializeOnly' name='minLeftString' type='MFString' value='"At min ellipsoid (max sound)"'/>
      <field accessType='initializeOnly' name='minCenterLeftString' type='MFString' value='"At ellipsoid center (max sound)"'/>
      <field accessType='initializeOnly' name='outsideMaxTopString' type='MFString' value='"TOP VIEW: Outside max ellipsoid (no sound)"'/>
      <field accessType='initializeOnly' name='justOutsideMaxTopString' type='MFString' value='"Just outside max ellipsoid (no sound)"'/>
      <field accessType='initializeOnly' name='betweenTopString' type='MFString' value='"Midway between ellipsoids (max sound -10dB)"'/>
      <field accessType='initializeOnly' name='minTopString' type='MFString' value='"[At min ellipsoid (max sound)"'/>
      <field accessType='initializeOnly' name='minCenterTopString' type='MFString' value='"At ellipsoid center (max sound)"'/>
      <field accessType='initializeOnly' name='outsideMaxBottomString' type='MFString' value='"BOTTOM VIEW: Outside max ellipsoid (no sound)"'/>
      <field accessType='initializeOnly' name='justOutsideMaxBottomString' type='MFString' value='"Just outside max ellipsoid (no sound)"'/>
      <field accessType='initializeOnly' name='betweenBottomString' type='MFString' value='"Midway between ellipsoids (max sound -10dB)"'/>
      <field accessType='initializeOnly' name='minBottomString' type='MFString' value='"At min ellipsoid (max sound)"'/>
      <field accessType='initializeOnly' name='xMaterial' type='SFNode'>
        <Material USE='XMATERIAL'/>
      </field>
      <field accessType='initializeOnly' name='yMaterial' type='SFNode'>
        <Material USE='YMATERIAL'/>
      </field>
      <field accessType='initializeOnly' name='zMaterial' type='SFNode'>
        <Material USE='ZMATERIAL'/>
      </field>
      <field accessType='initializeOnly' name='sound1' type='SFNode'>
        <Sound USE='SOUND1'/>
      </field>
      <field accessType='initializeOnly' name='ellipsoid1Color' type='SFNode'>
        <Color USE='ELLIPSOID1COLOR'/>
      </field>
      <field accessType='initializeOnly' name='ellipsoid2Color' type='SFNode'>
        <Color USE='ELLIPSOID2COLOR'/>
      </field>
      <field accessType='initializeOnly' name='ellipsoid3Color' type='SFNode'>
        <Color USE='ELLIPSOID3COLOR'/>
      </field>
      <field accessType='initializeOnly' name='white' type='MFColor' value='1 1 1'/>
      <field accessType='initializeOnly' name='red' type='MFColor' value='1 0 0'/>
      <field accessType='initializeOnly' name='green' type='MFColor' value='0 1 0'/>
      <field accessType='initializeOnly' name='blue' type='MFColor' value='0 0 1'/>
      <field accessType='initializeOnly' name='sfWhite' type='SFColor' value='1 1 1'/>
      <field accessType='initializeOnly' name='sfRed' type='SFColor' value='1 0 0'/>
      <field accessType='initializeOnly' name='sfGreen' type='SFColor' value='0 1 0'/>
      <field accessType='initializeOnly' name='sfBlue' type='SFColor' value='0 0 1'/>
      <field accessType='inputOnly' name='colorEllipse1' type='SFBool'/>
      <field accessType='inputOnly' name='colorEllipse2' type='SFBool'/>
      <field accessType='inputOnly' name='colorEllipse3' type='SFBool'/>
      <field accessType='initializeOnly' name='xAxis' type='SFVec3f' value='1 0 0'/>
      <field accessType='initializeOnly' name='yAxis' type='SFVec3f' value='0 1 0'/>
      <field accessType='initializeOnly' name='zAxis' type='SFVec3f' value='0 0 1'/>
    </Script>
    <ROUTE fromField='isBound' fromNode='OUTSIDEMAXFRONT' toField='printOutsideMaxFront' toNode='SOUND_SCRIPT'/>
    <ROUTE fromField='isBound' fromNode='BETWEENFRONT' toField='printBetweenFront' toNode='SOUND_SCRIPT'/>
    <ROUTE fromField='isBound' fromNode='OUTSIDEMAXRIGHT' toField='printOutsideMaxRight' toNode='SOUND_SCRIPT'/>
    <ROUTE fromField='isBound' fromNode='BETWEENRIGHT' toField='printBetweenRight' toNode='SOUND_SCRIPT'/>
    <ROUTE fromField='isBound' fromNode='OUTSIDEMAXTOP' toField='printOutsideMaxTop' toNode='SOUND_SCRIPT'/>
    <ROUTE fromField='isBound' fromNode='BETWEENTOP' toField='printBetweenTop' toNode='SOUND_SCRIPT'/>
    <ROUTE fromField='position_changed' fromNode='PROX_SENSOR' toField='set_translation' toNode='TRANS1'/>
    <ROUTE fromField='orientation_changed' fromNode='PROX_SENSOR' toField='set_rotation' toNode='TRANS1'/>
    <ROUTE fromField='position_changed' fromNode='PROX_SENSOR' toField='set_translation' toNode='DIRECTION_X_TRANS'/>
    <ROUTE fromField='orientation_changed' fromNode='PROX_SENSOR' toField='set_rotation' toNode='DIRECTION_X_TRANS'/>
    <ROUTE fromField='position_changed' fromNode='PROX_SENSOR' toField='set_translation' toNode='DIRECTION_Y_TRANS'/>
    <ROUTE fromField='orientation_changed' fromNode='PROX_SENSOR' toField='set_rotation' toNode='DIRECTION_Y_TRANS'/>
    <ROUTE fromField='position_changed' fromNode='PROX_SENSOR' toField='set_translation' toNode='Z_TRANS'/>
    <ROUTE fromField='orientation_changed' fromNode='PROX_SENSOR' toField='set_rotation' toNode='Z_TRANS'/>
    <ROUTE fromField='isActive' fromNode='TOUCHX' toField='colorEllipse1' toNode='SOUND_SCRIPT'/>
    <ROUTE fromField='isActive' fromNode='TOUCHY' toField='colorEllipse2' toNode='SOUND_SCRIPT'/>
    <ROUTE fromField='isActive' fromNode='TOUCHZ' toField='colorEllipse3' toNode='SOUND_SCRIPT'/>
  </Scene>
</X3D>