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=' PajekVisualizationPrototypes.x3d '/> |
6 | <meta name='description' content='Reverse engineer and hopefully elaborate on Pajek visualization structures'/> |
7 | <meta name='creator' content='Don Brutzman and Elaine Reid'/> |
8 | <meta name='created' content='29 March 2011'/> |
9 | <meta name='modified' content='4 October 2023'/> |
10 | <meta name='reference' content='http://pajek.imfm.si'/> |
11 | <meta name='subject' content='network visualization'/> |
12 | <meta name=' warning ' content=' under development '/> |
13 | <meta name='identifier' content=' https://www.web3d.org/x3d/content/examples/Savage/Tools/Visualization/PajekVisualizationPrototypes.x3d '/> |
14 | <meta name='generator' content='X3D-Edit 4.0, https://www.web3d.org/x3d/tools/X3D-Edit'/> |
15 | <meta name='license' content='../../license.html'/> |
16 | </head> |
17 | <Scene> |
18 | <WorldInfo title='PajekVisualizationPrototypes.x3d'/> |
19 | <ProtoDeclare name='Arc' appinfo='Arc is a network connection between Vertex nodes, displayed using Cylinder/Cone (arrow/arrowhead) geometry with modifiable color and transparency'> |
20 | <ProtoInterface> |
21 |
<field name='name' type='SFString' value='TODOprovideInitialValue' accessType='inputOutput'
appinfo='name to identify this Arc'/> |
22 |
<field name='description' type='SFString' value='TODO customize this Arc description' accessType='inputOutput'
appinfo='popup text describing this Arc'/> |
23 |
<field name='cylinderHeight' type='SFFloat' value='1' accessType='initializeOnly'
appinfo='length of Arc between Vertex locations'/> |
24 |
<field name='url' type='MFString' accessType='inputOutput'
appinfo='link to some other resource'/> |
25 |
<field name='cylinderTranslation' type='SFVec3f' value='0 0 0' accessType='inputOutput'
appinfo='location of Arc'/> |
26 |
<field name='coneTranslation' type='SFVec3f' value='0 0 0' accessType='inputOutput'
appinfo='see TODO items in ArcScript'/> |
27 |
<field name='rotation' type='SFRotation' value='0 1 0 0' accessType='inputOutput'
appinfo='orientation of Arc'/> |
28 |
<field name='displayMode' type='SFString' value='BallAndStick' accessType='inputOutput'
appinfo='rendering choices: BallAndStick, Ball, Stick'/> |
29 |
<field name='diffuseColor' type='SFColor' value='0 0 0' accessType='inputOutput'
appinfo='diffuseColor of Arc'/> |
30 |
<field name='transparency' type='SFFloat' value='0.0' accessType='inputOutput'
appinfo='transparency of Arc'/> |
31 |
<field name='ballRadius' type='SFFloat' value='1' accessType='inputOutput'
appinfo='offset distance for Cone arrowhead; TODO this needs to match values in the Vertex protopye, which is iniitialized separately'/> |
32 |
<field name='traceEnabled' type='SFBool' value='false' accessType='inputOutput'
appinfo='debug trace to Browser output console'/> |
33 | </ProtoInterface> |
34 | <ProtoBody> |
35 | <!-- First node determines node type of this prototype --> |
36 | <Anchor DEF='ArcPrototypeRootNode'> |
37 | <IS> |
38 | <connect nodeField='description' protoField='description'/> |
39 | <connect nodeField='url' protoField='url'/> |
40 | </IS> |
41 | <Group> |
42 | <Transform DEF='CylinderTransform' rotation='-0.4367 0 0.8996 1.60563' translation='-1.166 0.60861 -2.23229'> |
43 | <IS> |
44 | <connect nodeField='translation' protoField='cylinderTranslation'/> |
45 | <connect nodeField='rotation' protoField='rotation'/> |
46 | </IS> |
47 | <Shape> |
48 | <Appearance> |
49 | <Material DEF='CylinderMaterial' diffuseColor='0 0 0' shininess='0.8' specularColor='0.8 0.8 0.8'/> |
50 | </Appearance> |
51 | <!-- TODO these trial values are from Arc 1.6, radius is a candidate parameter --> |
52 | <Cylinder radius='0.02'> |
53 | <IS> |
54 | <connect nodeField='height' protoField='cylinderHeight'/> |
55 | </IS> |
56 | </Cylinder> |
57 | </Shape> |
58 | </Transform> |
59 | <Transform DEF='ConeTransform' rotation='-0.4367 0 0.8996 1.6056' translation='-1.49373 0.59592 -2.39136'> |
60 | <IS> |
61 | <connect nodeField='translation' protoField='coneTranslation'/> |
62 | <connect nodeField='rotation' protoField='rotation'/> |
63 | </IS> |
64 | <Shape> |
65 | <Cone bottomRadius='0.06' height='0.1'/> |
66 | <Appearance> |
67 | <Material DEF='ConeMaterial' diffuseColor='0 0 0' shininess='.8' specularColor='.8 .8 .8'> |
68 | <IS> |
69 | <connect nodeField='transparency' protoField='transparency'/> |
70 | </IS> |
71 | </Material> |
72 | </Appearance> |
73 | </Shape> |
74 | </Transform> |
75 | </Group> |
76 | </Anchor> |
77 | <Script DEF='ArcScript'> |
78 |
<field name='name' type='SFString' accessType='inputOutput'
appinfo='name to identify this Arc'/> |
79 |
<field name='description' type='SFString' accessType='inputOutput'
appinfo='popup text describing this Arc'/> |
80 |
<field name='cylinderHeight' type='SFFloat' accessType='initializeOnly'
appinfo='length of Arc between Vertex locations'/> |
81 |
<field name='website' type='MFString' accessType='inputOutput'
appinfo='link to some other resource'/> |
82 |
<field name='cylinderTranslation' type='SFVec3f' accessType='inputOutput'
appinfo='location of Arc'/> |
83 |
<field name='coneTranslation' type='SFVec3f' accessType='inputOutput'
appinfo='see TODO items in ArcScript'/> |
84 |
<field name='rotation' type='SFRotation' accessType='inputOutput'
appinfo='orientation of Arc'/> |
85 |
<field name='displayMode' type='SFString' accessType='inputOutput'
appinfo='rendering choices: BallAndStick, Ball, Stick'/> |
86 |
<field name='diffuseColor' type='SFColor' accessType='inputOutput'
appinfo='diffuseColor of Arc'/> |
87 |
<field name='transparency' type='SFFloat' accessType='inputOutput'
appinfo='transparency of Arc'/> |
88 |
<field name='ballRadius' type='SFFloat' accessType='inputOutput'
appinfo='offset distance for Cone arrowhead; TODO this needs to match values in the Vertex protopye, which is iniitialized separately'/> |
89 |
<field name='traceEnabled' type='SFBool' accessType='inputOutput'
appinfo='debug trace to Browser output console'/> |
90 | <IS> |
91 | <connect nodeField='name' protoField='name'/> |
92 | <connect nodeField='description' protoField='description'/> |
93 | <connect nodeField='cylinderHeight' protoField='cylinderHeight'/> |
94 | <connect nodeField='website' protoField='url'/> |
95 | <connect nodeField='cylinderTranslation' protoField='cylinderTranslation'/> |
96 | <connect nodeField='coneTranslation' protoField='coneTranslation'/> |
97 | <connect nodeField='rotation' protoField='rotation'/> |
98 | <connect nodeField='displayMode' protoField='displayMode'/> |
99 | <connect nodeField='diffuseColor' protoField='diffuseColor'/> |
100 | <connect nodeField='transparency' protoField='transparency'/> |
101 | <connect nodeField='ballRadius' protoField='ballRadius'/> |
102 | <connect nodeField='traceEnabled' protoField='traceEnabled'/> |
103 | </IS> |
<![CDATA[
ecmascript: function initialize () { // TODO? potential visualization improvment (at possible cost of breaking simple 1:1 mapping) // compute Cone translation (and perhaps cone size) based on Cylinder size // then send result to the Cone parent transform // conceivably this extended Cylinder length is a feature, not a bug... // if the Cylinder goes to the center of the ball, then you can turn off both // balls and Cone arrowheads to yield a simple stick-only model // so we need to consider this as an animation/visualization feature as well tracePrint ('ArcScript ' + name + ': ' initialization() successful'); } function set_name (eventValue) { // input eventValue received for inputOutput field name name = eventValue; tracePrint ('name = ' + name); } function set_description (eventValue) { // input eventValue received for inputOutput field description description = eventValue; tracePrint ('description = ' + description); } function set_cylinderTranslation (eventValue) { // input eventValue received for inputOutput field cylinderTranslation cylinderTranslation = eventValue; tracePrint ('cylinderTranslation = ' + cylinderTranslation); // TODO author code (if any) goes here } function set_coneTranslation (eventValue) { // input eventValue received for inputOutput field coneTranslation coneTranslation = eventValue; tracePrint ('coneTranslation = ' + coneTranslation); // TODO author code (if any) goes here } function set_rotation (eventValue) { // input eventValue received for inputOutput field rotation rotation = eventValue; tracePrint ('rotation = ' + rotation); // TODO author code (if any) goes here } function set_displayMode (eventValue) { // input eventValue received for inputOutput field displayMode displayMode = eventValue; tracePrint ('displayMode = ' + displayMode); // TODO author code (if any) goes here } function set_color (eventValue) { // input eventValue received for inputOutput field color color = eventValue; tracePrint ('color = ' + color); // TODO author code (if any) goes here } function set_transparency (eventValue) { // input eventValue received for inputOutput field transparency transparency = eventValue; tracePrint ('transparency = ' + transparency); // TODO author code (if any) goes here } function set_ballRadius (eventValue) { // input eventValue received for inputOutput field ballRadius ballRadius = eventValue; tracePrint ('ballRadius = ' + ballRadius); // TODO author code (if any) goes here } // ================== Trace output functions ================== function tracePrint (outputString) { // if traceEnabled is true, print outputString on X3D browser console if (traceEnabled) Browser.println ('[Arc ' + name + ': ' + outputString + ']'); } function alwaysPrint (outputString) { // always print outputString on X3D browser console Browser.println ('[Arc ' + name + ': ' + outputString + ']'); } function set_traceEnabled (eventValue) { // input eventValue received for inputOutput field traceEnabled = eventValue; } // =========================================================== function set_website (eventValue) { // input eventValue received for inputOutput field website website = eventValue; tracePrint ('website = ' + website); // TODO author code (if any) goes here } //============================================================
]]>
|
|
105 | </Script> |
106 | <!-- Add any ROUTEs here that connect Script to/from prior nodes within ProtoBody --> |
107 | </ProtoBody> |
108 | </ProtoDeclare> |
109 | <ProtoDeclare name='Vertex' appinfo='Vertex is a node, typically connected by zero or more Arc segments, and displayed using Sphere geometry with modifiable color and transparency'> |
110 | <ProtoInterface> |
111 |
<field name='name' type='SFString' value='TODOprovideVertexName' accessType='inputOutput'
appinfo='name to identify this Vertex'/> |
112 |
<field name='description' type='SFString' value='TODO customize this Vertex description' accessType='inputOutput'
appinfo='popup text describing this Vertex'/> |
113 |
<field name='url' type='MFString' accessType='inputOutput'
appinfo='link to some other resource'/> |
114 |
<field name='radius' type='SFFloat' value='1' accessType='initializeOnly'
appinfo='size of Vertex ball'/> |
115 |
<field name='displayMode' type='SFString' value='BallAndStick' accessType='inputOutput'
appinfo='rendering choices: BallAndStick, Ball, Stick'/> |
116 |
<field name='diffuseColor' type='SFColor' value='0.8 0.8 0.8' accessType='inputOutput'
appinfo='diffuseColor of Vertex'/> |
117 |
<field name='transparency' type='SFFloat' value='0.0' accessType='inputOutput'
appinfo='transparency of Vertex'/> |
118 |
<field name='translation' type='SFVec3f' value='0.0 0.0 0.0' accessType='inputOutput'
appinfo='location of Vertex'/> |
119 |
<field name='vertexText' type='MFString' accessType='inputOutput'
appinfo='labels to identify Vertex'/> |
120 |
<field name='textTranslation' type='SFVec3f' value='0.0 0.0 0.0' accessType='inputOutput'
appinfo='location of Text'/> |
121 |
<field name='textColor' type='SFColor' value='0 0 0' accessType='inputOutput'
appinfo='diffuseColor of Text'/> |
122 | </ProtoInterface> |
123 | <ProtoBody> |
124 | <!-- First node determines node type of this prototype --> |
125 | <Group DEF='VertexPrototypeRootNode'> |
126 | <WorldInfo> |
127 | <IS> |
128 | <connect nodeField='title' protoField='displayMode'/> |
129 | </IS> |
130 | </WorldInfo> |
131 | <Anchor> |
132 | <IS> |
133 | <connect nodeField='name' protoField='name'/> |
134 | <connect nodeField='description' protoField='description'/> |
135 | <connect nodeField='url' protoField='url'/> |
136 | </IS> |
137 | <Group> |
138 | <Transform> |
139 | <IS> |
140 | <connect nodeField='translation' protoField='translation'/> |
141 | </IS> |
142 | <Shape> |
143 | <Appearance> |
144 | <Material> |
145 | <IS> |
146 | <connect nodeField='diffuseColor' protoField='diffuseColor'/> |
147 | <connect nodeField='transparency' protoField='transparency'/> |
148 | </IS> |
149 | </Material> |
150 | </Appearance> |
151 | <Sphere> |
152 | <IS> |
153 | <connect nodeField='radius' protoField='radius'/> |
154 | </IS> |
155 | </Sphere> |
156 | </Shape> |
157 | </Transform> |
158 | <!-- TODO for future work: Billboard for text visibility --> |
159 | <Transform> |
160 | <IS> |
161 | <connect nodeField='translation' protoField='textTranslation'/> |
162 | </IS> |
163 | <Shape> |
164 | <Appearance> |
165 | <Material> |
166 | <IS> |
167 | <connect nodeField='diffuseColor' protoField='textColor'/> |
168 | </IS> |
169 | </Material> |
170 | </Appearance> |
171 | <Text> |
172 | <IS> |
173 | <connect nodeField='string' protoField='vertexText'/> |
174 | </IS> |
175 | <!-- TODO do we really want to honor Pajek's default Text family? --> |
176 | <FontStyle family='"SANS"' size='0.20000'/> |
177 | </Text> |
178 | </Shape> |
179 | </Transform> |
180 | </Group> |
181 | </Anchor> |
182 | </Group> |
183 | <!-- Subsequent nodes do not render, but still must be a valid X3D subgraph --> |
184 | </ProtoBody> |
185 | </ProtoDeclare> |
186 | <ProtoDeclare name='NetworkText' appinfo='Text describing what the Vertices and Arcs are about'> |
187 | <ProtoInterface> |
188 |
<field name='text' type='MFString' accessType='inputOutput'
appinfo='information to identify the Integral Network'/> |
189 | </ProtoInterface> |
190 | <ProtoBody> |
191 | <Transform> |
192 | <Group> |
193 | <Transform> |
194 | <Shape> |
195 | <Appearance> |
196 | <Material diffuseColor='0.9 0.9 0.9'/> |
197 | </Appearance> |
198 | <Text DEF='NetworkTextHolder'> |
199 | <IS> |
200 | <connect nodeField='string' protoField='text'/> |
201 | </IS> |
202 | <FontStyle/> |
203 | </Text> |
204 | </Shape> |
205 | </Transform> |
206 | </Group> |
207 | </Transform> |
208 | </ProtoBody> |
209 | </ProtoDeclare> |
210 | <Background groundAngle='1.309 1.570796' groundColor='0 0.5 0.7 0 0.4 0.7 0.6 0.5 0.7' skyAngle='1.309 1.571' skyColor='0 0.5 0.8 0 0.6 0.7 0.6 0.6 0.7'/> |
211 | <PointLight ambientIntensity='1' location='0 0 5' radius='30'/> |
212 | <NavigationInfo transitionType='"ANIMATE"' type='"EXAMINE" "FLY" "ANY"'/> |
213 | <Viewpoint description='Inspect 15JAN2010Newman' orientation='1 0 0 -0.0997' position='0 2 20'/> |
214 | <!-- type="3D" <date day ="3" month="5" year="2011"/> --> |
215 | <Transform DEF='infogroup' translation='-8 2 -4'> |
216 | <Transform DEF='NetText' translation='0 6 0'> |
217 | <ProtoInstance name='NetworkText'> |
218 | <fieldValue name='text' value='"15JAN2010"'/> |
219 | </ProtoInstance> |
220 | </Transform> |
221 | </Transform> |
222 | <Group> |
223 | <Transform> |
224 | <ProtoInstance name='Vertex'> |
225 | <fieldValue name='name' value='Vertex 1'/> |
226 | <fieldValue name='description' value='2010-01-15-ARMY.MIL'/> |
227 | <fieldValue name='vertexText' value='"2010-01-15-ARMY.MIL"'/> |
228 | <fieldValue name='textTranslation' value='0.06344 -0.26178 -0.55101'/> |
229 | <fieldValue name='textColor' value='0 0 0'/> |
230 | <fieldValue name='url' value='"http://www.army.mil"'/> |
231 | <fieldValue name='translation' value='0.06344 -0.26178 -0.55101'/> |
232 | <fieldValue name='radius' value='.1500'/> |
233 | <fieldValue name='displayMode' value='BallAndStick'/> |
234 | <fieldValue name='diffuseColor' value='0 0 0'/> |
235 | <fieldValue name='transparency' value='0'/> |
236 | </ProtoInstance> |
237 | <ProtoInstance name='Arc'> |
238 | <fieldValue name='name' value='1.24'/> |
239 | <fieldValue name='description' value='From blah to blah'/> |
240 | <fieldValue name='url' value='"http://www.google.com"'/> |
241 | <fieldValue name='cylinderHeight' value='0.64770'/> |
242 | <fieldValue name='cylinderTranslation' value='-0.35062 -0.44066 -0.60713'/> |
243 | <fieldValue name='coneTranslation' value='-.48422 -.53116 -.63552'/> |
244 | <fieldValue name='rotation' value='-11.22472 0 52.81325 2.15598'/> |
245 | <fieldValue name='displayMode' value='BallAndStick'/> |
246 | <fieldValue name='diffuseColor' value='0 0 0'/> |
247 | <fieldValue name='transparency' value='0'/> |
248 | <fieldValue name='ballRadius' value='1'/> |
249 | </ProtoInstance> |
250 | <ProtoInstance name='Vertex'> |
251 | <fieldValue name='name' value='Vertex 2'/> |
252 | <fieldValue name='description' value='2010-01-15BLOGS.STATE.GOV-INDEX.PHP'/> |
253 | <fieldValue name='vertexText' value='"2010-01-15BLOGS.STATE.GOV-INDEX.PHP"'/> |
254 | <fieldValue name='textTranslation' value='1.43526 1.19707 0.67279'/> |
255 | <fieldValue name='textColor' value='0 0 0'/> |
256 | <fieldValue name='url' value='"http://www.state.gov"'/> |
257 | <fieldValue name='translation' value='1.28526 1.19707 0.67279'/> |
258 | <fieldValue name='radius' value='0.1500'/> |
259 | <fieldValue name='displayMode' value='BallAndStick'/> |
260 | <fieldValue name='diffuseColor' value='0.5020 0 0'/> |
261 | <fieldValue name='transparency' value='0'/> |
262 | </ProtoInstance> |
263 | <ProtoInstance name='Arc'> |
264 | <fieldValue name='name' value='1.26'/> |
265 | <fieldValue name='description' value='From blah1 to blah1'/> |
266 | <fieldValue name='url' value='"http://www.google.com"'/> |
267 | <fieldValue name='cylinderHeight' value='1.28361'/> |
268 | <fieldValue name='cylinderTranslation' value='-0.12911 0.32068 -0.81718'/> |
269 | <fieldValue name='coneTranslation' value='-0.16106 0.75793 -1.01700'/> |
270 | <fieldValue name='rotation' value='-53.23500 0 8.51149 0.43344'/> |
271 | <fieldValue name='displayMode' value='BallAndStick'/> |
272 | <fieldValue name='diffuseColor' value='0 0 0'/> |
273 | <fieldValue name='transparency' value='0'/> |
274 | <fieldValue name='ballRadius' value='1'/> |
275 | </ProtoInstance> |
276 | <ProtoInstance name='Vertex'> |
277 | <fieldValue name='name' value='Vertex 3'/> |
278 | <fieldValue name='description' value='2010-01-15-FEEDS.FEEDBURNER.COM-DIPNOTE'/> |
279 | <fieldValue name='vertexText' value='"2010-01-15-FEEDS.FEEDBURNER.COM-DIPNOTE"'/> |
280 | <fieldValue name='textColor' value='0 0 0'/> |
281 | <fieldValue name='textTranslation' value='0.08377 1.98542 -1.19849'/> |
282 | <fieldValue name='url' value='"http://www.feedburner.com"'/> |
283 | <fieldValue name='translation' value='-0.06623 1.98542 -1.19849'/> |
284 | <fieldValue name='radius' value='.1500'/> |
285 | <fieldValue name='displayMode' value='BallAndStick'/> |
286 | <fieldValue name='diffuseColor' value='1.0000 0 0'/> |
287 | <fieldValue name='transparency' value='0'/> |
288 | </ProtoInstance> |
289 | <ProtoInstance name='Arc'> |
290 | <fieldValue name='name' value='1.39'/> |
291 | <fieldValue name='description' value='From blah2 to blah2'/> |
292 | <fieldValue name='url' value='"http://www.google.com"'/> |
293 | <fieldValue name='cylinderHeight' value='1.12537'/> |
294 | <fieldValue name='cylinderTranslation' value='-0.35500 -0.38541 -1.02982'/> |
295 | <fieldValue name='coneTranslation' value='-0.54712 -0.47389 -1.37249'/> |
296 | <fieldValue name='rotation' value='-95.76386 0 53.68924 1.79233'/> |
297 | <fieldValue name='displayMode' value='BallAndStick'/> |
298 | <fieldValue name='diffuseColor' value='0 0 0'/> |
299 | <fieldValue name='transparency' value='0'/> |
300 | <fieldValue name='ballRadius' value='1'/> |
301 | </ProtoInstance> |
302 | </Transform> |
303 | </Group> |
304 | </Scene> |
305 | </X3D> |
Event Graph ROUTE Table with 0 ROUTE connections total, showing X3D event-model relationships for this scene.
Each row shows an event cascade that may occur during a single timestamp interval between frame renderings, as part of the X3D execution model.
ArcScript
Script |
No direct ROUTE connection found for events to/from this node. This Script has no direct access to other nodes. |
line 217
ProtoInstance NetworkText |
No direct ROUTE connection found for events to/from this node. This ProtoInstance contains SFNode/MFNode fieldValue declarations with direct access to other nodes, and thus has potential to produce run-time animation. |
line 224
ProtoInstance Vertex |
No direct ROUTE connection found for events to/from this node. This ProtoInstance contains SFNode/MFNode fieldValue declarations with direct access to other nodes, and thus has potential to produce run-time animation. |
line 237
ProtoInstance Arc |
No direct ROUTE connection found for events to/from this node. This ProtoInstance contains SFNode/MFNode fieldValue declarations with direct access to other nodes, and thus has potential to produce run-time animation. |
line 250
ProtoInstance Vertex |
No direct ROUTE connection found for events to/from this node. This ProtoInstance contains SFNode/MFNode fieldValue declarations with direct access to other nodes, and thus has potential to produce run-time animation. |
line 263
ProtoInstance Arc |
No direct ROUTE connection found for events to/from this node. This ProtoInstance contains SFNode/MFNode fieldValue declarations with direct access to other nodes, and thus has potential to produce run-time animation. |
line 276
ProtoInstance Vertex |
No direct ROUTE connection found for events to/from this node. This ProtoInstance contains SFNode/MFNode fieldValue declarations with direct access to other nodes, and thus has potential to produce run-time animation. |
line 289
ProtoInstance Arc |
No direct ROUTE connection found for events to/from this node. This ProtoInstance contains SFNode/MFNode fieldValue declarations with direct access to other nodes, and thus has potential to produce run-time animation. |
<!--
Color-coding legend: X3D terminology
<X3dNode
DEF='idName' field='value'/>
matches XML terminology
<XmlElement
DEF='idName' attribute='value'/>
(Light-blue background: event-based behavior node or statement)
(Grey background inside box: inserted documentation)
(Magenta background: X3D Extensibility)
<ProtoInstance name='ProtoName'>
<field
name='fieldName'/> </ProtoInstance>
-->
<!--
For additional help information about X3D scenes, please see X3D Tooltips, X3D Resources, and X3D Scene Authoring Hints.
-->