| 1 |
<?xml version="1.0" encoding="UTF-8"?>
|
| 2 |
<!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 3.2//EN" "https://www.web3d.org/specifications/x3d-3.2.dtd">
|
| 3 | <X3D profile='Immersive' version='3.2' xmlns:xsd='http://www.w3.org/2001/XMLSchema-instance' xsd:noNamespaceSchemaLocation='https://www.web3d.org/specifications/x3d-3.2.xsd'> |
| 4 | <head> |
| 5 | <meta name='title' content=' FollowerExternalPrototypeDeclarations.x3d '/> |
| 6 | <meta name='description' content='X3D Follower example using developmental prototypes.'/> |
| 7 | <meta name='creator' content='Herbert Stocker'/> |
| 8 | <meta name='translator' content='Don Brutzman'/> |
| 9 | <meta name='created' content='18 April 2006'/> |
| 10 | <meta name='translated' content='10 April 2012'/> |
| 11 | <meta name='modified' content='7 December 2024'/> |
| 12 | <meta name=' warning ' content=' This scene was used for X3D development and is no longer correct. '/> |
| 13 | <meta name='specificationSection' content='X3D Architecture, clause 39 Followers component'/> |
| 14 | <meta name='specificationUrl' content=' https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/followers.html '/> |
| 15 | <meta name='reference' content=' FollowerPrototypeDeclarations.x3d '/> |
| 16 | <meta name='reference' content='originals/Chasers.wrl'/> |
| 17 | <meta name='reference' content='originals/Dampers.wrl'/> |
| 18 | <meta name='reference' content=' Stocker_06_Followers.pdf '/> |
| 19 | <meta name='reference' content='http://www.hersto.com/Publications/Followers'/> |
| 20 | <meta name='requires' content='X3D version 3.2 or greater'/> |
| 21 | <meta name='subject' content='X3D Follower Chaser Damper'/> |
| 22 | <meta name='reference' content=' https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html '/> |
| 23 | <meta name='identifier' content=' https://www.web3d.org/x3d/content/examples/Basic/Followers/FollowerExternalPrototypeDeclarations.x3d '/> |
| 24 | <meta name='generator' content=' Vrml97ToX3dNist, http://ovrt.nist.gov/v2_x3d.html '/> |
| 25 | <meta name='generator' content='X3D-Edit 3.3, https://www.web3d.org/x3d/tools/X3D-Edit'/> |
| 26 | <meta name='license' content='../../license.html'/> |
| 27 | <!-- meta content='Rename and test these prototypes to match final names in X3D Specification Followers Component' name='TODO' --> |
| 28 | <!-- meta content='Ensure full coverage of follower nodes in order to provide backwards compatibility with X3D v3.0 and v3.1.' name='TODO' --> |
| 29 | </head> |
| 30 | <Scene> |
| 31 | <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'/> |
| 32 | <!-- ================================================ --> |
| 33 | <!-- Do not use these! The following ExternProtoDeclares were produced when converting the original examples, and are included for completeness only. --> |
| 34 | <ExternProtoDeclare name='OrientationChaser' url=' "originals/Chasers.x3d#OrientationChaser" "https://www.web3d.org/x3d/content/examples/Basic/Followers/originals/Chasers.x3d#OrientationChaser" "originals/Chasers.wrl#OrientationChaser" "https://www.web3d.org/x3d/content/examples/Basic/Followers/originals/Chasers.wrl#OrientationChaser" '> |
| 35 | <!-- "urn:inet:hersto.net:node:OrientationChaser" "Chasers.x3d#OrientationChaser" --> |
| 36 | <!-- "http://www.hersto.net/Followers/Chasers.wrl#OrientationChaser" --> |
| 37 | <field name='value_changed' type='SFRotation' accessType='outputOnly'/> |
| 38 | <field name='set_value' type='SFRotation' accessType='inputOnly'/> |
| 39 | <field name='isActive' type='SFBool' accessType='outputOnly'/> |
| 40 | <field name='set_destination' type='SFRotation' accessType='inputOnly'/> |
| 41 | <field name='duration' type='SFTime' accessType='initializeOnly'/> |
| 42 | <field name='initial_destination' type='SFRotation' accessType='initializeOnly'/> |
| 43 | <field name='initial_value' type='SFRotation' accessType='initializeOnly'/> |
| 44 | </ExternProtoDeclare> |
| 45 | <ExternProtoDeclare name='OrientationDamper' url=' "originals/Chasers.x3d#OrientationDamper" "https://www.web3d.org/x3d/content/examples/Basic/Followers/originals/Chasers.x3d#OrientationDamper" "originals/Chasers.wrl#OrientationDamper" "https://www.web3d.org/x3d/content/examples/Basic/Followers/originals/Chasers.wrl#OrientationDamper" '> |
| 46 | <!-- "urn:inet:hersto.net:node:OrientationDamper" "Dampers.wrl#OrientationDamper" --> |
| 47 | <!-- "http://www.hersto.net/Followers/Dampers.wrl#OrientationDamper" --> |
| 48 | <field name='isLoaded' type='SFBool' accessType='outputOnly'/> |
| 49 | <field name='value_changed' type='SFRotation' accessType='outputOnly'/> |
| 50 | <field name='set_destination' type='SFRotation' accessType='inputOnly'/> |
| 51 | <field name='initial_destination' type='SFRotation' accessType='initializeOnly'/> |
| 52 | <field name='order' type='SFInt32' accessType='initializeOnly'/> |
| 53 | <field name='tau' type='SFFloat' accessType='inputOutput'/> |
| 54 | <field name='set_value' type='SFRotation' accessType='inputOnly'/> |
| 55 | <field name='initial_value' type='SFRotation' accessType='initializeOnly'/> |
| 56 | <field name='isActive' type='SFBool' accessType='outputOnly'/> |
| 57 | <field name='eps' type='SFFloat' accessType='initializeOnly'/> |
| 58 | </ExternProtoDeclare> |
| 59 | <ExternProtoDeclare name='PlacementChaser' url=' "originals/Chasers.x3d#PlacementChaser" "https://www.web3d.org/x3d/content/examples/Basic/Followers/originals/Chasers.x3d#PlacementChaser" "originals/Chasers.wrl#PlacementChaser" "https://www.web3d.org/x3d/content/examples/Basic/Followers/originals/Chasers.wrl#PlacementChaser" '> |
| 60 | <field name='isLoaded' type='SFBool' accessType='outputOnly'/> |
| 61 | <field name='set_valuePos' type='SFVec3f' accessType='inputOnly'/> |
| 62 | <field name='set_valueOri' type='SFRotation' accessType='inputOnly'/> |
| 63 | <field name='set_destinationPos' type='SFVec3f' accessType='inputOnly'/> |
| 64 | <field name='duration' type='SFTime' accessType='initializeOnly'/> |
| 65 | <field name='set_destinationOri' type='SFRotation' accessType='inputOnly'/> |
| 66 | <field name='initial_valuePos' type='SFVec3f' accessType='initializeOnly'/> |
| 67 | <field name='initial_destinationPos' type='SFVec3f' accessType='initializeOnly'/> |
| 68 | <field name='valuePos_changed' type='SFVec3f' accessType='outputOnly'/> |
| 69 | <field name='initial_valueOri' type='SFRotation' accessType='initializeOnly'/> |
| 70 | <field name='initial_destinationOri' type='SFRotation' accessType='initializeOnly'/> |
| 71 | <field name='valueOri_changed' type='SFRotation' accessType='outputOnly'/> |
| 72 | <field name='isActive' type='SFBool' accessType='outputOnly'/> |
| 73 | </ExternProtoDeclare> |
| 74 | <ExternProtoDeclare name='Position2fDamper' url=' "originals/Chasers.x3d#Position2fDamper" "https://www.web3d.org/x3d/content/examples/Basic/Followers/originals/Chasers.x3d#Position2fDamper" "originals/Chasers.wrl#Position2fDamper" "https://www.web3d.org/x3d/content/examples/Basic/Followers/originals/Chasers.wrl#Position2fDamper" '> |
| 75 | <field name='isLoaded' type='SFBool' accessType='outputOnly'/> |
| 76 | <!-- "urn:inet:hersto.net:node:Position2fDamper" --> |
| 77 | <!-- "http://www.hersto.net/Followers/originals/Dampers.wrl#Position2fDamper" --> |
| 78 | <field name='value_changed' type='SFVec2f' accessType='outputOnly'/> |
| 79 | <field name='set_destination' type='SFVec2f' accessType='inputOnly'/> |
| 80 | <field name='initial_destination' type='SFVec2f' accessType='initializeOnly'/> |
| 81 | <field name='order' type='SFInt32' accessType='initializeOnly'/> |
| 82 | <field name='tau' type='SFFloat' accessType='inputOutput'/> |
| 83 | <field name='set_value' type='SFVec2f' accessType='inputOnly'/> |
| 84 | <field name='initial_value' type='SFVec2f' accessType='initializeOnly'/> |
| 85 | <field name='isActive' type='SFBool' accessType='outputOnly'/> |
| 86 | <field name='eps' type='SFFloat' accessType='initializeOnly'/> |
| 87 | </ExternProtoDeclare> |
| 88 | <ExternProtoDeclare name='Position2fChaser' url=' "originals/Chasers.x3d#Position2fChaser" "https://www.web3d.org/x3d/content/examples/Basic/Followers/originals/Chasers.x3d#Position2fChaser" "originals/Chasers.wrl#Position2fChaser" "https://www.web3d.org/x3d/content/examples/Basic/Followers/originals/Chasers.wrl#Position2fChaser" '> |
| 89 | <!-- "urn:inet:hersto.net:node:Position2fChaser" --> |
| 90 | <!-- "http://www.hersto.net/Followers/Chasers.wrl#Position2fChaser" --> |
| 91 | <field name='value_changed' type='SFVec2f' accessType='outputOnly'/> |
| 92 | <field name='set_value' type='SFVec2f' accessType='inputOnly'/> |
| 93 | <field name='isActive' type='SFBool' accessType='outputOnly'/> |
| 94 | <field name='set_destination' type='SFVec2f' accessType='inputOnly'/> |
| 95 | <field name='duration' type='SFTime' accessType='initializeOnly'/> |
| 96 | <field name='initial_destination' type='SFVec2f' accessType='initializeOnly'/> |
| 97 | <field name='initial_value' type='SFVec2f' accessType='initializeOnly'/> |
| 98 | </ExternProtoDeclare> |
| 99 | <ExternProtoDeclare name='PositionChaser' url=' "originals/Chasers.x3d#PositionChaser" "https://www.web3d.org/x3d/content/examples/Basic/Followers/originals/Chasers.x3d#PositionChaser" "originals/Chasers.wrl#PositionChaser" "https://www.web3d.org/x3d/content/examples/Basic/Followers/originals/Chasers.wrl#PositionChaser" '> |
| 100 | <!-- "urn:inet:hersto.net:node:PositionChaser" --> |
| 101 | <!-- "http://www.hersto.net/Followers/Chasers.wrl#PositionChaser" --> |
| 102 | <field name='value_changed' type='SFVec3f' accessType='outputOnly'/> |
| 103 | <field name='set_value' type='SFVec3f' accessType='inputOnly'/> |
| 104 | <field name='isActive' type='SFBool' accessType='outputOnly'/> |
| 105 | <field name='set_destination' type='SFVec3f' accessType='inputOnly'/> |
| 106 | <field name='duration' type='SFTime' accessType='initializeOnly'/> |
| 107 | <field name='initial_destination' type='SFVec3f' accessType='initializeOnly'/> |
| 108 | <field name='initial_value' type='SFVec3f' accessType='initializeOnly'/> |
| 109 | </ExternProtoDeclare> |
| 110 | <ExternProtoDeclare name='PositionDamper' url=' "originals/Chasers.x3d#PositionDamper" "https://www.web3d.org/x3d/content/examples/Basic/Followers/originals/Chasers.x3d#PositionDamper" "originals/Chasers.wrl#PositionDamper" "https://www.web3d.org/x3d/content/examples/Basic/Followers/originals/Chasers.wrl#PositionDamper" '> |
| 111 | <!-- "urn:inet:hersto.net:node:PositionDamper" --> |
| 112 | <!-- "http://www.hersto.net/Followers/Dampers.wrl#PositionDamper" --> |
| 113 | <field name='isLoaded' type='SFBool' accessType='outputOnly'/> |
| 114 | <field name='value_changed' type='SFVec3f' accessType='outputOnly'/> |
| 115 | <field name='set_destination' type='SFVec3f' accessType='inputOnly'/> |
| 116 | <field name='initial_destination' type='SFVec3f' accessType='initializeOnly'/> |
| 117 | <field name='order' type='SFInt32' accessType='initializeOnly'/> |
| 118 | <field name='tau' type='SFFloat' accessType='inputOutput'/> |
| 119 | <field name='set_value' type='SFVec3f' accessType='inputOnly'/> |
| 120 | <field name='initial_value' type='SFVec3f' accessType='initializeOnly'/> |
| 121 | <field name='isActive' type='SFBool' accessType='outputOnly'/> |
| 122 | <field name='eps' type='SFFloat' accessType='initializeOnly'/> |
| 123 | </ExternProtoDeclare> |
| 124 | <ExternProtoDeclare name='ScalarDamper' url=' "originals/Dampers.wrl#ScalarDamper" "https://www.web3d.org/x3d/content/examples/Basic/Followers/originals/Dampers.wrl#ScalarDamper" '> |
| 125 | <field name='isLoaded' type='SFBool' accessType='outputOnly'/> |
| 126 | <field name='value_changed' type='SFFloat' accessType='outputOnly'/> |
| 127 | <field name='set_destination' type='SFFloat' accessType='inputOnly'/> |
| 128 | <field name='initial_destination' type='SFFloat' accessType='initializeOnly'/> |
| 129 | <field name='order' type='SFInt32' accessType='initializeOnly'/> |
| 130 | <field name='tau' type='SFFloat' accessType='inputOutput'/> |
| 131 | <field name='set_value' type='SFFloat' accessType='inputOnly'/> |
| 132 | <field name='transparency_changed' type='SFFloat' accessType='outputOnly'/> |
| 133 | <field name='initial_value' type='SFFloat' accessType='initializeOnly'/> |
| 134 | <field name='isActive' type='SFBool' accessType='outputOnly'/> |
| 135 | <field name='eps' type='SFFloat' accessType='initializeOnly'/> |
| 136 | </ExternProtoDeclare> |
| 137 | </Scene> |
| 138 | </X3D> |
<!--
Color-coding legend: X3D terminology
<X3dNode field='value'/>
matches XML terminology
<XmlElement attribute='value'/>
(Light-blue background: event-based behavior node or statement)
(Grey background inside box: inserted documentation)
(Magenta background: X3D Extensibility)
<ProtoDeclare name='ProtoName'>
<field
name='fieldName'/> </ProtoDeclare>
-->
<!--
For additional help information about X3D scenes, please see X3D Tooltips, X3D Resources, and X3D Scene Authoring Hints.
-->