door_00.x3d source
<?xml version="1.0" encoding="UTF-8"?>
<X3D>
<Scene>
<Viewpoint position='0 1.6 10'/>
<NavigationInfo headlight='FALSE' speed='3'
type='
"WALK"'
/>
<DirectionalLight direction='-1 -1 -1' ambientIntensity='1'/>
<Background
skyAngle='1.57'
skyColor='
0 0.3 1
0.7 1 1'
/>

<!-- Gorund -->
<Transform translation='0 -0.05 0'>
<Shape>
<Appearance>
<Material diffuseColor='0 0.8 0'/>
<ImageTexture
url='
"green.jpg"'
/>
<TextureTransform scale='50 50'/>
</Appearance>
<Box size='100 0.1 100'/>
</Shape>
</Transform>

<!-- Wooden house -->
<Group>
<Group DEF='WoodWall'>
<Transform translation='-1.5 0.25 0' rotation='0 0 1 1.5708'>
<Shape DEF='Wood'>
<Appearance>
<Material diffuseColor='0.6 0.2 0'/>
<ImageTexture
url='
"wood.jpg"'
/>
<TextureTransform scale='5 2'/>
</Appearance>
<Cylinder radius='0.25'/>
</Shape>
</Transform>
<Transform translation='1.5 0.25 0' rotation='0 0 1 1.5708'>
<Shape USE='Wood'/>
</Transform>
<Transform translation='-2.25 0.25 -2' rotation='1 0 0 1.5708' scale='1 2 1'>
<Shape USE='Wood'/>
</Transform>
<Transform translation='2.25 0.25 -2' rotation='1 0 0 1.5708' scale='1 2 1'>
<Shape USE='Wood'/>
</Transform>
<Transform translation='0 0.25 -4' rotation='0 0 1 1.5708' scale='1 2.5 1'>
<Shape USE='Wood'/>
</Transform>
</Group>
<Transform translation='0 0.5 0'>
<Group USE='WoodWall'/>
</Transform>
<Transform translation='0 1 0'>
<Group USE='WoodWall'/>
</Transform>
<Transform translation='0 1.5 0'>
<Group USE='WoodWall'/>
</Transform>
<Transform translation='0 2 0'>
<Group USE='WoodWall'/>
<Transform translation='0 0.25 0' rotation='0 0 1 1.5708' scale='1 0.5 1'>
<Shape USE='Wood'/>
</Transform>
</Transform>
</Group>

<!-- Wooden door -->
<Transform DEF='Door-Tf' center='0.495 0 0' translation='0 1 0'>
<Shape>
<Appearance DEF='Door-Ap'>
<Material diffuseColor='0.6 0.2 0'/>
<ImageTexture
url='
"wood.jpg"'
/>
</Appearance>
<Box size='1 2 0.05'/>
</Shape>
<Transform translation='-0.4 0 0' rotation='1 0 0 1.5708'>
<Shape>
<Appearance>
<Material diffuseColor='0.7 0.7 0.7'/>
</Appearance>
<Cylinder radius='0.04' height='0.1'/>
</Shape>
</Transform>
<TouchSensor DEF='ThS'/>
</Transform>

<TimeSensor DEF='Open-TiS' cycleInterval='2'/>
<TimeSensor DEF='Close-TiS' cycleInterval='2'/>

<OrientationInterpolator DEF='Open-OI'
key='0 1'
keyValue='
0 1 0 0
0 1 0 1.5708'
/>
<OrientationInterpolator DEF='Close-OI'
key='0 1'
keyValue='
0 1 0 1.5708
0 1 0 0'
/>
<ROUTE fromNode='Open-TiS' fromField='fraction_changed' toNode='Open-OI' toField='set_fraction'/>
<ROUTE fromNode='Open-OI' fromField='value_changed' toNode='Door-Tf' toField='rotation'/>
<ROUTE fromNode='Close-TiS' fromField='fraction_changed' toNode='Close-OI' toField='set_fraction'/>
<ROUTE fromNode='Close-OI' fromField='value_changed' toNode='Door-Tf' toField='rotation'/>

<Script DEF='Sc'>
<field accessType='inputOnly' type='SFTime' name='touchedDoor'/>
<field accessType='outputOnly' type='SFTime' name='startTime_Open'/>
<field accessType='outputOnly' type='SFTime' name='startTime_Close'/>
<field accessType='initializeOnly' type='SFBool' name='isOpen' value='FALSE'/>
<![CDATA[ecmascript:
function touchedDoor (val,et) {

isOpen = !isOpen;

if (isOpen) startTime_Open = et;
else startTime_Close = et;

}
]]>
</Script>

<ROUTE fromNode='ThS' fromField='touchTime' toNode='Sc' toField='touchedDoor'/>
<ROUTE fromNode='Sc' fromField='startTime_Open' toNode='Open-TiS' toField='startTime'/>
<ROUTE fromNode='Sc' fromField='startTime_Close' toNode='Close-TiS' toField='startTime'/>
</Scene>
</X3D>