<WorldInfo info='
"The ExternProto nodes found in this file implement principles described in the paper"
"Linear Filters - Animating Objects in a Flexible and Pleasing Way"
"They have been proposed and added to the X3D standard in 2006."
"Webpage: "http://www.hersto.net/Followers"
""
"Please use the code in this file in any content or application you like"
"or modify it in any way."
""
"The code here works, however things like detecting when a transition has ended"
"and when the node can stop calculating and updating the output or secondary fields"
"like set_value or initial_destination are not yet implemented."
"Nevertheless, set_destination and value_changed do work."
' title='Follower (Chaser and Damper) nodes'/>
<!-- ================================================ -->
<!-- Do not use these! The following ExternProtoDeclares were produced when converting the original examples, and are included for completeness only. -->
<ExternProtoDeclare name='OrientationChaser'
url='
"urn:inet:hersto.net:node:OrientationChaser" "Chasers.x3d#OrientationChaser" "https://www.web3d.org/x3d/content/examples/Basic/Followers/Chasers.x3d#OrientationChaser" "Chasers.wrl#OrientationChaser" "https://www.web3d.org/x3d/content/examples/Basic/Followers/Chasers.wrl#OrientationChaser" "http://www.hersto.net/Followers/Chasers.wrl#OrientationChaser" '
>
<field name='value_changed' type='SFRotation' accessType='outputOnly'/>
<field name='set_value' type='SFRotation' accessType='inputOnly'/>
<field name='isActive' type='SFBool' accessType='outputOnly'/>
<field name='set_destination' type='SFRotation' accessType='inputOnly'/>
<field name='duration' type='SFTime' accessType='initializeOnly'/>
<field name='initial_destination' type='SFRotation' accessType='initializeOnly'/>
<field name='initial_value' type='SFRotation' accessType='initializeOnly'/>
</ExternProtoDeclare>
<ExternProtoDeclare name='OrientationDamper'
url='
"urn:inet:hersto.net:node:OrientationDamper" "Dampers.wrl#OrientationDamper" "http://www.hersto.net/Followers/Dampers.wrl#OrientationDamper" '
>
<field name='isLoaded' type='SFBool' accessType='outputOnly'/>
<field name='value_changed' type='SFRotation' accessType='outputOnly'/>
<field name='set_destination' type='SFRotation' accessType='inputOnly'/>
<field name='initial_destination' type='SFRotation' accessType='initializeOnly'/>
<field name='order' type='SFInt32' accessType='initializeOnly'/>
<field name='tau' type='SFFloat' accessType='inputOutput'/>
<field name='set_value' type='SFRotation' accessType='inputOnly'/>
<field name='initial_value' type='SFRotation' accessType='initializeOnly'/>
<field name='isActive' type='SFBool' accessType='outputOnly'/>
<field name='eps' type='SFFloat' accessType='initializeOnly'/>
</ExternProtoDeclare>
<ExternProtoDeclare name='PlacementChaser'
url='
"Chasers.x3d#PlacementChaser" "https://www.web3d.org/x3d/content/examples/Basic/Followers/Chasers.x3d#PlacementChaser" "Chasers.wrl#PlacementChaser" "https://www.web3d.org/x3d/content/examples/Basic/Followers/Chasers.wrl#PlacementChaser" '
>
<field name='isLoaded' type='SFBool' accessType='outputOnly'/>
<field name='set_valuePos' type='SFVec3f' accessType='inputOnly'/>
<field name='set_valueOri' type='SFRotation' accessType='inputOnly'/>
<field name='set_destinationPos' type='SFVec3f' accessType='inputOnly'/>
<field name='duration' type='SFTime' accessType='initializeOnly'/>
<field name='set_destinationOri' type='SFRotation' accessType='inputOnly'/>
<field name='initial_valuePos' type='SFVec3f' accessType='initializeOnly'/>
<field name='initial_destinationPos' type='SFVec3f' accessType='initializeOnly'/>
<field name='valuePos_changed' type='SFVec3f' accessType='outputOnly'/>
<field name='initial_valueOri' type='SFRotation' accessType='initializeOnly'/>
<field name='initial_destinationOri' type='SFRotation' accessType='initializeOnly'/>
<field name='valueOri_changed' type='SFRotation' accessType='outputOnly'/>
<field name='isActive' type='SFBool' accessType='outputOnly'/>
</ExternProtoDeclare>
<ExternProtoDeclare name='Position2fDamper'
url='
"urn:inet:hersto.net:node:Position2fDamper" "Dampers.wrl#Position2fDamper" "http://www.hersto.net/Followers/Dampers.wrl#Position2fDamper" '
>
<field name='isLoaded' type='SFBool' accessType='outputOnly'/>
<field name='value_changed' type='SFVec2f' accessType='outputOnly'/>
<field name='set_destination' type='SFVec2f' accessType='inputOnly'/>
<field name='initial_destination' type='SFVec2f' accessType='initializeOnly'/>
<field name='order' type='SFInt32' accessType='initializeOnly'/>
<field name='tau' type='SFFloat' accessType='inputOutput'/>
<field name='set_value' type='SFVec2f' accessType='inputOnly'/>
<field name='initial_value' type='SFVec2f' accessType='initializeOnly'/>
<field name='isActive' type='SFBool' accessType='outputOnly'/>
<field name='eps' type='SFFloat' accessType='initializeOnly'/>
</ExternProtoDeclare>
<ExternProtoDeclare name='Position2fChaser'
url='
"urn:inet:hersto.net:node:Position2fChaser" "Chasers.wrl#Position2fChaser" "http://www.hersto.net/Followers/Chasers.wrl#Position2fChaser" '
>
<field name='value_changed' type='SFVec2f' accessType='outputOnly'/>
<field name='set_value' type='SFVec2f' accessType='inputOnly'/>
<field name='isActive' type='SFBool' accessType='outputOnly'/>
<field name='set_destination' type='SFVec2f' accessType='inputOnly'/>
<field name='duration' type='SFTime' accessType='initializeOnly'/>
<field name='initial_destination' type='SFVec2f' accessType='initializeOnly'/>
<field name='initial_value' type='SFVec2f' accessType='initializeOnly'/>
</ExternProtoDeclare>
<ExternProtoDeclare name='PositionChaser'
url='
"urn:inet:hersto.net:node:PositionChaser" "Chasers.wrl#PositionChaser" "http://www.hersto.net/Followers/Chasers.wrl#PositionChaser" '
>
<field name='value_changed' type='SFVec3f' accessType='outputOnly'/>
<field name='set_value' type='SFVec3f' accessType='inputOnly'/>
<field name='isActive' type='SFBool' accessType='outputOnly'/>
<field name='set_destination' type='SFVec3f' accessType='inputOnly'/>
<field name='duration' type='SFTime' accessType='initializeOnly'/>
<field name='initial_destination' type='SFVec3f' accessType='initializeOnly'/>
<field name='initial_value' type='SFVec3f' accessType='initializeOnly'/>
</ExternProtoDeclare>
<ExternProtoDeclare name='PositionDamper'
url='
"urn:inet:hersto.net:node:PositionDamper" "Dampers.wrl#PositionDamper" "http://www.hersto.net/Followers/Dampers.wrl#PositionDamper" '
>
<field name='isLoaded' type='SFBool' accessType='outputOnly'/>
<field name='value_changed' type='SFVec3f' accessType='outputOnly'/>
<field name='set_destination' type='SFVec3f' accessType='inputOnly'/>
<field name='initial_destination' type='SFVec3f' accessType='initializeOnly'/>
<field name='order' type='SFInt32' accessType='initializeOnly'/>
<field name='tau' type='SFFloat' accessType='inputOutput'/>
<field name='set_value' type='SFVec3f' accessType='inputOnly'/>
<field name='initial_value' type='SFVec3f' accessType='initializeOnly'/>
<field name='isActive' type='SFBool' accessType='outputOnly'/>
<field name='eps' type='SFFloat' accessType='initializeOnly'/>
</ExternProtoDeclare>
<ExternProtoDeclare name='ScalarDamper'
url='
"Dampers.x3d#ScalarDamper" "https://www.web3d.org/x3d/content/examples/Basic/Followers/Dampers.x3d#ScalarDamper" "Dampers.wrl#ScalarDamper" "https://www.web3d.org/x3d/content/examples/Basic/Followers/Dampers.wrl#ScalarDamper" '
>
<field name='isLoaded' type='SFBool' accessType='outputOnly'/>
<field name='value_changed' type='SFFloat' accessType='outputOnly'/>
<field name='set_destination' type='SFFloat' accessType='inputOnly'/>
<field name='initial_destination' type='SFFloat' accessType='initializeOnly'/>
<field name='order' type='SFInt32' accessType='initializeOnly'/>
<field name='tau' type='SFFloat' accessType='inputOutput'/>
<field name='set_value' type='SFFloat' accessType='inputOnly'/>
<field name='transparency_changed' type='SFFloat' accessType='outputOnly'/>
<field name='initial_value' type='SFFloat' accessType='initializeOnly'/>
<field name='isActive' type='SFBool' accessType='outputOnly'/>
<field name='eps' type='SFFloat' accessType='initializeOnly'/>
</ExternProtoDeclare>