resetPlaneSensor_1_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>
<Box size='1 1 0.01'/>
</Shape>
<PlaneSensor DEF='Cat-PlS'/>
</Transform>
<ROUTE fromNode='Cat-PlS' fromField='translation_changed' toNode='Cat-Tf' toField='translation'/>

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

<!-- 位置リセットスクリプト -->
<Script DEF='Sc'>
<field accessType='inputOnly' type='SFTime' name='reset'/>
<field accessType='outputOnly' type='SFVec3f' name='resetPosition'/>
<field accessType='initializeOnly' type='SFVec3f' name='initPos' value='0 0 0'/>
<![CDATA[ecmascript:
function reset () {
resetPosition = initPos;
}
]]>
</Script>
<ROUTE fromNode='Ball-ThS' fromField='touchTime' toNode='Sc' toField='reset'/>
<ROUTE fromNode='Sc' fromField='resetPosition' toNode='Cat-Tf' toField='translation'/>
<ROUTE fromNode='Sc' fromField='resetPosition' toNode='Cat-PlS' toField='offset'/>
</Scene>
</X3D>