resetSphereSensor_0_00.x3d source
<?xml version="1.0" encoding="UTF-8"?>

<X3D>
<Scene>
<Viewpoint position='0 0 5'/>
<NavigationInfo
type='"NONE"'
/>
<!-- 猫の円柱 -->
<Transform DEF='Cat-Tf'>
<Shape>
<Appearance>
<ImageTexture
url='"cat.jpg"'
/>
</Appearance>
<Cylinder radius='0.5' height='1.5708'/>
</Shape>
<SphereSensor DEF='Cat-SpS'/>
</Transform>
<ROUTE fromNode='Cat-SpS' fromField='rotation_changed' toNode='Cat-Tf' toField='rotation'/>

<!-- 赤い球 -->
<Transform translation='0.2 -1.8 0'>
<Shape>
<Appearance>
<Material diffuseColor='1 0 0'/>
</Appearance>
<Sphere radius='0.1'/>
</Shape>
<TouchSensor DEF='RedBall-ThS'/>
</Transform>

<!-- 青い球 -->
<Transform translation='-0.2 -1.8 0'>
<Shape>
<Appearance>
<Material diffuseColor='0 0 1'/>
</Appearance>
<Sphere radius='0.1'/>
</Shape>
<TouchSensor DEF='BlueBall-ThS'/>
</Transform>

<!-- 位置リセットスクリプト -->
<Script DEF='Sc'>
<field accessType='inputOnly' type='SFTime' name='reset'/>
<field accessType='inputOnly' type='SFTime' name='set'/>
<field accessType='outputOnly' type='SFRotation' name='resetOrientation'/>
<field accessType='initializeOnly' type='SFRotation' name='initOri' value='0 1 0 0'/>
<field accessType='initializeOnly' type='SFRotation' name='overlookOri' value='1 0 0 1.2'/>
<![CDATA[ecmascript:
function reset () {
resetOrientation = initOri;
}
function set () {
resetOrientation = overlookOri;
}
]]>
</Script>
<ROUTE fromNode='RedBall-ThS' fromField='touchTime' toNode='Sc' toField='reset'/>
<ROUTE fromNode='BlueBall-ThS' fromField='touchTime' toNode='Sc' toField='set'/>
<ROUTE fromNode='Sc' fromField='resetOrientation' toNode='Cat-Tf' toField='rotation'/>
<ROUTE fromNode='Sc' fromField='resetOrientation' toNode='Cat-SpS' toField='offset'/>
</Scene>
</X3D>