| 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://savage.nps.edu/Savage/Tools/Visualization/PajekVisualizationPrototypes.x3d'/> |
| 14 | <meta name='generator' content='X3D-Edit 4.0, https://savage.nps.edu/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> |
<!--
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.
-->