<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 4.0//EN" "https://www.web3d.org/specifications/x3d-4.0.dtd">
<X3D profile='Interactive' version='4.0' xmlns:xsd='http://www.w3.org/2001/XMLSchema-instance' xsd:noNamespaceSchemaLocation='https://www.web3d.org/specifications/x3d-4.0.xsd'>
  <head>
    <meta content='Elevator.x3d' name='title'/>
    <meta content='X3D encodings example: example of animating the camera by depicting an elevator to ease access to a multi-story building. For this example, a 2 story building is shown and it is assumed that the elevator is already at the ground floor. To go up, the user just steps onto the elevator platform. A ProximitySensor fires and starts the elevator up automatically. Additional features such as call buttons for outside the elevator, elevator doors, and floor selector buttons could be added to make the elevator easier to use.' name='description'/>
    <meta content='Don Brutzman and Joe Williams' name='creator'/>
    <meta content='ElevatorAnimation.png' name='Image'/>
    <meta content='1 June 2002' name='created'/>
    <meta content='28 September 2025' name='modified'/>
    <meta content='X3D encodings, ISO/IEC 19776-1.3, Part 1: XML encoding, Annex C.18 Elevator' name='specificationSection'/>
    <meta content='https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19776-1v4.0-CD/Part01/examples.html#Elevator' name='specificationUrl'/>
    <meta content='https://www.web3d.org/x3d/content/examples/Basic/X3dSpecifications/Elevator.x3d' name='identifier'/>
    <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='Elevator.x3d'/>
    <NavigationInfo type='"WALK" "ANY"'/>
    <Transform translation='0.0 0.0 -3.5'>
      <Shape>
        <Cone/>
        <Appearance>
          <Material diffuseColor='0.0 1.0 0.0'/>
        </Appearance>
      </Shape>
    </Transform>
    <Transform translation='0.0 4.0 -3.5'>
      <Shape>
        <Cone/>
        <Appearance>
          <Material diffuseColor='1.0 0.0 0.0'/>
        </Appearance>
      </Shape>
    </Transform>
    <Transform translation='0.0 8.0 -3.5'>
      <Shape>
        <Cone/>
        <Appearance>
          <Material diffuseColor='0.0 0.0 1.0'/>
        </Appearance>
      </Shape>
    </Transform>
    <Group>
      <Transform DEF='ETransform'>
        <Viewpoint DEF='EViewpoint' description='Elevator Viewpoint' jump='false'/>
        <ProximitySensor DEF='EProximity' size='2.0 5.0 5.0'/>
        <Transform translation='0.0 -1.0 0.0'>
          <Shape>
            <Box size='2.0 0.2 5.0'/>
            <Appearance>
              <Material/>
            </Appearance>
          </Shape>
        </Transform>
      </Transform>
    </Group>
    <PositionInterpolator DEF='ElevatorPI' key='0.0 1.0' keyValue='0.0 0.0 0.0 0.0 8.0 0.0'/>
    <TimeSensor DEF='TS' cycleInterval='10.0'/>
    <ROUTE fromField='enterTime' fromNode='EProximity' toField='startTime' toNode='TS'/>
    <ROUTE fromField='isActive' fromNode='TS' toField='set_bind' toNode='EViewpoint'/>
    <ROUTE fromField='fraction_changed' fromNode='TS' toField='set_fraction' toNode='ElevatorPI'/>
    <ROUTE fromField='value_changed' fromNode='ElevatorPI' toField='translation' toNode='ETransform'/>
  </Scene>
</X3D>