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://savage.nps.edu/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 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. -->