<?xml version="1.0" encoding="UTF-8"?>

<!-- File: x3d-3.3.profile.xml -->
<!-- Author: Don Brutzman      -->
<!-- Created: 24 October 1999  -->
<!-- Translation: Chinese version by Meng Yiqi of Nanjing Art Institute. (m17design@hotmail.com http://m17design.myetang.com/x3d)  -->
<!-- Translation: French version by Antony Beis, Frederic Roussille (froussille@yahoo.com), Adrien Gruneisen (Adrien.GRUNEISEN@wanadoo.fr) et Yann Henriet (nasayann@netcourrier.com), Ecole Nationale d'Ingenieurs de Tarbes (ENIT), Tarbes, France https://www.enit.fr -->
<!-- Translation: German version by Raimund Dachselt (dachselt@acm.org) and Johannes Richter (johnnyri@web.de) of the Dresden University of Technology, Department of Computer Science, Multimedia Technology Group (http://www-mmt.inf.tu-dresden.de) -->
<!-- Translation: Italian version by Roberto Ranon (ranon@dimi.uniud.it) of L'Universita degli Studi di Udine at http://www.uniud.it -->
<!-- Translation: Japanese version by Yeonsoo Yang (yeonsoo.yang@toshiba.co.jp) of Toshiba at http://www.toshiba.com -->
<!-- Translation: Korean version by Ikjune Kim (surplusz@kaist.ac.kr), Byounghyun Yoo (yoo@byoo.net) and Hyokwang Lee (adpc9@partdb.com) of the Korea Advanced Institute of Science and Technology (KAIST) (http://www.kaist.ac.kr) and PartDB Co., Ltd., (http://www.partdb.com) Korea. -->
<!-- Translation: Portuguese version by Luciano Pereira Soares (lsoares@lsi.usp.br), University of S&#227;o Paulo, S&#227;o Paulo Brazil https://sites.usp.br/lsi/mei -->
<!-- Translation: Spanish version by Guadalupe Munoz-Martin (gmunoz@escet.urjc.es), University Rey Juan Carlos, Madrid Espana http://www.urjc.es -->
<!-- Translation: Thai version by Hassadee Pimsuwan, Suranaree University of Technology, Thailand. (hapztron@gmail.com http://hassadee.com) -->
<!-- url: https://www.web3d.org/x3d/content/x3d-4.0.profile.xml -->
<!-- url: https://www.web3d.org/x3d/content/x3d-3.3.profile.xml -->
<!-- url: https://www.web3d.org/x3d/content/x3d-3.1.profileChinese.xml -->
<!-- url: https://www.web3d.org/x3d/content/x3d-3.1.profileFrench.xml -->
<!-- url: https://www.web3d.org/x3d/content/x3d-3.1.profileGerman.xml -->
<!-- url: https://www.web3d.org/x3d/content/x3d-3.1.profileItalian.xml -->
<!-- url: https://www.web3d.org/x3d/content/x3d-3.2.profileKorean.xml -->
<!-- url: https://www.web3d.org/x3d/content/x3d-3.1.profilePortuguese.xml -->
<!-- url: https://www.web3d.org/x3d/content/x3d-3.1.profileSpanish.xml -->
<!-- url: https://www.web3d.org/x3d/content/x3d-3.3.profileThai.xml-->
<!-- Reference: https://savage.nps.edu/X3D-Edit -->
<!-- Description: This file customizes the user interface order for Xeena's X3D editing profile. -->
<!-- The order of attributes for each node mostly tracks the VRML97 spec, with some usability prioritization. -->
<!-- This Xeena user interface profile is updated manually whenever the corresponding DTD changes. -->
<!-- Tooltips are also used for the X3D Schema and Scene Authoring Interface (SAI) autogeneration. -->
<!-- Hint: to change default browser location, modify or swap <tool> elements at end of this profile. -->

<!DOCTYPE DTDProfile PUBLIC "/IBM/Xeena/dtdprofile.dtd" "profile.dtd" [

  <!ENTITY  localDrive	"c:" >

<!-- Browser locations -->
  <!ENTITY  InternetExplorerBrowser	"/Program Files/Internet Explorer/iexplore.exe" >
  <!ENTITY  Xj3dBrowser			"/Program Files/Xj3D/browser.bat" >
  <!ENTITY  FirefoxBrowser	"/Program Files/Mozilla Firefox/firefox.exe" >
  <!ENTITY  MozillaBrowser	"/Program Files/mozilla.org/Mozilla/mozilla.exe" >
  <!ENTITY  NetscapeBrowser	"/Program Files/Internet Explorer/iexplore.exe" >

<!-- First pair of !ENTITY declarations for DOCTYPE takes precedence. -->
<!-- Transitional doctype definitions -->
  <!ENTITY  pubidLiteral    "https://www.web3d.org/specifications/x3d-3.3.dtd" >
  <!ENTITY systemLiteral    "file:///www.web3d.org/TaskGroups/x3d/translation/x3d-3.3.dtd" >
<!-- Final doctype definitions -->
  <!ENTITY  pubidLiteral    "ISO//Web3D//DTD X3D 3.3//EN" >
  <!ENTITY systemLiteral    "https://www.web3d.org/specifications/x3d-3.3.dtd" >
<!-- No doctype definitions -->
  <!ENTITY  pubidLiteral    "" >
  <!ENTITY systemLiteral    "" >

<!-- type extensions to the Xeena profile.dtd corresponding to X3D DTD -->
  <!ENTITY X3dFieldTypesLabel    "(SFBool|MFBool|SFColor|MFColor|SFColorRGBA|MFColorRGBA|SFFloat|MFFloat|SFImage|SFInt32|MFInt32|SFNode|MFNode|SFRotation|MFRotation|SFString|MFString|SFTime|MFTime|SFVec3f|MFVec3f|SFVec2f|MFVec2f|SFVec2d|MFVec2d|SFMatrix3d|MFMatrix3d|SFMatrix3f|MFMatrix3f|SFMatrix4d|MFMatrix4d|SFMatrix4f|MFMatrix4f|SFVec4d|MFVec4d|SFVec4f|MFVec4f)" >
  <!ENTITY NewTagLabels "IS connect Arc2D ArcClose2D BooleanFilter BooleanSequencer BooleanToggle BooleanTrigger Circle2D ColorRGBA Disk2D FillProperties IntegerSequencer IntegerTrigger KeySensor LineProperties MetadataDouble MetadataFloat MetadataInteger MetadataSet MetadataString MultiTexture MultiTextureCoordinate Polyline2D Polypoint2D Rectangle2D StringSensor StaticGroup TextureBackground TextureCoordinateGenerator TextureCoordinate3D TextureCoordinate4D TimeTrigger TriangleFanSet TriangleSet TriangleSet2D TriangleStripSet IndexedTriangleFanSet IndexedTriangleSet IndexedTriangleStripSet" >
  <!ENTITY NewTagExtras "Appearance Coordinate ImageTexture Material Shape TextureCoordinate TextureTransform" >

<!--the following group elements have to be alphabetized manually -->
  <!ENTITY ImmersiveProfileNodesLabel  "Anchor Appearance Arc2D ArcClose2D AudioClip Background BooleanFilter BooleanSequencer BooleanToggle BooleanTrigger Billboard Box Circle2D Collision Color ColorRGBA ColorInterpolator component connect Cone Coordinate CoordinateDouble CoordinateInterpolator CoordinateInterpolator2D Cylinder CylinderSensor Disk2D DirectionalLight ElevationGrid EXPORT ExternProtoDeclare Extrusion field fieldValue FillProperties Fog LocalFog FogCoordinate FontStyle Group head ImageTexture IMPORT IndexedFaceSet IndexedLineSet Inline IntegerSequencer IntegerTrigger IS KeySensor LineSet LoadSensor LineProperties LOD Material meta MetadataDouble MetadataFloat MetadataInteger MetadataSet MetadataString MovieTexture MultiTexture MultiTextureCoordinate MultiTextureTransform NavigationInfo Normal NormalInterpolator OrientationInterpolator PixelTexture PlaneSensor PointLight PointSet Polyline2D Polypoint2D PositionInterpolator PositionInterpolator2D ProtoDeclare ProtoInterface ProtoBody ProtoInstance ProximitySensor Rectangle2D ROUTE ScalarInterpolator Scene Script Shape Sound Sphere SphereSensor SpotLight StaticGroup StringSensor Switch Text TextureBackground TextureCoordinate TextureCoordinateGenerator TextureTransform TimeSensor TimeTrigger TouchSensor Transform IndexedTriangleFanSet IndexedTriangleSet IndexedTriangleStripSet TriangleFanSet TriangleSet TriangleSet2D TriangleStripSet Viewpoint VisibilitySensor WorldInfo X3D" > <!-- XvlShell -->
  <!ENTITY InteractiveProfileNodesLabel "Anchor Appearance Background BooleanFilter BooleanSequencer BooleanToggle BooleanTrigger Box Color component Coordinate CoordinateInterpolator Cylinder CylinderSensor DirectionalLight ElevationGrid Group head ImageTexture IndexedFaceSet IndexedLineSet Inline IntegerSequencer IntegerTrigger KeySensor LineSet Material meta MetadataDouble MetadataFloat MetadataInteger MetadataSet MetadataString MultiTexture MultiTextureCoordinate NavigationInfo Normal NormalInterpolator OrientationInterpolator PixelTexture PlaneSensor PointLight PointSet PositionInterpolator ProximitySensor ROUTE ScalarInterpolator Scene Shape Sphere SphereSensor SpotLight StringSensor Switch TextureCoordinate TextureCoordinateGenerator TimeSensor TimeTrigger TouchSensor Transform Viewpoint WorldInfo X3D" >
  <!ENTITY InterchangeProfileNodesLabel "Anchor Appearance Background Box Color ColorInterpolator ColorRGBA component Cone Coordinate CoordinateInterpolator Cylinder DirectionalLight Group head ImageTexture IndexedFaceSet IndexedLineSet IndexedTriangleFanSet IndexedTriangleSet IndexedTriangleStripSet LineSet Material meta MetadataDouble MetadataFloat MetadataInteger MetadataSet MetadataString MultiTexture NavigationInfo Normal NormalInterpolator OrientationInterpolator PixelTexture PointSet PositionInterpolator ROUTE ScalarInterpolator Scene Shape Sphere TextureCoordinate TextureCoordinateGenerator TextureTransform TimeSensor TouchSensor Transform TriangleFanSet TriangleSet TriangleStripSet Viewpoint WorldInfo X3D" >
  <!ENTITY DISTagLabels		 "EspduTransform SignalPdu ReceiverPdu TransmitterPdu DISEntityManager DISEntityTypeMapping" >
  <!ENTITY GeoSpatialTagLabels	 "GeoCoordinate GeoElevationGrid GeoLocation GeoLOD GeoMetadata GeoOrigin GeoPositionInterpolator GeoTouchSensor GeoViewpoint" >
  <!ENTITY HAnimTagLabels	 "HAnimDisplacer HAnimHumanoid HAnimJoint HAnimSegment HAnimSite" >  <!-- don't use hyphen in this label name! -->
  <!ENTITY NurbsTagLabels	 "Contour2D ContourPolyline2D NurbsCurve NurbsCurve2D NurbsOrientationInterpolator NurbsPositionInterpolator NurbsSurfaceInterpolator NurbsPatchSurface NurbsSet NurbsTextureCoordinate NurbsTrimmedSurface" >
  <!ENTITY Geometry2DTagLabels	 "Appearance Arc2D ArcClose2D Circle2D Disk2D FillProperties LineProperties Polyline2D Polypoint2D Material Rectangle2D Shape TriangleSet2D" >
  <!ENTITY CadTagLabels	         "CADAssembly CADFace CADLayer CADPart IndexedQuadSet QuadSet" >
  <!ENTITY CubeMapTexturingTagLabels "ComposedCubeMapTexture GeneratedCubeMapTexture ImageCubeMapTexture" >
  <!ENTITY ShadersTagLabels      "ComposedShader FloatVertexAttribute Matrix3VertexAttribute Matrix4VertexAttribute PackagedShader ProgramShader ShaderPart ShaderProgram" >
  <!ENTITY Texturing3DTagLabels	 "ComposedTexture3D ImageTexture3D PixelTexture3D TextureCoordinate3D TextureCoordinate4D TextureTransformMatrix3D TextureTransform3D" >
  <!ENTITY FollowerTagLabels	 "ColorDamper CoordinateDamper OrientationChaser OrientationDamper PositionChaser PositionChaser2D PositionDamper PositionDamper2D ScalarChaser TexCoordDamper2D" >
<!-- X3D v3.3 -->
  <!ENTITY VolumeTagLabels	 "BlendedVolumeStyle BoundaryEnhancementVolumeStyle CartoonVolumeStyle ComposedVolumeStyle EdgeEnhancementVolumeStyle IsoSurfaceVolumeData OpacityMapVolumeStyle ProjectionVolumeStyle SegmentedVolumeData ShadedVolumeStyle SilhouetteEnhancementVolumeStyle ToneMappedVolumeStyle VolumeData" >
  
<!-- Other Amendment 1 components here -->

<!-- LatticeXvlTagLabels should have Shape and Coordinate|CoordinateDouble, omitted here since also included as part of NurbsTagLabels -->
<!-- <!ENTITY LatticeXvlTagLabels 	"XvlShell" > -->
<!-- for future LatticeXvl: G1T1 level -->
<!-- <!ENTITY XvlG1T1ShellTypes	"" > -->
<!-- Types of XVL Shells -->
<!-- <!ENTITY XvlShell.shellTypes	"&XvlG1T1ShellTypes; POLYGON_MESH|LATTICE_MESH" > -->

  <!ENTITY SFBoolLabel		"type SFBool (true|false)" >
  <!ENTITY MFBoolLabel		"type MFBool (true|false) CDATA" >
  <!ENTITY SFColorLabel		"type SFColor CDATA" >
  <!ENTITY MFColorLabel		"type MFColor CDATA" >
  <!ENTITY SFColorRGBALabel	"type SFColorRGBA CDATA" >
  <!ENTITY MFColorRGBALabel	"type MFColorRGBA CDATA" >
  <!ENTITY SFDoubleLabel	"type SFDouble CDATA">
  <!ENTITY MFDoubleLabel	"type MFDouble CDATA">
  <!ENTITY SFFloatLabel		"type SFFloat CDATA" >
  <!ENTITY MFFloatLabel		"type MFFloat CDATA" >
  <!ENTITY SFImageLabel		"type SFImage CDATA" >
  <!ENTITY MFImageLabel		"type MFImage CDATA" >
  <!ENTITY SFInt32Label		"type SFInt32 CDATA">
  <!ENTITY MFInt32Label		"type MFInt32 CDATA">
  <!ENTITY SFRotationLabel	"type SFRotation CDATA" >
  <!ENTITY MFRotationLabel	"type MFRotation CDATA" >
  <!ENTITY SFStringLabel	"type SFString CDATA" >
  <!ENTITY MFStringLabel	"type MFString CDATA" >
  <!ENTITY SFTimeLabel		"type SFTime CDATA" >
  <!ENTITY MFTimeLabel		"type MFTime CDATA" >
  <!ENTITY SFVec2fLabel		"type SFVec2f CDATA" >
  <!ENTITY MFVec2fLabel		"type MFVec2f CDATA" >
  <!ENTITY SFVec2dLabel		"type SFVec2d CDATA" >
  <!ENTITY MFVec2dLabel		"type MFVec2d CDATA" >
  <!ENTITY SFVec3fLabel		"type SFVec3f CDATA" >
  <!ENTITY MFVec3fLabel		"type MFVec3f CDATA" >
  <!ENTITY SFVec3dLabel		"type SFVec3d CDATA">
  <!ENTITY MFVec3dLabel		"type MFVec3d CDATA">
  <!ENTITY SFVec4fLabel		"type SFVec4f CDATA">
  <!ENTITY MFVec4fLabel		"type MFVec4f CDATA">
  <!ENTITY SFVec4dLabel		"type SFVec4d CDATA">
  <!ENTITY MFVec4dLabel		"type MFVec4d CDATA">
  <!ENTITY SFMatrix3fLabel	"type SFMatrix3f CDATA">
  <!ENTITY MFMatrix3fLabel	"type MFMatrix3f CDATA">
  <!ENTITY SFMatrix3dLabel	"type SFMatrix3d CDATA">
  <!ENTITY MFMatrix3dLabel	"type MFMatrix3d CDATA">
  <!ENTITY SFMatrix4fLabel	"type SFMatrix4f CDATA">
  <!ENTITY MFMatrix4fLabel	"type MFMatrix4f CDATA">
  <!ENTITY SFMatrix4dLabel	"type SFMatrix4d CDATA">
  <!ENTITY MFMatrix4dLabel	"type MFMatrix4d CDATA">
  <!ENTITY SFNodeLabel		"type SFNode singleton">
  <!ENTITY MFNodeLabel		"type MFNode array">

  <!ENTITY inputOnlyLabel	"accessType inputOnly,">
  <!ENTITY outputOnlyLabel	"accessType outputOnly,">
  <!ENTITY inputOutputLabel	"accessType inputOutput,">
  <!ENTITY initializeOnlyLabel	"accessType initializeOnly,">

  <!ENTITY GeoSystemType ' type MFString CDATA "GD" "WE"' >	<!-- Supported values: see GeoSpatial profile specification -->

<!-- Embedded spaces prevent really long strings from overextending tooltip XHTML tables -->

  <!ENTITY profileNames "(Core|Interchange|CADInterchange|Interactive|Immersive|MPEG4Interactive|MedicalInterchange|Full)">
  <!ENTITY componentNames  "(Core|CADGeometry|CubeMapTexturing|DIS|EnvironmentalEffects|EnvironmentalSensor|EventUtilities|Followers|Geometry2D|Geometry3D|Geospatial|Grouping|H-Anim|Interpolation|KeyDeviceSensor|Layering|Layout|Lighting|Navigation|Networking|NURBS|ParticleSystems|Picking|PointingDeviceSensor|Rendering|RigidBodyPhysics|Scripting|Shaders|Shape|Sound|Text|TextureProjection|Texturing|Texturing3D|Time)">
  <!ENTITY componentLevels "(1|2|3|4|5)">
  <!ENTITY unitCategoryChoices "(angle|length|force|mass)">

  <!ENTITY FontStyleFamilyValues		"( SERIF|SANS|TYPEWRITER )" >
  <!ENTITY FontStyleJustifyValues		"( BEGIN|END|FIRST|MIDDLE )" >
  <!ENTITY FontStyleStyleValues		        "( PLAIN|BOLD|ITALIC|BOLDITALIC )" >
  <!ENTITY DisNetworkModeValues			"( standAlone|networkReader|networkWriter )" >
  <!ENTITY MultiTextureModes			"( MODULATE|REPLACE|MODULATE2X|MODULATE4X|ADD|ADDSIGNED|ADDSIGNED2X|SUBTRACT|ADDSMOOTH |BLENDDIFFUSEALPHA|BLENDTEXTUREALPHA|BLENDFACTORALPHA|BLENDCURRENTALPHA|MODULATEALPHA_ADDCOLOR|MODULATEINVALPHA_ADDCOLOR|MODULATEINVCOLOR_ADDALPHA|OFF|SELECTARG1|SELECTARG2|DOTPRODUCT3 )" >
  <!ENTITY MultiTextureSourceValues		"( DIFFUSE|SPECULAR|FACTOR )" >
  <!ENTITY MultiTextureFunctionValues		"( COMPLEMENT|ALPHAREPLICATE )" >
  <!ENTITY TextureBoundaryModeValues            "( CLAMP|CLAMP_TO_EDGE|CLAMP_TO_BOUNDARY|MIRRORED_REPEAT|REPEAT )">
  <!ENTITY TextureMagnificationModeValues       "( AVG_PIXEL|DEFAULT|FASTEST|NEAREST_PIXEL|NICEST )">
  <!ENTITY TextureMinificationModeValues        "( AVG_PIXEL|AVG_PIXEL_AVG_MIPMAP|AVG_PIXEL_NEAREST_MIPMAP|DEFAULT|FASTEST|NEAREST_PIXEL|NEAREST_PIXEL_AVG_MIPMAP|NEAREST_PIXEL_NEAREST_MIPMAP|NICEST )">
  <!ENTITY TextureCompressionModeValues         "( DEFAULT|FASTEST|HIGH|LOW|MEDIUM|NICEST )">
  <!ENTITY TextureCoordinateGeneratorModes	"( SPHERE|CAMERASPACENORMAL|CAMERASPACEPOSITION|CAMERASPACEREFLECTIONVECTOR|SPHERE-LOCAL|COORD|COORD-EYE|NOISE|NOISE-EYE|SPHERE-REFLECT|SPHERE-REFLECT-LOCAL )" >
  <!ENTITY LayoutAlignHorizontalValues          "( LEFT|CENTER|RIGHT )" >
  <!ENTITY LayoutAlignVerticalValues            "( BOTTOM|CENTER|TOP )" >
  <!ENTITY LayoutOffsetUnitsValues              "( WORLD|FRACTION|PIXEL )" >
  <!ENTITY LayoutScaleModeValues                "( NONE|FRACTION|STRETCH|PIXEL )" >
  <!ENTITY LayoutSizeUnitsValues                "( WORLD|FRACTION|PIXEL )" >
  <!ENTITY MatchCriterionTypeValues             "( MATCH_ANY|MATCH_EVERY|MATCH_ONLY_ONE )" >
  <!ENTITY PickableGroupObjectTypeValues        "( ALL|NONE|TERRAIN|... )" >
  <!ENTITY PickSensorIntersectionTypeValues     "( GEOMETRY|BOUNDS )" >
  <!ENTITY PickSensorSortOrderValues            "( ANY|CLOSEST|ALL|ALL_SORTED|... )" >
  <!ENTITY ParticleSystemgeometryTypes          "( LINE|POINT|QUAD|SPRITE|TRIANGLE|GEOMETRY )" >
<!-- X3D v3.3 -->
  <!ENTITY VolumeRenderingWeightFunctionValues	"( CONSTANT|ALPHA1|ALPHA2|TABLE|ONE_MINUS_ALPHA1|ONE_MINUS_ALPHA2 )" >
  <!ENTITY ProjectionVolumeStyleTypeValues      "( MAX|MIN|AVERAGE )" >
  <!ENTITY ShadedVolumeStylePhaseFunctionValues "( NONE|Henyey-Greenstein )" >
  <!ENTITY biquadFilterTypeValues               "( LOWPASS|HIGHPASS|BANDPASS|LOWSHELF|HIGHSHELF|PEAKING|NOTCH|ALLPASS )" >
  <!ENTITY channelCountModeValues               "( MAX|CLAMPED_MAX|EXPLICIT )" >
  <!ENTITY channelInterpretationValues          "( SPEAKERS|DISCRETE )" >
  <!ENTITY spatialSoundDistanceModelValues      "( LINEAR|INVERSE|EXPONENTIAL )" >
  <!ENTITY periodicWaveTypeValues               "( SINE|SQUARE|SAWTOOTH|TRIANGLE|CUSTOM )" >
  <!ENTITY waveShaperOversampleValues           "( NONE|2X|4X )" >

<!-- &infin;  "&#8734;" infinity, U+221E ISOtech -->
<!-- Pi "&Pi;" "&#928;" greek capital letter Pi, U+03A0 ISOgrk3 -->
<!-- pi "&pi;" "&#960;" greek small letter pi, U+03C0 ISOgrk3 -->
]>

<DTDProfile title="X3D-Edit scene graph editor (v4.0 x3d-4.0.profile.xml)" base-path="">
    <defaults pubidLiteral="&pubidLiteral;" systemLiteral="&systemLiteral;" encoding="UTF-8"/>
    <elements>
        <element icon="icons/Anchor.gif" tooltip="[X3DGroupingNode,X3DUrlObject,X3DVisibleObject] Anchor is a Grouping node that can contain most nodes. When the user selects any of the geometry contained by the Anchor node, the browser either jumps to another viewpoint (similar to HTML bookmark) or else loads content (such as X3D, an image or HTML) specified by the url field.&#10;Newly loaded content completely replaces current content, if the value of parameter field indicates using the same window.&#10;Hint: insert a Shape node before adding geometry or Appearance.&#10;Hint: when parent node is LoadSensor, apply containerField='children' (X3Dv4) or containerField='watchList' (X3Dv3). https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#fieldNameChanges" name="Anchor">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[children &inputOutputLabel; &MFNodeLabel;, empty list] [X3DChildNode]&#10;Grouping nodes contain an ordered list of children nodes.&#10;Hint: Each grouping node defines a coordinate space for its children, relative to the coordinate space of its parent node. Thus transformations accumulate down the scene graph hierarchy.&#10;Hint: inputOnly MFNode addChildren field can append new X3DChildNode nodes via a ROUTE connection, duplicate input nodes (i.e. matching DEF, USE values) are ignored.&#10;Hint: inputOnly MFNode removeChildren field can remove nodes from the children list, unrecognized input nodes (i.e. nonmatching DEF, USE values) are ignored.&#10;Hint: X3D Architecture 10.2.1 Grouping and children node types, https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#GroupingAndChildrenNodes" name="children"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="(X3D version 4.0 draft) [autoRefresh &inputOutputLabel; &SFTimeLabel; &#34;0.0&#34;]&#10;The [autoRefresh field has no effect, Anchor operation is only triggered by user selection." name="autoRefresh"/>
            <attribute tooltip="(X3D version 4.0 draft) [autoRefreshTimeLimit &inputOutputLabel; &SFTimeLabel; &#34;3600.0&#34;]&#10;The [autoRefreshTimeLimit field has no effect, Anchor operation is only triggered by user selection." name="autoRefreshTimeLimit"/>
            <attribute tooltip="[description &inputOutputLabel; &SFStringLabel; #IMPLIED]&#10;Author-provided prose that describes intended purpose of the url asset.&#10;Hint: many XML tools substitute XML character references for special characters automatically if needed within an attribute value (such as &amp;#38; for &#38; ampersand character, or &amp;#34; for &#34; quotation-mark character)." name="description"/>
            <attribute tooltip="(X3D version 4.0 draft) [load &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;The load field has no effect, Anchor operation is only triggered by user selection." name="load"/>
            <attribute tooltip="[url &inputOutputLabel; &MFStringLabel; #IMPLIED]&#10;Address of replacement world, or #ViewpointDEFName within the current scene, or alternate Web resource, activated by the user selecting Shape geometry within the Anchor children nodes.&#10;Hint: jump to a world's internal viewpoint by appending viewpoint name (for example, #ViewpointName, someOtherCoolWorld.x3d#GrandTour).&#10;Hint: jump to a local viewpoint by only using viewpoint name (for example, #GrandTour).&#10;Hint: binding a different Viewpoint triggers an isBound event that can initiate other user-arrival reactions via event chains to interpolators or scripts.&#10;Hint: MFString arrays can have multiple values, so separate each individual string by quote marks &quot;https://www.web3d.org&quot; &quot;https://www.web3d.org/about&quot; &quot;etc.&quot;&#10;Hint: alternative XML encoding for quotation mark &quot; is &#38;quot; (which is an example of a character entity).&#10;Warning: strictly match directory and filename capitalization for http links! This is important for portability. Some operating systems are forgiving of capitalization mismatches, but http/https url addresses and paths in Unix-based operating systems are all case sensitive and intolerant of uppercase/lowercase mismatches.&#10;Hint: can replace embedded blank(s) in url queries with %20 for each blank character.&#10;Hint: pop up a new window with url value as follows:&#10;&quot;JavaScript:window.open('somePage.html','popup','width=240,height=240');location.href='HelloWorld.x3d'&quot;&#10;Hint: X3D Scene Authoring Hints, urls https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#urls" name="url"/>
            <attribute tooltip="[parameter &inputOutputLabel; &MFStringLabel; #IMPLIED]&#10;If provided, parameter tells the X3D player where to to redirect the loaded url.&#10;Hint: set parameter value as target=_blank to load the target url into a new browser frame.&#10;Hint: set parameter value as target=frame_name to load target url into another browser frame.&#10;Hint: MFString arrays can have multiple values, so separate each individual string by quote marks.&#10;&quot;https://www.web3d.org&quot; &quot;https://www.web3d.org/about&quot; &quot;etc.&quot; &#10;Interchange profile hint: this field may be ignored, applying the default value regardless." name="parameter"/>
            <attribute tooltip="[bboxCenter &initializeOnlyLabel; &SFVec3fLabel; &#34;0 0 0&#34;]&#10;Bounding box center accompanies bboxSize and provides an optional hint for bounding box position offset from origin of local coordinate system.&#10;Hint: precomputation and inclusion of bounding box information can speed up the initialization of large detailed models, with a corresponding cost of increased file size.&#10;Hint: X3D Architecture, 10.2.2 Bounding boxes https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#BoundingBoxes&#10;Hint:  X3D Architecture, 10.3.1 X3DBoundedObject https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#X3DBoundedObject" name="bboxCenter"/>
            <attribute tooltip="[bboxSize &initializeOnlyLabel; &SFVec3fLabel; &#34;-1 -1 -1&#34;] or [0,+&#8734;)&#10;Bounding box size is usually omitted, and can easily be calculated automatically by an X3D player at scene-loading time with minimal computational cost. Bounding box size can also be defined as an optional authoring hint that suggests an optimization or constraint.&#10;Hint: can be useful for collision computations or inverse-kinematics (IK) engines.&#10;Hint: precomputation and inclusion of bounding box information can speed up the initialization of large detailed models, with a corresponding cost of increased file size.&#10;Hint: X3D Architecture, 10.2.2 Bounding boxes https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#BoundingBoxes&#10;Hint:  X3D Architecture, 10.3.1 X3DBoundedObject https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#X3DBoundedObject" name="bboxSize"/>
            <attribute tooltip="(X3D version 4.0 draft) [bboxDisplay &inputOutputLabel; &SFBoolLabel; &#34;false&#34;]&#10;Whether to display bounding box for associated geometry, aligned with world coordinates.&#10;Hint: the bounding box is displayed regardless of whether contained content is visible." name="bboxDisplay"/>
            <attribute tooltip="(X3D version 4.0 draft) [visible &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Whether or not renderable content within this node is visually displayed.&#10;Hint: the visible field has no effect on animation behaviors, event passing or other non-visual characteristics.&#10;Hint: content must be visible to be collidable and to be pickable." name="visible"/>
            <attribute tooltip="[containerField type NMTOKEN (children|watchList) &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
            <!-- the following attribute definitions are used by all X3D elements -->
            <attribute tooltip="(X3D version 4.0 draft) [class type NMTOKENS #IMPLIED]&#10;The class attribute on each X3D node and statement is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets.&#10;Hint: this attribute is only functional if the X3D model is loaded within an HTML page.&#10;Hint: X3D Architecture Annex L, HTML authoring guidelines, CSS considerations https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/htmlGuidelines.html#CSS&#10;Hint: W3C Cascading Style Sheets https://www.w3.org/Style/CSS&#10;Hint: CSS Snapshot https://www.w3.org/TR/css-2018&#10;Hint: Wikibooks, XML - Managing Data Exchange/XSLT and Style Sheets https://en.wikibooks.org/wiki/XML_-_Managing_Data_Exchange/XSLT_and_Style_Sheets" name="class"/>
            <attribute tooltip="(X3D version 4.0 draft) [id type NMTOKEN #IMPLIED]&#10;The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context.&#10;Hint: this attribute is only functional if the X3D model is loaded within an HTML page.&#10;Warning: the id attribute is in a distinct separate namespace from DEF identifiers and thus not applicable for USE nodes, ROUTE statements, or Script references.&#10;Hint: X3D Architecture Annex L, HTML authoring guidelines, CSS considerations https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/htmlGuidelines.html#CSS&#10;Hint: HTML5 id attribute https://www.w3.org/TR/dom41/#dom-element-id" name="id"/>
            <attribute tooltip="(X3D version 4.0 draft) [style type CDATA #IMPLIED]&#10;The style attribute on each X3D node and statement provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets.&#10;Hint: this attribute is only functional if the X3D model is loaded within an HTML page.&#10;Hint: X3D Architecture Annex L, HTML authoring guidelines, CSS considerations https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/htmlGuidelines.html#CSS&#10;Hint: W3C Cascading Style Sheets https://www.w3.org/Style/CSS&#10;Hint: CSS Snapshot https://www.w3.org/TR/css-2018&#10;Hint: https://www.w3.org/TR/css-style-attr&#10;Hint: Wikibooks, XML - Managing Data Exchange/XSLT and Style Sheets https://en.wikibooks.org/wiki/XML_-_Managing_Data_Exchange/XSLT_and_Style_Sheets" name="style"/>
        </element>
        <element icon="icons/Appearance.gif" tooltip="[X3DAppearanceNode] Appearance specifies the visual properties of geometry&#10;by containing the Material, ImageTexture/MovieTexture/PixelTexture, FillProperties, LineProperties, programmable shader nodes (ComposedShader, PackagedShader, ProgramShader) and TextureTransform nodes.&#10;Hint: insert a Shape node before adding geometry or Appearance.&#10;Interchange profile hint: only Material and ImageTexture children are allowed.&#10;Hint: DEF/USE copies of a single node can provide a similar &quot;look + feel&quot; style for related shapes in a scene.&#10;Hint: &#10;Advanced uses can contain MultiTexture, MultiTextureTransform/TextureTransformMatrix3D/TextureTransform3D, ComposedShader/PackagedShader/ProgramShader, ComposedTexture3D/ImageTexture3D/PixelTexture3D, or ComposedCubeMapTexture/GeneratedCubeMapTexture/ImageCubeMapTexture.&#10;Hint: X3D Architecture 12.2.2 Appearance node https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/shape.html#Appearancenode&#10;Hint: X3D Architecture 17.2.2 Lighting model https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/lighting.html#Lightingmodel" name="Appearance">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[material &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMaterialNode]&#10;Single contained Material node that can specify visual attributes for lighting response (color types, transparency, etc.) applied to corresponding geometry.&#10;Warning: if material is NULL or unspecified, lighting is off (all lights ignored) for this Shape and unlit object color is (1, 1, 1)." name="material"/>
            <attribute tooltip="(X3D version 4.0 draft) [acousticProperties &inputOutputLabel; &SFNodeLabel;, NULL node] [AcousticProperties]&#10;Single contained acousticProperties node that can specify additional acoustic attributes applied to associated surface geometry." name="acousticProperties"/>
            <attribute tooltip="(X3D version 4.0 draft) [alphaCutoff &inputOutputLabel; &SFFloatLabel; &#34;0.5&#34;] [0,1]&#10;Threshold value used for pixel rendering either transparent or opaque, used when alphaMode=&#34;MASK&#34;.&#10;Hint: glTF version 2 Alpha Coverage, https://www.khronos.org/registry/glTF/specs/2.0/glTF-2.0.html#alpha-coverage" name="alphaCutoff"/>
            <attribute tooltip="(X3D version 4.0 draft) [alphaMode &inputOutputLabel; &SFStringLabel; (AUTO|OPAQUE|MASK|BLEND) &quot;AUTO&quot;]&#10;Provides options for control of alpha transparency handling for textures. AUTO means Material transparency is applied to texture transparency for full backwards compatility with X3D3, OPAQUE means ignore alpha transparency to render texture as opaque, MASK means alpha-testing of pixels as fully transparent when alpha value is less than alphaCutoff and fully opaque when alpha value is greater than or equal to alphaCutoff, BLEND combines partial transparency of textures and materials.&#10;Hint: glTF version 2 Alpha Coverage, https://www.khronos.org/registry/glTF/specs/2.0/glTF-2.0.html#alpha-coverage" name="alphaMode"/>
            <attribute tooltip="[fillProperties &inputOutputLabel; &SFNodeLabel;, NULL node] [FillProperties]&#10;Single contained FillProperties node that can specify additional visual attributes applied to polygonal areas of corresponding geometry, on top of whatever other appearance is already defined." name="fillProperties"/>
            <attribute tooltip="[lineProperties &inputOutputLabel; &SFNodeLabel;, NULL node] [LineProperties]&#10;Single contained LineProperties node that can specify additional visual attributes applied to corresponding line geometry." name="lineProperties"/>
            <attribute tooltip="[pointProperties &inputOutputLabel; &SFNodeLabel;, NULL node] [LineProperties]&#10;Single contained PointProperties node that can specify additional visual attributes applied to corresponding point geometry." name="pointProperties"/>
            <attribute tooltip="[shaders &inputOutputLabel; &MFNodeLabel;, empty list] [X3DShaderNode]&#10;Zero or more contained programmable shader nodes (ComposedShader, PackagedShader, ProgramShader) that specify, in order of preference, author-programmed rendering characteristics.&#10;Hint: X3D Architecture 31 Programmable shaders component https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/shaders.html" name="shaders"/>
            <attribute tooltip="[texture &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DTextureNode]&#10;Single contained texture node (ImageTexture, MovieTexture, PixelTexture, MultiTexture) that maps image(s) to surface geometry.&#10;Hint: if texture node is NULL or unspecified, corresponding Shape geometry for this Appearance is not textured.&#10;Hint: X3D Scene Authoring Hints, Images https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#Images&#10;Hint: X3D Architecture 18 Texturing component https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/texturing.html&#10;Hint: X3D Architecture 33 Texturing3D component https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/texture3D.html" name="texture"/>
            <attribute tooltip="[textureTransform &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DTextureTransformNode]&#10;Single contained TextureTransform node that defines 2D transformation applied to texture coordinates.&#10;Hint: if textureTransform array is empty, then this field has no effect." name="textureTransform"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;appearance&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/AudioClip.gif" tooltip="[X3DSoundSourceNode,X3DUrlObject] AudioClip provides audio data used by parent Sound nodes.&#10;Hint: add a parent Sound node first.&#10;Hint: utilize DEF/USE references for multiple copies of a single AudioClip sound file in order to avoid multiple-download delays, reduce memory requirements, and maintain synchronization.&#10;Hint: authors can provide multiple audio formats for the same audio track, with each source address listed separately in the url field.&#10;Hint: player support for .wav format is required, .midi format is recommended, other formats are optional.&#10;Hint: X3D Scene Authoring Hints:Audio https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#Audio&#10;Hint: when parent node is LoadSensor, apply containerField='children' (X3Dv4) or containerField='watchList' (X3Dv3). https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#fieldNameChanges" name="AudioClip">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint:USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="(X3D version 4.0 draft) [autoRefresh &inputOutputLabel; &SFTimeLabel; &#34;0.0&#34;]&#10;autoRefresh defines interval in seconds before automatic reload of current url asset is performed.&#10;Hint: if preceding file loading fails or load field is false, no refresh is performed.&#10;Hint: repeated refresh attempts to reload currently loaded entry of url list. If that fails, the browser retries other entries in the url list.&#10;Warning: automatically reloading content has security considerations and needs to be considered carefully." name="autoRefresh"/>
            <attribute tooltip="(X3D version 4.0 draft) [autoRefreshTimeLimit &inputOutputLabel; &SFTimeLabel; &#34;3600.0&#34;]&#10;autoRefreshTimeLimit defines maximum duration that automatic refresh activity can occur.&#10;Hint: Automatic refresh is different than query and response timeouts performed by a networking library while sequentially attempting to retrieve addressed content from a url list.&#10;Warning: automatically reloading content has security considerations and needs to be considered carefully." name="autoRefreshTimeLimit"/>
            <attribute tooltip="[description &inputOutputLabel; &SFStringLabel; #IMPLIED]&#10;Author-provided prose that describes intended purpose of the url asset.&#10;Hint: many XML tools substitute XML character references for special characters automatically if needed within an attribute value (such as &amp;#38; for &#38; ampersand character, or &amp;#34; for &#34; quotation-mark character)." name="description"/>
            <attribute tooltip="(X3D version 4.0 draft) [enabled &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Enables/disables node operation." name="enabled"/>
            <attribute tooltip="(X3D version 4.0 draft) [gain &inputOutputLabel; &SFFloatLabel; &#34;1&#34;] (-&#8734;,+&#8734;)&#10;The gain field is a factor that represents the amount of linear amplification to apply to the output of the node.&#10;Warning: Decibel values shall not be used.&#10;Hint: Negative gain factors negate the input signal." name="gain"/>
            <attribute tooltip="(X3D version 4.0 draft) [load &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;load=true means load immediately,&#10;load=false means defer loading or else unload a previously loaded scene.&#10;Hint: allows author to design when Inline loading occurs via user interaction, event chains or scripting.&#10;Hint: use a separate LoadSensor node to detect when loading is complete." name="load"/>
            <attribute tooltip="[loop &inputOutputLabel; &SFBoolLabel; &#34;false&#34;]&#10;Repeat indefinitely when loop=true, repeat only once when loop=false." name="loop"/>
            <attribute tooltip="[pauseTime &inputOutputLabel; &SFTimeLabel; &#34;0&#34;]&#10;When time now &gt;= pauseTime, isPaused becomes true and AudioClip becomes paused.&#10;Absolute time: number of seconds since January 1, 1970, 00:00:00 GMT.&#10;Hint: ROUTE a time value matching system clock to this field, such as output event from TouchSensor touchTime or TimeTrigger triggerTime." name="pauseTime"/>
            <attribute tooltip="[pitch &inputOutputLabel; &SFFloatLabel; &#34;1.0&#34;] (0,+&#8734;)&#10;Multiplier for the rate at which sampled sound is played.&#10;Changing pitch also changes playback speed.&#10;Hint: changing the pitch field does not trigger a duration_changed event.  Playback interval may vary but duration of the original media data remains unmodified." name="pitch"/>
            <attribute tooltip="[resumeTime &inputOutputLabel; &SFTimeLabel; &#34;0&#34;]&#10;When resumeTime becomes &lt;= time now, isPaused becomes false and AudioClip becomes active.&#10;Absolute time: number of seconds since January 1, 1970, 00:00:00 GMT.&#10;Hint: ROUTE a time value matching system clock to this field, such as output event from TouchSensor touchTime or TimeTrigger triggerTime." name="resumeTime"/>
            <attribute tooltip="[startTime &inputOutputLabel; &SFTimeLabel; &#34;0&#34;]&#10;Absolute time: number of seconds since January 1, 1970, 00:00:00 GMT.&#10;Hint: ROUTE a time value matching system clock to this field, such as output event from TouchSensor touchTime or TimeTrigger triggerTime." name="startTime"/>
            <attribute tooltip="[stopTime &inputOutputLabel; &SFTimeLabel; &#34;0&#34;]&#10;Absolute time: number of seconds since January 1, 1970, 00:00:00 GMT.&#10;Hint: ROUTE a time value matching system clock to this field, such as output event from TouchSensor touchTime or TimeTrigger triggerTime.&#10;Warning: An active TimeSensor node ignores set_cycleInterval and set_startTime events.&#10;Warning:An active TimeSensor node ignores set_stopTime event values less than or equal to startTime." name="stopTime"/>
            <attribute tooltip="[url &inputOutputLabel; &MFStringLabel; #IMPLIED]&#10;Location and filename of sound file or stream.&#10;Support for .wav format is required, .midi format is recommended, other formats are optional.&#10;Hint: MFString arrays can have multiple values, so separate each individual string by quote marks.&#10;&quot;https://www.web3d.org&quot; &quot;https://www.web3d.org/about&quot; &quot;etc.&quot;&#10;Hint: alternative XML encoding for quotation mark &quot; is &#38;quot; (which is an example of a character entity).&#10;Warning: strictly match directory and filename capitalization for http links! This is important for portability. Some operating systems are forgiving of capitalization mismatches, but http/https url addresses and paths in Unix-based operating systems are all case sensitive and intolerant of uppercase/lowercase mismatches.&#10;Hint: can replace embedded blank(s) in url queries with %20 for each blank character.&#10;Hint: X3D Scene Authoring Hints, urls https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#urls" name="url"/>
            <attribute tooltip="[duration_changed &outputOnlyLabel; &SFTimeLabel; #FIXED &#34;&#34;] [0,+&#8734;) or -1.&#10;duration_changed is length of time in seconds for one cycle of media stream.&#10;Warning: duration value of -1 implies that media data has not yet loaded or is unavailable for some reason.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events.&#10;Hint: duration_changed is an SFTime duration interval, normally nonnegative, and not an absolute clock time.&#10;Hint: changing the pitch field does not trigger a duration_changed event.  Playback interval may vary but duration of the original media data remains unmodified." name="duration_changed"/>
            <attribute tooltip="[elapsedTime &outputOnlyLabel; &SFTimeLabel; #FIXED &#34;&#34;] [0,+&#8734;)&#10;Current elapsed time since AudioClip activated/running, cumulative in seconds, and not counting any paused time.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events.&#10;Hint: elapsedTime is a nonnegative SFTime duration interval, not an absolute clock time." name="elapsedTime"/>
            <attribute tooltip="[isActive &outputOnlyLabel; &SFBoolLabel; #FIXED &#34;&#34;]&#10;isActive true/false events are sent when playback starts/stops.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="isActive"/>
            <attribute tooltip="[isPaused &outputOnlyLabel; &SFBoolLabel; #FIXED &#34;&#34;]&#10;isPaused true/false events are sent when AudioClip is paused/resumed.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="isPaused"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;source&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/Background.gif" tooltip="[X3DBackgroundNode] Background simulates ground and sky, using vertical arrays of wraparound color values. Background can also provide url addresses for backdrop textures on all six sides.&#10;Hint: Background, Fog, GeoViewpoint, NavigationInfo, OrthoViewpoint, TextureBackground and Viewpoint are bindable nodes, meaning that no more than one of each node type can be active at a given time.&#10;Warning: results are undefined if a bindable node (Background, Fog, NavigationInfo, OrthoViewpoint, TextureBackground, Viewpoint) is a contained descendant node of either LOD or Switch. Avoid this authoring pattern.&#10;Hint: Background node is not sensed by LoadSensor due to node typing and  multiple-image ambiguity, alternatively utilize TextureBackground node with multiple ImageTexture nodes each referenced inside LoadSensor.&#10;Hint: X3D Example Archives, Basic, Universal Media Panoramas https://www.web3d.org/x3d/content/examples/Basic/UniversalMediaPanoramas" name="Background">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="(X3D version 3.2 or later) [transparency &inputOutputLabel; &SFFloatLabel; &#34;0&#34;] [0,1] &#10;how &quot;clear&quot; the background is, allows underlying page to show through: 1.0 is completely transparent, 0.0 is completely opaque.&#10;Interchange profile hint: transparency &lt; .5 opaque, transparency &gt; .5 transparent." name="transparency"/>
            <attribute tooltip="[skyColor &inputOutputLabel; &MFColorLabel; &#34;0 0 0&#34;]&#10;Color of the sky at various angles on the sky sphere.&#10;First value is color of sky at 0.0 radians representing the zenith (straight up).&#10;Hint: setting the same color at two consecutive angles produces a solid color band.&#10;Warning: you must have one more skyColor value than skyAngle values.&#10;Interchange profile hint: only one color might be rendered, others can be ignored.&#10;Hint: X3D Scene Authoring Hints, Color https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#Color" name="skyColor"/>
            <attribute tooltip="[skyAngle &inputOutputLabel; &MFFloatLabel; #IMPLIED] [0,&#960;]&#10;The angle array values increase from 0.0 zenith (straight up) to &#960;/2=1.570796 (horizon) to &#960;=3.14159 (nadir).&#10;Warning: you must have one more skyColor value than skyAngle values.&#10;Warning: colors at skyAngle=0 are ignored.&#10;Interchange profile hint: this field may be ignored, applying the default value regardless.&#10;Hint: radian units for angular measure https://en.wikipedia.org/wiki/Radian" name="skyAngle"/>
            <attribute tooltip="[groundColor &inputOutputLabel; &MFColorLabel; #IMPLIED]&#10;Color of the ground at the various angles on the ground partial sphere.&#10;First value is color of ground at 0.0 radians representing the nadir (straight down).&#10;Hint: setting the same color at two consecutive angles produces a solid color band.&#10;Warning: you must have one more groundColor value than groundAngle values.&#10;Interchange profile hint: this field may be ignored, applying the default value regardless.&#10;Hint: X3D Scene Authoring Hints, Color https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#Color" name="groundColor"/>
            <attribute tooltip="[groundAngle &inputOutputLabel; &MFFloatLabel; #IMPLIED] [0,&#960;/2]&#10;The angle array values increase from 0.0 nadir (straight down) to &#960;/2=1.570796 (horizon).&#10;Warning: you must have one more groundColor value than groundAngle values.&#10;Warning: colors at groundAngle=0 are ignored.&#10;Interchange profile hint: this field may be ignored, applying the default value regardless.&#10;Hint: radian units for angular measure https://en.wikipedia.org/wiki/Radian" name="groundAngle"/>
            <attribute tooltip="[frontUrl &inputOutputLabel; &MFStringLabel; #IMPLIED]&#10;Image background panorama between ground/sky backdrop and scene's geometry.&#10;Hint: MFString arrays can have multiple values, so separate each individual string by quote marks &quot;https://www.web3d.org&quot; &quot;https://www.web3d.org/about&quot; &quot;etc.&quot;&#10;Hint: alternative XML encoding for quotation mark &quot; is &#38;quot; (which is an example of a character entity).&#10;Warning: strictly match directory and filename capitalization for http links! This is important for portability. Some operating systems are forgiving of capitalization mismatches, but http/https url addresses and paths in Unix-based operating systems are all case sensitive and intolerant of uppercase/lowercase mismatches.&#10;Hint: can replace embedded blank(s) in url queries with %20 for each blank character.&#10;Interchange profile hint: this field may be ignored, applying the default value regardless." name="frontUrl"/>
            <attribute tooltip="[backUrl &inputOutputLabel; &MFStringLabel; #IMPLIED]&#10;Image background panorama between ground/sky backdrop and scene's geometry.&#10;Hint: MFString arrays can have multiple values, so separate each individual string by quote marks &quot;https://www.web3d.org&quot; &quot;https://www.web3d.org/about&quot; &quot;etc.&quot;&#10;Hint: alternative XML encoding for quotation mark &quot; is &#38;quot; (which is an example of a character entity).&#10;Warning: strictly match directory and filename capitalization for http links! This is important for portability. Some operating systems are forgiving of capitalization mismatches, but http/https url addresses and paths in Unix-based operating systems are all case sensitive and intolerant of uppercase/lowercase mismatches.&#10;Hint: can replace embedded blank(s) in url queries with %20 for each blank character.&#10;Interchange profile hint: this field may be ignored, applying the default value regardless." name="backUrl"/>
            <attribute tooltip="[leftUrl &inputOutputLabel; &MFStringLabel; #IMPLIED]&#10;Image background panorama between ground/sky backdrop and scene's geometry.&#10;Hint: MFString arrays can have multiple values, so separate each individual string by quote marks &quot;https://www.web3d.org&quot; &quot;https://www.web3d.org/about&quot; &quot;etc.&quot;&#10;Hint: alternative XML encoding for quotation mark &quot; is &#38;quot; (which is an example of a character entity).&#10;Warning: strictly match directory and filename capitalization for http links! This is important for portability. Some operating systems are forgiving of capitalization mismatches, but http/https url addresses and paths in Unix-based operating systems are all case sensitive and intolerant of uppercase/lowercase mismatches.&#10;Hint: can replace embedded blank(s) in url queries with %20 for each blank character.&#10;Interchange profile hint: this field may be ignored, applying the default value regardless." name="leftUrl"/>
            <attribute tooltip="[rightUrl &inputOutputLabel; &MFStringLabel; #IMPLIED]&#10;Image background panorama between ground/sky backdrop and scene's geometry.&#10;Hint: MFString arrays can have multiple values, so separate each individual string by quote marks &quot;https://www.web3d.org&quot; &quot;https://www.web3d.org/about&quot; &quot;etc.&quot;&#10;Hint: alternative XML encoding for quotation mark &quot; is &#38;quot; (which is an example of a character entity).&#10;Warning: strictly match directory and filename capitalization for http links! This is important for portability. Some operating systems are forgiving of capitalization mismatches, but http/https url addresses and paths in Unix-based operating systems are all case sensitive and intolerant of uppercase/lowercase mismatches.&#10;Hint: can replace embedded blank(s) in url queries with %20 for each blank character.&#10;Interchange profile hint: this field may be ignored, applying the default value regardless." name="rightUrl"/>
            <attribute tooltip="[topUrl &inputOutputLabel; &MFStringLabel; #IMPLIED]&#10;Image background panorama between ground/sky backdrop and scene's geometry.&#10;Hint: MFString arrays can have multiple values, so separate each individual string by quote marks &quot;https://www.web3d.org&quot; &quot;https://www.web3d.org/about&quot; &quot;etc.&quot;&#10;Hint: alternative XML encoding for quotation mark &quot; is &#38;quot; (which is an example of a character entity).&#10;Warning: strictly match directory and filename capitalization for http links! This is important for portability. Some operating systems are forgiving of capitalization mismatches, but http/https url addresses and paths in Unix-based operating systems are all case sensitive and intolerant of uppercase/lowercase mismatches.&#10;Hint: can replace embedded blank(s) in url queries with %20 for each blank character.&#10;Interchange profile hint: this field may be ignored, applying the default value regardless." name="topUrl"/>
            <attribute tooltip="[bottomUrl &inputOutputLabel; &MFStringLabel; #IMPLIED]&#10;Image background panorama between ground/sky backdrop and scene's geometry.&#10;Hint: MFString arrays can have multiple values, so separate each individual string by quote marks &quot;https://www.web3d.org&quot; &quot;https://www.web3d.org/about&quot; &quot;etc.&quot;&#10;Hint: alternative XML encoding for quotation mark &quot; is &#38;quot; (which is an example of a character entity).&#10;Warning: strictly match directory and filename capitalization for http links! This is important for portability. Some operating systems are forgiving of capitalization mismatches, but http/https url addresses and paths in Unix-based operating systems are all case sensitive and intolerant of uppercase/lowercase mismatches.&#10;Hint: can replace embedded blank(s) in url queries with %20 for each blank character.&#10;Interchange profile hint: this field may be ignored, applying the default value regardless." name="bottomUrl"/>
            <attribute tooltip="[set_bind &inputOnlyLabel; &SFBoolLabel; #FIXED &#34;&#34;]&#10;Input event set_bind=true makes this node active,&#10;input event set_bind=false makes this node inactive.&#10;Thus setting set_bind true/false will pop/push (enable/disable) this node.&#10;Hint: paired node operations can be established by connecting set_bind and isBound fields of corresponding bindable nodes.&#10;Warning: it is an error to define this transient inputOnly field in an X3D file, instead only use it a destination for ROUTE events." name="set_bind"/>
            <attribute tooltip="[isBound &outputOnlyLabel; &SFBoolLabel; #FIXED &#34;&#34;]&#10;event true sent when node becomes active, event false sent when unbound by another node.&#10;Hint: paired node operations can be established by connecting set_bind and isBound fields of corresponding bindable nodes.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="isBound"/>
            <attribute tooltip="[bindTime &outputOnlyLabel; &SFTimeLabel; #FIXED &#34;&#34;]&#10;event sent when node becomes active/inactive.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="bindTime"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/Billboard.gif" tooltip="[X3DGroupingNode,X3DVisibleObject] Billboard is a Grouping node that can contain most nodes. Contained child geometry faces the user, rotating about the specified axis.&#10;Set axisOfRotation=0 0 0 to fully face the user's camera.&#10;Hint: Put Billboard as close to the geometry as possible,&#10;nested inside Transform for local coordinate system.&#10;Warning: don't put Viewpoint inside a Billboard.&#10;Hint: insert a Shape node before adding geometry or Appearance." name="Billboard">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[children &inputOutputLabel; &MFNodeLabel;, empty list] [X3DChildNode]&#10;Grouping nodes contain an ordered list of children nodes.&#10;Hint: Each grouping node defines a coordinate space for its children, relative to the coordinate space of its parent node. Thus transformations accumulate down the scene graph hierarchy.&#10;Hint: inputOnly MFNode addChildren field can append new X3DChildNode nodes via a ROUTE connection, duplicate input nodes (i.e. matching DEF, USE values) are ignored.&#10;Hint: inputOnly MFNode removeChildren field can remove nodes from the children list, unrecognized input nodes (i.e. nonmatching DEF, USE values) are ignored.&#10;Hint: X3D Architecture 10.2.1 Grouping and children node types, https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#GroupingAndChildrenNodes" name="children"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[axisOfRotation &inputOutputLabel; &SFVec3fLabel; &#34;0 1 0&#34;]&#10;axisOfRotation direction is relative to local coordinate system.&#10;Hint: axis 0 0 0 always faces viewer." name="axisOfRotation"/>
            <attribute tooltip="[bboxCenter &initializeOnlyLabel; &SFVec3fLabel; &#34;0 0 0&#34;]&#10;Bounding box center accompanies bboxSize and provides an optional hint for bounding box position offset from origin of local coordinate system.&#10;Hint: precomputation and inclusion of bounding box information can speed up the initialization of large detailed models, with a corresponding cost of increased file size.&#10;Hint: X3D Architecture, 10.2.2 Bounding boxes https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#BoundingBoxes&#10;Hint:  X3D Architecture, 10.3.1 X3DBoundedObject https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#X3DBoundedObject" name="bboxCenter"/>
            <attribute tooltip="[bboxSize &initializeOnlyLabel; &SFVec3fLabel; &#34;-1 -1 -1&#34;] or [0,+&#8734;)&#10;Bounding box size is usually omitted, and can easily be calculated automatically by an X3D player at scene-loading time with minimal computational cost. Bounding box size can also be defined as an optional authoring hint that suggests an optimization or constraint.&#10;Hint: can be useful for collision computations or inverse-kinematics (IK) engines.&#10;Hint: precomputation and inclusion of bounding box information can speed up the initialization of large detailed models, with a corresponding cost of increased file size.&#10;Hint: X3D Architecture, 10.2.2 Bounding boxes https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#BoundingBoxes&#10;Hint:  X3D Architecture, 10.3.1 X3DBoundedObject https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#X3DBoundedObject" name="bboxSize"/>
            <attribute tooltip="(X3D version 4.0 draft) [bboxDisplay &inputOutputLabel; &SFBoolLabel; &#34;false&#34;]&#10;Whether to display bounding box for associated geometry, aligned with world coordinates.&#10;Hint: the bounding box is displayed regardless of whether contained content is visible." name="bboxDisplay"/>
            <attribute tooltip="(X3D version 4.0 draft) [visible &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Whether or not renderable content within this node is visually displayed.&#10;Hint: the visible field has no effect on animation behaviors, event passing or other non-visual characteristics.&#10;Hint: content must be visible to be collidable and to be pickable." name="visible"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/BooleanSequencer.gif" tooltip="[X3DChildNode] BooleanFilter selectively passes true, false or negated events.&#10;Hint: example scenes and authoring assets at https://x3dgraphics.com/examples/X3dForWebAuthors/Chapter09-EventUtilitiesScripting&#10;Hint: X3D Event-Utility Node Diagrams https://x3dgraphics.com/examples/X3dForWebAuthors/Chapter09-EventUtilitiesScripting/X3dEventUtilityNodeEventDiagrams.pdf" name="BooleanFilter">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[set_boolean &inputOnlyLabel; &SFBoolLabel; #FIXED &#34;&#34;]&#10;set_boolean is the input value to be filtered.&#10;Warning: it is an error to define this transient inputOnly field in an X3D file, instead only use it a destination for ROUTE events." name="set_boolean"/>
            <attribute tooltip="[inputTrue &outputOnlyLabel; &SFBoolLabel; #FIXED &#34;&#34;]&#10;inputTrue only passes a true value, which occurs when set_boolean input is true.&#10;Hint: inputTrue is an output event that can only provide a value of true." name="inputTrue"/>
            <attribute tooltip="[inputFalse &outputOnlyLabel; &SFBoolLabel; #FIXED &#34;&#34;]&#10;inputFalse only passes a false value, which occurs when set_boolean is false.&#10;Hint: inputFalse is an output event that can only provide a value of false." name="inputFalse"/>
            <attribute tooltip="[inputNegate &outputOnlyLabel; &SFBoolLabel; #FIXED &#34;&#34;]&#10;inputNegate is an output event that provides an opposite value by negating set_boolean input." name="inputNegate"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/BooleanSequencer.gif" tooltip="[X3DSequencerNode] BooleanSequencer generates periodic discrete Boolean values. Authors can ROUTE value_changed output events to other Boolean attributes.&#10;Hint: typical input connection is ROUTE someTimeSensorDEF.fraction_changed TO thisInterpolatorDEF.set_fraction&#10;Hint: typical output connection is ROUTE thisInterpolatorDEF.value_changed TO someDestinationNodeDEF.set_someAttribute.&#10;Hint: example scenes and authoring assets at https://x3dgraphics.com/examples/X3dForWebAuthors/Chapter09-EventUtilitiesScripting&#10;Hint: X3D Event-Utility Node Diagrams https://x3dgraphics.com/examples/X3dForWebAuthors/Chapter09-EventUtilitiesScripting/X3dEventUtilityNodeEventDiagrams.pdf" name="BooleanSequencer">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[key &inputOutputLabel; &MFFloatLabel; #IMPLIED]&#10;Definition values for linear-interpolation function input intervals, listed in non-decreasing order and corresponding to a value in the keyValue array.&#10;Warning: number of keys must match number of keyValues!&#10;Warning: values in key array shall be monotonically non-decreasing, meaning that each value is greater than or equal to the preceding value.&#10;Hint: typical interval for values in key array is within range of 0 to 1, but larger intervals can be defined with arbitrary bounds." name="key"/>
            <attribute tooltip="[keyValue &inputOutputLabel; &MFBoolLabel; #IMPLIED]&#10;Output values for linear sequencing, each corresponding to an input-fraction value in the key array.&#10;Warning: number of keys must match number of keyValues!" name="keyValue"/>
            <attribute tooltip="[set_fraction &inputOnlyLabel; &SFFloatLabel; #FIXED &#34;&#34;]&#10;set_fraction selects input key for corresponding keyValue output.&#10;Hint: set_fraction values are typically in same range interval as values in the key array. Response to an input set_fraction value less than minimum is equivalent to minimum key, and response to an input set_fraction value greater than maximum is equivalent to maximum key.&#10;Warning: it is an error to define this transient inputOnly field in an X3D file, instead only use it a destination for ROUTE events." name="set_fraction"/>
            <attribute tooltip="[value_changed &outputOnlyLabel; &SFBoolLabel; #FIXED &#34;&#34;]&#10;Single intermittent output value determined by current key time and corresponding keyValue entry.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="value_changed"/>
            <attribute tooltip="[next &inputOnlyLabel; &SFBoolLabel; &#34;&#34;]&#10;Send next output value in keyValue array, and reset internal fraction field to match corresponding value in key array.&#10;Hint: this input event will &quot;wrap around&quot; boundary of keyValue array, i.e. continue from last to first if necessary.&#10;Warning: it is an error to define this transient inputOnly field in an X3D file, instead only use it a destination for ROUTE events." name="next"/>
            <attribute tooltip="[previous &inputOnlyLabel; &SFBoolLabel; &#34;&#34;]&#10;Send previous output value in keyValue array, and reset internal fraction field to match corresponding value in key array.&#10;Hint: this input event will &quot;wrap around&quot; boundary of keyValue array, i.e. continue from first to last if necessary.&#10;Warning: it is an error to define this transient inputOnly field in an X3D file, instead only use it a destination for ROUTE events." name="previous"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/BooleanSequencer.gif" tooltip="[X3DChildNode] BooleanToggle maintains state and negates output when a true input is provided.&#10;Hint: example scenes and authoring assets at https://x3dgraphics.com/examples/X3dForWebAuthors/Chapter09-EventUtilitiesScripting&#10;Hint: X3D Event-Utility Node Diagrams https://x3dgraphics.com/examples/X3dForWebAuthors/Chapter09-EventUtilitiesScripting/X3dEventUtilityNodeEventDiagrams.pdf" name="BooleanToggle">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[set_boolean &inputOnlyLabel; &SFBoolLabel; #FIXED &#34;&#34;]&#10;If input event set_boolean is true, flip state by negating current value of the toggle field Hint: for logical consistency, input event set_boolean false has no effect (under review as part of Mantis issue 519).&#10;Warning: it is an error to define this transient inputOnly field in an X3D file, instead only use it a destination for ROUTE events." name="set_boolean"/>
            <attribute tooltip="[toggle &inputOutputLabel; &SFBoolLabel; &#34;false&#34;]&#10;Persistent state value that gets toggled or reset. Hint: directly setting a new value for the toggle field generates a corresponding toggle_changed output event." name="toggle"/>
            <attribute tooltip="[toggle_changed &outputOnlyLabel; &SFInt32Label; #FIXED &#34;&#34;]&#10;toggle_changed provides boolean output event matching updated toggle value when input event set_boolean true is received. Hint: directly setting a new value for the toggle field generates a corresponding toggle_changed output event.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="toggle_changed"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/BooleanSequencer.gif" tooltip="[X3DTriggerNode] BooleanTrigger converts time events to boolean true events.&#10;Hint: example scenes and authoring assets at https://x3dgraphics.com/examples/X3dForWebAuthors/Chapter09-EventUtilitiesScripting&#10;Hint: X3D Event-Utility Node Diagrams https://x3dgraphics.com/examples/X3dForWebAuthors/Chapter09-EventUtilitiesScripting/X3dEventUtilityNodeEventDiagrams.pdf" name="BooleanTrigger">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[set_triggerTime &inputOnlyLabel; &SFTimeLabel; #FIXED &#34;&#34;]&#10;set_triggerTime provides input time event, typical event sent is TouchSensor touchTime.&#10;Warning: it is an error to define this transient inputOnly field in an X3D file, instead only use it a destination for ROUTE events." name="set_triggerTime"/>
            <attribute tooltip="[triggerTrue &outputOnlyLabel; &SFBoolLabel; #FIXED &#34;&#34;]&#10;triggerTrue outputs a true value whenever a triggerTime event is received.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="triggerTrue"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/Box.gif" tooltip="[X3DGeometryNode] Box is a geometry node specifying a rectangular cuboid.&#10;Hint: Cuboid https://en.wikipedia.org/wiki/Cuboid&#10;Hint: Parallelepiped https://en.wikipedia.org/wiki/Parallelepiped&#10;Hint: insert a Shape node before adding geometry or Appearance." name="Box">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[size &initializeOnlyLabel; &SFVec3fLabel; &#34;2 2 2&#34;] (0,+&#8734;)&#10;size x y z in meters.&#10;Warning: simple-geometry dimensions are initializeOnly and cannot be changed after initial creation, avoiding the need for potentially expensive tessellation at run time.&#10;Hint: for size animation, modify the scale of a parent/ancestor Transform node instead. " name="size"/>
            <attribute tooltip="[solid &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Setting solid true means draw only one side of polygons (backface culling on), setting solid false means draw both sides of polygons (backface culling off).&#10;Hint: mnemonic &quot;this geometry is solid like a brick&quot; (you don't render the inside of a brick).&#10;Warning: default value true can completely hide geometry if viewed from wrong side!&#10;Hint: if in doubt, use solid='false' for maximum visibility.&#10;Warning: solid false not supported in VRML97.&#10;Hint: (X3D version 4.0 draft) accessType relaxed to inputOutput in order to support animation and visualization." name="solid"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;geometry&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/Arc2D.gif" tooltip="[X3DGeometryNode] Arc2D is a line-based geometry node that defines a linear circular arc with center (0,0) in X-Y plane, with angles measured starting at positive x-axis and sweeping towards positive y-axis.&#10;Hint: Material emissiveColor in corresponding Appearance is used for rendering lines. &#10;Warning: lines are not lit, are not texture-mapped, and do not participate in collision detection.
Warning: use a different Material emissiveColor than the Background color, otherwise geometry is invisible.&#10;Hint: adding LineProperties to the corresponding Appearance node can modify the rendering style of these lines. &#10;Hint: insert a Shape node before adding geometry or Appearance.&#10;Warning: requires X3D profile='Full' or else include &lt;component name='Geometry2D' level='2'/&gt;&#10;Examples: X3D Example Archives, X3D for Web Authors, Chapter 10 Geometry 2D https://x3dgraphics.com/examples/X3dForWebAuthors/Chapter10Geometry2D" name="Arc2D">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[radius &initializeOnlyLabel; &SFFloatLabel; &#34;1&#34;] (0,+&#8734;)&#10;circle radius, of which the arc is a portion.&#10;Warning: simple-geometry dimensions are initializeOnly and cannot be changed after initial creation, avoiding the need for potentially expensive tessellation at run time.&#10;Hint: for size animation, modify the scale of a parent/ancestor Transform node instead. " name="radius"/>
            <attribute tooltip="[startAngle &initializeOnlyLabel; &SFFloatLabel; &#34;0&#34;] [0,2pi]&#10;Arc extends from startAngle counterclockwise to endAngle, in radians.&#10;Warning: simple-geometry dimensions are initializeOnly and cannot be changed after initial creation, avoiding the need for potentially expensive tessellation at run time.&#10;Hint: for size animation, modify the scale of a parent/ancestor Transform node instead. &#10;Hint: radian units for angular measure https://en.wikipedia.org/wiki/Radian" name="startAngle"/>
            <attribute tooltip="[endAngle &initializeOnlyLabel; &SFFloatLabel; &#34;1.570796&#34;] [0,2pi]&#10;Arc extends from startAngle counterclockwise to endAngle, in radians.&#10;Warning: simple-geometry dimensions are initializeOnly and cannot be changed after initial creation, avoiding the need for potentially expensive tessellation at run time.&#10;Hint: for size animation, modify the scale of a parent/ancestor Transform node instead. &#10;Hint: radian units for angular measure https://en.wikipedia.org/wiki/Radian" name="endAngle"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;geometry&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/ArcClose2D.gif" tooltip="[X3DGeometryNode] ArcClose2D is a polygonal geometry node that defines a linear circular arc, closed by PIE or CHORD line segments, with center (0,0) in X-Y plane, with angles measured starting at positive x-axis and sweeping towards positive y-axis.&#10;Hint: insert a Shape node before adding geometry or Appearance.&#10;Warning: requires X3D profile='Full' or else include &lt;component name='Geometry2D' level='2'/&gt;&#10;Examples: X3D Example Archives, X3D for Web Authors, Chapter 10 Geometry 2D https://x3dgraphics.com/examples/X3dForWebAuthors/Chapter10Geometry2D" name="ArcClose2D">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[radius &initializeOnlyLabel; &SFFloatLabel; &#34;1&#34;] (0,+&#8734;)&#10;circle radius, of which the arc is a portion.&#10;Warning: simple-geometry dimensions are initializeOnly and cannot be changed after initial creation, avoiding the need for potentially expensive tessellation at run time.&#10;Hint: for size animation, modify the scale of a parent/ancestor Transform node instead. " name="radius"/>
            <attribute tooltip="[startAngle &initializeOnlyLabel; &SFFloatLabel; &#34;0&#34;] [0,2pi]&#10;Arc extends from startAngle counterclockwise to endAngle, in radians.&#10;Warning: simple-geometry dimensions are initializeOnly and cannot be changed after initial creation, avoiding the need for potentially expensive tessellation at run time.&#10;Hint: for size animation, modify the scale of a parent/ancestor Transform node instead. &#10;Hint: radian units for angular measure https://en.wikipedia.org/wiki/Radian" name="startAngle"/>
            <attribute tooltip="[endAngle &initializeOnlyLabel; &SFFloatLabel; &#34;1.570796&#34;] [0,2pi]&#10;Arc extends from startAngle counterclockwise to endAngle, in radians.&#10;Warning: simple-geometry dimensions are initializeOnly and cannot be changed after initial creation, avoiding the need for potentially expensive tessellation at run time.&#10;Hint: for size animation, modify the scale of a parent/ancestor Transform node instead. &#10;Hint: radian units for angular measure https://en.wikipedia.org/wiki/Radian" name="endAngle"/>
            <attribute tooltip="[closureType &initializeOnlyLabel; &SFStringLabel; (PIE|CHORD) &#34;PIE&#34;]&#10;Defines whether pair of line segments connect to center (PIE), or single line-segment chord connects arc endpoints (CHORD).&#10;Warning: simple-geometry parameters cannot be changed after initial creation." name="closureType"/>
            <attribute tooltip="[solid &inputOutputLabel; &SFBoolLabel; &#34;false&#34;]&#10;Setting solid true means draw only one side of polygons (backface culling on), setting solid false means draw both sides of polygons (backface culling off).&#10;Hint: mnemonic &quot;this geometry is solid like a brick&quot; (you don't render the inside of a brick).&#10;Warning: default value true can completely hide geometry if viewed from wrong side!&#10;Hint: if in doubt, use solid='false' for maximum visibility.&#10;Warning: solid false not supported in VRML97.&#10;Hint: (X3D version 4.0 draft) accessType relaxed to inputOutput in order to support animation and visualization." name="solid"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;geometry&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/Circle2D.gif" tooltip="[X3DGeometryNode] Circle2D is a geometry node that defines a linear X-Y circle with center (0,0) in X-Y plane.&#10;Hint: insert a Shape node before adding geometry or Appearance.&#10;Warning: requires X3D profile='Full' or else include &lt;component name='Geometry2D' level='2'/&gt;&#10;Examples: X3D Example Archives, X3D for Web Authors, Chapter 10 Geometry 2D https://x3dgraphics.com/examples/X3dForWebAuthors/Chapter10Geometry2D" name="Circle2D">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[radius &initializeOnlyLabel; &SFFloatLabel; &#34;1&#34;] (0,+&#8734;)&#10;circle radius.&#10;Warning: simple-geometry dimensions are initializeOnly and cannot be changed after initial creation, avoiding the need for potentially expensive tessellation at run time.&#10;Hint: for size animation, modify the scale of a parent/ancestor Transform node instead. " name="radius"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;geometry&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/Disk2D.gif" tooltip="[X3DGeometryNode] Disk2D is a geometry node that defines a filled (or partially filled) planar circle with center (0,0).&#10;Hint: insert a Shape node before adding geometry or Appearance.&#10;Warning: requires X3D profile='Full' or else include &lt;component name='Geometry2D' level='2'/&gt;&#10;Examples: X3D Example Archives, X3D for Web Authors, Chapter 10 Geometry 2D https://x3dgraphics.com/examples/X3dForWebAuthors/Chapter10Geometry2D" name="Disk2D">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[innerRadius &initializeOnlyLabel; &SFFloatLabel; &#34;0&#34;] [0,+&#8734;)&#10;Inner circle radius, greater than or equal to 0.&#10;Warning: simple-geometry dimensions are initializeOnly and cannot be changed after initial creation, avoiding the need for potentially expensive tessellation at run time.&#10;Hint: for size animation, modify the scale of a parent/ancestor Transform node instead. " name="innerRadius"/>
            <attribute tooltip="[outerRadius &initializeOnlyLabel; &SFFloatLabel; &#34;1&#34;] (0,+&#8734;)&#10;Outer radius of circle, greater than or equal to inner radius.&#10;Warning: simple-geometry dimensions are initializeOnly and cannot be changed after initial creation, avoiding the need for potentially expensive tessellation at run time.&#10;Hint: for size animation, modify the scale of a parent/ancestor Transform node instead. " name="outerRadius"/>
            <attribute tooltip="[solid &inputOutputLabel; &SFBoolLabel; &#34;false&#34;]&#10;Setting solid true means draw only one side of polygons (backface culling on), setting solid false means draw both sides of polygons (backface culling off).&#10;Hint: mnemonic &quot;this geometry is solid like a brick&quot; (you don't render the inside of a brick).&#10;Warning: default value true can completely hide geometry if viewed from wrong side!&#10;Hint: if in doubt, use solid='false' for maximum visibility.&#10;Warning: solid false not supported in VRML97.&#10;Hint: (X3D version 4.0 draft) accessType relaxed to inputOutput in order to support animation and visualization." name="solid"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;geometry&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/Polyline2D.gif" tooltip="[X3DGeometryNode] Polyline2D is a geometry node that defines a connected set of vertices in a contiguous set of line segments in X-Y plane.&#10;Hint: Material emissiveColor in corresponding Appearance is used for rendering lines. &#10;Warning: lines are not lit, are not texture-mapped, and do not participate in collision detection.
Warning: use a different Material emissiveColor than the Background color, otherwise geometry is invisible.&#10;Hint: adding LineProperties to the corresponding Appearance node can modify the rendering style of these lines. &#10;Hint: insert a Shape node before adding geometry or Appearance.&#10;Examples: X3D Example Archives, X3D for Web Authors, Chapter 10 Geometry 2D https://x3dgraphics.com/examples/X3dForWebAuthors/Chapter10Geometry2D" name="Polyline2D">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[lineSegments &initializeOnlyLabel; &MFVec2fLabel; #FIXED &#34;&#34;]&#10;Coordinates of vertices connected into contiguous Polyline2D.&#10;Warning: simple-geometry dimensions are initializeOnly and cannot be changed after initial creation, avoiding the need for potentially expensive tessellation at run time.&#10;Hint: for size animation, modify the scale of a parent/ancestor Transform node instead. " name="lineSegments"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;geometry&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/PointSet.gif" tooltip="[X3DGeometryNode] Polypoint2D is a geometry node that defines a set of 2D points in X-Y plane.&#10;Hint: insert a Shape node before adding geometry or Appearance.&#10;Examples: X3D Example Archives, X3D for Web Authors, Chapter 10 Geometry 2D https://x3dgraphics.com/examples/X3dForWebAuthors/Chapter10Geometry2D" name="Polypoint2D">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[point &initializeOnlyLabel; &MFVec2fLabel; #FIXED &#34;&#34;]&#10;2D coordinates of vertices.&#10;Warning: simple-geometry dimensions are initializeOnly and cannot be changed after initial creation, avoiding the need for potentially expensive tessellation at run time.&#10;Hint: for size animation, modify the scale of a parent/ancestor Transform node instead. " name="point"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;geometry&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/Rectangle2D.gif" tooltip="[X3DGeometryNode] Rectangle2D is a geometry node that defines a 2D rectangle in X-Y plane.&#10;Hint: insert a Shape node before adding geometry or Appearance.&#10;Examples: X3D Example Archives, X3D for Web Authors, Chapter 10 Geometry 2D https://x3dgraphics.com/examples/X3dForWebAuthors/Chapter10Geometry2D" name="Rectangle2D">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[size &initializeOnlyLabel; &SFVec2fLabel; &#34;2 2&#34;]&#10;2D dimensions of Rectangle2D.&#10;Warning: simple-geometry dimensions are initializeOnly and cannot be changed after initial creation, avoiding the need for potentially expensive tessellation at run time.&#10;Hint: for size animation, modify the scale of a parent/ancestor Transform node instead. " name="size"/>
            <attribute tooltip="[solid &inputOutputLabel; &SFBoolLabel; &#34;false&#34;]&#10;Setting solid true means draw only one side of polygons (backface culling on), setting solid false means draw both sides of polygons (backface culling off).&#10;Hint: mnemonic &quot;this geometry is solid like a brick&quot; (you don't render the inside of a brick).&#10;Warning: default value true can completely hide geometry if viewed from wrong side!&#10;Hint: if in doubt, use solid='false' for maximum visibility.&#10;Warning: solid false not supported in VRML97.&#10;Hint: (X3D version 4.0 draft) accessType relaxed to inputOutput in order to support animation and visualization." name="solid"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;geometry&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/TriangleSet2D.gif" tooltip="[X3DGeometryNode] TriangleSet2D is a geometry node that defines a set of filled 2D triangles in X-Y plane.&#10;Hint: insert a Shape node before adding geometry or Appearance." name="TriangleSet2D">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[vertices &initializeOnlyLabel; &MFVec2fLabel; #FIXED &#34;&#34;]&#10;2D coordinates of TriangleSet2D vertices.&#10;Warning: simple-geometry dimensions are initializeOnly and cannot be changed after initial creation, avoiding the need for potentially expensive tessellation at run time.&#10;Hint: for size animation, modify the scale of a parent/ancestor Transform node instead. " name="vertices"/>
            <attribute tooltip="[solid &inputOutputLabel; &SFBoolLabel; &#34;false&#34;]&#10;Setting solid true means draw only one side of polygons (backface culling on), setting solid false means draw both sides of polygons (backface culling off).&#10;Hint: mnemonic &quot;this geometry is solid like a brick&quot; (you don't render the inside of a brick).&#10;Warning: default value true can completely hide geometry if viewed from wrong side!&#10;Hint: if in doubt, use solid='false' for maximum visibility.&#10;Warning: solid false not supported in VRML97.&#10;Hint: (X3D version 4.0 draft) accessType relaxed to inputOutput in order to support animation and visualization." name="solid"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;geometry&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <!-- CAD Profile, in hierarchical order: CADLayer, CADAssembly, CADPart, CADFace -->
        <element icon="icons/Group.gif" tooltip="(X3D version 3.1 or later) [X3DGroupingNode,X3DVisibleObject] CADLayer nodes define a hierarchy that shows layer structure for a Computer-Aided Design (CAD) model. CADLayer is a Grouping node that can contain CADAssembly and most nodes.&#10;Hint: can also contain Shapes or other grouped content.&#10;Hint: X3D for Advanced Modeling (X3D4AM) slideset https://x3dgraphics.com/slidesets/X3dForAdvancedModeling/ComputerAidedDesignInterchangeProfile.pdf&#10;Warning: requires X3D profile='Full' or else include &lt;component name='CADGeometry' level='2'/&gt;" name="CADLayer">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[children &inputOutputLabel; &MFNodeLabel;, empty list] [X3DChildNode]&#10;Grouping nodes contain an ordered list of children nodes.&#10;Hint: Each grouping node defines a coordinate space for its children, relative to the coordinate space of its parent node. Thus transformations accumulate down the scene graph hierarchy.&#10;Hint: inputOnly MFNode addChildren field can append new X3DChildNode nodes via a ROUTE connection, duplicate input nodes (i.e. matching DEF, USE values) are ignored.&#10;Hint: inputOnly MFNode removeChildren field can remove nodes from the children list, unrecognized input nodes (i.e. nonmatching DEF, USE values) are ignored.&#10;Hint: X3D Architecture 10.2.1 Grouping and children node types, https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#GroupingAndChildrenNodes" name="children"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[name &inputOutputLabel; type SFString #IMPLIED]&#10;Optional name for this particular CAD node.&#10;Warning: name field is not included if this instance is a USE node, in order to avoid potential mismatches.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="name"/>
            <attribute tooltip="[bboxCenter &initializeOnlyLabel; &SFVec3fLabel; &#34;0 0 0&#34;]&#10;Bounding box center accompanies bboxSize and provides an optional hint for bounding box position offset from origin of local coordinate system.&#10;Hint: precomputation and inclusion of bounding box information can speed up the initialization of large detailed models, with a corresponding cost of increased file size.&#10;Hint: X3D Architecture, 10.2.2 Bounding boxes https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#BoundingBoxes&#10;Hint:  X3D Architecture, 10.3.1 X3DBoundedObject https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#X3DBoundedObject" name="bboxCenter"/>
            <attribute tooltip="[bboxSize &initializeOnlyLabel; &SFVec3fLabel; &#34;-1 -1 -1&#34;] or [0,+&#8734;)&#10;Bounding box size is usually omitted, and can easily be calculated automatically by an X3D player at scene-loading time with minimal computational cost. Bounding box size can also be defined as an optional authoring hint that suggests an optimization or constraint.&#10;Hint: can be useful for collision computations or inverse-kinematics (IK) engines.&#10;Hint: precomputation and inclusion of bounding box information can speed up the initialization of large detailed models, with a corresponding cost of increased file size.&#10;Hint: X3D Architecture, 10.2.2 Bounding boxes https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#BoundingBoxes&#10;Hint:  X3D Architecture, 10.3.1 X3DBoundedObject https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#X3DBoundedObject" name="bboxSize"/>
            <attribute tooltip="(X3D version 4.0 draft) [bboxDisplay &inputOutputLabel; &SFBoolLabel; &#34;false&#34;]&#10;Whether to display bounding box for associated geometry, aligned with world coordinates.&#10;Hint: the bounding box is displayed regardless of whether contained content is visible." name="bboxDisplay"/>
            <attribute tooltip="(X3D version 4.0 draft) [visible &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Whether or not renderable content within this node is visually displayed.&#10;Hint: the visible field has no effect on animation behaviors, event passing or other non-visual characteristics.&#10;Hint: content must be visible to be collidable and to be pickable.&#10;Warning: CADLayer visible field had type MFBool in X3Dv3, thus is not backwards compatible." name="visible"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/Group.gif" tooltip="(X3D version 3.1 or later) [X3DGroupingNode,X3DProductStructureChildNode,X3DVisibleObject] CADAssembly holds a set of Computer-Aided Design (CAD) assemblies or parts grouped together. CADAssembly is a Grouping node that can contain CADAssembly (subassembly), CADPart or CADFace nodes.&#10;Hint: can also contain Shapes or other grouped content.&#10;Hint: Datum reference https://en.wikipedia.org/wiki/Datum_reference&#10;Hint: X3D for Advanced Modeling (X3D4AM) slideset https://x3dgraphics.com/slidesets/X3dForAdvancedModeling/ComputerAidedDesignInterchangeProfile.pdf&#10;Warning: requires X3D profile='Full' or else include &lt;component name='CADGeometry' level='2'/&gt;Hint: ViewpointGroup and OrthoViewpoint require Navigation component level 3, which is higher than CADInterchange profile." name="CADAssembly">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[children &inputOutputLabel; &MFNodeLabel;, empty list] [X3DChildNode]&#10;Grouping nodes contain an ordered list of children nodes.&#10;Hint: Each grouping node defines a coordinate space for its children, relative to the coordinate space of its parent node. Thus transformations accumulate down the scene graph hierarchy.&#10;Hint: inputOnly MFNode addChildren field can append new X3DChildNode nodes via a ROUTE connection, duplicate input nodes (i.e. matching DEF, USE values) are ignored.&#10;Hint: inputOnly MFNode removeChildren field can remove nodes from the children list, unrecognized input nodes (i.e. nonmatching DEF, USE values) are ignored.&#10;Hint: X3D Architecture 10.2.1 Grouping and children node types, https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#GroupingAndChildrenNodes" name="children"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[name &inputOutputLabel; type SFString #IMPLIED]&#10;Optional name for this particular CAD node.&#10;Warning: name field is not included if this instance is a USE node, in order to avoid potential mismatches.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="name"/>
            <attribute tooltip="[bboxCenter &initializeOnlyLabel; &SFVec3fLabel; &#34;0 0 0&#34;]&#10;Bounding box center accompanies bboxSize and provides an optional hint for bounding box position offset from origin of local coordinate system.&#10;Hint: precomputation and inclusion of bounding box information can speed up the initialization of large detailed models, with a corresponding cost of increased file size.&#10;Hint: X3D Architecture, 10.2.2 Bounding boxes https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#BoundingBoxes&#10;Hint:  X3D Architecture, 10.3.1 X3DBoundedObject https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#X3DBoundedObject" name="bboxCenter"/>
            <attribute tooltip="[bboxSize &initializeOnlyLabel; &SFVec3fLabel; &#34;-1 -1 -1&#34;] or [0,+&#8734;)&#10;Bounding box size is usually omitted, and can easily be calculated automatically by an X3D player at scene-loading time with minimal computational cost. Bounding box size can also be defined as an optional authoring hint that suggests an optimization or constraint.&#10;Hint: can be useful for collision computations or inverse-kinematics (IK) engines.&#10;Hint: precomputation and inclusion of bounding box information can speed up the initialization of large detailed models, with a corresponding cost of increased file size.&#10;Hint: X3D Architecture, 10.2.2 Bounding boxes https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#BoundingBoxes&#10;Hint:  X3D Architecture, 10.3.1 X3DBoundedObject https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#X3DBoundedObject" name="bboxSize"/>
            <attribute tooltip="(X3D version 4.0 draft) [bboxDisplay &inputOutputLabel; &SFBoolLabel; &#34;false&#34;]&#10;Whether to display bounding box for associated geometry, aligned with world coordinates.&#10;Hint: the bounding box is displayed regardless of whether contained content is visible." name="bboxDisplay"/>
            <attribute tooltip="(X3D version 4.0 draft) [visible &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Whether or not renderable content within this node is visually displayed.&#10;Hint: the visible field has no effect on animation behaviors, event passing or other non-visual characteristics.&#10;Hint: content must be visible to be collidable and to be pickable." name="visible"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/Group.gif" tooltip="(X3D version 3.1 or later) [X3DGroupingNode,X3DProductStructureChildNode,X3DVisibleObject] CADPart is an atomic part that defines both coordinate-system location and the faces that constitute a part in a Computer-Aided Design (CAD) model.&#10;CADPart contains multiple CADFace nodes that make up a single part.&#10;Hint: CADPart is often a child of CADAssembly node.&#10;Hint: X3D for Advanced Modeling (X3D4AM) slideset https://x3dgraphics.com/slidesets/X3dForAdvancedModeling/ComputerAidedDesignInterchangeProfile.pdf&#10;Warning: requires X3D profile='Full' or else include &lt;component name='CADGeometry' level='2'/&gt;" name="CADPart">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[children &inputOutputLabel; &MFNodeLabel;, empty list] [X3DChildNode]&#10;Grouping nodes contain an ordered list of children nodes.&#10;Hint: Each grouping node defines a coordinate space for its children, relative to the coordinate space of its parent node. Thus transformations accumulate down the scene graph hierarchy.&#10;Hint: inputOnly MFNode addChildren field can append new X3DChildNode nodes via a ROUTE connection, duplicate input nodes (i.e. matching DEF, USE values) are ignored.&#10;Hint: inputOnly MFNode removeChildren field can remove nodes from the children list, unrecognized input nodes (i.e. nonmatching DEF, USE values) are ignored.&#10;Hint: X3D Architecture 10.2.1 Grouping and children node types, https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#GroupingAndChildrenNodes" name="children"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[name &inputOutputLabel; type SFString #IMPLIED]&#10;Optional name for this particular CAD node.&#10;Warning: name field is not included if this instance is a USE node, in order to avoid potential mismatches.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="name"/>
            <attribute tooltip="[translation &inputOutputLabel; &SFVec3fLabel; &#34;0 0 0&#34;]&#10;Position (x, y, z in meters) of children relative to local coordinate system.&#10;Hint: The order of operation is first apply the center offset, then scaleOrientation and scale, then rotation, then restore the center offset, then translation." name="translation"/>
            <attribute tooltip="[rotation &inputOutputLabel; &SFRotationLabel; &#34;0 0 1 0&#34;]&#10;Orientation (axis, angle in radians) of children relative to local coordinate system.&#10;Hint: The order of operation is first apply the center offset, then scaleOrientation and scale, then rotation, then restore the center offset, then translation." name="rotation"/>
            <attribute tooltip="[center &inputOutputLabel; &SFVec3fLabel; &#34;0 0 0&#34;]&#10;Translation offset from origin of local coordinate system, applied prior to rotation or scaling.&#10;Hint: The order of operation is first apply the center offset, then scaleOrientation and scale, then rotation, then restore the center offset, then translation." name="center"/>
            <attribute tooltip="[scale &inputOutputLabel; &SFVec3fLabel; &#34;1 1 1&#34;]&#10;Non-uniform x-y-z scale of child coordinate system, adjusted by center and scaleOrientation.&#10;Hint: The order of operation is first apply the center offset, then scaleOrientation and scale, then rotation, then restore the center offset, then translation." name="scale"/>
            <attribute tooltip="[scaleOrientation &inputOutputLabel; &SFRotationLabel; &#34;0 0 1 0&#34;]&#10;Preliminary rotation of coordinate system before scaling (to allow scaling around arbitrary orientations).&#10;Hint: The order of operation is first apply the center offset, then scaleOrientation and scale, then rotation, then restore the center offset, then translation." name="scaleOrientation"/>
            <attribute tooltip="[bboxCenter &initializeOnlyLabel; &SFVec3fLabel; &#34;0 0 0&#34;]&#10;Bounding box center accompanies bboxSize and provides an optional hint for bounding box position offset from origin of local coordinate system.&#10;Hint: precomputation and inclusion of bounding box information can speed up the initialization of large detailed models, with a corresponding cost of increased file size.&#10;Hint: X3D Architecture, 10.2.2 Bounding boxes https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#BoundingBoxes&#10;Hint:  X3D Architecture, 10.3.1 X3DBoundedObject https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#X3DBoundedObject" name="bboxCenter"/>
            <attribute tooltip="[bboxSize &initializeOnlyLabel; &SFVec3fLabel; &#34;-1 -1 -1&#34;] or [0,+&#8734;)&#10;Bounding box size is usually omitted, and can easily be calculated automatically by an X3D player at scene-loading time with minimal computational cost. Bounding box size can also be defined as an optional authoring hint that suggests an optimization or constraint.&#10;Hint: can be useful for collision computations or inverse-kinematics (IK) engines.&#10;Hint: precomputation and inclusion of bounding box information can speed up the initialization of large detailed models, with a corresponding cost of increased file size.&#10;Hint: X3D Architecture, 10.2.2 Bounding boxes https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#BoundingBoxes&#10;Hint:  X3D Architecture, 10.3.1 X3DBoundedObject https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#X3DBoundedObject" name="bboxSize"/>
            <attribute tooltip="(X3D version 4.0 draft) [bboxDisplay &inputOutputLabel; &SFBoolLabel; &#34;false&#34;]&#10;Whether to display bounding box for associated geometry, aligned with world coordinates.&#10;Hint: the bounding box is displayed regardless of whether contained content is visible." name="bboxDisplay"/>
            <attribute tooltip="(X3D version 4.0 draft) [visible &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Whether or not renderable content within this node is visually displayed.&#10;Hint: the visible field has no effect on animation behaviors, event passing or other non-visual characteristics.&#10;Hint: content must be visible to be collidable and to be pickable." name="visible"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/Group.gif" tooltip="(X3D version 3.1 or later) [X3DProductStructureChildNode,X3DBoundedObject,X3DVisibleObject] CADFace holds  geometry representing one face in a Computer-Aided Design (CAD) CADPart. CADFace can only contain a single Shape or LOD node (with containerField='shape').&#10;Warning: only zero or one Shape child is allowed to be active at one time.&#10;Hint: X3D for Advanced Modeling (X3D4AM) slideset https://x3dgraphics.com/slidesets/X3dForAdvancedModeling/ComputerAidedDesignInterchangeProfile.pdf&#10;Warning: requires X3D profile='Full' or else include &lt;component name='CADGeometry' level='2'/&gt;" name="CADFace">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[shape &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DShapeNode|LOD|Transform]&#10;Contained Shape for this CADPart.&#10;Warning: if LOD or Transform are used, only zero or one Shape child is allowed to be active at one time." name="shape"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[name &inputOutputLabel; type SFString #IMPLIED]&#10;Optional name for this particular CAD node.&#10;Warning: name field is not included if this instance is a USE node, in order to avoid potential mismatches.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="name"/>
            <attribute tooltip="[bboxCenter &initializeOnlyLabel; &SFVec3fLabel; &#34;0 0 0&#34;]&#10;Bounding box center accompanies bboxSize and provides an optional hint for bounding box position offset from origin of local coordinate system.&#10;Hint: precomputation and inclusion of bounding box information can speed up the initialization of large detailed models, with a corresponding cost of increased file size.&#10;Hint: X3D Architecture, 10.2.2 Bounding boxes https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#BoundingBoxes&#10;Hint:  X3D Architecture, 10.3.1 X3DBoundedObject https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#X3DBoundedObject" name="bboxCenter"/>
            <attribute tooltip="[bboxSize &initializeOnlyLabel; &SFVec3fLabel; &#34;-1 -1 -1&#34;] or [0,+&#8734;)&#10;Bounding box size is usually omitted, and can easily be calculated automatically by an X3D player at scene-loading time with minimal computational cost. Bounding box size can also be defined as an optional authoring hint that suggests an optimization or constraint.&#10;Hint: can be useful for collision computations or inverse-kinematics (IK) engines.&#10;Hint: precomputation and inclusion of bounding box information can speed up the initialization of large detailed models, with a corresponding cost of increased file size.&#10;Hint: X3D Architecture, 10.2.2 Bounding boxes https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#BoundingBoxes&#10;Hint:  X3D Architecture, 10.3.1 X3DBoundedObject https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#X3DBoundedObject" name="bboxSize"/>
            <attribute tooltip="(X3D version 4.0 draft) [bboxDisplay &inputOutputLabel; &SFBoolLabel; &#34;false&#34;]&#10;Whether to display bounding box for associated geometry, aligned with world coordinates.&#10;Hint: the bounding box is displayed regardless of whether contained content is visible." name="bboxDisplay"/>
            <attribute tooltip="(X3D version 4.0 draft) [visible &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Whether or not renderable content within this node is visually displayed.&#10;Hint: the visible field has no effect on animation behaviors, event passing or other non-visual characteristics.&#10;Hint: content must be visible to be collidable and to be pickable." name="visible"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/IndexedFaceSet.gif" tooltip="(X3D version 3.1 or later) [X3DComposedGeometryNode] IndexedQuadSet is a geometry node that defines planar quadrilaterals. IndexedQuadSet contains a Coordinate|CoordinateDouble node, and can also contain Color|ColorRGBA, Normal and TextureCoordinate nodes.&#10;Hint: Quadrilateral https://en.wikipedia.org/wiki/Quadrilateral&#10;Hint: Quadrilateral https://en.wikipedia.org/wiki/Quadrilateral&#10;Hint: color, normal and texCoord values are applied in the same order as coord values.&#10;Hint: insert a Shape node before adding geometry or Appearance.&#10;Hint: for advanced extensibility, authors can substitute a type-matched ProtoInstance node (with correct containerField value) for contained node content.&#10;Hint: X3D for Advanced Modeling (X3D4AM) slideset https://x3dgraphics.com/slidesets/X3dForAdvancedModeling/ComputerAidedDesignInterchangeProfile.pdf&#10;Warning: requires X3D profile='Full' or else include &lt;component name='CADGeometry' level='1'/&gt;&#10;Warning: rendering characteristics are undefined if polygons are not planar.&#10;Warning: avoid self-intersecting polygon line segments, otherwise defined geometry is irregular and rendering results are undefined." name="IndexedQuadSet">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[attrib &inputOutputLabel; &MFNodeLabel;, empty list] [X3DVertexAttributeNode]&#10;Single contained FloatVertexAttribute node that can specify list of per-vertex attribute information for programmable shaders.&#10;Hint: X3D Architecture 32.2.2.4 Per-vertex attributes, https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/shaders.html#Pervertexattributes" name="attrib"/>
            <attribute tooltip="[color &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DColorNode]&#10;Single contained Color or ColorRGBA node that can specify color values applied to corresponding vertices according to colorIndex and colorPerVertex fields." name="color"/>
            <attribute tooltip="[coord &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DCoordinateNode]&#10;Single contained Coordinate or CoordinateDouble node that can specify a list of vertex values." name="coord"/>
            <attribute tooltip="[fogCoord &inputOutputLabel; &SFNodeLabel;, NULL node] [FogCoordinate]&#10;Single contained FogCoordinate node that can specify depth parameters for fog in corresponding geometry." name="fogCoord"/>
            <attribute tooltip="[normal &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DNormalNode]&#10;Single contained Normal node that can specify perpendicular vectors for corresponding vertices to support rendering computations, applied according to the normalPerVertex field.&#10;Hint: useful for special effects. Normal vector computation by 3D graphics hardware is quite fast so adding normals to a scene is typically unnecessary.&#10;Warning: normal vectors increase file size, typically doubling geometry definitions." name="normal"/>
            <attribute tooltip="[texCoord &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DTextureCoordinateNode]&#10;Single contained TextureCoordinate, TextureCoordinateGenerator or MultiTextureCoordinate node that can specify coordinates for texture mapping onto corresponding geometry." name="texCoord"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[index &initializeOnlyLabel; &MFInt32Label; #IMPLIED] [0,+&#8734;)&#10;index values provide order in which coordinates are applied.&#10;Order starts at index 0, commas are optional between sets. Four unique indices are defined for each quadrilateral.&#10;Warning: -1 sentinel values are not allowed." name="index"/>
            <attribute tooltip="[ccw &initializeOnlyLabel; &SFBoolLabel; &#34;true&#34;]&#10; ccw defines clockwise/counterclockwise ordering of vertex coordinates, which in turn defines front/back orientation of polygon normals according to Right-Hand Rule (RHR).&#10;Hint: a good debugging technique for problematic polygons is to try changing the value of ccw, which can reverse solid effects (single-sided backface culling) and normal-vector direction.&#10;Warning: consistent and correct ordering of left-handed or right-handed point sequences is important throughout the coord array of point values.&#10;Hint: clockwise https://en.wikipedia.org/wiki/Clockwise" name="ccw"/>
            <attribute tooltip="[colorPerVertex &initializeOnlyLabel; &SFBoolLabel; &#34;true&#34;]&#10;Whether Color|ColorRGBA values are applied to each point vertex (true) or to each polygon face (false).&#10;Warning: the provided value of IndexedQuadSet colorPerVertex field is ignored and always treated as true.&#10;Warning: if child Color|ColorRGBA node is not provided, then geometry is rendered using corresponding Appearance and material/texture values.&#10;Hint: X3D Scene Authoring Hints, Color https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#Color" name="colorPerVertex"/>
            <attribute tooltip="[normalPerVertex &initializeOnlyLabel; &SFBoolLabel; &#34;true&#34;]&#10;Whether Normal node vector values are applied to each point vertex (true) or to each polygon face (false).&#10;Hint: if no child Normal node is provided, the X3D browser shall automatically generate normals, using creaseAngle to determine smoothed shading across shared vertices." name="normalPerVertex"/>
            <attribute tooltip="[solid &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Setting solid true means draw only one side of polygons (backface culling on), setting solid false means draw both sides of polygons (backface culling off).&#10;Hint: mnemonic &quot;this geometry is solid like a brick&quot; (you don't render the inside of a brick).&#10;Warning: default value true can completely hide geometry if viewed from wrong side!&#10;Hint: if in doubt, use solid='false' for maximum visibility.&#10;Hint: (X3D version 4.0 draft) accessType relaxed to inputOutput in order to support animation and visualization." name="solid"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;geometry&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/Triangle.gif" tooltip="(X3D version 3.1 or later) [X3DComposedGeometryNode] QuadSet is a geometry node that defines planar quadrilaterals. QuadSet contains a Coordinate|CoordinateDouble node, and can also contain Color|ColorRGBA, Normal and TextureCoordinate nodes.&#10;Hint: Quadrilateral https://en.wikipedia.org/wiki/Quadrilateral&#10;Hint: color, normal and texCoord values are applied in the same order as coord values.&#10;Hint: insert a Shape node before adding geometry or Appearance.&#10;Hint: for advanced extensibility, authors can substitute a type-matched ProtoInstance node (with correct containerField value) for contained node content.&#10;Hint: X3D for Advanced Modeling (X3D4AM) slideset https://x3dgraphics.com/slidesets/X3dForAdvancedModeling/ComputerAidedDesignInterchangeProfile.pdf&#10;Warning: requires X3D profile='Full' or else include &lt;component name='CADGeometry' level='1'/&gt;&#10;Warning: rendering characteristics are undefined if polygons are not planar.&#10;Warning: avoid self-intersecting polygon line segments, otherwise defined geometry is irregular and rendering results are undefined." name="QuadSet">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[attrib &inputOutputLabel; &MFNodeLabel;, empty list] [X3DVertexAttributeNode]&#10;Single contained FloatVertexAttribute node that can specify list of per-vertex attribute information for programmable shaders.&#10;Hint: X3D Architecture 32.2.2.4 Per-vertex attributes, https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/shaders.html#Pervertexattributes" name="attrib"/>
            <attribute tooltip="[color &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DColorNode]&#10;Single contained Color or ColorRGBA node that can specify color values applied to corresponding vertices according to colorIndex and colorPerVertex fields." name="color"/>
            <attribute tooltip="[coord &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DCoordinateNode]&#10;Single contained Coordinate or CoordinateDouble node that can specify a list of vertex values." name="coord"/>
            <attribute tooltip="[fogCoord &inputOutputLabel; &SFNodeLabel;, NULL node] [FogCoordinate]&#10;Single contained FogCoordinate node that can specify depth parameters for fog in corresponding geometry." name="fogCoord"/>
            <attribute tooltip="[normal &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DNormalNode]&#10;Single contained Normal node that can specify perpendicular vectors for corresponding vertices to support rendering computations, applied according to the normalPerVertex field.&#10;Hint: useful for special effects. Normal vector computation by 3D graphics hardware is quite fast so adding normals to a scene is typically unnecessary.&#10;Warning: normal vectors increase file size, typically doubling geometry definitions." name="normal"/>
            <attribute tooltip="[texCoord &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DTextureCoordinateNode]&#10;Single contained TextureCoordinate, TextureCoordinateGenerator or MultiTextureCoordinate node that can specify coordinates for texture mapping onto corresponding geometry." name="texCoord"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[ccw &initializeOnlyLabel; &SFBoolLabel; &#34;true&#34;]&#10; ccw defines clockwise/counterclockwise ordering of vertex coordinates, which in turn defines front/back orientation of polygon normals according to Right-Hand Rule (RHR).&#10;Hint: a good debugging technique for problematic polygons is to try changing the value of ccw, which can reverse solid effects (single-sided backface culling) and normal-vector direction.&#10;Warning: consistent and correct ordering of left-handed or right-handed point sequences is important throughout the coord array of point values.&#10;Hint: clockwise https://en.wikipedia.org/wiki/Clockwise" name="ccw"/>
            <attribute tooltip="[colorPerVertex &initializeOnlyLabel; &SFBoolLabel; &#34;true&#34;]&#10;Whether Color|ColorRGBA values are applied to each point vertex (true) or to each polygon face (false).&#10;Warning: the provided value of QuadSet colorPerVertex field is ignored and always treated as true.&#10;Warning: if child Color|ColorRGBA node is not provided, then geometry is rendered using corresponding Appearance and material/texture values.&#10;Hint: X3D Scene Authoring Hints, Color https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#Color" name="colorPerVertex"/>
            <attribute tooltip="[normalPerVertex &initializeOnlyLabel; &SFBoolLabel; &#34;true&#34;]&#10;Whether Normal node vector values are applied to each point vertex (true) or to each polygon face (false).&#10;Hint: if no child Normal node is provided, the X3D browser shall automatically generate normals, using creaseAngle to determine smoothed shading across shared vertices." name="normalPerVertex"/>
            <attribute tooltip="[solid &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Setting solid true means draw only one side of polygons (backface culling on), setting solid false means draw both sides of polygons (backface culling off).&#10;Hint: mnemonic &quot;this geometry is solid like a brick&quot; (you don't render the inside of a brick).&#10;Warning: default value true can completely hide geometry if viewed from wrong side!&#10;Hint: if in doubt, use solid='false' for maximum visibility.&#10;Hint: (X3D version 4.0 draft) accessType relaxed to inputOutput in order to support animation and visualization." name="solid"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;geometry&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/Collision.gif" tooltip="[X3DGroupingNode,X3DSensorNode] Collision detects camera-to-object contact using current view and NavigationInfo avatarSize.&#10;Collision is a Grouping node that reports collision detection for its children.&#10;Hint: Collision can contain a single proxy child node for substitute collision-detection geometry. Improve run-time performance by using proxy with simpler contact-calculation geometry.&#10;Hint: proxy shapes are not rendered and remain invisible.&#10;Hint: apply containerField=&apos;proxy&apos; to uniquely identify the proxy child Shape or grouping node.&#10;Warning: PointSet, IndexedLineSet, LineSet and Text are not collidable geometry do not trigger collisions.&#10;Hint: NavigationInfo types &apos;&quot;WALK&quot; &quot;FLY&quot;&apos; support camera-to-object collision detection.&#10;Hint: content must be visible to be collidable and to be pickable.&#10;Hint: insert a Shape node before adding geometry or Appearance." name="Collision">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[children &inputOutputLabel; &MFNodeLabel;, empty list] [X3DChildNode]&#10;Grouping nodes contain an ordered list of children nodes.&#10;Hint: Each grouping node defines a coordinate space for its children, relative to the coordinate space of its parent node. Thus transformations accumulate down the scene graph hierarchy.&#10;Hint: inputOnly MFNode addChildren field can append new X3DChildNode nodes via a ROUTE connection, duplicate input nodes (i.e. matching DEF, USE values) are ignored.&#10;Hint: inputOnly MFNode removeChildren field can remove nodes from the children list, unrecognized input nodes (i.e. nonmatching DEF, USE values) are ignored.&#10;Hint: X3D Architecture 10.2.1 Grouping and children node types, https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#GroupingAndChildrenNodes" name="children"/>
            <attribute tooltip="[proxy &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DChildNode]&#10;The proxy node is used as a substitute for Collision children during collision detection, simplifying collision-intersection computations.&#10;Hint: The proxy node is used strictly for collision detection and is not drawn.&#10;Warning: the proxy node must have containerField=&apos;proxy&apos; or it is simply treated like other children nodes.&#10;Warning: insert a Shape node before adding geometry or Appearance." name="proxy"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="(X3D version 4.0 draft) [description &inputOutputLabel; &SFStringLabel; #IMPLIED]&#10;Author-provided prose that describes intended purpose of the node.&#10;Hint: many XML tools substitute XML character references for special characters automatically if needed within an attribute value (such as &amp;#38; for &#38; ampersand character, or &amp;#34; for &#34; quotation-mark character)." name="description"/>
            <attribute tooltip="[enabled &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Enables/disables collision detection for children and all descendants.&#10;Hint: former name &#34;collide&#34; in VRML97 specification." name="enabled"/>
            <attribute tooltip="[isActive &outputOnlyLabel; &SFBoolLabel; #FIXED &#34;&#34;]&#10;isActive true/false events are sent when triggering the sensor.&#10;isActive=true when view-object collision occurs, isActive=false when view-object collision no longer occurs.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="isActive"/>
            <attribute tooltip="[collideTime &outputOnlyLabel; &SFTimeLabel; #FIXED &#34;&#34;]&#10;Time of collision between camera (avatar) and geometry.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="collideTime"/>
            <attribute tooltip="[bboxCenter &initializeOnlyLabel; &SFVec3fLabel; &#34;0 0 0&#34;]&#10;Bounding box center accompanies bboxSize and provides an optional hint for bounding box position offset from origin of local coordinate system.&#10;Hint: precomputation and inclusion of bounding box information can speed up the initialization of large detailed models, with a corresponding cost of increased file size.&#10;Hint: X3D Architecture, 10.2.2 Bounding boxes https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#BoundingBoxes&#10;Hint:  X3D Architecture, 10.3.1 X3DBoundedObject https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#X3DBoundedObject" name="bboxCenter"/>
            <attribute tooltip="[bboxSize &initializeOnlyLabel; &SFVec3fLabel; &#34;-1 -1 -1&#34;] or [0,+&#8734;)&#10;Bounding box size is usually omitted, and can easily be calculated automatically by an X3D player at scene-loading time with minimal computational cost. Bounding box size can also be defined as an optional authoring hint that suggests an optimization or constraint.&#10;Hint: can be useful for collision computations or inverse-kinematics (IK) engines.&#10;Hint: precomputation and inclusion of bounding box information can speed up the initialization of large detailed models, with a corresponding cost of increased file size.&#10;Hint: X3D Architecture, 10.2.2 Bounding boxes https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#BoundingBoxes&#10;Hint:  X3D Architecture, 10.3.1 X3DBoundedObject https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#X3DBoundedObject" name="bboxSize"/>
            <attribute tooltip="(X3D version 4.0 draft) [bboxDisplay &inputOutputLabel; &SFBoolLabel; &#34;false&#34;]&#10;Whether to display bounding box for associated geometry, aligned with world coordinates.&#10;Hint: the bounding box is displayed regardless of whether contained content is visible." name="bboxDisplay"/>
            <attribute tooltip="(X3D version 4.0 draft) [visible &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Whether or not renderable content within this node is visually displayed.&#10;Hint: the visible field has no effect on animation behaviors, event passing or other non-visual characteristics.&#10;Hint: content must be visible to be collidable and to be pickable." name="visible"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/Color.gif" tooltip="[X3DColorNode] Color node defines a set of RGB color values that apply either to a sibling Coordinate|CoordinateDouble node, or else to a parent ElevationGrid node.&#10;Color is only used by ElevationGrid, IndexedFaceSet, IndexedLineSet, LineSet, PointSet, Triangle* and IndexedTriangle* nodes.&#10;Hint: colors are often controlled by Material instead.&#10;Hint: X3D Scene Authoring Hints, Color https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#Color" name="Color">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[color &inputOutputLabel; &MFColorLabel; #IMPLIED]&#10;The color field defines an array of 3-tuple RGB colors." name="color"/>
            <attribute tooltip="[containerField type (color|colorRamp) &#34;color&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/Color.gif" tooltip="[X3DColorNode] ColorRGBA node defines a set of RGBA color values that apply either to a sibling Coordinate|CoordinateDouble node, or else to a parent ElevationGrid node.&#10;ColorRGBA is only used by ElevationGrid, IndexedFaceSet, IndexedLineSet, LineSet, PointSet, Triangle* and IndexedTriangle* nodes.&#10;Hint: colors are often controlled by Material instead.&#10;Hint: alpha channel may be ignored under Interchange profile.&#10;Warning: ColorRGBA requires Rendering component level 3 (alpha fully supported), Rendering component level 1 (alpha optional), otherwise Full profile.&#10;Hint: X3D Scene Authoring Hints, Color https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#Color" name="ColorRGBA">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[color &inputOutputLabel; &MFColorRGBALabel; #IMPLIED] [0,1]&#10;The color field defines an array of 4-tuple RGBA colors. &#10;Warning: ColorRGBA requires Rendering component level 3 (alpha fully supported), Rendering component level 1 (alpha optional), otherwise Full profile." name="color"/>
            <attribute tooltip="[containerField type (color|colorRamp) &#34;color&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/ColorInterpolator.gif" tooltip="[X3DInterpolatorNode] ColorInterpolator generates a range of color values. Authors can ROUTE value_changed output events to various color fields of Material or Color nodes.&#10;Hint: typical input connection is ROUTE someTimeSensorDEF.fraction_changed TO thisInterpolatorDEF.set_fraction.&#10;Hint: typical output connection is ROUTE thisInterpolatorDEF.value_changed TO someDestinationNodeDEF.set_someAttribute.&#10;Hint: X3D Scene Authoring Hints, Color https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#Color&#10;Hint: example scenes and authoring assets at https://x3dgraphics.com/examples/X3dForWebAuthors/Chapter07EventAnimationInterpolation" name="ColorInterpolator">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[key &inputOutputLabel; &MFFloatLabel; #IMPLIED]&#10;Definition values for linear-interpolation function input intervals, listed in non-decreasing order and corresponding to a value in the keyValue array.&#10;Warning: number of keys must match number of keyValues!&#10;Warning: values in key array shall be monotonically non-decreasing, meaning that each value is greater than or equal to the preceding value.&#10;Hint: typical interval for values in key array is within range of 0 to 1, but larger intervals can be defined with arbitrary bounds." name="key"/>
            <attribute tooltip="[keyValue &inputOutputLabel; &MFColorLabel; #IMPLIED]&#10;Output values for linear interpolation, each corresponding to an input-fraction value in the key array.&#10;Hint: identical adjacent entries in keyValue array have the effect of defining constant-value step functions. https://en.wikipedia.org/wiki/Step_function &#10;Warning: number of keys must match number of keyValues!" name="keyValue"/>
            <attribute tooltip="[set_fraction &inputOnlyLabel; &SFFloatLabel; #FIXED &#34;&#34;]&#10;set_fraction selects input key for corresponding keyValue output.&#10;Hint: set_fraction values are typically in same range interval as values in the key array. Response to an input set_fraction value less than minimum is equivalent to minimum key, and response to an input set_fraction value greater than maximum is equivalent to maximum key.&#10;Warning: it is an error to define this transient inputOnly field in an X3D file, instead only use it a destination for ROUTE events." name="set_fraction"/>
            <attribute tooltip="[value_changed &outputOnlyLabel; &SFColorLabel; #FIXED &#34;&#34;]&#10;Linearly interpolated output value determined by current key time and corresponding keyValue pair.&#10;Hint: X3D players might not send unchanging intermediate values, thus avoiding excessive superfluous events that have no effect.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="value_changed"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/component.gif" tooltip="[X3D statement] Each added component statement indicates needed scene functionality above the given X3D profile.&#10;Hint: component statements are optional secondary children of head statement (add a head statement first).&#10;Hint: X3D XML Encoding https://www.web3d.org/documents/specifications/19776-1/V3.3/Part01/concepts.html#Header&#10;Warning: the COMPONENT statement is capitalized in the X3D Architecture specification and in the X3D ClassicVRML Encoding.&#10;Hint: X3D Architecture 7.2.5.4 COMPONENT statement https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#COMPONENTStatement" name="component">
            <attribute tooltip="[name type ENUMERATION #REQUIRED &componentNames;]&#10;Provides name of this component, as defined in corresponding X3D Specification component Introduction.&#10;Example: X3D Architecture 10.1.1 Name for Grouping component https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#Name&#10;Hint: all nodes, components and levels are already supported in Full profile.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="name"/>
            <attribute tooltip="[level &SFInt32Label; #REQUIRED &componentLevels;]&#10;Necessary level of support for this scene, as defined in corresponding Support table for a given node's component.&#10;Hint: for example specification definitions, X3D Architecture Grouping component, 10.5 Support levels https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#SupportLevels" name="level"/>
        </element>
        <element icon="icons/Cone.gif" tooltip="[X3DGeometryNode] Cone is a geometry node.&#10;Hint: cone https://en.wikipedia.org/wiki/Cone &#10;Hint: insert a Shape node before adding geometry or Appearance." name="Cone">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[height &initializeOnlyLabel; &SFFloatLabel; &#34;2&#34;] (0,+&#8734;)&#10;Size in meters.&#10;Warning: simple-geometry dimensions are initializeOnly and cannot be changed after initial creation, avoiding the need for potentially expensive tessellation at run time.&#10;Hint: for size animation, modify the scale of a parent/ancestor Transform node instead. " name="height"/>
            <attribute tooltip="[bottomRadius &initializeOnlyLabel; &SFFloatLabel; &#34;1&#34;] (0,+&#8734;)&#10;Size in meters.&#10;Warning: simple-geometry dimensions are initializeOnly and cannot be changed after initial creation, avoiding the need for potentially expensive tessellation at run time.&#10;Hint: for size animation, modify the scale of a parent/ancestor Transform node instead. " name="bottomRadius"/>
            <attribute tooltip="[side &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Whether to draw sides (other inside faces are not drawn)." name="side"/>
            <attribute tooltip="[bottom &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Whether to draw bottom (other inside faces are not drawn)." name="bottom"/>
            <attribute tooltip="[solid &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Setting solid true means draw only one side of polygons (backface culling on), setting solid false means draw both sides of polygons (backface culling off).&#10;Hint: mnemonic &quot;this geometry is solid like a brick&quot; (you don't render the inside of a brick).&#10;Warning: default value true can completely hide geometry if viewed from wrong side!&#10;Hint: if in doubt, use solid='false' for maximum visibility.&#10;Warning: solid false not supported in VRML97.&#10;Hint: (X3D version 4.0 draft) accessType relaxed to inputOutput in order to support animation and visualization." name="solid"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;geometry&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/Coordinate.gif" tooltip="[X3DCoordinateNode] Coordinate builds geometry by defining a set of 3D coordinate (triplet) point values.&#10;Coordinate is used by IndexedFaceSet, IndexedLineSet, LineSet, PointSet, Triangle* and IndexedTriangle* nodes.&#10;Coordinate is also used by HAnimHumanoid, HAnimSegment, and various Nurbs nodes." name="Coordinate">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[point &inputOutputLabel; &MFVec3fLabel; #IMPLIED]&#10;point contains a set of 3D coordinate (triplet) point values." name="point"/>
            <attribute tooltip="[containerField type NMTOKEN (coord|controlPoint|skinCoord|skinBindingCoords) &#34;coord&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/Coordinate.gif" tooltip="[X3DCoordinateNode] CoordinateDouble builds geometry by defining a set of 3D coordinate (triplet) point values.&#10;CoordinateDouble is used by IndexedFaceSet, IndexedLineSet, LineSet, PointSet, Triangle* and IndexedTriangle* nodes.&#10;CoordinateDouble is also used by NurbsPositionInterpolator and NurbsOrientationInterpolator.&#10;Warning: CoordinateDouble requires Rendering component level 1, otherwise Full profile." name="CoordinateDouble">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[point &inputOutputLabel; &MFVec3dLabel; #IMPLIED]&#10;point contains a set of 3D coordinate (triplet) point values." name="point"/>
            <attribute tooltip="[containerField type NMTOKEN (coord|controlPoint|skinCoord|skinBindingCoords) &#34;coord&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/CoordinateInterpolator.gif" tooltip="[X3DInterpolatorNode] CoordinateInterpolator linearly interpolates among a list of 3-tuple MFVec3f arrays, producing a single MFVec3f array that is fractional average between two nearest arrays in the list. Authors can ROUTE value_changed output events (an array of 3-tuple SFVec3f values) to a Coordinate node's point field, or to another MFVec3f field.&#10;Hint: typical input connection is ROUTE someTimeSensorDEF.fraction_changed TO thisInterpolatorDEF.set_fraction.&#10;Hint: typical output connection is ROUTE thisInterpolatorDEF.value_changed TO someDestinationNodeDEF.set_someAttribute.&#10;Hint: example scenes and authoring assets at https://x3dgraphics.com/examples/X3dForWebAuthors/Chapter07EventAnimationInterpolation" name="CoordinateInterpolator">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[key &inputOutputLabel; &MFFloatLabel; #IMPLIED]&#10;Definition values for linear-interpolation function input intervals, listed in non-decreasing order and corresponding to a value in the keyValue array.&#10;Hint: number of keyValues must be an integer multiple of the number of keys!&#10;Hint: keyValue/key integer multiple defines how many coordinates are sent in&#10;value_changed outputOnlys.&#10;Warning: values in key array shall be monotonically non-decreasing, meaning that each value is greater than or equal to the preceding value.&#10;Hint: typical interval for values in key array is within range of 0 to 1, but larger intervals can be defined with arbitrary bounds." name="key"/>
            <attribute tooltip="[keyValue &inputOutputLabel; &MFVec3fLabel; #IMPLIED]&#10;Output values for linear interpolation, each corresponding to an input-fraction value in the key array.&#10;Hint: identical adjacent entries in keyValue array have the effect of defining constant-value step functions. https://en.wikipedia.org/wiki/Step_function &#10;Hint: number of keyValues must be an integer multiple of the number of keys!&#10;Hint: keyValue/key integer multiple defines how many coordinates are sent in&#10;value_changed outputOnlys." name="keyValue"/>
            <attribute tooltip="[set_fraction &inputOnlyLabel; &SFFloatLabel; #FIXED &#34;&#34;]&#10;set_fraction selects input key for corresponding keyValue output.&#10;Hint: set_fraction values are typically in same range interval as values in the key array. Response to an input set_fraction value less than minimum is equivalent to minimum key, and response to an input set_fraction value greater than maximum is equivalent to maximum key.&#10;Warning: it is an error to define this transient inputOnly field in an X3D file, instead only use it a destination for ROUTE events." name="set_fraction"/>
            <attribute tooltip="[value_changed &outputOnlyLabel; &MFVec3fLabel; #FIXED &#34;&#34;]&#10;Linearly interpolated output value determined by current key time and corresponding keyValue pair.&#10;Hint: X3D players might not send unchanging intermediate values, thus avoiding excessive superfluous events that have no effect.&#10;Hint: keyValue/key integer multiple defines how many coordinates are sent in value_changed outputOnlys.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="value_changed"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/CoordinateInterpolator2D.gif" tooltip="[X3DInterpolatorNode] CoordinateInterpolator2D generates a series of SFVec2f or MFVec2f 2-tuple float values. Authors can ROUTE value_changed output events to a SFVec2f or MFVec2f attribute.&#10;Hint: typical input connection is ROUTE someTimeSensorDEF.fraction_changed TO thisInterpolatorDEF.set_fraction.&#10;Hint: typical output connection is ROUTE thisInterpolatorDEF.value_changed TO someDestinationNodeDEF.set_someAttribute.&#10;Warning: requires X3D profile='Full' or else include &lt;component name='Interpolation' level='3'/&gt;&#10;Hint: example scenes and authoring assets at https://x3dgraphics.com/examples/X3dForWebAuthors/Chapter07EventAnimationInterpolation" name="CoordinateInterpolator2D">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[key &inputOutputLabel; &MFFloatLabel; #IMPLIED]&#10;Definition values for linear-interpolation function input intervals, listed in non-decreasing order and corresponding to a value in the keyValue array.&#10;Hint: number of keyValues must be an integer multiple of the number of keys!&#10;Hint: keyValue/key integer multiple defines how many coordinates are sent in&#10;value_changed outputOnlys.&#10;Warning: values in key array shall be monotonically non-decreasing, meaning that each value is greater than or equal to the preceding value.&#10;Hint: typical interval for values in key array is within range of 0 to 1, but larger intervals can be defined with arbitrary bounds." name="key"/>
            <attribute tooltip="[keyValue &inputOutputLabel; &MFVec2fLabel; #IMPLIED]&#10;Output values for linear interpolation, each corresponding to an input-fraction value in the key array.&#10;Hint: identical adjacent entries in keyValue array have the effect of defining constant-value step functions. https://en.wikipedia.org/wiki/Step_function &#10;Hint: number of keyValues must be an integer multiple of the number of keys!&#10;Hint: keyValue/key integer multiple defines how many coordinates are sent in&#10;value_changed outputOnlys." name="keyValue"/>
            <attribute tooltip="[set_fraction &inputOnlyLabel; &SFFloatLabel; #FIXED &#34;&#34;]&#10;set_fraction selects input key for corresponding keyValue output.&#10;Hint: set_fraction values are typically in same range interval as values in the key array. Response to an input set_fraction value less than minimum is equivalent to minimum key, and response to an input set_fraction value greater than maximum is equivalent to maximum key.&#10;Warning: it is an error to define this transient inputOnly field in an X3D file, instead only use it a destination for ROUTE events." name="set_fraction"/>
            <attribute tooltip="[value_changed &outputOnlyLabel; &MFVec2fLabel; #FIXED &#34;&#34;]&#10;Linearly interpolated output value determined by current key time and corresponding keyValue pair.&#10;Hint: X3D players might not send unchanging intermediate values, thus avoiding excessive superfluous events that have no effect.&#10;Hint: keyValue/key integer multiple defines how many coordinates are sent in value_changed outputOnlys.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="value_changed"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/Cylinder.gif" tooltip="[X3DGeometryNode] Cylinder is a geometry node.&#10;Hint: Cylinder https://en.wikipedia.org/wiki/Cylinder&#10;Hint: insert a Shape node before adding geometry or Appearance." name="Cylinder">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[height &initializeOnlyLabel; &SFFloatLabel; &#34;2&#34;] (0,+&#8734;)&#10;Size in meters.&#10;Warning: simple-geometry dimensions are initializeOnly and cannot be changed after initial creation, avoiding the need for potentially expensive tessellation at run time.&#10;Hint: for size animation, modify the scale of a parent/ancestor Transform node instead. " name="height"/>
            <attribute tooltip="[radius &initializeOnlyLabel; &SFFloatLabel; &#34;1&#34;] (0,+&#8734;)&#10;Size in meters.&#10;Warning: simple-geometry dimensions are initializeOnly and cannot be changed after initial creation, avoiding the need for potentially expensive tessellation at run time.&#10;Hint: for size animation, modify the scale of a parent/ancestor Transform node instead. " name="radius"/>
            <attribute tooltip="[top &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Whether to draw top (inside faces are never drawn)." name="top"/>
            <attribute tooltip="[side &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Whether to draw sides (inside faces are never drawn)." name="side"/>
            <attribute tooltip="[bottom &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Whether to draw bottom (inside faces are never drawn)." name="bottom"/>
            <attribute tooltip="[solid &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Setting solid true means draw only one side of polygons (backface culling on), setting solid false means draw both sides of polygons (backface culling off).&#10;Hint: mnemonic &quot;this geometry is solid like a brick&quot; (you don't render the inside of a brick).&#10;Warning: default value true can completely hide geometry if viewed from wrong side!&#10;Hint: if in doubt, use solid='false' for maximum visibility.&#10;Warning: solid false not supported in VRML97.&#10;Hint: (X3D version 4.0 draft) accessType relaxed to inputOutput in order to support animation and visualization." name="solid"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;geometry&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/CylinderSensor.gif" tooltip="[X3DDragSensorNode] CylinderSensor converts pointer motion (for example, a mouse or wand) into rotation values&#10;using an invisible cylinder aligned with local Y-axis.&#10;Hint: this sensor detects user interactions affecting peer nodes and their child geometry.&#10;Hint: add semi-transparent surrounding geometry to see the effect of the sensor.&#10;Hint: initial relative bearing of pointer drag determines whether&#10;cylinder sides or end-cap disks are used for manipulation.&#10;Hint: X3D Architecture 20.2.1 Overview of pointing device sensors https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/pointingDeviceSensor.html#OverviewOfPointingDeviceSensors&#10;Hint: X3D Architecture 20.2.2 Drag sensors https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/pointingDeviceSensor.html#DragSensors&#10;Hint: X3D Architecture 20.2.3 Activating and manipulating pointing device sensors https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/pointingDeviceSensor.html#Activatingandmanipulating&#10;Hint: example scenes and authoring assets at https://x3dgraphics.com/examples/X3dForWebAuthors/Chapter08UserInteractivity" name="CylinderSensor">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[description &inputOutputLabel; &SFStringLabel; #IMPLIED]&#10;Author-provided prose that describes intended purpose of this node.&#10;Hint: include space characters since a description is not a DEF identifier. Write short phrases that make descriptions clear and readable.&#10;Hint: many XML tools substitute XML character references for special characters automatically if needed within an attribute value (such as &amp;#38; for &#38; ampersand character, or &amp;#34; for &#34; quotation-mark character)." name="description"/>
            <attribute tooltip="[enabled &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Enables/disables node operation." name="enabled"/>
            <attribute tooltip="[minAngle &inputOutputLabel; &SFFloatLabel; &#34;0&#34;]&#10;clamps rotation_changed events within range of min/max values&#10;Hint: if minAngle &gt; maxAngle, rotation is not clamped.&#10;Hint: radian units for angular measure https://en.wikipedia.org/wiki/Radian" name="minAngle"/>
            <attribute tooltip="[maxAngle &inputOutputLabel; &SFFloatLabel; &#34;0&#34;]&#10;clamps rotation_changed events within range of min/max values&#10;Hint: if minAngle &gt; maxAngle, rotation is not clamped.&#10;Hint: radian units for angular measure https://en.wikipedia.org/wiki/Radian" name="maxAngle"/>
            <attribute tooltip="[diskAngle &inputOutputLabel; &SFFloatLabel; &#34;0.262&#34; (15 degrees)]&#10;Help decide rotation behavior from initial relative bearing of pointer drag:&#10;acute angle whether cylinder sides or end-cap disks of virtual-geometry sensor&#10;are used for manipulation.&#10;Hint: diskAngle 0 forces disk-like behavior,&#10;diskAngle 1.570796 (90 degrees) forces cylinder-like behavior." name="diskAngle"/>
            <attribute tooltip="[autoOffset &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;determines whether previous offset values are remembered/accumulated." name="autoOffset"/>
            <attribute tooltip="[axisRotation &inputOutputLabel; &SFRotationLabel; &#34;0 1 0 0&#34;]&#10;axisRotation determines local sensor coordinate system by rotating the local coordinate system." name="axisRotation"/>
            <attribute tooltip="[offset &inputOutputLabel; &SFFloatLabel; &#34;0&#34;]&#10;Sends event and remembers last value sensed.&#10;Warning: ROUTE connecting rotation_changed to set_offset creates a self-reinforcing positive feedback loop and results in unmanageable response." name="offset"/>
            <attribute tooltip="[isActive &outputOnlyLabel; &SFBoolLabel; #FIXED &#34;&#34;]&#10;Select geometry by activating the pointing device (for example, clicking the mouse) to generate isActive events. Output event isActive=true is sent when geometry is selected (for example, when primary mouse button is pressed), output event isActive=false is sent when geometry is deselected (for example, when primary mouse button is released).&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="isActive"/>
            <attribute tooltip="[isOver &outputOnlyLabel; &SFBoolLabel; #FIXED &#34;&#34;]&#10;Hover over geometry by aiming the mouse (or pointing device) to generate isOver events. Sensor sends output event isOver=true event when pointing device moves over sensor's geometry, and later sends output event isOver=false event when pointing device moves off.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="isOver"/>
            <attribute tooltip="[rotation_changed &outputOnlyLabel; &SFRotationLabel; #FIXED &#34;&#34;]&#10;rotation_changed events equal sum of relative bearing changes plus offset value&#10;about Y-axis in local coordinate system.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="rotation_changed"/>
            <attribute tooltip="[trackPoint_changed &outputOnlyLabel; &SFVec3fLabel; #FIXED &#34;&#34;]&#10;trackPoint_changed events give intersection point of bearing with sensor's virtual geometry.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events.&#10;Warning: trackPoint_changed events represent unclamped intersection points on plane surface. Browsers can interpret drags off of the surface in various ways.  Note that translation_changed events are clamped by minPosition/maxPosition and thus may be preferable." name="trackPoint_changed"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/DirectionalLight.gif" tooltip="[X3DLightNode] DirectionalLight defines parallel light rays that illuminate geometric shapes.&#10;Lighting illuminates all geometry except lines and points.  By default, light scope only illuminates peer geometry and children nodes within the scene graph hierarchy.&#10;No source location is needed since rays are parallel from an infinitely distant source.&#10;DirectionalLight nodes do not attenuate with distance.&#10;Lights have no visible shape themselves and lighting effects continue through any intermediate geometry.&#10;Hint: animate direction to simulate time-of-day sunlight effects.&#10;Hint: the bound NavigationInfo controls whether headlight is enabled on/off. &#10;Interchange profile hint: light might not be scoped by parent Group or Transform." name="DirectionalLight">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[on &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Enables/disables this light source." name="on"/>
            <attribute tooltip="[color &inputOutputLabel; &SFColorLabel; &#34;1 1 1&#34;] [0,1]&#10;color of light, applied to colors of objects.&#10;Hint: X3D Scene Authoring Hints, Color https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#Color" name="color"/>
            <attribute tooltip="[direction &inputOutputLabel; &SFVec3fLabel; &#34;0 0 -1&#34;]&#10;Orientation vector of light relative to local coordinate system.&#10;Hint: animate direction to simulate time-of-day sunlight effects." name="direction"/>
            <attribute tooltip="(X3D version 3.1 or later) [global &inputOutputLabel; &SFBoolLabel; &#34;false&#34;]&#10;Global lights illuminate all objects within their volume of lighting influence.&#10;Scoped lights only illuminate objects within the same transformation hierarchy.&#10;Warning: DirectionalLight default global=false to limit scope and avoid inadvertently illuminating every object in a large scene. PointLight and SpotLight default global=true since their effects are each limited by maximum radius value." name="global"/>
            <attribute tooltip="[intensity &inputOutputLabel; &SFFloatLabel; &#34;1&#34;] [0,+&#8734;]&#10;Brightness of direct emission from the light." name="intensity"/>
            <attribute tooltip="[ambientIntensity &inputOutputLabel; &SFFloatLabel; &#34;0&#34;] [0,1]&#10;Brightness of ambient (nondirectional background) emission from the light.&#10;Interchange profile hint: this field may be ignored, applying the default value regardless." name="ambientIntensity"/>
            <attribute tooltip="(X3D version 4.0 draft) [shadowIntensity &inputOutputLabel; &SFFloatLabel; &#34;0&#34;] [0,1]&#10; shadowIntensity field defines how much light is obscured by shapes that cast shadows, ranging from 0 (light not obscured, no visible shadows) to 1 (light completely obscured, full-intensity shadows)." name="shadowIntensity"/>
            <attribute tooltip="(X3D version 4.0 draft) [shadows &inputOutputLabel; &SFBoolLabel; &#34;false&#34;]&#10;shadows field indicates whether or not this light casts a shadow behind illuminated X3DShapeNode geometry." name="shadows"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <!--
        <element icon="icons/PointLight.gif" tooltip="(X3D version 4.0 draft) [X3DLightNode] EnvironmentLight defines image-based lighting (IBL).&#10;Lights have no visible shape themselves and lighting effects continue through any intermediate geometry.&#10;Hint: the bound NavigationInfo controls whether headlight is enabled on/off. &#10;TODO add contained nodes.&#10;Hint: Wikipedia Cube mapping https://en.wikipedia.org/wiki/Cube_mapping" name="EnvironmentLight">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[diffuse &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DSingleTextureNode]&#10;When applying diffuseColor for this light node, the contained texture provides Physically Based Rendering (PBR) modulation for each pixel.&#10;Hint: if texture node is NULL or unspecified, no effect is applied to material values.&#10;Hint: contained texture node must include containerField=&apos;diffuse&apos;" name="diffuse"/>
            <attribute tooltip="[diffuseCoefficients &inputOutputLabel; &MFFloatLabel; #IMPLIED]&#10;diffuseCoefficients field provides a 3 x 9 array of float values that declares spherical harmonic coefficients for irradiance up to l=2, corresponding to glTF irradianceCoefficients field.&#10;Hint: the diffuseCoefficients field overrides the diffuseTexture field if both are provided." name="diffuseCoefficients"/>
            <attribute tooltip="[diffuseTexture &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DEnvironmentTextureNode]&#10;When applying diffuseColor for this light node, the contained texture provides Physically Based Rendering (PBR) modulation for each pixel.&#10;Hint: if texture node is NULL or unspecified, no effect is applied to material values.&#10;Hint: contained texture node must include containerField=&apos;diffuseTexture&apos;&#10;Hint: the diffuseCoefficients field overrides the diffuseTexture field if both are provided." name="diffuseTexture"/>
            <attribute tooltip="[specularTexture &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DEnvironmentTextureNode]&#10;When applying specularColor for this light node, the contained texture provides Physically Based Rendering (PBR) modulation for each pixel.&#10;Hint: if texture node is NULL or unspecified, no effect is applied to material values.&#10;Hint: contained texture node must include containerField=&apos;specularTexture&apos;" name="specularTexture"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[on &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Enables/disables this light source." name="on"/>
            <attribute tooltip="[ambientIntensity &inputOutputLabel; &SFFloatLabel; &#34;0&#34;] [0,1]&#10;Brightness of ambient (nondirectional background) emission from the light.&#10;Interchange profile hint: this field may be ignored, applying the default value regardless." name="ambientIntensity"/>
            <attribute tooltip="[color &inputOutputLabel; &SFColorLabel; &#34;1 1 1&#34;] [0,1]&#10;color of light, applied to colors of objects.&#10;Hint: X3D Scene Authoring Hints, Color https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#Color" name="color"/>
            <attribute tooltip="[global &inputOutputLabel; &SFBoolLabel; &#34;false&#34;]&#10;Global lights illuminate all objects within their volume of lighting influence.&#10;Scoped lights only illuminate objects within the same transformation hierarchy.&#10;Warning: DirectionalLight default global=false to limit scope and avoid inadvertently illuminating every object in a large scene. PointLight and SpotLight default global=true since their effects are each limited by maximum radius value." name="global"/>
            <attribute tooltip="[intensity &inputOutputLabel; &SFFloatLabel; &#34;1&#34;] [0,+&#8734;]&#10;Brightness of direct emission from the light." name="intensity"/>
            <attribute tooltip="[rotation &inputOutputLabel; &SFRotationLabel; &#34;0 0 1 0&#34;]&#10;Orientation (axis, angle in radians) of light rotation relative to local coordinate system.&#10;" name="rotation"/>
            <attribute tooltip="(X3D version 4.0 draft) [shadowIntensity &inputOutputLabel; &SFFloatLabel; &#34;0&#34;] [0,1]&#10; shadowIntensity field defines how much light is obscured by shapes that cast shadows, ranging from 0 (light not obscured, no visible shadows) to 1 (light completely obscured, full-intensity shadows)." name="shadowIntensity"/>
            <attribute tooltip="(X3D version 4.0 draft) [shadows &inputOutputLabel; &SFBoolLabel; &#34;false&#34;]&#10;shadows field indicates whether or not this light casts a shadow behind illuminated X3DShapeNode geometry." name="shadows"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        -->
        <element icon="icons/ElevationGrid.gif" tooltip="[X3DGeometryNode] ElevationGrid is a geometry node defining a rectangular height field, with default values for a 1m by 1m square at height 0.&#10;Vertices corresponding to ElevationGrid height values define quadrilaterals, which are placed above or below a flat surface.&#10;Hint: the height array defines (xDimension-1)*(zDimension-1) quadrilaterals.&#10;Warning: generated quadrilaterals can be nonplanar. Tessellation splits quadrilaterals into triangles along seam starting at initial vertex of the quadrilateral and proceeding to opposite vertex.&#10;Hint: positive direction for normal of each triangle is on same side of the quadrilateral. Triangles are defined either counterclockwise or clockwise depending on value of ccw field.&#10;Hint: ElevationGrid can contain Color|ColorRGBA, Normal and TextureCoordinate nodes.&#10;Hint: insert a Shape node before adding geometry or Appearance.&#10;Hint: for advanced extensibility, authors can substitute a type-matched ProtoInstance node (with correct containerField value) for contained node content." name="ElevationGrid">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[attrib &inputOutputLabel; &MFNodeLabel;, empty list] [X3DVertexAttributeNode]&#10;Single contained FloatVertexAttribute node that can specify list of per-vertex attribute information for programmable shaders.&#10;Hint: X3D Architecture 32.2.2.4 Per-vertex attributes, https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/shaders.html#Pervertexattributes" name="attrib"/>
            <attribute tooltip="[color &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DColorNode]&#10;Single contained Color or ColorRGBA node that can specify color values applied to corresponding vertices according to colorPerVertex field." name="color"/>
            <attribute tooltip="[fogCoord &inputOutputLabel; &SFNodeLabel;, NULL node] [FogCoordinate]&#10;Single contained FogCoordinate node that can specify depth parameters for fog in corresponding geometry." name="fogCoord"/>
            <attribute tooltip="[normal &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DNormalNode]&#10;Single contained Normal node that can specify perpendicular vectors for corresponding vertices to support rendering computations, applied according to the normalPerVertex field.&#10;Hint: useful for special effects. Normal vector computation by 3D graphics hardware is quite fast so adding normals to a scene is typically unnecessary.&#10;Warning: normal vectors increase file size, typically doubling geometry definitions." name="normal"/>
            <attribute tooltip="[texCoord &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DTextureCoordinateNode]&#10;Single contained TextureCoordinate, TextureCoordinateGenerator or MultiTextureCoordinate node that can specify coordinates for texture mapping onto corresponding geometry." name="texCoord"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[xDimension &initializeOnlyLabel; &SFInt32Label; &#34;2&#34;] (0,+&#8734;)&#10;Number of elements in the height array along X direction.&#10;Hint:  total horizontal x-axis distance equals (xDimension-1) * xSpacing.&#10;Warning: xDimension &lt; 2 means that ElevationGrid contains no quadrilaterals." name="xDimension"/>
            <attribute tooltip="[zDimension &initializeOnlyLabel; &SFInt32Label; &#34;2&#34;] (0,+&#8734;)&#10;Number of elements in the height array along Z direction.&#10;Hint:  total horizontal z-axis distance equals (zDimension-1) * zSpacing.&#10;Warning: zDimension &lt; 2 means that ElevationGrid contains no quadrilaterals." name="zDimension"/>
            <attribute tooltip="[xSpacing &initializeOnlyLabel; &SFFloatLabel; &#34;1.0&#34;] (0,+&#8734;)&#10;Meters distance between grid-array vertices along X direction.&#10;Hint: total horizontal x-axis distance equals (xDimension-1) * xSpacing." name="xSpacing"/>
            <attribute tooltip="[zSpacing &initializeOnlyLabel; &SFFloatLabel; &#34;1.0&#34;] (0,+&#8734;)&#10;Meters distance between grid-array vertices along Z direction.&#10;Hint: total lateral z-axis distance equals (zDimension-1) * zSpacing." name="zSpacing"/>
            <attribute tooltip="[height &initializeOnlyLabel; &MFFloatLabel; &#34;0 0 0 0&#34;]&#10;Grid array of height vertices with upward direction along +Y axis, with xDimension rows and zDimension columns.&#10;Hint: height array values are given in row-major order from left to right along X
axis, then back to front along Z axis.&#10;Warning: height array values are not retained or available at run time since a browser is permitted to condense geometry." name="height"/>
            <attribute tooltip="[set_height &inputOnlyLabel; &MFFloatLabel; #FIXED &#34;&#34;]&#10;Grid array of height vertices with upward direction along +Y axis, with xDimension rows and zDimension columns.&#10;Hint: height array values are given in row-major order from left to right along X
axis, then back to front along Z axis.&#10;Warning: it is an error to define this transient inputOnly field in an X3D file, instead only use it a destination for ROUTE events." name="set_height"/>
            <attribute tooltip="[ccw &initializeOnlyLabel; &SFBoolLabel; &#34;true&#34;]&#10; ccw defines clockwise/counterclockwise ordering of vertex coordinates, which in turn defines front/back orientation of polygon normals according to Right-Hand Rule (RHR).&#10;Hint: a good debugging technique for problematic polygons is to try changing the value of ccw, which can reverse solid effects (single-sided backface culling) and normal-vector direction.&#10;Warning: consistent and correct ordering of left-handed or right-handed point sequences is important throughout the coord array of point values.&#10;Hint: clockwise https://en.wikipedia.org/wiki/Clockwise" name="ccw"/>
            <attribute tooltip="[creaseAngle &initializeOnlyLabel; &SFFloatLabel; &#34;0&#34;] [0,+&#8734;)&#10;creaseAngle defines angle (in radians) for determining whether adjacent polygons&#10;are drawn with sharp edges or smooth shading.&#10;If angle between normals of two adjacent polygons is less than creaseAngle,&#10;smooth shading is rendered across the shared line segment.&#10;Hint: creaseAngle=0 means render all edges sharply,&#10;  creaseAngle=3.14159 means render all edges smoothly.&#10;Hint: radian units for angular measure https://en.wikipedia.org/wiki/Radian" name="creaseAngle"/>
            <attribute tooltip="[solid &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Setting solid true means draw only one side of polygons (backface culling on), setting solid false means draw both sides of polygons (backface culling off).&#10;Hint: mnemonic &quot;this geometry is solid like a brick&quot; (you don't render the inside of a brick).&#10;Warning: default value true can completely hide geometry if viewed from wrong side!&#10;Hint: if in doubt, use solid='false' for maximum visibility.&#10;Hint: (X3D version 4.0 draft) accessType relaxed to inputOutput in order to support animation and visualization." name="solid"/>
            <attribute tooltip="[colorPerVertex &initializeOnlyLabel; &SFBoolLabel; &#34;true&#34;]&#10;Whether Color node color values are applied to each point vertex (true) or per quadrilateral (false).&#10;Hint: X3D Scene Authoring Hints, Color https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#Color" name="colorPerVertex"/>
            <attribute tooltip="[normalPerVertex &initializeOnlyLabel; &SFBoolLabel; &#34;true&#34;]&#10;Whether Normal node vector values are applied to each point vertex (true) or per quadrilateral (false).&#10;Hint: if no child Normal node is provided, the X3D browser shall automatically generate normals, using creaseAngle to determine smoothed shading across shared vertices." name="normalPerVertex"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;geometry&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/IS.gif" tooltip="[X3D statement] EXPORT exposes a local node for ROUTE passing of event values when the current Scene is included via Inline by a parent external world. These connections allow event values to be exchanged via ROUTE statements between a parent model and a child Inline model.&#10;Hint: you can place EXPORT statements after Scene tag to show interfaces at top.&#10;Hint: see IMPORT statement for corresponding functionality in the parent external world.&#10;Warning: EXPORT statements are not allowed in prototype declarations.&#10;Warning:  corresponding parent-scene IMPORT and child Inline-scene EXPORT statements are necessary in order to ROUTE values between a parent model and a child Inline model.&#10;Hint: X3D Architecture 4.4.6 Import/Export semantics https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/concepts.html#ImportExportsemantics" name="EXPORT">
            <attribute tooltip="[localDEF type IDREF #REQUIRED]&#10;localDEF is the DEF name of the local node to be EXPORTed." name="localDEF"/>
            <attribute tooltip="[AS NMTOKEN #IMPLIED]&#10;rename localDEF node AS a different name when exporting.&#10;Hint: optional, default is to use same localDEF name." name="AS"/>
        </element>
        <element icon="icons/IS.gif" tooltip="[X3D statement] IMPORT provides ROUTE access to a node that has a corresponding EXPORT statement within an Inline scene. These connections allow event values to be passed via ROUTE statements between a parent model and a child Inline model.&#10;Hint: it is good practice to place IMPORT statements next to corresponding Inline scenes for readability.&#10;Hint: see EXPORT statement for corresponding functionality within the related Inline model.&#10;Warning:  corresponding parent-scene IMPORT and child Inline-scene EXPORT statements are necessary in order to ROUTE values between a parent model and a child Inline model.&#10;Hint: X3D Architecture 4.4.6 Import/Export semantics https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/concepts.html#ImportExportsemantics" name="IMPORT">
            <attribute tooltip="[inlineDEF type IDREF #REQUIRED]&#10;inlineDEF is the DEF name of Inline node in the same scene as this IMPORT statement.&#10;Warning: the inlineDEF Inline scene must similarly include a corresponding EXPORT statement." name="inlineDEF"/>
            <attribute tooltip="[importedDEF type NMTOKEN #REQUIRED]&#10;importedDEF is DEF name of the node of interest that is contained in the remote inlineDEF scene.&#10;Hint: required." name="importedDEF"/>
            <attribute tooltip="[AS type ID #IMPLIED]&#10;map importedDEF name AS a new name in current scene.&#10;Hint: optional, default export is importedDEF node name." name="AS"/>
        </element>
        <element icon="icons/ExternProtoDeclare.gif" tooltip="[X3D statement] ExternProtoDeclare refers to a ProtoDeclare node declaration provided in another file.&#10;ExternProtoDeclare interfaces are defined by &lt;field&gt;  statements (without IS/connect statements).&#10;Hint: ExternProtoDeclare is a definition only, add corresponding ProtoInstance nodes to create new instances.&#10;Hint: ExternProtoDeclare url is of the form&#10;https://www.web3d.org/x3d/someWorld.x3d#ProtoName&#10;Hint: X3D Scene Authoring Hints, Inlines and Prototypes https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#InlinesPrototypes&#10;Warning: do not include a &lt;ProtoInterface&gt; element.&#10;Warning: setting a value is not allowed for ExternProtoDeclare field declarations, since original ProtoDeclare initializations or local ProtoInstance fieldValue initializations take precedence.&#10;Hint: X3D Architecture 7.2.5.9 EXTERNPROTO statement https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#EXTERNPROTOStatement&#10;Hint: X3D Architecture 4.4.4 Prototype semantics, https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/concepts.html#PROTOdefinitionsemantics&#10;Examples: X3D Example Archives, X3D for Web Authors, Chapter 14 Prototypes https://x3dgraphics.com/examples/X3dForWebAuthors/Chapter14Prototypes" name="ExternProtoDeclare">
            <attribute tooltip="[X3D statement #field] Include a field statement for each field declaration in the corresponding original ProtoDeclare.&#10;Warning: do not include initialization values in these field declarations since the original ProtoDeclare takes precedence." name="field"/>
            <attribute tooltip="[name type NMTOKEN #REQUIRED]&#10;name of the ExternProtoDeclare (External Prototype Declaration) being referenced.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="name"/>
            <attribute tooltip="[url &initializeOnlyLabel; &MFStringLabel; #IMPLIED]&#10;Location and filename of ProtoDeclare source declaration of interest.&#10;Multiple locations are more reliable, and including a Web address lets e-mail attachments work.&#10;Hint: MFString arrays can have multiple values, so separate each individual string by quote marks &quot;https://www.web3d.org&quot; &quot;https://www.web3d.org/about&quot; &quot;etc.&quot;&#10;Hint: alternative XML encoding for quotation mark &quot; is &#38;quot; (which is an example of a character entity).&#10;Warning: strictly match directory and filename capitalization for http links! This is important for portability. Some operating systems are forgiving of capitalization mismatches, but http/https url addresses and paths in Unix-based operating systems are all case sensitive and intolerant of uppercase/lowercase mismatches.&#10;Hint: can replace embedded blank(s) in url queries with %20 for each blank character.&#10;Hint: X3D Scene Authoring Hints, urls https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#urls" name="url"/>
            <attribute tooltip="[appinfo &SFStringLabel; #IMPLIED]&#10;Application information to provide simple description usable as a tooltip,&#10;similar to XML Schema appinfo tag." name="appinfo"/>
            <attribute tooltip="[documentation &SFStringLabel; #IMPLIED]&#10;Documentation url for further information,&#10;similar to XML Schema documentation tag." name="documentation"/>
        </element>
        <element icon="icons/Extrusion.gif" tooltip="[X3DGeometryNode] Extrusion is a geometry node that sequentially stretches a 2D cross section along a 3D-spine path in the local coordinate system, creating an outer hull.&#10;Scaling and rotating the crossSection 2D outline at each control point can modify the outer hull of the Extrusion to produce a wide variety of interesting shapes.&#10;Warning: take care to avoid defining parameter combinations that create self-intersecting, impossible or inverted geometry.&#10;Hint: Extrusion https://en.wikipedia.org/wiki/Extrusion&#10;Hint: insert a Shape node before adding geometry or Appearance." name="Extrusion">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <!-- Original source for extrusion model icon viewed from VRML 2.0 Sourcebook,
            by Andrea L. Ames, David R. Nadeau and John L. Moreland, Figure 15.15,
            Addison Wesley http://cseng.aw.com -->
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[spine &initializeOnlyLabel; &MFVec3fLabel; &#34;0 0 0, 0 1 0&#34;]&#10;The spine array defines a center-line sequence of 3D points that define a piecewise-linear curve forming a series of connected vertices. The spine is set of points along which a 2D crossSection is extruded, scaled and oriented.&#10;Hint: the spine array can be open or closed (closed means that endpoints are coincident).&#10;Hint: number of values must all match for 3-tuple spine points, 2-tuple scale values, and 4-tuple orientation values.&#10;Warning: special care is needed if creating loops or spirals since self-intersecting, impossible or inverted geometry can result!&#10;Warning: ensure that spine segments have non-zero length and are not coincident with each other.&#10;Hint: if a spine is closed (or nearly closed) then the inner diameter usually needs to be greater than the corresponding crossSection width." name="spine"/>
            <attribute tooltip="[crossSection &initializeOnlyLabel; &MFVec2fLabel; &#34;1 1, 1 -1, -1 -1, -1 1, 1 1&#34;]&#10;The crossSection array defines a silhouette outline of the outer Extrusion surface. crossSection is an ordered set of 2D points that draw a piecewise-linear curve which is extruded to form a series of connected vertices.&#10;Hint: the crossSection array can be open or closed (closed means that endpoints are coincident).&#10;Hint: number of values must all match for 3-tuple spine points, 2-tuple scale values, and 4-tuple orientation values.&#10;Warning: if the order of crossSection point definition does not match clockwise/counterclockwise setting of ccw field, then self-intersecting, impossible or inverted geometry can result!&#10;Warning: avoid self-intersecting polygon line segments, otherwise defined geometry is irregular and rendering results are undefined (especially for end caps)." name="crossSection"/>
            <attribute tooltip="[scale &initializeOnlyLabel; &MFVec2fLabel; &#34;1 1&#34;] (0,+&#8734;)&#10;scale is a list of 2D-scale parameters applied at each spine-aligned cross-section plane.&#10;Hint: number of values must all match for 3-tuple spine points, 2-tuple scale values, and 4-tuple orientation values.&#10;Hint: if the scale array contains one value, it is applied at all spine-aligned crossSection planes.&#10;Warning: zero or negative scale values not allowed." name="scale"/>
            <attribute tooltip="[orientation &initializeOnlyLabel; &MFRotationLabel; &#34;0 0 1 0&#34;]&#10;The orientation array is a list of axis-angle 4-tuple values applied at each spine-aligned cross-section plane.&#10;Hint: if the orientation array contains a single 4-tuple value, it is applied at all spine-aligned crossSection planes.&#10;Hint: number of values must all match for 3-tuple spine points, 2-tuple scale values, and 4-tuple orientation values." name="orientation"/>
            <attribute tooltip="[beginCap &initializeOnlyLabel; &SFBoolLabel; &#34;true&#34;]&#10;Whether beginning cap is drawn (similar to Cylinder top cap).&#10;Warning: since this field has accessType initializeOnly, the value cannot be changed after initial creation." name="beginCap"/>
            <attribute tooltip="[endCap &initializeOnlyLabel; &SFBoolLabel; &#34;true&#34;]&#10;Whether end cap is drawn (similar to Cylinder bottom cap).&#10;Warning: since this field has accessType initializeOnly, the value cannot be changed after initial creation." name="endCap"/>
            <attribute tooltip="[ccw &initializeOnlyLabel; &SFBoolLabel; &#34;true&#34;]&#10;The ccw field indicates counterclockwise ordering of vertex-coordinates orientation.&#10;Hint: a good debugging technique for problematic polygons is to try changing the value of ccw, which can reverse solid effects (single-sided backface culling) and normal-vector direction.&#10;Warning: consistent and correct ordering of left-handed or right-handed point sequences is important throughout the coord array of point values.&#10;Hint: clockwise https://en.wikipedia.org/wiki/Clockwise" name="ccw"/>
            <attribute tooltip="[convex &initializeOnlyLabel; &SFBoolLabel; &#34;true&#34;]&#10;The convex field is a hint to renderers whether all polygons in a shape are convex (true), or possibly concave (false).&#10;A convex polygon is planar, does not intersect itself, and has all interior angles &lt; 180 degrees.&#10;Hint: concave is the opposite of convex.&#10;Warning: concave or inverted geometry may be invisible when using default value convex=true, since some renderers use more-efficient algorithms to perform tessellation that may inadvertently fail on concave geometry.&#10;Hint: select convex=false (i.e. concave) and solid=false (i.e. two-sided display) for greatest visibility of geometry.&#10;Hint: convex polygon https://en.wikipedia.org/wiki/Convex_polygon&#10;Hint: tessellation https://en.wikipedia.org/wiki/Tessellation" name="convex"/>
            <attribute tooltip="[creaseAngle &initializeOnlyLabel; &SFFloatLabel; &#34;0.0&#34;] [0,+&#8734;)&#10;creaseAngle defines angle (in radians) where adjacent polygons are drawn with sharp edges or smooth shading.&#10;If angle between normals of two adjacent polygons is less than creaseAngle,&#10;smooth shading is rendered across the shared line segment.&#10;Hint: creaseAngle=0 means render all edges sharply,&#10;  creaseAngle=3.14159 means render all edges smoothly.&#10;Hint: radian units for angular measure https://en.wikipedia.org/wiki/Radian" name="creaseAngle"/>
            <attribute tooltip="[solid &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Setting solid true means draw only one side of polygons (backface culling on), setting solid false means draw both sides of polygons (backface culling off).&#10;Hint: mnemonic &quot;this geometry is solid like a brick&quot; (you don't render the inside of a brick).&#10;Warning: default value true can completely hide geometry if viewed from wrong side!&#10;Hint: if in doubt, use solid='false' for maximum visibility.&#10;Hint: (X3D version 4.0 draft) accessType relaxed to inputOutput in order to support animation and visualization." name="solid"/>
            <attribute tooltip="[set_crossSection &inputOnlyLabel; &MFVec2fLabel; #FIXED &#34;&#34;]&#10;The crossSection array defines a silhouette outline of the outer Extrusion surface. crossSection is an ordered set of 2D points that draw a piecewise-linear curve which is extruded to form a series of connected vertices.&#10;Warning: if the order of crossSection point definition does not match clockwise/counterclockwise setting of ccw field, then self-intersecting, impossible or inverted geometry can result!&#10;Warning: it is an error to define this transient inputOnly field in an X3D file, instead only use it a destination for ROUTE events." name="set_crossSection"/>
            <attribute tooltip="[set_orientation &inputOnlyLabel; &MFRotationLabel; #FIXED &#34;&#34;]&#10;The orientation array is a list of axis-angle 4-tuple values applied at each spine-aligned cross-section plane.&#10;Hint: if the orientation array contains a single 4-tuple value, it is applied at all spine-aligned crossSection planes.&#10;Hint: number of values must all match for 3-tuple spine points, 2-tuple scale values, and 4-tuple orientation values.&#10;Warning: it is an error to define this transient inputOnly field in an X3D file, instead only use it a destination for ROUTE events." name="set_orientation"/>
            <attribute tooltip="[set_scale &inputOnlyLabel; &MFVec2fLabel; #FIXED &#34;&#34;] (0,+&#8734;)&#10;scale is a list of 2D-scale parameters applied at each spine-aligned cross-section plane.&#10;Hint: number of values must all match for 3-tuple spine points, 2-tuple scale values, and 4-tuple orientation values.&#10;Warning: zero or negative scale values not allowed.&#10;Warning: it is an error to define this transient inputOnly field in an X3D file, instead only use it a destination for ROUTE events." name="set_scale"/>
            <attribute tooltip="[set_spine &inputOnlyLabel; &MFVec3fLabel; #FIXED &#34;&#34;]&#10;The spine array defines a center-line sequence of 3D points that define a piecewise-linear curve forming a series of connected vertices. The spine is set of points along which a 2D crossSection is extruded, scaled and oriented.&#10;Hint: the spine array can be open or closed (closed means that endpoints are coincident).&#10;Hint: number of values must all match for 3-tuple spine points, 2-tuple scale values, and 4-tuple orientation values.&#10;Warning: special care is needed if creating loops or spirals since self-intersecting, impossible or inverted geometry can result!&#10;Warning: it is an error to define this transient inputOnly field in an X3D file, instead only use it a destination for ROUTE events." name="set_spine"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;geometry&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/field.gif" tooltip="[X3D statement] A field statement defines an interface attribute or node.&#10;Hint: first add a parent Script node or ProtoDeclare/ProtoInterface statements before defining a new field.&#10;Hint: in addition to defining a simple-type value attribute, a field statement can alternatively hold initializing SFNode/MFNode values as contained node(s)." name="field">
            <attribute tooltip="[name type NMTOKEN #REQUIRED]&#10;Name of this field declaration.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="name"/>
            <attribute tooltip="[accessType type NMTOKEN (inputOnly|outputOnly|initializeOnly|inputOutput) #REQUIRED]&#10;Event-model semantics for field set/get capabilities.&#10;Hint: renamed accessType correspondences for X3D from VRML97 are inputOnly=eventIn,&#10;outputOnly=eventOut,&#10;initializeOnly=field,&#10;inputOutput=exposedField.&#10;Warning: inputOutput=exposedField not allowed in VRML97 Script nodes,&#10;use initializeOnly=field for backwards compatibility.&#10;Hint: an accessType value is required and must be provided.&#10;Hint: X3D Architecture 4.4.2.2 Field semantics, https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/concepts.html#FieldSemantics&#10;Hint: X3D XML Encoding 4.3.7 Prototype and field declaration syntax, https://www.web3d.org/documents/specifications/19776-1/V3.3/Part01/concepts.html#PrototypeAndFieldDeclarationSyntax" name="accessType"/>
            <attribute tooltip="[type NMTOKEN &X3dFieldTypesLabel; #REQUIRED]&#10;Base type of this field variable.&#10;Hint: a type value is required and must be provided." name="type"/>
            <attribute tooltip="[value type CDATA #IMPLIED]&#10;Provide default initialization value for this field variable (which may be re-initialized later by instantiation value of a named ProtoInstance fieldValue).&#10;Hint: SFNode/MFNode fields are initialized using contained node content, instead of this value attribute.&#10;Warning: do not include a value attribute when providing child node(s) for type SFNode/MFNode.&#10;Hint: value is required for Script and ProtoDeclare unless MF-type array initialization is empty list, SFString initialization is empty string, or SFNode is being initialized.&#10;Hint: SFNode/MFNode fields are initialized by contained node element(s), if any.&#10;Warning: setting a value is not allowed for ExternProtoDeclare field declarations, since original ProtoDeclare initializations or local ProtoInstance fieldValue initializations take precedence.&#10;Warning: not allowed for field variables with accessType inputOnly or outputOnly.&#10;Warning: initialization value is not allowed if this field is part of a Script interface and has a corresponding IS/connect definition." name="value"/>
            <attribute tooltip="[children &inputOutputLabel; &MFNodeLabel;, empty list] [X3DNode]&#10;If this field definition has type SFNode or MFNode, then initialization node (or nodes) of any appropriate type may be provided as children of the field definition.&#10;Warning: do not include a value attribute when providing such child node(s).&#10;Hint: X3D Architecture, Concepts, 4.4.2 Object model, https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/concepts.html#Objectmodel&#10;Hint: X3D Architecture, Concepts, 4.4.4 Prototype semantics, https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/concepts.html#PrototypeSemantics&#10;Hint: X3D Architecture, Scripting component, 29.4.1 Script https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/scripting.html#Script" name="children"/>
            <attribute tooltip="[appinfo &SFStringLabel; #IMPLIED]&#10;Application information to provide simple description usable as a tooltip,&#10;similar to XML Schema appinfo tag." name="appinfo"/>
            <attribute tooltip="[documentation &SFStringLabel; #IMPLIED]&#10;Documentation url for further information,&#10;similar to XML Schema documentation tag." name="documentation"/>
        </element>
        <element icon="icons/fieldValue.gif" tooltip="[X3D statement] A fieldValue statement re-initializes the default value of a field in a parent ProtoInstance.&#10;Note that a field statement with a matching name must be already defined by the corresponding ProtoDeclare or ExternProtoDeclare statement.&#10;Hint: first add a parent ProtoInstance node before defining a new fieldValue.&#10;Warning: fieldValue content type must match the content type defined in the corresponding ProtoDeclare or ExternProtoDeclare field statement.&#10;Hint: in addition to defining a simple-type value attribute, a fieldValue statement can alternatively hold initializing SFNode/MFNode values as contained node(s)." name="fieldValue">
            <attribute tooltip="[name type NMTOKEN #REQUIRED]&#10;Name of the ProtoInstance field being re-initialized (corresponding to field name already defined in ProtoDeclare or ExternProtoDeclare).&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="name"/>
            <attribute tooltip="[value type CDATA #IMPLIED]&#10;Initial value for this field, which overrides default initialization value defined in original ProtoDeclare field.&#10;Hint: initialize SFNode/MFNode field value using contained content element(s), instead of a simple attribute value.&#10;Warning: do not include a value attribute when providing child node(s) for type SFNode/MFNode." name="value"/>
            <attribute tooltip="[children &inputOutputLabel; &MFNodeLabel;, empty list] [X3DNode]&#10;If this field definition has type SFNode or MFNode, then initialization node (or nodes) of any appropriate type may be provided as children of the field definition.&#10;Warning: do not include a value attribute when providing such child node(s).&#10;Hint: X3D Architecture, Concepts, 4.4.2 Object model, https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/concepts.html#Objectmodel&#10;Hint: X3D Architecture, Concepts, 4.4.4 Prototype semantics, https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/concepts.html#PrototypeSemantics" name="children"/>
        </element>
        <element icon="icons/Color.gif" tooltip="[X3DAppearanceChildNode] FillProperties indicates whether appearance is filled or hatched for associated geometry nodes inside the same Shape. Hatches are applied on top of the already rendered appearance of the node, and are not affected by lighting.&#10;Hint: DEF/USE copies of a single node can provide a similar &quot;look + feel&quot; style for related shapes in a scene.&#10;Warning: requires X3D profile='Full' or else include &lt;component name='Shape' level='3'/&gt;" name="FillProperties">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[filled &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Whether or not associated geometry is filled." name="filled"/>
            <attribute tooltip="[hatched &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Whether or not associated geometry is hatched." name="hatched"/>
            <attribute tooltip="[hatchStyle &inputOutputLabel; &SFInt32Label; &#34;1&#34;]&#10;hatchStyle selects a hatch pattern from ISO/IEC 9973 International Register of Graphical Items.&#10;1=Horizontal equally spaced parallel lines.&#10;2=Vertical equally spaced parallel lines.&#10;3=Positive slope equally spaced parallel lines.&#10;4=Negative slope equally spaced parallel lines.&#10;5=Horizontal/vertical crosshatch.&#10;6=Positive slope/negative slope crosshatch.&#10;7=(cast iron or malleable iron and general use for all materials).&#10;8=(steel).&#10;9=(bronze, brass, copper, and compositions).&#10;10=(white metal, zinc, lead, babbit, and alloys).&#10;11=(magnesium, aluminum, and aluminum alloys).&#10;12=(rubber, plastic, and electrical insulation).&#10;13=(cork, felt, fabric, leather, and fibre).&#10;14=(thermal insulation).&#10;15=(titanium and refi-actory material).&#10;16=(marble, slate, porcelain, glass, etc.).&#10;17=(earth).&#10;18=(sand).&#10;19=(repeating dot).&#10;Hint: detailed descriptions of hatchstyle values are found at the ISO/IEC 9973 International Register of Graphical Items https://www.iso.org/jtc1/sc24/register at https://isotc.iso.org/livelink/livelink/fetch/-8916524/8916549/8916590/6208440/class_pages/hatchstyle.html" name="hatchStyle"/>
            <attribute tooltip="[hatchColor &inputOutputLabel; &SFColorLabel; &#34;1 1 1&#34;] [0,1]&#10;Color of the hatch pattern." name="hatchColor"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;fillProperties&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/Fog.gif" tooltip="[X3DBindableNode,X3DFogObject] Fog simulates atmospheric effects by blending distant objects with fog color.&#10;Hint: Background, Fog, GeoViewpoint, NavigationInfo, OrthoViewpoint, TextureBackground and Viewpoint are bindable nodes, meaning that no more than one of each node type can be active at a given time.&#10;Warning: results are undefined if a bindable node (Background, Fog, NavigationInfo, OrthoViewpoint, TextureBackground, Viewpoint) is a contained descendant node of either LOD or Switch. Avoid this authoring pattern." name="Fog">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[color &inputOutputLabel; &SFColorLabel; &#34;1 1 1&#34;] [0,1]&#10;Fog color.&#10;Hint: match Background color to make objects fade away.&#10;Hint: X3D Scene Authoring Hints, Color https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#Color" name="color"/>
            <attribute tooltip="[fogType &inputOutputLabel; &SFStringLabel; (LINEAR|EXPONENTIAL) LINEAR]&#10;Specifies algorithm for rate of increasing Fog, either LINEAR or EXPONENTIAL.&#10;Hint: EXPONENTIAL is more natural but also more computationally expensive.&#10;Warning: do not wrap extra quotation marks  around these SFString enumeration values, since &#34;quotation&#34; &#34;marks&#34; are only used for MFString values." name="fogType"/>
            <attribute tooltip="[visibilityRange &inputOutputLabel; &SFFloatLabel; &#34;0.0&#34;]&#10;Distance in meters where objects are totally obscured by the fog, using local coordinate system.&#10;Hint: visibilityRange 0 disables Fog." name="visibilityRange"/>
            <attribute tooltip="[set_bind &inputOnlyLabel; &SFBoolLabel; #FIXED &#34;&#34;]&#10;Receiving event set_bind=true activates and binds this node at the top of the binding stack. Receiving event set_bind=false deactivates and unbinds this node from the top of the binding stack. Thus setting set_bind to true/false will enable/disable the effect of this node.&#10;Hint: paired node operations can be established by connecting set_bind and isBound fields of corresponding bindable nodes.&#10;Warning: it is an error to define this transient inputOnly field in an X3D file, instead only use it a destination for ROUTE events." name="set_bind"/>
            <attribute tooltip="[isBound &outputOnlyLabel; &SFBoolLabel; #FIXED &#34;&#34;]&#10;Output event true gets sent when node becomes bound and activated, otherwise output event false gets sent when node becomes unbound and deactivated.&#10;Hint: paired node operations can be established by connecting set_bind and isBound fields of corresponding bindable nodes.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="isBound"/>
            <attribute tooltip="[bindTime &outputOnlyLabel; &SFTimeLabel; #FIXED &#34;&#34;]&#10;Event sent reporting timestamp when node becomes active/inactive.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="bindTime"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/Fog.gif" tooltip="[X3DChildNode,X3DFogObject] LocalFog simulates atmospheric effects by blending distant objects with fog color. LocalFog effects occur around the local transformation center, rather than bound to the viewer.&#10;The nearest LocalFog node within range takes precedence over other LocalFog and Fog nodes.&#10;Hint: LocalFog effects are based on its position in the world, as given by current transformation hierarchy.&#10;Hint: LocalFog effects remain independent of current view location.&#10;Warning: LocalFog only affects geometry within the same scene subgraph.&#10;Warning: LocalFog is not a bindable node." name="LocalFog">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[enabled &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Enables/disables node operation." name="enabled"/>
            <attribute tooltip="[color &inputOutputLabel; &SFColorLabel; &#34;1 1 1&#34;] [0,1]&#10;Fog color.&#10;Hint: match Background color to make objects fade away.&#10;Hint: X3D Scene Authoring Hints, Color https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#Color" name="color"/>
            <attribute tooltip="[fogType &inputOutputLabel; &SFStringLabel; (LINEAR|EXPONENTIAL) LINEAR]&#10;Specifies algorithm for rate of increasing Fog, either LINEAR or EXPONENTIAL.&#10;Hint: EXPONENTIAL is more natural but also more computationally expensive.&#10;Warning: do not wrap extra quotation marks  around these SFString enumeration values, since &#34;quotation&#34; &#34;marks&#34; are only used for MFString values." name="fogType"/>
            <attribute tooltip="[visibilityRange &inputOutputLabel; &SFFloatLabel; &#34;0.0&#34;]&#10;Distance in meters where objects are totally obscured by the fog, using local coordinate system.&#10;Hint: visibilityRange 0 disables Fog." name="visibilityRange"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/Coordinate.gif" tooltip="(X3D version 3.1 or later) [X3DGeometricPropertyNode] FogCoordinate defines a set of explicit fog depths on a per-vertex basis, overriding Fog visibilityRange." name="FogCoordinate">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[depth &inputOutputLabel; &MFVec3fLabel; #IMPLIED]&#10;depth contains a set of 3D coordinate (triplet) point values." name="depth"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;coord&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/FontStyle.gif" tooltip="[X3DFontStyleNode] FontStyle is an X3DFontStyleNode that defines the size, family, justification, and other styles used by Text nodes.&#10;Hint: full internationalization (i18n) and localization (l10n) features are available for any written language.&#10;Hint: DEF/USE copies of a single node can provide a similar &quot;look + feel&quot; style for related shapes.&#10;Hint: relates to Internationalization (i18n) http://www.w3.org/standards/webdesign/i18n&#10;Hint: first add a Text node as a parent node for FontStyle.&#10;Hint: Wikipedia https://en.wikipedia.org/wiki/Font" name="FontStyle">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[family &inputOutputLabel; &MFStringLabel; &FontStyleFamilyValues; &#34;SERIF&#34;]&#10;Array of quoted font family names in preference order, browsers use the first supported family.&#10;Hint: example family array might be &#34;Times&#34; &#34;SERIF&#34;&#10;Warning: font family support often varies.&#10;Hint: values with guaranteed support include &#34;SERIF&#34; &#34;SANS&#34; &#34;TYPEWRITER&#34;.&#10;Hint: SERIF and SANS are variable-width fonts (for example, Times Roman and Arial).&#10;Hint: TYPEWRITER is a fixed-width font (for example, Courier).&#10;Hint: MFString arrays can have multiple values, so &quot;separate each individual string&quot; &quot;by using quote marks&quot;.&#10;Hint: see 15.2.2.2 Font family and style https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/text.html#Fontfamilyandstyle for details.&#10;Hint: relates to Internationalization (i18n) http://www.w3.org/standards/webdesign/i18n&#10;Hint: (X3D version 4.0 draft) accessType relaxed to inputOutput in order to support animation and user accessibility." name="family"/>
            <attribute tooltip="[style &inputOutputLabel; &SFStringLabel; &FontStyleStyleValues; PLAIN]&#10;Pick one of four values for text style (PLAIN|BOLD|ITALIC|BOLDITALIC).&#10;Warning: overloaded name for CSS style attribute.&#10;Warning: do not wrap extra quotation marks  around these SFString enumeration values, since &#34;quotation&#34; &#34;marks&#34; are only used for MFString values.&#10;Hint: see 15.2.2.2 Font family and style https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/text.html#Fontfamilyandstyle for details.&#10;Hint: overlapping functionality with CSS style attribute provides a &quot;best of both worlds&quot; approach.&#10;The style attribute provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets.&#10;Hint: X3D Architecture Annex L, HTML authoring guidelines, CSS considerations https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/htmlGuidelines.html#CSS&#10;Hint: W3C Cascading Style Sheets https://www.w3.org/Style/CSS&#10;Hint: CSS Snapshot https://www.w3.org/TR/css-2018&#10;Hint: https://www.w3.org/TR/css-style-attr&#10;Hint: Wikibooks, XML - Managing Data Exchange/XSLT and Style Sheets https://en.wikibooks.org/wiki/XML_-_Managing_Data_Exchange/XSLT_and_Style_Sheets&#10;Hint: (X3D version 4.0 draft) accessType relaxed to inputOutput in order to support animation and user accessibility." name="style"/>
            <attribute tooltip="[justify &inputOutputLabel; &MFStringLabel; &FontStyleJustifyValues; &quot;BEGIN&quot; or &quot;BEGIN&quot; &quot;END&quot;]The justify field determines horizontal and vertical alignment of text layout, relative to the origin of the object coordinate system.&#10;Hint: preferred value is usually justify=' &quot;MIDDLE&quot; &quot;MIDDLE&quot; ' for centered justification horizontally and vertically.&#10;Warning: exactly two string values are provided for major and minor axis alignment.&#10;Warning: do not use illegal values such as LEFT RIGHT TOP BOTTOM or CENTER.&#10;Hint: MFString arrays can have multiple values, so &quot;separate each individual string&quot; &quot;by using quote marks&quot;.&#10;Hint: see 15.2.2.3 Direction and justification https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/text.html#Directionandjustification for details.&#10;Hint: (X3D version 4.0 draft) accessType relaxed to inputOutput in order to support animation and user accessibility." name="justify"/>
            <attribute tooltip="[size &inputOutputLabel; &SFFloatLabel; &#34;1.0&#34;] (0,+&#8734;)&#10;Nominal height (in local coordinate system) of text glyphs, also sets default spacing between adjacent lines of text.&#10;Hint: (X3D version 4.0 draft) accessType relaxed to inputOutput in order to support animation and user accessibility." name="size"/>
            <attribute tooltip="[spacing &inputOutputLabel; &SFFloatLabel; &#34;1.0&#34;] [0,+&#8734;)&#10;Adjustment factor for line spacing between adjacent lines of text.&#10;Hint: (X3D version 4.0 draft) accessType relaxed to inputOutput in order to support animation and user accessibility." name="spacing"/>
            <attribute tooltip="[language &inputOutputLabel; &SFStringLabel; #IMPLIED]&#10;Language codes consist of a primary code and a (possibly empty) series of subcodes.&#10;[ language-code = primary-code ( &quot;-&quot; subcode )* ]&#10;Two-letter primary codes are reserved for language abbreviations.&#10;Two-letter primary codes include en (English), fr (French), de (German), it (Italian), nl (Dutch),  el (Greek), es (Spanish), pt (Portuguese),  ar (Arabic), he (Hebrew), ru (Russian), zh (Chinese), ja (Japanese), hi (Hindi), ur (Urdu), and sa (Sanskrit).&#10;Any two-letter subcode is understood to be a country code.&#10;Warning: do not wrap extra quotation marks  around these SFString enumeration values, since &#34;quotation&#34; &#34;marks&#34; are only used for MFString values.&#10;Hint: see ISO639.2 Codes for the Representation of Names of Languages http://www.loc.gov/standards/iso639-2/php/code_list.php&#10;Hint: see RFC3066 Tags for the Identification of Languages https://tools.ietf.org/html/rfc3066&#10;Hint: see ISO3166 or http://xml.coverpages.org/languageIdentifiers.html&#10;Hint: relates to Internationalization (i18n) http://www.w3.org/standards/webdesign/i18n&#10;Hint: (X3D version 4.0 draft) accessType relaxed to inputOutput in order to support animation and user accessibility." name="language"/>
            <attribute tooltip="[horizontal &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Whether text direction is horizontal (true) or vertical (false).&#10;Hint: see 15.2.2.3 Direction and justification https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/text.html#Directionandjustification for details.&#10;Hint: relates to Internationalization (i18n) http://www.w3.org/standards/webdesign/i18n&#10;Hint: (X3D version 4.0 draft) accessType relaxed to inputOutput in order to support animation and user accessibility." name="horizontal"/>
            <attribute tooltip="[leftToRight &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Whether text direction is left-to-right (true) or right-to-left (false).&#10;Hint: see 15.2.2.3 Direction and justification https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/text.html#Directionandjustification for details.&#10;Hint: relates to Internationalization (i18n) http://www.w3.org/standards/webdesign/i18n&#10;Hint: (X3D version 4.0 draft) accessType relaxed to inputOutput in order to support animation and user accessibility." name="leftToRight"/>
            <attribute tooltip="[topToBottom &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Whether text direction is top-to-bottom (true) or bottom-to-top (false).&#10;Hint: see 15.2.2.3 Direction and justification https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/text.html#Directionandjustification for details.&#10;Hint: relates to Internationalization (i18n) http://www.w3.org/standards/webdesign/i18n&#10;Hint: (X3D version 4.0 draft) accessType relaxed to inputOutput in order to support animation and user accessibility." name="topToBottom"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;fontStyle&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/Group.gif" tooltip="[X3DGroupingNode,X3DVisibleObject] Group is a Grouping node that can contain most nodes. Hint: insert a Shape node before adding geometry or Appearance." name="Group">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[children &inputOutputLabel; &MFNodeLabel;, empty list] [X3DChildNode]&#10;Grouping nodes contain an ordered list of children nodes.&#10;Hint: Each grouping node defines a coordinate space for its children, relative to the coordinate space of its parent node. Thus transformations accumulate down the scene graph hierarchy.&#10;Hint: inputOnly MFNode addChildren field can append new X3DChildNode nodes via a ROUTE connection, duplicate input nodes (i.e. matching DEF, USE values) are ignored.&#10;Hint: inputOnly MFNode removeChildren field can remove nodes from the children list, unrecognized input nodes (i.e. nonmatching DEF, USE values) are ignored.&#10;Hint: X3D Architecture 10.2.1 Grouping and children node types, https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#GroupingAndChildrenNodes" name="children"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[bboxCenter &initializeOnlyLabel; &SFVec3fLabel; &#34;0 0 0&#34;]&#10;Bounding box center accompanies bboxSize and provides an optional hint for bounding box position offset from origin of local coordinate system.&#10;Hint: precomputation and inclusion of bounding box information can speed up the initialization of large detailed models, with a corresponding cost of increased file size.&#10;Hint: X3D Architecture, 10.2.2 Bounding boxes https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#BoundingBoxes&#10;Hint:  X3D Architecture, 10.3.1 X3DBoundedObject https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#X3DBoundedObject" name="bboxCenter"/>
            <attribute tooltip="[bboxSize &initializeOnlyLabel; &SFVec3fLabel; &#34;-1 -1 -1&#34;] or [0,+&#8734;)&#10;Bounding box size is usually omitted, and can easily be calculated automatically by an X3D player at scene-loading time with minimal computational cost. Bounding box size can also be defined as an optional authoring hint that suggests an optimization or constraint.&#10;Hint: can be useful for collision computations or inverse-kinematics (IK) engines.&#10;Hint: precomputation and inclusion of bounding box information can speed up the initialization of large detailed models, with a corresponding cost of increased file size.&#10;Hint: X3D Architecture, 10.2.2 Bounding boxes https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#BoundingBoxes&#10;Hint:  X3D Architecture, 10.3.1 X3DBoundedObject https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#X3DBoundedObject" name="bboxSize"/>
            <attribute tooltip="(X3D version 4.0 draft) [bboxDisplay &inputOutputLabel; &SFBoolLabel; &#34;false&#34;]&#10;Whether to display bounding box for associated geometry, aligned with world coordinates.&#10;Hint: the bounding box is displayed regardless of whether contained content is visible." name="bboxDisplay"/>
            <attribute tooltip="(X3D version 4.0 draft) [visible &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Whether or not renderable content within this node is visually displayed.&#10;Hint: the visible field has no effect on animation behaviors, event passing or other non-visual characteristics.&#10;Hint: content must be visible to be collidable and to be pickable." name="visible"/>
            <attribute tooltip="[containerField type NMTOKEN (children|proxy|rootNode|shape|skin) &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/head.gif" tooltip="[X3D statement] head can contain component, unit, and author-defined meta (metadata) elements.&#10;Hint: design for this element is patterned after the &lt;head&gt; tag in HTML: https://www.w3.org/TR/html5/document-metadata.html#the-head-element&#10;Warning: head is optional first child of X3D statement, and must precede the Scene statement.&#10;Warning: in order to pass XML validation, these contained optional statements must appear in order: first component statements, then unit statements, then meta statements." name="head">
            <attribute tooltip="[X3D statement #component] Add component statements to indicate necessary scene functionality above the given profile for this X3D model." name="component"/>
            <attribute tooltip="[X3D statement #unit] Add unit statements to define data-conversion factors for typed values defined within a scene." name="unit"/>
            <attribute tooltip="[X3D statement #meta] Add meta statements to provide metadata information about this X3D model." name="meta"/>
        </element>
        <element icon="icons/ImageTexture.gif" tooltip="[X3DTexture2DNode,X3DUrlObject] ImageTexture maps a 2D-image file onto a geometric shape.&#10;Texture maps have a 2D coordinate system (s, t) horizontal and vertical, with (s, t) texture-coordinate values in range [0.0, 1.0] for opposite corners of the image.&#10;Hint: can contain a single TextureProperties node.&#10;Hint: insert Shape and Appearance nodes before adding texture.&#10;Warning: bright Material emissiveColor values can wash out some textures.&#10;Hint: authors can provide multiple image formats for the same image, with each source address listed separately in the url field.&#10;Hint: player support is required for .png and .jpg formats, support is suggested for .gif format. Other image formats are optionally supported.&#10;Hint: X3D Scene Authoring Hints, Images https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#Images&#10;Warning: see ComposedCubeMapTexture and TextureBackground for special containerField values.&#10;Hint: if a texture is opaque, omitting values in the alpha channel can help avoid rendering artifacts related to transparency and reduce file size by 25%.&#10;Hint: Texture mapping https://en.wikipedia.org/wiki/Texture_mapping&#10;Hint: X3D Architecture 17.2.2 Lighting model https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/lighting.html#Lightingmodel&#10;Hint: when parent node is LoadSensor, apply containerField='children' (X3Dv4) or containerField='watchList' (X3Dv3). https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#fieldNameChanges" name="ImageTexture">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[textureProperties &initializeOnlyLabel; &SFNodeLabel;, NULL node] [TextureProperties]&#10;Single contained TextureProperties node that can specify additional visual attributes applied to corresponding texture images." name="textureProperties"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="(X3D version 4.0 draft) [autoRefresh &inputOutputLabel; &SFTimeLabel; &#34;0.0&#34;]&#10;autoRefresh defines interval in seconds before automatic reload of current url asset is performed.&#10;Hint: if preceding file loading fails or load field is false, no refresh is performed.&#10;Hint: repeated refresh attempts to reload currently loaded entry of url list. If that fails, the browser retries other entries in the url list.&#10;Warning: automatically reloading content has security considerations and needs to be considered carefully." name="autoRefresh"/>
            <attribute tooltip="(X3D version 4.0 draft) [autoRefreshTimeLimit &inputOutputLabel; &SFTimeLabel; &#34;3600.0&#34;]&#10;autoRefreshTimeLimit defines maximum duration that automatic refresh activity can occur.&#10;Hint: Automatic refresh is different than query and response timeouts performed by a networking library while sequentially attempting to retrieve addressed content from a url list.&#10;Warning: automatically reloading content has security considerations and needs to be considered carefully." name="autoRefreshTimeLimit"/>
            <attribute tooltip="(X3D version 4.0 draft) [description &inputOutputLabel; &SFStringLabel; #IMPLIED]&#10;Author-provided prose that describes intended purpose of the url asset.&#10;Hint: many XML tools substitute XML character references for special characters automatically if needed within an attribute value (such as &amp;#38; for &#38; ampersand character, or &amp;#34; for &#34; quotation-mark character)." name="description"/>
            <attribute tooltip="(X3D version 4.0 draft) [load &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;load=true means load immediately,&#10;load=false means defer loading or else unload a previously loaded scene.&#10;Hint: allows author to design when Inline loading occurs via user interaction, event chains or scripting.&#10;Hint: use a separate LoadSensor node to detect when loading is complete." name="load"/>
            <attribute tooltip="[url &inputOutputLabel; &MFStringLabel; #IMPLIED]&#10;Location and filename of image.&#10;Multiple locations are more reliable, and including a Web address lets e-mail attachments work.&#10;Hint: MFString arrays can have multiple values, so separate each individual string by quote marks &quot;https://www.web3d.org&quot; &quot;https://www.web3d.org/about&quot; &quot;etc.&quot;&#10;Hint: alternative XML encoding for quotation mark &quot; is &#38;quot; (which is an example of a character entity).&#10;Warning: strictly match directory and filename capitalization for http links! This is important for portability. Some operating systems are forgiving of capitalization mismatches, but http/https url addresses and paths in Unix-based operating systems are all case sensitive and intolerant of uppercase/lowercase mismatches.&#10;Hint: can replace embedded blank(s) in url queries with %20 for each blank character.&#10;Hint: X3D Scene Authoring Hints, urls https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#urls" name="url"/>
            <attribute tooltip="[repeatS &initializeOnlyLabel; &SFBoolLabel; &#34;true&#34;]&#10;Whether to repeat texture along S axis horizontally from left to right." name="repeatS"/>
            <attribute tooltip="[repeatT &initializeOnlyLabel; &SFBoolLabel; &#34;true&#34;]&#10;Whether to repeat texture along T axis vertically from top to bottom." name="repeatT"/>
            <attribute tooltip="[containerField type NMTOKEN (texture|watchList|back|bottom|front|left|right|top|backTexture|bottomTexture|frontTexture|leftTexture|rightTexture|topTexture|baseTexture|emissiveTexture|metallicRoughnessTexture|normalTexture|occlusionTexture) &#34;texture&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/IndexedFaceSet.gif" tooltip="[X3DComposedGeometryNode] IndexedFaceSet defines polygons using index lists corresponding to vertex coordinates. IndexedFaceSet is a geometry node containing a Coordinate|CoordinateDouble node, and can also contain Color|ColorRGBA, Normal and TextureCoordinate nodes.&#10;Hint: Polygon https://en.wikipedia.org/wiki/Polygon&#10;Hint: insert a Shape node before adding geometry or Appearance.&#10;Hint: for advanced extensibility, authors can substitute a type-matched ProtoInstance node (with correct containerField value) for contained node content.&#10;Warning: rendering characteristics are undefined if polygons are not planar.&#10;Warning: avoid self-intersecting polygon line segments, otherwise defined geometry is irregular and rendering results are undefined." name="IndexedFaceSet">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[attrib &inputOutputLabel; &MFNodeLabel;, empty list] [X3DVertexAttributeNode]&#10;Single contained FloatVertexAttribute node that can specify list of per-vertex attribute information for programmable shaders.&#10;Hint: X3D Architecture 32.2.2.4 Per-vertex attributes, https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/shaders.html#Pervertexattributes" name="attrib"/>
            <attribute tooltip="[color &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DColorNode]&#10;Single contained Color or ColorRGBA node that can specify color values applied to corresponding vertices according to colorIndex and colorPerVertex fields." name="color"/>
            <attribute tooltip="[coord &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DCoordinateNode]&#10;Single contained Coordinate or CoordinateDouble node that can specify a list of vertex values." name="coord"/>
            <attribute tooltip="[fogCoord &inputOutputLabel; &SFNodeLabel;, NULL node] [FogCoordinate]&#10;Single contained FogCoordinate node that can specify depth parameters for fog in corresponding geometry." name="fogCoord"/>
            <attribute tooltip="[normal &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DNormalNode]&#10;Single contained Normal node that can specify perpendicular vectors for corresponding vertices to support rendering computations, applied according to the normalPerVertex field.&#10;Hint: useful for special effects. Normal vector computation by 3D graphics hardware is quite fast so adding normals to a scene is typically unnecessary.&#10;Warning: normal vectors increase file size, typically doubling geometry definitions." name="normal"/>
            <attribute tooltip="[texCoord &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DTextureCoordinateNode]&#10;Single contained TextureCoordinate, TextureCoordinateGenerator or MultiTextureCoordinate node that can specify coordinates for texture mapping onto corresponding geometry." name="texCoord"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[coordIndex &initializeOnlyLabel; &MFInt32Label; #IMPLIED] [-1,+&#8734;)&#10;coordIndex indices provide the order in which coordinates are applied to construct each polygon face.&#10;Order starts at index 0, commas are optional between sets.&#10;Hint: sentinel value -1 is used to separate indices for each successive polygon.&#10;Warning: coordIndex is required in order to connect contained coordinate point values." name="coordIndex"/>
            <attribute tooltip="[ccw &initializeOnlyLabel; &SFBoolLabel; &#34;true&#34;]&#10; ccw defines clockwise/counterclockwise ordering of vertex coordinates, which in turn defines front/back orientation of polygon normals according to Right-Hand Rule (RHR).&#10;Hint: a good debugging technique for problematic polygons is to try changing the value of ccw, which can reverse solid effects (single-sided backface culling) and normal-vector direction.&#10;Warning: consistent and correct ordering of left-handed or right-handed point sequences is important throughout the coord array of point values.&#10;Hint: clockwise https://en.wikipedia.org/wiki/Clockwise" name="ccw"/>
            <attribute tooltip="[convex &initializeOnlyLabel; &SFBoolLabel; &#34;true&#34;]&#10;The convex field is a hint to renderers whether all polygons in a shape are convex (true), or possibly concave (false).&#10;A convex polygon is planar, does not intersect itself, and has all interior angles &lt; 180 degrees.&#10;Hint: concave is the opposite of convex.&#10;Interchange profile hint: only convex=true IndexedFaceSets have guaranteed support.&#10;Warning: concave or inverted geometry may be invisible when using default value convex=true, since some renderers use more-efficient algorithms to perform tessellation that may inadvertently fail on concave geometry.&#10;Hint: select convex=false (i.e. concave) and solid=false (i.e. two-sided display) for greatest visibility of geometry.&#10;Hint: convex polygon https://en.wikipedia.org/wiki/Convex_polygon&#10;Hint: tessellation https://en.wikipedia.org/wiki/Tessellation" name="convex"/>
            <attribute tooltip="[solid &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Setting solid true means draw only one side of polygons (backface culling on), setting solid false means draw both sides of polygons (backface culling off).&#10;Hint: mnemonic &quot;this geometry is solid like a brick&quot; (you don't render the inside of a brick).&#10;Warning: default value true can completely hide geometry if viewed from wrong side!&#10;Hint: if in doubt, use solid='false' for maximum visibility.&#10;Hint: (X3D version 4.0 draft) accessType relaxed to inputOutput in order to support animation and visualization." name="solid"/>
            <attribute tooltip="[creaseAngle &initializeOnlyLabel; &SFFloatLabel; &#34;0&#34;] [0,+&#8734;)&#10;creaseAngle defines angle (in radians) for determining whether adjacent polygons&#10;are drawn with sharp edges or smooth shading.&#10;If angle between normals of two adjacent polygons is less than creaseAngle,&#10;smooth shading is rendered across the shared line segment.&#10;Interchange profile hint: only 0 and &#960; radians supported.&#10;Hint: creaseAngle=0 means render all edges sharply,&#10;  creaseAngle=3.14159 means render all edges smoothly.&#10;Hint: radian units for angular measure https://en.wikipedia.org/wiki/Radian" name="creaseAngle"/>
            <attribute tooltip="[colorPerVertex &initializeOnlyLabel; &SFBoolLabel; &#34;true&#34;]&#10;Whether Color|ColorRGBA values are applied to each point vertex (true) or to each polygon face (false).&#10;Warning: if child Color|ColorRGBA node is not provided, then geometry is rendered using corresponding Appearance and material/texture values.&#10;Hint: X3D Scene Authoring Hints, Color https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#Color" name="colorPerVertex"/>
            <attribute tooltip="[colorIndex &initializeOnlyLabel; &MFInt32Label; #IMPLIED] [-1,+&#8734;)&#10;colorIndex values define the order in which Color|ColorRGBA values are applied to polygons (or vertices).&#10;Hint: if colorIndex array is not provided, then Color|ColorRGBA values are indexed according to the coordIndex field.&#10;Hint: If colorPerVertex='false' then one index is provided for each polygon defined by the coordIndex array. No sentinel -1 values are included.&#10;Hint: If colorPerVertex='true' then a matching set of indices is provided, each separated by sentinel -1, that exactly corresponds to individual values in the coordIndex array polygon definitions.&#10;Warning: if child Color|ColorRGBA node is not provided, then geometry is rendered using corresponding Appearance and material/texture values." name="colorIndex"/>
            <attribute tooltip="[normalPerVertex &initializeOnlyLabel; &SFBoolLabel; &#34;true&#34;]&#10;Whether Normal node vector values are applied to each point vertex (true) or to each polygon face (false).&#10;Hint: if no child Normal node is provided, the X3D browser shall automatically generate normals, using creaseAngle to determine smoothed shading across shared vertices." name="normalPerVertex"/>
            <attribute tooltip="[normalIndex &initializeOnlyLabel; &MFInt32Label; #IMPLIED] [-1,+&#8734;)&#10;normalIndex values define the order in which normal vectors are applied to polygons (or vertices).&#10;Warning: if normalIndex array is not provided, then Normal values are indexed according to the coordIndex field.&#10;Hint: If normalPerVertex='false' then one index is provided for each polygon defined by the coordIndex array. No sentinel -1 values are included.&#10;Hint: If normalPerVertex='true' then a matching set of indices is provided, each separated by sentinel -1, that exactly corresponds to individual values in the coordIndex array polygon definitions.&#10;Hint: if no child Normal node is provided, the X3D browser shall automatically generate normals, using creaseAngle to determine smoothed shading across shared vertices.&#10;Interchange profile hint: this field may be ignored, applying the default value regardless." name="normalIndex"/>
            <attribute tooltip="[texCoordIndex &initializeOnlyLabel; &MFInt32Label; #IMPLIED] [-1,+&#8734;)&#10;List of texture-coordinate indices mapping attached texture to corresponding coordinates.&#10;Hint: if texCoordIndex array is not provided, then TextureCoordinate values are indexed according to the coordIndex field.&#10;Hint: use a tool!" name="texCoordIndex"/>
            <attribute tooltip="[set_coordIndex &inputOnlyLabel; &MFInt32Label; #FIXED &#34;&#34;]&#10;coordIndex indices provide the order in which coordinates are applied to construct each polygon face.&#10;Order starts at index 0, commas are optional between sets.&#10;Hint: sentinel value -1 is used to separate indices for each successive polygon.&#10;Warning: it is an error to define this transient inputOnly field in an X3D file, instead only use it a destination for ROUTE events." name="set_coordIndex"/>
            <attribute tooltip="[set_colorIndex &initializeOnlyLabel; &MFInt32Label; #FIXED &#34;&#34;]&#10;colorIndex values define the order in which Color|ColorRGBA values are applied to polygons (or vertices).&#10;Hint: if colorIndex array is not provided, then Color|ColorRGBA values are indexed according to the coordIndex field.&#10;Hint: If colorPerVertex='false' then one index is provided for each polygon defined by the coordIndex array. No sentinel -1 values are included.&#10;Hint: If colorPerVertex='true' then a matching set of indices is provided, each separated by sentinel -1, that exactly corresponds to individual values in the coordIndex array polygon definitions.&#10;Warning: it is an error to define this transient inputOnly field in an X3D file, instead only use it a destination for ROUTE events." name="set_colorIndex"/>
            <attribute tooltip="[set_normalIndex &inputOnlyLabel; &MFInt32Label; #FIXED &#34;&#34;] [-1,+&#8734;)&#10;normalIndex values define the order in which normal vectors are applied to polygons (or vertices).&#10;Interchange profile hint: this field may be ignored, applying the default value regardless.&#10;Warning: it is an error to define this transient inputOnly field in an X3D file, instead only use it a destination for ROUTE events." name="set_normalIndex"/>
            <attribute tooltip="[set_texCoordIndex &inputOnlyLabel; &MFInt32Label; #FIXED &#34;&#34;] [-1,+&#8734;)&#10;List of texture-coordinate indices mapping attached texture to corresponding coordinates.&#10;Hint: use a tool!&#10;Warning: it is an error to define this transient inputOnly field in an X3D file, instead only use it a destination for ROUTE events." name="set_texCoordIndex"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;geometry&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/IndexedLineSet.gif" tooltip="[X3DGeometryNode] IndexedLineSet defines polyline segments using index lists corresponding to vertex coordinates. IndexedLineSet is a geometry node that can contain a Coordinate|CoordinateDouble node and optionally a Color|ColorRGBA node.&#10;Hint: Polygonal chain https://en.wikipedia.org/wiki/Polygonal_chain&#10;Hint: either values in a contained Color node, or else Material emissiveColor in corresponding Appearance node, are used for rendering lines and points.&#10;Warning: lines are not lit, are not texture-mapped, and do not participate in collision detection.&#10;Warning: use a different color (or Material emissiveColor) than the Background color, otherwise geometry is invisible.&#10;Hint: adding LineProperties to the corresponding Appearance node can modify the rendering style of these lines.&#10;Hint: if rendering Coordinate points originally defined for an IndexedFaceSet,&#10;index values may need to repeat each initial vertex to close each polygon outline.&#10;Hint: step-wise variation or linear interpolation of color values can be used as a good scientific visualization technique to map arbitrary function values to a color map.&#10;Hint: insert a Shape node before adding geometry or Appearance.&#10;Hint: for advanced extensibility, authors can substitute a type-matched ProtoInstance node (with correct containerField value) for contained node content.&#10;Hint: consider including Fog (with Fog color matching Background color) to provide further depth cueing for IndexedLineSet (ILS)." name="IndexedLineSet">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[attrib &inputOutputLabel; &MFNodeLabel;, empty list] [X3DVertexAttributeNode]&#10;Single contained FloatVertexAttribute node that can specify list of per-vertex attribute information for programmable shaders.&#10;Hint: X3D Architecture 32.2.2.4 Per-vertex attributes, https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/shaders.html#Pervertexattributes" name="attrib"/>
            <attribute tooltip="[color &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DColorNode]&#10;Single contained Color or ColorRGBA node that can specify color values applied to corresponding vertices according to colorIndex and colorPerVertex fields." name="color"/>
            <attribute tooltip="[coord &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DCoordinateNode]&#10;Single contained Coordinate or CoordinateDouble node that can specify a list of vertex values." name="coord"/>
            <attribute tooltip="[fogCoord &inputOutputLabel; &SFNodeLabel;, NULL node] [FogCoordinate]&#10;Single contained FogCoordinate node that can specify depth parameters for fog in corresponding geometry." name="fogCoord"/>
            <attribute tooltip="[normal &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DNormalNode]&#10;Single contained Normal node that can specify perpendicular vectors for corresponding vertices to support rendering computations, applied according to the normalPerVertex field.&#10;Hint: useful for special effects. Normal vector computation by 3D graphics hardware is quite fast so adding normals to a scene is typically unnecessary.&#10;Warning: normal vectors increase file size, typically doubling geometry definitions." name="normal"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[coordIndex &initializeOnlyLabel; &MFInt32Label; #IMPLIED] [-1,+&#8734;)&#10;coordIndex indices provide the order in which coordinates are applied to construct each polygon face.&#10;Order starts at index 0, commas are optional between sets,&#10;use -1 to separate indices for each polyline.&#10;Hint: if rendering Coordinate points originally defined for an IndexedFaceSet, index values may need to repeat initial each initial vertex to close the polygons.&#10;Hint: sentinel value -1 is used to separate indices for each successive polyline.&#10;Warning: coordIndex is required in order to connect contained coordinate point values." name="coordIndex"/>
            <attribute tooltip="[colorPerVertex &initializeOnlyLabel; &SFBoolLabel; &#34;true&#34;]&#10;Whether Color node color values are applied to each point vertex (true) or per polyline (false).&#10;Hint: X3D Scene Authoring Hints, Color https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#Color" name="colorPerVertex"/>
            <attribute tooltip="[colorIndex &initializeOnlyLabel; &MFInt32Label; #IMPLIED] [-1,+&#8734;)&#10;colorIndex values define the order in which Color|ColorRGBA values are applied to polygons (or vertices).&#10;Hint: if colorIndex array is not provided, then Color|ColorRGBA values are indexed according to the coordIndex field.&#10;Hint: If colorPerVertex='false' then one index is provided for each polygon defined by the coordIndex array. No sentinel -1 values are included.&#10;Hint: If colorPerVertex='true' then a matching set of indices is provided, each separated by sentinel -1, that exactly corresponds to individual values in the coordIndex array polygon definitions.&#10;Hint: if rendering Coordinate points originally defined for an IndexedFaceSet,&#10;index values may need to repeat initial each initial vertex to close the polygons.&#10;Warning: if child Color|ColorRGBA node is not provided, then geometry is rendered using corresponding Appearance and material/texture values." name="colorIndex"/>
            <attribute tooltip="[set_coordIndex &inputOnlyLabel; &MFInt32Label; #FIXED &#34;&#34;]&#10;coordIndex indices provide the order in which coordinates are applied to construct each polyline.&#10;Order starts at index 0, commas are optional between sets.&#10;Hint: sentinel value -1 is used to separate indices for each successive polyline.&#10;Warning: it is an error to define this transient inputOnly field in an X3D file, instead only use it a destination for ROUTE events." name="set_coordIndex"/>
            <attribute tooltip="[set_colorIndex &initializeOnlyLabel; &MFInt32Label; #FIXED &#34;&#34;]&#10;colorIndex values define the order in which Color|ColorRGBA values are applied to polygons (or vertices).&#10;Hint: if colorIndex array is not provided, then Color|ColorRGBA values are indexed according to the coordIndex field.&#10;Hint: If colorPerVertex='false' then one index is provided for each polygon defined by the coordIndex array. No sentinel -1 values are included.&#10;Hint: If colorPerVertex='true' then a matching set of indices is provided, each separated by sentinel -1, that exactly corresponds to individual values in the coordIndex array polygon definitions.&#10;Warning: it is an error to define this transient inputOnly field in an X3D file, instead only use it a destination for ROUTE events." name="set_colorIndex"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;geometry&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/X3D.gif" tooltip="[X3DGroupingNode,X3DBoundedObject,X3DUrlObject,X3DVisibleObject] Inline can load another X3D or VRML model into the current scene via url. Inline is an X3DBoundedObject node that has bounding-box dimensions.&#10;Hint: (X3D version 4.0 draft) support includes .gltf and .glb https://www.khronos.org/gltf  https://en.wikipedia.org/wiki/glTF &#10;Hint: you cannot ROUTE values into an Inline scene,&#10;use IMPORT/EXPORT (or ExternProtoDeclare and ProtoInstance) instead.&#10;Hint: X3D Scene Authoring Hints, Inlines and Prototypes https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#InlinesPrototypes&#10;Hint: when parent node is LoadSensor, apply containerField='children' (X3Dv4) or containerField='watchList' (X3Dv3). https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#fieldNameChanges" name="Inline">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="(X3D version 4.0 draft) [autoRefresh &inputOutputLabel; &SFTimeLabel; &#34;0.0&#34;]&#10;autoRefresh defines interval in seconds before automatic reload of current url asset is performed.&#10;Hint: if preceding file loading fails or load field is false, no refresh is performed.&#10;Hint: repeated refresh attempts to reload currently loaded entry of url list. If that fails, the browser retries other entries in the url list.&#10;Warning: automatically reloading content has security considerations and needs to be considered carefully." name="autoRefresh"/>
            <attribute tooltip="(X3D version 4.0 draft) [autoRefreshTimeLimit &inputOutputLabel; &SFTimeLabel; &#34;3600.0&#34;]&#10;autoRefreshTimeLimit defines maximum duration that automatic refresh activity can occur.&#10;Hint: Automatic refresh is different than query and response timeouts performed by a networking library while sequentially attempting to retrieve addressed content from a url list.&#10;Warning: automatically reloading content has security considerations and needs to be considered carefully." name="autoRefreshTimeLimit"/>
            <attribute tooltip="(X3D version 4.0 draft) [description &inputOutputLabel; &SFStringLabel; #IMPLIED]&#10;Author-provided prose that describes intended purpose of the url asset.&#10;Hint: many XML tools substitute XML character references for special characters automatically if needed within an attribute value (such as &amp;#38; for &#38; ampersand character, or &amp;#34; for &#34; quotation-mark character)." name="description"/>
            <attribute tooltip="(X3D version 4.0 draft) [global &inputOutputLabel; &SFBoolLabel; &#34;false&#34;]&#10;The global field controls potential external scoping effects of lights found within an Inline scene.&#10;Global lights illuminate all objects within their volume of lighting influence.&#10;Scoped lights only illuminate objects within the same transformation hierarchy.&#10;Hint: X3D Architecture, 17.2.1.2 Scoping of lights https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/lighting.html#ScopingOfLights" name="global"/>
            <attribute tooltip="[load &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;load=true means load immediately,&#10;load=false means defer loading or else unload a previously loaded scene.&#10;Hint: allows author to design when Inline loading occurs via user interaction, event chains or scripting.&#10;Hint: use a separate LoadSensor node to detect when loading is complete." name="load"/>
            <attribute tooltip="[url &inputOutputLabel; &MFStringLabel; #IMPLIED]&#10;Address of X3D world to load Inline with current scene, retrieved either from local system or an online address. Browser support for X3D model support can include allowed file formats for XML .x3d, ClassicVRML .x3dv, X3D Binary .x3db, X3D JSON .json, and Virtual Reality Modeling Language (VRML97) .wrl.&#10;Hint: (X3D version 4.0 draft) support includes .gltf and .glb https://www.khronos.org/gltf  https://en.wikipedia.org/wiki/glTF &#10;Hint: future work planned for PLY format https://en.wikipedia.org/wiki/PLY_(file_format) &#10;Hint: future work planned for STL format https://en.wikipedia.org/wiki/STL_(file_format)&#10;Hint: MFString arrays can have multiple values, so separate each individual string by quote marks &quot;https://www.web3d.org&quot; &quot;https://www.web3d.org/about&quot; &quot;etc.&quot;&#10;Hint: alternative XML encoding for quotation mark &quot; is &#38;quot; (which is an example of a character entity).&#10;Warning: strictly match directory and filename capitalization for http links! This is important for portability. Some operating systems are forgiving of capitalization mismatches, but http/https url addresses and paths in Unix-based operating systems are all case sensitive and intolerant of uppercase/lowercase mismatches.&#10;Hint: can replace embedded blank(s) in url queries with %20 for each blank character.&#10;Hint: X3D Scene Authoring Hints, urls https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#urls" name="url"/>
            <attribute tooltip="[bboxCenter &initializeOnlyLabel; &SFVec3fLabel; &#34;0 0 0&#34;]&#10;Bounding box center accompanies bboxSize and provides an optional hint for bounding box position offset from origin of local coordinate system.&#10;Hint: precomputation and inclusion of bounding box information can speed up the initialization of large detailed models, with a corresponding cost of increased file size.&#10;Hint: X3D Architecture, 10.2.2 Bounding boxes https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#BoundingBoxes&#10;Hint:  X3D Architecture, 10.3.1 X3DBoundedObject https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#X3DBoundedObject" name="bboxCenter"/>
            <attribute tooltip="[bboxSize &initializeOnlyLabel; &SFVec3fLabel; &#34;-1 -1 -1&#34;] or [0,+&#8734;)&#10;Bounding box size is usually omitted, and can easily be calculated automatically by an X3D player at scene-loading time with minimal computational cost. Bounding box size can also be defined as an optional authoring hint that suggests an optimization or constraint.&#10;Hint: can be useful for collision computations or inverse-kinematics (IK) engines.&#10;Hint: precomputation and inclusion of bounding box information can speed up the initialization of large detailed models, with a corresponding cost of increased file size.&#10;Hint: X3D Architecture, 10.2.2 Bounding boxes https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#BoundingBoxes&#10;Hint:  X3D Architecture, 10.3.1 X3DBoundedObject https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#X3DBoundedObject" name="bboxSize"/>
            <attribute tooltip="(X3D version 4.0 draft) [bboxDisplay &inputOutputLabel; &SFBoolLabel; &#34;false&#34;]&#10;Whether to display bounding box for associated geometry, aligned with world coordinates.&#10;Hint: the bounding box is displayed regardless of whether contained content is visible." name="bboxDisplay"/>
            <attribute tooltip="(X3D version 4.0 draft) [visible &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Whether or not renderable content within this node is visually displayed.&#10;Hint: the visible field has no effect on animation behaviors, event passing or other non-visual characteristics.&#10;Hint: content must be visible to be collidable and to be pickable." name="visible"/>
            <attribute tooltip="[containerField type NMTOKEN (children|watchList) &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/IntegerSequencer.gif" tooltip="[X3DSequencerNode] IntegerSequencer generates periodic discrete integer values. Authors can ROUTE value_changed output events to other SFInt32 attributes (for example, useful when animating whichChoice in a Switch node).&#10;Hint: typical input connection is ROUTE someTimeSensorDEF.fraction_changed TO thisInterpolatorDEF.set_fraction&#10;Hint: typical output connection is ROUTE thisInterpolatorDEF.value_changed TO someDestinationNodeDEF.set_someAttribute.&#10;Hint: example scenes and authoring assets at https://x3dgraphics.com/examples/X3dForWebAuthors/Chapter09-EventUtilitiesScripting&#10;Hint: X3D Event-Utility Node Diagrams https://x3dgraphics.com/examples/X3dForWebAuthors/Chapter09-EventUtilitiesScripting/X3dEventUtilityNodeEventDiagrams.pdf" name="IntegerSequencer">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[key &inputOutputLabel; &MFFloatLabel; #IMPLIED]&#10;Definition values for linear-interpolation function input intervals, listed in non-decreasing order and corresponding to a value in the keyValue array.&#10;Warning: number of keys must match number of keyValues!&#10;Warning: values in key array shall be monotonically non-decreasing, meaning that each value is greater than or equal to the preceding value.&#10;Hint: typical interval for values in key array is within range of 0 to 1, but larger intervals can be defined with arbitrary bounds." name="key"/>
            <attribute tooltip="[keyValue &inputOutputLabel; &MFInt32Label; #IMPLIED]&#10;Output values for linear sequencing, each corresponding to an input-fraction value in the key array.&#10;Warning: number of keys must match number of keyValues!" name="keyValue"/>
            <attribute tooltip="[set_fraction &inputOnlyLabel; &SFFloatLabel; #FIXED &#34;&#34;]&#10;set_fraction selects input key for corresponding keyValue output.&#10;Hint: set_fraction values are typically in same range interval as values in the key array. Response to an input set_fraction value less than minimum is equivalent to minimum key, and response to an input set_fraction value greater than maximum is equivalent to maximum key.&#10;Warning: it is an error to define this transient inputOnly field in an X3D file, instead only use it a destination for ROUTE events." name="set_fraction"/>
            <attribute tooltip="[value_changed &outputOnlyLabel; &SFInt32Label;#FIXED &#34;&#34;]&#10;Single intermittent output value determined by current key time and corresponding keyValue entry.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="value_changed"/>
            <attribute tooltip="[previous &inputOnlyLabel; &SFBoolLabel; &#34;&#34;]&#10;Send previous output value in keyValue array, and reset internal fraction field to match corresponding value in key array.&#10;Hint: this input event will &quot;wrap around&quot; boundary of keyValue array, i.e. continue from first to last if necessary.&#10;Warning: it is an error to define this transient inputOnly field in an X3D file, instead only use it a destination for ROUTE events." name="previous"/>
            <attribute tooltip="[next &inputOnlyLabel; &SFBoolLabel; &#34;&#34;]&#10;Send next output value in keyValue array, and reset internal fraction field to match corresponding value in key array.&#10;Hint: this input event will &quot;wrap around&quot; boundary of keyValue array, i.e. continue from last to first if necessary.&#10;Warning: it is an error to define this transient inputOnly field in an X3D file, instead only use it a destination for ROUTE events." name="next"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/IntegerSequencer.gif" tooltip="[X3DTriggerNode] IntegerTrigger converts set_boolean true input events to an integer value (for example, useful when animating whichChoice in a Switch node).&#10;Hint: example scenes and authoring assets at https://x3dgraphics.com/examples/X3dForWebAuthors/Chapter09-EventUtilitiesScripting&#10;Hint: X3D Event-Utility Node Diagrams https://x3dgraphics.com/examples/X3dForWebAuthors/Chapter09-EventUtilitiesScripting/X3dEventUtilityNodeEventDiagrams.pdf" name="IntegerTrigger">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[set_boolean &inputOnlyLabel; &SFBoolLabel; #FIXED &#34;&#34;]&#10;If input event set_boolean is true, trigger output of integer value. Hint: for logical consistency, input event set_boolean false has no effect (under review as part of Mantis issue 519).&#10;Warning: it is an error to define this transient inputOnly field in an X3D file, instead only use it a destination for ROUTE events." name="set_boolean"/>
            <attribute tooltip="[integerKey &inputOutputLabel; &SFInt32Label; #FIXED &#34;-1&#34;]&#10;integerKey is value for output when triggered. Hint: directly setting a new value for the integerKey field generates a corresponding integerKey output event." name="integerKey"/>
            <attribute tooltip="[triggerValue &outputOnlyLabel; &SFInt32Label; #FIXED &#34;&#34;]&#10;triggerValue provides integer event output matching integerKey when true set_boolean received.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="triggerValue"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/IS.gif" tooltip="[X3D statement] The IS statement connects node fields defined inside a ProtoBody declaration back to corresponding ProtoInterface fields. To define each Prototype connection between a ProtoInterface field and a ProtoBody node field, add one or more connect statements within each IS statement.&#10;Warning: IS statements are only allowed within a ProtoBody definition scope, which follows ProtoInterface field declarations, and thus are only found within a ProtoDeclare statement.&#10;Hint: if present, an IS statement is the first child within any other node.&#10;Hint: an IS statement precedes any sibling Metadata* node, which in turn precedes any other sibling nodes.&#10;Hint: see the connect and ProtoBody statements.&#10;Hint: X3D Architecture 4.4.4 Prototype semantics, https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/concepts.html#PROTOdefinitionsemantics&#10;Examples: X3D Example Archives, X3D for Web Authors, Chapter 14 Prototypes https://x3dgraphics.com/examples/X3dForWebAuthors/Chapter14Prototypes" name="IS">
            <attribute tooltip="[X3D statement #connect] When inside a ProtoBody declaration and an IS statement, add a connect statement to define event-routing connections between a parent node&apos;s field to a corresponding ProtoInterface field.&#10;Hint: any matching field type can be connected, including SFNode or MFNode.&#10;Hint: if provided, value of the outer ProtoInstance fieldValue overrides default value of inner IS/connect nodeField (defined within the original prototype declaration) when first creating a new ProtoInstance node.&#10;Hint: X3D Architecture 4.4.4 Prototype semantics, https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/concepts.html#PROTOdefinitionsemantics&#10;Examples: X3D Example Archives, X3D for Web Authors, Chapter 14 Prototypes https://x3dgraphics.com/examples/X3dForWebAuthors/Chapter14Prototypes" name="connect"/>
        </element>
        <element icon="icons/IS.gif" tooltip="[X3D statement] connect statements define event-routing connections between node fields defined inside a ProtoBody declaration back to corresponding ProtoInterface fields. To define each Prototype connection between a ProtoInterface field and a ProtoBody node field, add one or more connect statements within each IS statement. &#10;Warning: IS/connect elements are only allowed within ProtoDeclare body definitions.&#10;Warning: nodeField and protoField types must match.&#10;Hint: any matching field type can be connected, including SFNode or MFNode.&#10;Hint: if provided, value of the outer ProtoInstance fieldValue overrides default value of inner IS/connect nodeField (defined within the original prototype declaration) when first creating a new ProtoInstance node.&#10;Hint: see the IS and ProtoBody statements.&#10;Hint: X3D Architecture 4.4.4 Prototype semantics, https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/concepts.html#PROTOdefinitionsemantics&#10;Examples: X3D Example Archives, X3D for Web Authors, Chapter 14 Prototypes https://x3dgraphics.com/examples/X3dForWebAuthors/Chapter14Prototypes" name="connect">
            <attribute tooltip="[nodeField type NMTOKEN #REQUIRED]&#10;Name of field within this node which IS CONNECTed to the ancestor ProtoDeclare field definition.&#10;Warning: do not define a nodeField connection to an internal DEF, USE, class or containerField, since they are not fields in a node that can be modified by events at run time.&#10;Warning: do not connect more than one interface protoField to a single field within this node.&#10;Warning: nodeField and protoField types must match." name="nodeField"/>
            <attribute tooltip="[protoField type NMTOKEN #REQUIRED]&#10;Name of parent ProtoDeclare field definition connecting to field in this node.&#10;Hint: use multiple IS/connect elements for multiple fan-out from a single protoField interface.&#10;Warning: nodeField and protoField types must match." name="protoField"/>
        </element>
        <element icon="icons/KeySensor.gif" tooltip="[X3DKeyDeviceSensorNode] KeySensor generates events as the user presses keys on the keyboard. Browser support includes the notion of &quot;keyboard focus&quot;.&#10;Hint: example scenes and authoring assets at https://x3dgraphics.com/examples/X3dForWebAuthors/Chapter08UserInteractivity" name="KeySensor">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="(X3D version 4.0 draft) [description &inputOutputLabel; &SFStringLabel; #IMPLIED]&#10;Author-provided prose that describes intended purpose of the node.&#10;Hint: many XML tools substitute XML character references for special characters automatically if needed within an attribute value (such as &amp;#38; for &#38; ampersand character, or &amp;#34; for &#34; quotation-mark character)." name="description"/>
            <attribute tooltip="[enabled &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Enables/disables node operation." name="enabled"/>
            <attribute tooltip="[keyPress &outputOnlyLabel; &SFStringLabel; #IMPLIED]&#10;Events generated when user presses character-producing keys on keyboard&#10;produces integer UTF-8 character values.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="keyPress"/>
            <attribute tooltip="[keyRelease &outputOnlyLabel; &SFStringLabel; #IMPLIED]&#10;Events generated when user releases character-producing keys on keyboard&#10;produces integer UTF-8 character values.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="keyRelease"/>
            <attribute tooltip="[actionKeyPress &outputOnlyLabel; &SFInt32Label; #IMPLIED]&#10;action key press gives following values:&#10;HOME=000   END=1001   PGUP=1002   PGDN=1003   UP=1004   DOWN=1005   LEFT=1006   RIGHT=1007   F1..F12 = 1008..1019.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="actionKeyPress"/>
            <attribute tooltip="[actionKeyRelease &outputOnlyLabel; &SFInt32Label; #IMPLIED]&#10;action key release gives following values:&#10;HOME=000   END=1001   PGUP=1002   PGDN=1003   UP=1004   DOWN=1005   LEFT=1006   RIGHT=1007   F1..F12 = 1008..1019.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="actionKeyRelease"/>
            <attribute tooltip="[shiftKey &outputOnlyLabel; &SFBoolLabel; #IMPLIED]&#10;shiftKey generates true event when pressed, false event when released.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="shiftKey"/>
            <attribute tooltip="[controlKey &outputOnlyLabel; &SFBoolLabel; #IMPLIED]&#10;controlKey generates true event when pressed, false event when released.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="controlKey"/>
            <attribute tooltip="[altKey &outputOnlyLabel; &SFBoolLabel; #IMPLIED]&#10;altKey generates true event when pressed, false event when released.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="altKey"/>
            <attribute tooltip="[isActive &outputOnlyLabel; &SFBoolLabel; #FIXED &#34;&#34;]&#10;Select geometry by activating the pointing device (for example, clicking the mouse) to generate isActive events. Output event isActive=true is sent when geometry is selected (for example, when primary mouse button is pressed), output event isActive=false is sent when geometry is deselected (for example, when primary mouse button is released).&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="isActive"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/IndexedLineSet.gif" tooltip="[X3DGeometryNode] LineSet is a geometry node that can contain a Coordinate|CoordinateDouble node and optionally a Color|ColorRGBA node.&#10;Hint: Polygonal chain https://en.wikipedia.org/wiki/Polygonal_chain&#10;Hint: either values in a contained Color node, or else Material emissiveColor in corresponding Appearance node, are used for rendering lines and points.&#10;Warning: lines are not lit, are not texture-mapped, and do not participate in collision detection.&#10;Warning: use a different color (or Material emissiveColor) than the Background color, otherwise geometry is invisible.&#10;Hint: adding LineProperties to the corresponding Appearance node can modify the rendering style of these lines.&#10;Hint: step-wise variation or linear interpolation of color values can be used as a good scientific visualization technique to map arbitrary function values to a color map.&#10;Hint: insert a Shape node before adding geometry or Appearance.&#10;Hint: for advanced extensibility, authors can substitute a type-matched ProtoInstance node (with correct containerField value) for contained node content.&#10;Hint: consider including Fog (with Fog color matching Background color) to provide further depth cueing for LineSet (LS)." name="LineSet">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[attrib &inputOutputLabel; &MFNodeLabel;, empty list] [X3DVertexAttributeNode]&#10;Single contained FloatVertexAttribute node that can specify list of per-vertex attribute information for programmable shaders.&#10;Hint: X3D Architecture 32.2.2.4 Per-vertex attributes, https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/shaders.html#Pervertexattributes" name="attrib"/>
            <attribute tooltip="[color &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DColorNode]&#10;Single contained Color or ColorRGBA node that can specify color values applied to corresponding vertices according to colorIndex and colorPerVertex fields." name="color"/>
            <attribute tooltip="[coord &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DCoordinateNode]&#10;Single contained Coordinate or CoordinateDouble node that can specify a list of vertex values." name="coord"/>
            <attribute tooltip="[fogCoord &inputOutputLabel; &SFNodeLabel;, NULL node] [FogCoordinate]&#10;Single contained FogCoordinate node that can specify depth parameters for fog in corresponding geometry." name="fogCoord"/>
            <attribute tooltip="[normal &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DNormalNode]&#10;Single contained Normal node that can specify perpendicular vectors for corresponding vertices to support rendering computations, applied according to the normalPerVertex field.&#10;Hint: useful for special effects. Normal vector computation by 3D graphics hardware is quite fast so adding normals to a scene is typically unnecessary.&#10;Warning: normal vectors increase file size, typically doubling geometry definitions." name="normal"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[vertexCount &initializeOnlyLabel; &MFInt32Label; #IMPLIED] [2,+&#8734;)&#10;vertexCount describes how many vertices are used in each individual polyline segment from the Coordinate point values.&#10;Coordinate point values are assigned as a block of points to each line by taking vertexCount[n] vertices at a time." name="vertexCount"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;geometry&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/Color.gif" tooltip="[X3DAppearanceChildNode] LineProperties allows precise fine-grained control over the rendering style of lines and edges for associated geometry nodes inside the same Shape.&#10;Hint: DEF/USE copies of a single node can provide a similar &quot;look + feel&quot; style for related shapes in a scene.&#10;Hint: LineProperties illustration model https://X3dGraphics.com/examples/X3dForWebAuthors/Chapter05AppearanceMaterialTextures/LinePropertiesExampleIndex.html&#10;Warning: requires X3D profile='Full' or else include &lt;component name='Shape' level='2'/&gt;" name="LineProperties">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[applied &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Whether or not LineProperties are applied to associated geometry." name="applied"/>
            <attribute tooltip="[linetype &inputOutputLabel; &SFInt32Label; &#34;0&#34;]&#10;linetype selects a line pattern,&#10;with solid default if defined value isn't supported.&#10;Values with guaranteed support are&#10;1 Solid, 2 Dashed, 3 Dotted, 4 Dashed-dotted, 5 Dash-dot-dot.&#10;Optionally supported values are&#10;6  single-headed arrow (arrow tip occurs at last point of each individual list of points), 7 single dot, 8 double-headed arrow,&#10;10 chain line, 11 center line, 12 hidden line, 13 phantom line,&#10;14 break line 1, 15 break line 2, 16 User-specified dash pattern.&#10;Hint: detailed descriptions of lineType values are found at the ISO/IEC 9973 International Register of Graphical Items https://www.iso.org/jtc1/sc24/register at https://isotc.iso.org/livelink/livelink/fetch/-8916524/8916549/8916590/6208440/class_pages/linetype.html" name="linetype"/>
            <attribute tooltip="(X3D version 3.1 or later) [linewidthScaleFactor &inputOutputLabel; &SFFloatLabel; &#34;0&#34;]&#10;linewidthScaleFactor is a scale factor multiplied by&#10;browser-dependent nominal linewidth,&#10;mapped to nearest available line width.&#10;Values zero or less provide minimum available line width." name="linewidthScaleFactor"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;lineProperties&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/Color.gif" tooltip="(X3D version 4.0 draft) [X3DAppearanceChildNode] PointProperties allows precise fine-grained control over the rendering style of PointSet node points inside the same Shape.&#10;Hint: DEF/USE copies of a single node can provide a similar &quot;look + feel&quot; style for related shapes in a scene.&#10;Hint: When an X3DTextureNode is defined in the same Appearance instance as PointProperties node, the points of a PointSet shall be displayed as point sprites using the given texture(s).&#10;Warning: requires X3D profile='Full' or else include &lt;component name='Shape' level='5'/&gt;" name="PointProperties">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[attenuation &inputOutputLabel; &SFVec3fLabel; &#34;1 0 0&#34;] [0,+&#8734;)&#10;attenuation array values [a, b, c] are set to default values if undefined. Together these parameters define attenuation factor 1/(a + b×r + c×r^2) where r is the distance from observer position (current viewpoint) to each point.&#10;Hint: nominal point size is multiplied by attenuation factor and then clipped to a minimum value of pointSizeMinValue × minimum renderable point size, then clipped to maximum size of pointSizeMaxValue × minimum renderable point size." name="attenuation"/>
        <!--<attribute tooltip="[colorMode &inputOutputLabel; &SFStringLabel; (POINT_COLOR|TEXTURE_COLOR|TEXTURE_AND_POINT_COLOR) &#34;TEXTURE_AND_POINT_COLOR&#34;]&#10;colorMode has blending effect on the rendering of point sprites, applying supplied color (Color node or Material emissiveColor) and texture color.&#10;Hint: POINT_COLOR shall display the RGB channels of the color instance defined in X3DMaterialNode or X3DColorNode, and the A channel of the texture if any. If no color is associated to the point, the default RGB color (0, 0, 0) shall be used.&#10;Hint: TEXTURE_COLOR shall display the original texture with its RGBA channels and regardless to the X3DMaterialNode or X3DColorNode which might be associated to the point set.&#10;Hint: TEXTURE_AND_POINT_COLOR shall display the RGBA channels of a texture added to the RGB channels of the color defined in X3DMaterialNode or X3DColorNode node, and the A channel of the texture if any. If no color is associated to the point, the result shall be exactly the same as TEXTURE_COLOR." name="colorMode"/>-->
        <!-- Mantis 1393, remove PointProperties markertype, deferred to X3D4.1 <attribute tooltip="[markerType &inputOutputLabel; &SFInt32Label; &#34;1&#34;]&#10;markerType selects a marker display type for points from ISO/IEC 9973 International Register of Graphical Items.&#10;1=Dot ,&#10;2=Plus sign,&#10;3=Asterisk,&#10;4=Circle,&#10;5=Diagonal cross,&#10;6=Meteorological Station Circle, one okta of cloud,&#10;7=Meteorological Station Circle, two oktas of cloud,&#10;8=Meteorological Station Circle, three oktas of cloud,&#10;9=Meteorological Station Circle, four oktas of cloud,&#10;10=Meteorological Station Circle, five oktas of cloud,&#10;11=Meteorological Station Circle, six oktas of cloud,&#10;12=Meteorological Station Circle, seven oktas of cloud,&#10;13=Meteorological Station Circle, eigth oktas of cloud,&#10;14=Meteorological Station Circle, sky obscured,&#10;15=Meteorological Station Circle, sky not observed,&#10;16=Meteorological Automatic Station Circle, no cloud,&#10;17=Meteorological Automatic Station Circle, one okta of cloud,&#10;18=Meteorological Automatic Station Circle, two oktas of cloud,&#10;19=Meteorological Automatic Station Circle, three oktas of cloud,&#10;20=Meteorological Automatic Station Circle, four oktas of cloud,&#10;21=Meteorological Automatic Station Circle, five oktas of cloud,&#10;22=Meteorological Automatic Station Circle, six oktas of cloud,&#10;23=Meteorological Automatic Station Circle, seven oktas of cloud,&#10;24=Meteorological Automatic Station Circle, eight oktas of cloud,&#10;25=Meteorological Automatic Station Circle, sky obscured,&#10;26=Meteorological Automatic Station Circle, sky not observed,&#10;Hint: an ockta is one eighth of the total area of the celestial dome; used as a measure of cloudiness (one okta means that one eighth of the sky is obscured, two oktas that one quarter is obscured, and so on). https://en.wiktionary.org/wiki/okta&#10;Hint: detailed descriptions of markerType values are found at the ISO/IEC 9973 International Register of Graphical Items https://www.iso.org/jtc1/sc24/register at https://isotc.iso.org/livelink/livelink/fetch/-8916524/8916549/8916590/6208440/class_pages/markertype.html" name="markerType"/> -->
            <attribute tooltip="[pointSizeMaxValue &inputOutputLabel; &SFFloatLabel; &#34;1&#34;] [0,+&#8734;)&#10;pointSizeMaxValue is maximum allowed scaling factor on nominal browser point scaling.&#10;Warning: maintain pointSizeMinValue &lt;= pointSizeMaxValue." name="pointSizeMaxValue"/>
            <attribute tooltip="[pointSizeMinValue &inputOutputLabel; &SFFloatLabel; &#34;1&#34;] [0,+&#8734;)&#10;pointSizeMinValue is minimum allowed scaling factor on nominal browser point scaling.&#10;Warning: maintain pointSizeMinValue &lt;= pointSizeMaxValue." name="pointSizeMinValue"/>
            <attribute tooltip="[pointSizeScaleFactor &inputOutputLabel; &SFFloatLabel; &#34;1&#34;] [1,+&#8734;)&#10;Nominal rendered point size is a browser-dependent minimum renderable point size, which is then multiplied by an additional pointSizeScaleFactor (which is greater than or equal to 1).&#10;Hint: additional sizing modifications are determined by pointSizeMinValue, pointSizeMaxValue, and attenuation array." name="pointSizeScaleFactor"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;lineProperties&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/Color.gif" tooltip="[X3DNode] TextureProperties allows precise fine-grained control over application of image textures to geometry.&#10;Warning: requires X3D profile='Full' or else include &lt;component name='Shape' level='2'/&gt;&#10;Hint: Texture mapping https://en.wikipedia.org/wiki/Texture_mapping" name="TextureProperties">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[anisotropicDegree &inputOutputLabel; &SFFloatLabel; &#34;1&#34;] [1,+&#8734;)&#10;anisotropicDegree defines minimum degree of anisotropy to account for in texture filtering (1=no effect for symmetric filtering, otherwise provide higher value). At least 2-to-1 anisotropy is often supported in low-level graphics rendering software and hardware, relative to horizontal and vertical directions.&#10;Hint: Anisotropy indicates directional dependence of properties. https://en.wikipedia.org/wiki/Anisotropy&#10;Hint: OpenGL EXT_texture_filter_anisotropic https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_texture_filter_anisotropic.txt" name="anisotropicDegree"/>
            <attribute tooltip="[borderColor &inputOutputLabel; &SFColorRGBALabel; &#34;0 0 0 0&#34;] [0,1]&#10;borderColor defines border pixel color.&#10;Hint: X3D Scene Authoring Hints, Color https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#Color" name="borderColor"/>
            <attribute tooltip="[borderWidth &inputOutputLabel; &SFInt32Label; &#34;0&#34;] [0,+&#8734;)&#10;borderWidth number of pixels for texture border." name="borderWidth"/>
            <attribute tooltip="[boundaryModeS &inputOutputLabel; &SFStringLabel; &TextureBoundaryModeValues; REPEAT]&#10;boundaryModeS describes handling of texture-coordinate boundaries.&#10;Warning: do not wrap extra quotation marks  around these SFString enumeration values, since &#34;quotation&#34; &#34;marks&#34; are only used for MFString values.&#10;Hint: X3D Architecture Table 18.7 Texture boundary modes https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/texturing.html#t-TextureBoundaryModes for details." name="boundaryModeS"/>
            <attribute tooltip="[boundaryModeT &inputOutputLabel; &SFStringLabel; &TextureBoundaryModeValues; REPEAT]&#10;boundaryModeT describes handling of texture-coordinate boundaries.&#10;Warning: do not wrap extra quotation marks  around these SFString enumeration values, since &#34;quotation&#34; &#34;marks&#34; are only used for MFString values.&#10;Hint: X3D Architecture Table 18.7 Texture boundary modes https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/texturing.html#t-TextureBoundaryModes for details." name="boundaryModeT"/>
            <attribute tooltip="[boundaryModeR &inputOutputLabel; &SFStringLabel; &TextureBoundaryModeValues; REPEAT]&#10;boundaryModeR describes handling of texture-coordinate boundaries.&#10;Warning: do not wrap extra quotation marks  around these SFString enumeration values, since &#34;quotation&#34; &#34;marks&#34; are only used for MFString values.&#10;Hint: X3D Architecture Table 18.7 Texture boundary modes https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/texturing.html#t-TextureBoundaryModes for details." name="boundaryModeR"/>
            <attribute tooltip="[generateMipMaps &initializeOnlyLabel; &SFBoolLabel; &#34;false&#34;]&#10;Determines whether MIPMAPs are generated for texture images.&#10;Warning: must declare generateMipMaps='true' for minificationFilter modes with MIPMAP in their value.&#10;Hint: mipmap preprocessing is a low-level rendering technique that can increase rendering speed and reduce aliasing artifacts.&#10;Hint: Mipmap pyramids are pre-calculated, optimized sequences of images, each of which is a progressively lower resolution representation of the same image. The height and width of each image level in the mipmap is a power of two smaller than the previous level.&#10;Hint: Aliasing https://en.wikipedia.org/wiki/Aliasing and Clipping  https://en.wikipedia.org/wiki/Clipping_(computer_graphics)&#10;Hint: Mipmap https://en.wikipedia.org/wiki/Mipmap" name="generateMipMaps"/>
            <attribute tooltip="[magnificationFilter &inputOutputLabel; &SFStringLabel; &TextureMagnificationModeValues; FASTEST]&#10;magnificationFilter indicates texture filter when image is smaller than screen space representation.&#10;Warning: do not wrap extra quotation marks  around these SFString enumeration values, since &#34;quotation&#34; &#34;marks&#34; are only used for MFString values.&#10;Hint: X3D Architecture Table 18.8 Texture magnification modes https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/texturing.html#t-TextureMagnificationModes for details." name="magnificationFilter"/>
            <attribute tooltip="[minificationFilter &inputOutputLabel; &SFStringLabel; &TextureMinificationModeValues; FASTEST]&#10;minificationFilter indicates texture filter when image is larger than screen space representation.&#10;Warning: do not wrap extra quotation marks  around these SFString enumeration values, since &#34;quotation&#34; &#34;marks&#34; are only used for MFString values.&#10;Hint: X3D Architecture Table 18.9 Texture minification modes https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/texturing.html#t-TextureMinificationModes for details." name="minificationFilter"/>
            <attribute tooltip="[textureCompression &inputOutputLabel; &SFStringLabel; &TextureCompressionModeValues; FASTEST]&#10;textureCompression indicates compression algorithm selection mode.&#10;Warning: do not wrap extra quotation marks  around these SFString enumeration values, since &#34;quotation&#34; &#34;marks&#34; are only used for MFString values.&#10;Hint: X3D Architecture Table 18.10 Texture compression modes https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/texturing.html#t-TextureCompressionModes for details.&#10;Hint: Texture compression https://en.wikipedia.org/wiki/Texture_compression" name="textureCompression"/>
            <attribute tooltip="[texturePriority &inputOutputLabel; &SFFloatLabel; &#34;0&#34;] [0,1]&#10;texturePriority defines relative priority for this texture when allocating texture memory, an important rendering resource in graphics-card hardware.  Default value 0 is lowest, 1 is highest." name="texturePriority"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;lineProperties&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/LoadSensor.gif" tooltip="[X3DNetworkSensorNode] LoadSensor generates events as watchList child nodes are either loaded or fail to load. Changing watchlist child nodes restarts the LoadSensor.&#10;Hint: use multiple LoadSensor nodes to track multiple loading nodes individually.&#10;Hint: Background node is not sensed by LoadSensor due to node typing and  multiple-image ambiguity, alternatively utilize TextureBackground node with multiple ImageTexture nodes each referenced inside LoadSensor.&#10;Warning: children (watchList) child nodes are not rendered, so normally USE copies of other nodes to sense load status.&#10;Hint: use Inline &apos;load&apos; field to prompt or defer loading.&#10;Warning: new X3D node, not supported in VRML97.&#10;Hint: example scenes and authoring assets at https://x3dgraphics.com/examples/X3dForWebAuthors/Chapter12EnvironmentSensorSound&#10;Warning: 'children' field originally named 'watchList' in X3Dv3. https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#fieldNameChanges" name="LoadSensor">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="(X3D version 4.0 draft) [children &inputOutputLabel; &MFNodeLabel;, empty list] [X3DUrlObject]&#10;The children field monitors one or more USE nodes that contain a valid url field.&#10;Warning: field originally named 'watchList' in X3Dv3. https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#fieldNameChanges&#10;Hint: if watchList contains multiple USE nodes, output events are only generated when all children have loaded successfully or at least one node has failed.&#10;Hint: if individual load status information is desired for different nodes, multiple LoadSensor nodes may be used, each with a single watchList element.&#10;Hint: Anchor nodes can be monitored for binding a target Viewpoint, loading a new scene, or loading a new scene in a new window." name="children"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="(X3D version 4.0 draft) [description &inputOutputLabel; &SFStringLabel; #IMPLIED]&#10;Author-provided prose that describes intended purpose of the node.&#10;Hint: many XML tools substitute XML character references for special characters automatically if needed within an attribute value (such as &amp;#38; for &#38; ampersand character, or &amp;#34; for &#34; quotation-mark character)." name="description"/>
            <attribute tooltip="[enabled &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Enables/disables node operation." name="enabled"/>
            <attribute tooltip="[timeOut &inputOutputLabel; &SFTimeLabel; &#34;0&#34; #IMPLIED]&#10;Time in seconds of maximum load duration prior to declaring failure.&#10;Default value zero means use browser defaults." name="timeOut"/>
            <attribute tooltip="[isActive &outputOnlyLabel; &SFBoolLabel; #FIXED &#34;&#34;]&#10;isActive true/false events are sent when sensing starts/stops.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="isActive"/>
            <attribute tooltip="[isLoaded &outputOnlyLabel; &SFBoolLabel; #FIXED &#34;&#34;]&#10;Notify when all watchList child nodes are loaded, or at least one has failed.&#10;Sends true on successfully loading all watchList child nodes.&#10;Sends false on timeOut of any watchList child nodes,&#10;failure of any watchList child nodes to load,&#10;or no local copies available and no network present.&#10;Hint: use multiple LoadSensor nodes to track multiple loading nodes individually.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="isLoaded"/>
            <attribute tooltip="[loadTime &outputOnlyLabel; &SFTimeLabel; #FIXED &#34;&#34;]&#10;Time of successful load complete, not sent on failure.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="loadTime"/>
            <attribute tooltip="[progress &outputOnlyLabel; &SFFloatLabel; #FIXED &#34;&#34;] [0,1]&#10;Sends 0.0 on start and 1.0 on completion.&#10;Intermediate values are browser dependent and always increasing (may indicate fraction of bytes, fraction of expected time or another metric).&#10;Hint: only 0 and 1 events are guaranteed.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="progress"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/LOD.gif" tooltip="[X3DGroupingNode,X3DVisibleObject] LOD (Level Of Detail) uses camera-to-object distance to switch among contained child levels.&#10;(Contained nodes are now called 'children' rather than 'level',&#10;for consistent naming among all GroupingNodeType nodes.)&#10;LOD range values go from near to far (as child geometry gets simpler for better performance).&#10;For n range values, you must have n+1 children levels!&#10;Only currently selected children level is rendered, but all levels continue to send/receive events.&#10;Hint: can add &lt;WorldInfo info='null node'/&gt; as a nonrendering, invisible final (or initial or intermediate) child node that also documents the LOD switch-over rationale.&#10;Hint: insert a Shape node before adding geometry or Appearance.&#10;Hint: GeoViewpoint OrthoViewpoint and Viewpoint share the same binding stack, so no more than one of these nodes can be bound and active at a given time.&#10;Warning: do not include GeoViewpoint OrthoViewpoint or Viewpoint as a child of LOD or Switch, instead use ViewpointGroup as parent to constrain location proximity where the viewpoint is available to user.&#10;Warning: results are undefined if a bindable node (Background, Fog, NavigationInfo, OrthoViewpoint, TextureBackground, Viewpoint) is a contained descendant node of either LOD or Switch. Avoid this authoring pattern.&#10;Hint: security mechanisms such as encryption and authentication can be applied to high levels of detail, allowing authors to protect intellectual property at high resolution for authorized users while still rendering simple unrestricted models for other users.&#10;Warning: nested LOD (and/or GeoLOD) nodes with overlapping range intervals can lead to unexpected or undefined behavior.&#10;Hint: contained nodes must have type X3DChildNode, such as Group or Transform or Shape.&#10;Warning: LOD is not allowed as a direct parent of Appearance, Material, Color, Coordinate, Normal or Texture nodes, instead ensure that a Shape is present.&#10;Hint: apply containerField='shape' if parent node is CADFace.&#10;Hint: ConformanceNist X3D Examples Archive https://www.web3d.org/x3d/content/examples/ConformanceNist/SpecialGroups/LOD" name="LOD">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[children &inputOutputLabel; &MFNodeLabel;, empty list] [X3DChildNode]&#10;Grouping nodes contain an ordered list of children nodes.&#10;Hint: Each grouping node defines a coordinate space for its children, relative to the coordinate space of its parent node. Thus transformations accumulate down the scene graph hierarchy.&#10;Hint: inputOnly MFNode addChildren field can append new X3DChildNode nodes via a ROUTE connection, duplicate input nodes (i.e. matching DEF, USE values) are ignored.&#10;Hint: inputOnly MFNode removeChildren field can remove nodes from the children list, unrecognized input nodes (i.e. nonmatching DEF, USE values) are ignored.&#10;Hint: X3D Architecture 10.2.1 Grouping and children node types, https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#GroupingAndChildrenNodes" name="children"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[forceTransitions &initializeOnlyLabel; &SFBoolLabel; &#34;false&#34;]&#10;Whether to perform every range-based transition,&#10;regardless of browser optimizations that might otherwise occur." name="forceTransitions"/>
            <attribute tooltip="[center &initializeOnlyLabel; &SFVec3fLabel; &#34;0 0 0&#34;]&#10;Viewpoint distance-measurement offset from origin of local coordinate system, used for LOD node distance calculations." name="center"/>
            <attribute tooltip="[range &initializeOnlyLabel; &MFFloatLabel; #IMPLIED] (0,+&#8734;)&#10;Specifies ideal distances at which to switch between levels.&#10;The range field is a floating-point array of camera-to-object distance transitions for each child level,&#10;where range values go from near to far.&#10;For n range values, you must have n+1 child levels!&#10;Hint: can add &lt;WorldInfo info='null node'/&gt; as a nonrendering, invisible final (or initial or intermediate) child node that also documents the LOD switch-over rationale.&#10;Hint: not setting range values indicates that level switching can be optimized automatically based on performance." name="range"/>
            <attribute tooltip="[bboxCenter &initializeOnlyLabel; &SFVec3fLabel; &#34;0 0 0&#34;]&#10;Bounding box center accompanies bboxSize and provides an optional hint for bounding box position offset from origin of local coordinate system.&#10;Hint: precomputation and inclusion of bounding box information can speed up the initialization of large detailed models, with a corresponding cost of increased file size.&#10;Hint: X3D Architecture, 10.2.2 Bounding boxes https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#BoundingBoxes&#10;Hint:  X3D Architecture, 10.3.1 X3DBoundedObject https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#X3DBoundedObject" name="bboxCenter"/>
            <attribute tooltip="[bboxSize &initializeOnlyLabel; &SFVec3fLabel; &#34;-1 -1 -1&#34;] or [0,+&#8734;)&#10;Bounding box size is usually omitted, and can easily be calculated automatically by an X3D player at scene-loading time with minimal computational cost. Bounding box size can also be defined as an optional authoring hint that suggests an optimization or constraint.&#10;Hint: can be useful for collision computations or inverse-kinematics (IK) engines.&#10;Hint: precomputation and inclusion of bounding box information can speed up the initialization of large detailed models, with a corresponding cost of increased file size.&#10;Hint: X3D Architecture, 10.2.2 Bounding boxes https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#BoundingBoxes&#10;Hint:  X3D Architecture, 10.3.1 X3DBoundedObject https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#X3DBoundedObject" name="bboxSize"/>
            <attribute tooltip="(X3D version 4.0 draft) [bboxDisplay &inputOutputLabel; &SFBoolLabel; &#34;false&#34;]&#10;Whether to display bounding box for associated geometry, aligned with world coordinates.&#10;Hint: the bounding box is displayed regardless of whether contained content is visible." name="bboxDisplay"/>
            <attribute tooltip="(X3D version 4.0 draft) [visible &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Whether or not renderable content within this node is visually displayed.&#10;Hint: the visible field has no effect on animation behaviors, event passing or other non-visual characteristics.&#10;Hint: content must be visible to be collidable and to be pickable." name="visible"/>
            <attribute tooltip="[level_changed &outputOnlyLabel; &SFInt32Label; #FIXED &#34;&#34;]&#10;Output event that reports current level of LOD children whenever switching occurs.&#10;Hint: LOD level index counting starts at zero. Thus level_changed value of -1 means no choice, 0 means initial child, 1 means second child, etc.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="level_changed"/>
            <attribute tooltip="[containerField type NMTOKEN (children|proxy|rootNode|shape|skin) &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/Material.gif" tooltip="[X3DOneSidedMaterialNode] Material specifies surface rendering properties for associated geometry nodes.&#10;Material attributes are used by the X3D lighting equations during rendering.&#10;Hint: insert Shape and Appearance nodes before adding material.&#10;Hint: DEF/USE copies of a single node can provide a similar &quot;look + feel&quot; style for related shapes in a scene.&#10;Hint: X3D Scene Authoring Hints, Color https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#Color&#10;Hint: X3D Example Archives, Basic, Universal Media Materials https://www.web3d.org/x3d/content/examples/Basic/UniversalMediaMaterials&#10;Hint: X3D Architecture 17.2.2 Lighting model https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/lighting.html#Lightingmodel&#10;Hint: Rendering https://en.wikipedia.org/wiki/Rendering_(computer_graphics)&#10;Hint: 3D rendering https://en.wikipedia.org/wiki/3D_rendering&#10;Hint: Physically based rendering (PBR) https://en.wikipedia.org/wiki/Physically_based_rendering" name="Material">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[ambientIntensity &inputOutputLabel; &SFFloatLabel; &#34;0.2&#34;] [0,1]&#10;how much ambient omnidirectional light is reflected from all light sources.&#10;Interchange profile hint: this field may be ignored, applying the default value regardless." name="ambientIntensity"/>
            <attribute tooltip="(X3D version 4.0 draft) [ambientTexture &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DSingleTextureNode]&#10;When applying ambientIntensity for this material node, the contained texture provides Physically Based Rendering (PBR) modulation for each pixel.&#10;Hint: if texture node is NULL or unspecified, no effect is applied to material values.&#10;Hint: contained texture node must include containerField=&apos;ambientTexture&apos;" name="ambientTexture"/>
            <attribute tooltip="(X3D version 4.0 draft) [ambientTextureMapping &inputOutputLabel; type NMTOKEN #IMPLIED]&#10;The mapping label identifies which texture coordinates and transformations are used to compute texture effects from corresponding geometry on a given material.&#10;Hint: TODO support planned to perform multiple-node mapping validation checks using X3D Schematron or X3D Validator https://savage.nps.edu/X3dValidator" name="ambientTextureMapping"/>
            <attribute tooltip="[diffuseColor &inputOutputLabel; &SFColorLabel; &#34;0.8 0.8 0.8&#34;] [0,1]&#10;how much direct, angle-dependent light is reflected from all light sources.&#10;Hint: only emissiveColor affects IndexedLineSet, LineSet and PointSet." name="diffuseColor"/>
            <attribute tooltip="(X3D version 4.0 draft) [diffuseTexture &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DSingleTextureNode]&#10;When applying diffuseColor for this material node, the contained texture provides Physically Based Rendering (PBR) modulation for each pixel.&#10;Hint: if texture node is NULL or unspecified, no effect is applied to material values.&#10;Hint: contained texture node must include containerField=&apos;diffuseTexture&apos;" name="diffuseTexture"/>
            <attribute tooltip="(X3D version 4.0 draft) [diffuseTextureMapping &inputOutputLabel; type NMTOKEN #IMPLIED]&#10;The mapping label identifies which texture coordinates and transformations are used to compute texture effects from corresponding geometry on a given material.&#10;Hint: TODO support planned to perform multiple-node mapping validation checks using X3D Schematron or X3D Validator https://savage.nps.edu/X3dValidator" name="diffuseTextureMapping"/>
            <attribute tooltip="[emissiveColor &inputOutputLabel; &SFColorLabel; &#34;0 0 0&#34;] [0,1]&#10;how much glowing light is emitted from this object.&#10;Hint: emissiveColors glow even when all lights are off.&#10;Hint: reset diffuseColor from default (.8 .8 .8) to (0 0 0) to avoid washout.&#10;Hint: only emissiveColor affects IndexedLineSet, LineSet and PointSet.&#10;Warning: bright emissiveColor values can wash out other colors and some textures." name="emissiveColor"/>
            <attribute tooltip="(X3D version 4.0 draft) [emissiveTexture &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DSingleTextureNode]&#10;When applying emissiveColor for this material node, the contained texture provides Physically Based Rendering (PBR) modulation for each pixel.&#10;Hint: if texture node is NULL or unspecified, no effect is applied to material values.&#10;Hint: contained texture node must include containerField=&apos;emissiveTexture&apos;" name="emissiveTexture"/>
            <attribute tooltip="(X3D version 4.0 draft) [emissiveTextureMapping &inputOutputLabel; type NMTOKEN #IMPLIED]&#10;The mapping label identifies which texture coordinates and transformations are used to compute texture effects from corresponding geometry on a given material.&#10;Hint: TODO support planned to perform multiple-node mapping validation checks using X3D Schematron or X3D Validator https://savage.nps.edu/X3dValidator" name="emissiveTextureMapping"/>
            <attribute tooltip="(X3D version 4.0 draft) [normalScale &inputOutputLabel; &SFFloatLabel; &#34;1&#34;] [0,&#8734;]&#10;normalScale controls the degree to which normalTexture RGB values apply XYZ-normal bump mapping to pixels in the parent material.&#10;Hint: normalScale only affects computation of normalTexture modulations that affect lighting of characteristics of the parent Material and has no relation to normal vectors defined by corresponding geometry.&#10;Hint: normalTexture techniques apply Bump mapping https://en.wikipedia.org/wiki/Bump_mapping" name="normalScale"/>
            <attribute tooltip="(X3D version 4.0 draft) [normalTexture &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DSingleTextureNode]&#10;When applying normalScale for this material node, the contained texture modulates the texture across the surface.&#10;Hint: normalTexture techniques apply Bump mapping https://en.wikipedia.org/wiki/Bump_mapping&#10;Hint: if texture node is NULL or unspecified, no effect is applied to material values.&#10;Hint: contained texture node must include containerField=&apos;normalTexture&apos;" name="normalTexture"/>
            <attribute tooltip="(X3D version 4.0 draft) [normalTextureMapping &inputOutputLabel; type NMTOKEN #IMPLIED]&#10;The mapping label identifies which texture coordinates and transformations are used to compute texture effects from corresponding geometry on a given material.&#10;Hint: TODO support planned to perform multiple-node mapping validation checks using X3D Schematron or X3D Validator https://savage.nps.edu/X3dValidator" name="normalTextureMapping"/>
            <attribute tooltip="(X3D version 4.0 draft) [occlusionStrength &inputOutputLabel;&SFFloatLabel; &#34;1&#34;] [0,1]&#10;occlusionStrength indicates areas of indirect lighting, typically called ambient occlusion. Higher values indicate areas that should receive full indirect lighting and lower values indicate no indirect lighting.&#10;Hint: only the Red channel of the texture is used for occlusion computations, other channels are ignored.&#10;Hint: https://en.wikipedia.org/wiki/Ambient_occlusion" name="occlusionStrength"/>
            <attribute tooltip="(X3D version 4.0 draft) [occlusionTexture &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DSingleTextureNode]&#10;When applying occlusionStrength for this material node, the contained texture provides Physically Based Rendering (PBR) modulation for each pixel.&#10;Hint: if texture node is NULL or unspecified, no effect is applied to material values.&#10;Hint: contained texture node must include containerField=&apos;occlusionTexture&apos;" name="occlusionTexture"/>
            <attribute tooltip="(X3D version 4.0 draft) [occlusionTextureMapping &inputOutputLabel; type NMTOKEN #IMPLIED]&#10;The mapping label identifies which texture coordinates and transformations are used to compute texture effects from corresponding geometry on a given material.&#10;Hint: TODO support planned to perform multiple-node mapping validation checks using X3D Schematron or X3D Validator https://savage.nps.edu/X3dValidator" name="occlusionTextureMapping"/>
            <attribute tooltip="[shininess &inputOutputLabel; &SFFloatLabel; &#34;0.2&#34;] [0,1]&#10;Lower shininess values provide soft specular glows, while higher values result in sharper, smaller highlights.&#10;Interchange profile hint: this field may be ignored, applying the default value regardless." name="shininess"/>
            <attribute tooltip="(X3D version 4.0 draft) [shininessTexture &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DSingleTextureNode]&#10;When applying shininess for this material node, the contained texture provides Physically Based Rendering (PBR) modulation for each pixel.&#10;Hint: if texture node is NULL or unspecified, no effect is applied to material values.&#10;Hint: contained texture node must include containerField=&apos;shininessTexture&apos;" name="shininessTexture"/>
            <attribute tooltip="(X3D version 4.0 draft) [shininessTextureMapping &inputOutputLabel; type NMTOKEN #IMPLIED]&#10;The mapping label identifies which texture coordinates and transformations are used to compute texture effects from corresponding geometry on a given material.&#10;Hint: TODO support planned to perform multiple-node mapping validation checks using X3D Schematron or X3D Validator https://savage.nps.edu/X3dValidator" name="shininessTextureMapping"/>
            <attribute tooltip="[specularColor &inputOutputLabel; &SFColorLabel; &#34;0 0 0&#34;] [0,1]&#10;specular highlights are brightness reflections (example: shiny spots on an apple).&#10;Interchange profile hint: this field may be ignored, applying the default value regardless." name="specularColor"/>
            <attribute tooltip="(X3D version 4.0 draft) [specularTexture &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DSingleTextureNode]&#10;When applying specularColor for this material node, the contained texture provides Physically Based Rendering (PBR) modulation for each pixel.&#10;Hint: if texture node is NULL or unspecified, no effect is applied to material values.&#10;Hint: contained texture node must include containerField=&apos;specularTexture&apos;" name="specularTexture"/>
            <attribute tooltip="(X3D version 4.0 draft) [specularTextureMapping &inputOutputLabel; type NMTOKEN #IMPLIED]&#10;The mapping label identifies which texture coordinates and transformations are used to compute texture effects from corresponding geometry on a given material.&#10;Hint: TODO support planned to perform multiple-node mapping validation checks using X3D Schematron or X3D Validator https://savage.nps.edu/X3dValidator" name="specularTextureMapping"/>
            <attribute tooltip="[transparency &inputOutputLabel; &SFFloatLabel; &#34;0&#34;] [0,1]&#10;how &quot;clear&quot; an object is: 1.0 is completely transparent, 0.0 is completely opaque.&#10;Interchange profile hint: transparency &lt; .5 opaque, transparency &gt; .5 transparent." name="transparency"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;material&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/Material.gif" tooltip="(X3D version 4.0 draft) [X3DOneSidedMaterialNode] PhysicalMaterial specifies surface rendering properties for associated geometry nodes.&#10;Material attributes are used by the X3D lighting equations during rendering.&#10;Hint: insert Shape and Appearance nodes before adding material.&#10;Hint: DEF/USE copies of a single node can provide a similar &quot;look + feel&quot; style for related shapes in a scene.&#10;Hint: X3D Scene Authoring Hints, Color https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#Color&#10;Hint: X3D Example Archives, Basic, Universal Media Materials https://www.web3d.org/x3d/content/examples/Basic/UniversalMediaMaterials&#10;Hint: X3D Architecture 17.2.2 Lighting model https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/lighting.html#Lightingmodel&#10;Hint: Rendering https://en.wikipedia.org/wiki/Rendering_(computer_graphics)&#10;Hint: 3D rendering https://en.wikipedia.org/wiki/3D_rendering&#10;Hint: Physically based rendering (PBR) https://en.wikipedia.org/wiki/Physically_based_rendering" name="PhysicalMaterial">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="(X3D version 4.0 draft) [baseColor &inputOutputLabel; &SFColorLabel; &#34;1 1 1&#34;] [0,1]&#10;similar to diffuseColor, TODO define more precisely." name="baseColor"/>
            <attribute tooltip="(X3D version 4.0 draft) [baseTexture &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DSingleTextureNode]&#10;When applying baseColor for this material node, the contained texture provides Physically Based Rendering (PBR) modulation for each pixel.&#10;Hint: if texture node is NULL or unspecified, no effect is applied to material values.&#10;Hint: contained texture node must include containerField=&apos;baseTexture&apos;" name="baseTexture"/>
            <attribute tooltip="(X3D version 4.0 draft) [baseTextureMapping &inputOutputLabel; type NMTOKEN #IMPLIED]&#10;The mapping label identifies which texture coordinates and transformations are used to compute texture effects from corresponding geometry on a given material.&#10;Hint: TODO support planned to perform multiple-node mapping validation checks using X3D Schematron or X3D Validator https://savage.nps.edu/X3dValidator" name="baseTextureMapping"/>
            <attribute tooltip="[emissiveColor &inputOutputLabel; &SFColorLabel; &#34;0 0 0&#34;] [0,1]&#10;how much glowing light is emitted from this object.&#10;Hint: emissiveColors glow even when all lights are off.&#10;Hint: reset diffuseColor from default (.8 .8 .8) to (0 0 0) to avoid washout.&#10;Hint: only emissiveColor affects IndexedLineSet, LineSet and PointSet.&#10;Warning: bright emissiveColor values can wash out other colors and some textures." name="emissiveColor"/>
            <attribute tooltip="(X3D version 4.0 draft) [emissiveTexture &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DSingleTextureNode]&#10;When applying emissiveColor for this material node, the contained texture provides Physically Based Rendering (PBR) modulation for each pixel.&#10;Hint: if texture node is NULL or unspecified, no effect is applied to material values.&#10;Hint: contained texture node must include containerField=&apos;emissiveTexture&apos;" name="emissiveTexture"/>
            <attribute tooltip="(X3D version 4.0 draft) [emissiveTextureMapping &inputOutputLabel; type NMTOKEN #IMPLIED]&#10;The mapping label identifies which texture coordinates and transformations are used to compute texture effects from corresponding geometry on a given material.&#10;Hint: TODO support planned to perform multiple-node mapping validation checks using X3D Schematron or X3D Validator https://savage.nps.edu/X3dValidator" name="emissiveTextureMapping"/>
            <attribute tooltip="(X3D version 4.0 draft) [metallic &inputOutputLabel; &SFFloatLabel; &#34;1&#34;] [0,1]&#10;metallic is a PBR parameter (TODO elaborate)" name="metallic"/>
            <attribute tooltip="(X3D version 4.0 draft) [metallicRoughnessTexture &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DSingleTextureNode]&#10;When applying metallic for this material node, the contained texture provides Physically Based Rendering (PBR) modulation for each pixel.&#10;Hint: if texture node is NULL or unspecified, no effect is applied to material values.&#10;Hint: contained texture node must include containerField=&apos;metallicRoughnessTexture&apos;" name="metallicRoughnessTexture"/>
            <attribute tooltip="(X3D version 4.0 draft) [metallicRoughnessTextureMapping &inputOutputLabel; type NMTOKEN #IMPLIED]&#10;The mapping label identifies which texture coordinates and transformations are used to compute texture effects from corresponding geometry on a given material.&#10;Hint: TODO support planned to perform multiple-node mapping validation checks using X3D Schematron or X3D Validator https://savage.nps.edu/X3dValidator" name="metallicRoughnessTextureMapping"/>
            <attribute tooltip="(X3D version 4.0 draft) [normalScale &inputOutputLabel; &SFFloatLabel; &#34;1&#34;] [0,&#8734;]&#10;normalScale controls the degree to which normalTexture RGB values apply XYZ-normal bump mapping to pixels in the parent material.&#10;Hint: normalScale only affects computation of normalTexture modulations that affect lighting of characteristics of the parent Material and has no relation to normal vectors defined by corresponding geometry.&#10;Hint: normalTexture techniques apply Bump mapping https://en.wikipedia.org/wiki/Bump_mapping" name="normalScale"/>
            <attribute tooltip="(X3D version 4.0 draft) [normalTexture &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DSingleTextureNode]&#10;When applying normalScale for this material node, the contained texture modulates the texture across the surface.&#10;Hint: normalTexture techniques apply Bump mapping https://en.wikipedia.org/wiki/Bump_mapping&#10;Hint: if texture node is NULL or unspecified, no effect is applied to material values.&#10;Hint: contained texture node must include containerField=&apos;normalTexture&apos;" name="normalTexture"/>
            <attribute tooltip="(X3D version 4.0 draft) [normalTextureMapping &inputOutputLabel; type NMTOKEN #IMPLIED]&#10;The mapping label identifies which texture coordinates and transformations are used to compute texture effects from corresponding geometry on a given material.&#10;Hint: TODO support planned to perform multiple-node mapping validation checks using X3D Schematron or X3D Validator https://savage.nps.edu/X3dValidator" name="normalTextureMapping"/>
            <attribute tooltip="(X3D version 4.0 draft) [occlusionStrength &inputOutputLabel; &SFFloatLabel; &#34;1&#34;] [0,1]&#10;occlusionStrength indicates areas of indirect lighting, typically called ambient occlusion. Higher values indicate areas that should receive full indirect lighting and lower values indicate no indirect lighting.&#10;Hint: only the Red channel of the texture is used for occlusion computations, other channels are ignored.&#10;Hint: https://en.wikipedia.org/wiki/Ambient_occlusion" name="occlusionStrength"/>
            <attribute tooltip="(X3D version 4.0 draft) [occlusionTexture &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DSingleTextureNode]&#10;When applying occlusionStrength for this material node, the contained texture provides Physically Based Rendering (PBR) modulation for each pixel.&#10;Hint: if texture node is NULL or unspecified, no effect is applied to material values.&#10;Hint: contained texture node must include containerField=&apos;occlusionTexture&apos;" name="occlusionTexture"/>
            <attribute tooltip="(X3D version 4.0 draft) [occlusionTextureMapping &inputOutputLabel; type NMTOKEN #IMPLIED]&#10;The mapping label identifies which texture coordinates and transformations are used to compute texture effects from corresponding geometry on a given material.&#10;Hint: TODO support planned to perform multiple-node mapping validation checks using X3D Schematron or X3D Validator https://savage.nps.edu/X3dValidator" name="occlusionTextureMapping"/>
            <attribute tooltip="(X3D version 4.0 draft) [roughness &inputOutputLabel; &SFFloatLabel; &#34;1&#34;] [0,1]&#10;roughness is a PBR parameter (TODO elaborate)" name="roughness"/>
            <attribute tooltip="[transparency &inputOutputLabel; &SFFloatLabel; &#34;0&#34;] [0,1]&#10;how &quot;clear&quot; an object is: 1.0 is completely transparent, 0.0 is completely opaque.&#10;Interchange profile hint: transparency &lt; .5 opaque, transparency &gt; .5 transparent." name="transparency"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;material&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/Material.gif" tooltip="(X3D version 4.0 draft) [X3DOneSidedMaterialNode] UnlitMaterial specifies surface rendering properties for associated geometry nodes.&#10;Material attributes are used by the X3D lighting equations during rendering.&#10;Hint: insert Shape and Appearance nodes before adding material.&#10;Hint: DEF/USE copies of a single node can provide a similar &quot;look + feel&quot; style for related shapes in a scene.&#10;Hint: X3D Scene Authoring Hints, Color https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#Color&#10;Hint: X3D Example Archives, Basic, Universal Media Materials https://www.web3d.org/x3d/content/examples/Basic/UniversalMediaMaterials&#10;Hint: X3D Architecture 17.2.2 Lighting model https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/lighting.html#Lightingmodel&#10;Hint: Rendering https://en.wikipedia.org/wiki/Rendering_(computer_graphics)&#10;Hint: 3D rendering https://en.wikipedia.org/wiki/3D_rendering&#10;Hint: Physically based rendering (PBR) https://en.wikipedia.org/wiki/Physically_based_rendering&#10;Hint: Non-photorealistic rendering (NPR) https://en.wikipedia.org/wiki/Non-photorealistic_rendering&#10;Hint: Cel shading (toon shading) https://en.wikipedia.org/wiki/Cel_shading" name="UnlitMaterial">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[emissiveColor &inputOutputLabel; &SFColorLabel; &#34;1 1 1&#34;] [0,1]&#10;how much glowing light is emitted from this object.&#10;Hint: emissiveColors glow even when all lights are off.&#10;Hint: reset diffuseColor from default (.8 .8 .8) to (0 0 0) to avoid washout.&#10;Hint: only emissiveColor affects IndexedLineSet, LineSet and PointSet.&#10;Warning: bright emissiveColor values can wash out other colors and some textures." name="emissiveColor"/>
            <attribute tooltip="(X3D version 4.0 draft) [emissiveTexture &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DSingleTextureNode]&#10;When applying emissiveColor for this material node, the contained texture provides Physically Based Rendering (PBR) modulation for each pixel.&#10;Hint: if texture node is NULL or unspecified, no effect is applied to material values.&#10;Hint: contained texture node must include containerField=&apos;emissiveTexture&apos;" name="emissiveTexture"/>
            <attribute tooltip="(X3D version 4.0 draft) [emissiveTextureMapping &inputOutputLabel; type NMTOKEN #IMPLIED]&#10;The mapping label identifies which texture coordinates and transformations are used to compute texture effects from corresponding geometry on a given material.&#10;Hint: TODO support planned to perform multiple-node mapping validation checks using X3D Schematron or X3D Validator https://savage.nps.edu/X3dValidator" name="emissiveTextureMapping"/>
            <attribute tooltip="(X3D version 4.0 draft) [normalScale &inputOutputLabel; &SFFloatLabel; &#34;1&#34;] [0,&#8734;]&#10;normalScale controls the degree to which normalTexture RGB values apply XYZ-normal bump mapping to pixels in the parent material.&#10;Hint: normalScale only affects computation of normalTexture modulations that affect lighting of characteristics of the parent Material and has no relation to normal vectors defined by corresponding geometry.&#10;Hint: normalTexture techniques apply Bump mapping https://en.wikipedia.org/wiki/Bump_mapping" name="normalScale"/>
            <attribute tooltip="(X3D version 4.0 draft) [normalTexture &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DSingleTextureNode]&#10;When applying normalScale for this material node, the contained texture modulates the texture across the surface.&#10;Hint: normalTexture techniques apply Bump mapping https://en.wikipedia.org/wiki/Bump_mapping&#10;Hint: if texture node is NULL or unspecified, no effect is applied to material values.&#10;Hint: contained texture node must include containerField=&apos;normalTexture&apos;" name="normalTexture"/>
            <attribute tooltip="(X3D version 4.0 draft) [normalTextureMapping &inputOutputLabel; type NMTOKEN #IMPLIED]&#10;The mapping label identifies which texture coordinates and transformations are used to compute texture effects from corresponding geometry on a given material.&#10;Hint: TODO support planned to perform multiple-node mapping validation checks using X3D Schematron or X3D Validator https://savage.nps.edu/X3dValidator" name="normalTextureMapping"/>
            <attribute tooltip="[transparency &inputOutputLabel; &SFFloatLabel; &#34;0&#34;] [0,1]&#10;how &quot;clear&quot; an object is: 1.0 is completely transparent, 0.0 is completely opaque.&#10;Interchange profile hint: transparency &lt; .5 opaque, transparency &gt; .5 transparent." name="transparency"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;material&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/meta.gif" tooltip="[X3D statement] The meta statement provides metadata information about the X3D model, following the same naming conventions as HTML's meta tag.&#10;The name and content attributes together define key=value metadata pairs.&#10;Hint: X3D XML Encoding https://www.web3d.org/documents/specifications/19776-1/V3.3/Part01/concepts.html#Header&#10;Hint: X3D Scene Authoring Hints, meta Statements https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#metaStatements&#10;Hint: W3C HTML5 Recommendation, 4.2.5 The meta element https://www.w3.org/TR/html5/document-metadata.html#the-meta-element&#10;Warning: the META statement is capitalized in the X3D Architecture specification and in the X3D ClassicVRML Encoding.&#10;Hint: X3D Architecture 7.2.5.6 META statement https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#METAStatement" name="meta">
            <attribute tooltip="[name type &SFStringLabel; #IMPLIED]&#10;Keyword name of the meta attribute, following the same naming conventions as HTML's meta tag.&#10;Hint: for broadest searchability, use Dublin Core Metadata Initiative (DCMI) terms for name values. https://www.dublincore.org/documents/dcmi-terms&#10;Warning: Dublin Core Metadata Initiative (DCMI) requires name to be a token appendable to a URI, so normal expectation for a typical name is type NMTOKEN with no whitespace.&#10;Warning: if the name attribute is set, the http-equiv attribute should not be set.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions &#10;Hint: HTML5 section 4.2.5.1. Standard metadata names https://www.w3.org/TR/html5/document-metadata.html#standard-metadata-names &#10;Hint: HTML5 section 4.2.5.2. Other metadata names https://www.w3.org/TR/html5/document-metadata.html#other-metadata-names &#10;Hint: WHATWG Wiki MetaExtensions https://wiki.whatwg.org/wiki/MetaExtensions &#10;Warning: names are permitted to contain whitespace characters but might be inconsistent. A name value containing whitespace might not validate or match other corresponding values." name="name"/>
            <attribute tooltip="[content type CDATA #REQUIRED]&#10;The content attribute provides metadata information relevant to the name attribute provided.&#10;The name and content attributes together define key=value metadata pairs.&#10;Hint: for broadest searchability, use Dublin Core Metadata Initiative (DCMI) terms for name values. https://www.dublincore.org/documents/dcmi-terms&#10;Warning: Dublin Core Metadata Initiative (DCMI) requires name to be a token appendable to a URI, so normal expectation for a typical name is type NMTOKEN with no whitespace.&#10;Hint: alternatively the content attribute can support the http-equiv attribute.&#10;Hint: many XML tools substitute XML character references for special characters automatically if needed within an attribute value (such as &amp;#38; for &#38; ampersand character, or &amp;#34; for &#34; quotation-mark character)." name="content"/>
            <attribute tooltip="[lang type CDATA #IMPLIED]&#10;Language code, as per [IETF BCP47/RFC5646].&#10;https://www.rfc-editor.org/rfc/bcp/bcp47.txt and described in https://www.w3.org/International/questions/qa-http-and-lang&#10;Hint: Language Subtag Lookup at http://people.w3.org/rishida/utils/subelements" name="lang"/>
            <attribute tooltip="[dir type ENUMERATION #IMPLIED (ltr|rtl)]&#10;Direction for weak/neutral text (ltr=left-to-right, rtl=right-to-left). See http://www.w3.org/TR/html4/struct/dirlang.html#adef-dir" name="dir"/>
            <attribute tooltip="[http-equiv type CDATA #IMPLIED]&#10;The http-equiv attribute provides an HTTP header for the value of the content attribute. Example: &lt;meta http-equiv='Expires' content='Tue, 20 Aug 1996 14:25:27 GMT'&gt;.&#10;Hint: the http-equiv attribute can be used to simulate an HTTP response header.&#10;Warning: if the name attribute is set, the http-equiv attribute should not be set.&#10;Hint: see http://www.w3.org/TR/html4/struct/global.html#adef-http-equiv" name="http-equiv"/>
            <attribute tooltip="[scheme type CDATA #IMPLIED]&#10;The scheme attribute allows authors to provide user agents more context for the correct interpretation of meta information.&#10;For example, &lt;meta scheme=&quot;ISBN&quot;  name=&quot;identifier&quot; content=&quot;0-8230-2355-9&quot;&gt;&#10;See http://www.w3.org/TR/html4/struct/global.html#idx-scheme" name="scheme"/>
        </element>
        <element icon="icons/meta.gif" tooltip="(X3D version 3.3 or later) [X3DNode,X3DMetadataObject] MetadataBoolean contains a typed list of values providing metadata information about its parent node.&#10;Further information about this specific Metadata* node may be provided by a single child Metadata* node with containerField=&#34;metadata&#34;.&#10;Hint: use containerField=&#34;value&#34; if the parent node is MetadataSet.&#10;Hint: each of the Metadata nodes are allowed as top-level root nodes in a scene, be sure to explicitly define containerField='metadata'. https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/concepts.html#Rootnodes &#10;Warning: Metadata nodes can only contain other Metadata nodes.&#10;Hint: if present, an IS statement is the first child within any other node.&#10;Hint: an IS statement precedes any sibling Metadata* node, which in turn precedes any other sibling nodes.&#10;Hint: comments are not readable when a model file is loaded for viewing, but WorldInfo and Metadata* nodes are persistent and inspectable at run time.&#10;Hint: X3D for Web Authors, Chapter 15, Metadata Information https://x3dgraphics.com/examples/X3dForWebAuthors/Chapter15-Metadata/Chapter15-MetadataInformation.html" name="MetadataBoolean">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[name &inputOutputLabel; type SFString #IMPLIED]&#10;Depending on the metadata vocabulary, the attribute name is usually required for metadata nodes.&#10;Warning: name field is not included if this instance is a USE node, in order to avoid potential mismatches.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="name"/>
            <attribute tooltip="[value &inputOutputLabel; &MFBoolLabel; #IMPLIED]&#10;The value attribute is a strictly typed data array providing relevant metadata information.&#10;Warning: use lower-case values (&quot;true false&quot;) for .x3d XML encoding, and upper-case values (&quot;TRUE FALSE&quot;) for .x3dv ClassicVRML encoding." name="value"/>
            <attribute tooltip="[reference &inputOutputLabel; &SFStringLabel; #IMPLIED]&#10;Reference to the metadata standard or definition defining this particular metadata value." name="reference"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;metadata&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: set containerField=&#34;value&#34; when part of a MetadataSet payload, otherwise use default value &#34;metadata&#34; when providing information about a parent node itself.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/meta.gif" tooltip="[X3DNode,X3DMetadataObject] MetadataDouble contains a typed list of values providing metadata information about its parent node.&#10;Further information about this specific Metadata* node may be provided by a single child Metadata* node with containerField=&#34;metadata&#34;.&#10;Hint: use containerField=&#34;value&#34; if the parent node is MetadataSet.&#10;Hint: each of the Metadata nodes are allowed as top-level root nodes in a scene, be sure to explicitly define containerField='metadata'. https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/concepts.html#Rootnodes &#10;Warning: Metadata nodes can only contain other Metadata nodes.&#10;Hint: if present, an IS statement is the first child within any other node.&#10;Hint: an IS statement precedes any sibling Metadata* node, which in turn precedes any other sibling nodes.&#10;Hint: The choice of MetadataDouble versus MetadataFloat usually depends on the relevant tool utilizing the value, or else the relevant metadata reference defining the value.&#10;Hint: comments are not readable when a model file is loaded for viewing, but WorldInfo and Metadata* nodes are persistent and inspectable at run time.&#10;Hint: X3D for Web Authors, Chapter 15, Metadata Information https://x3dgraphics.com/examples/X3dForWebAuthors/Chapter15-Metadata/Chapter15-MetadataInformation.html" name="MetadataDouble">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[name &inputOutputLabel; type SFString #IMPLIED]&#10;Depending on the metadata vocabulary, the attribute name is usually required for metadata nodes.&#10;Warning: name field is not included if this instance is a USE node, in order to avoid potential mismatches.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="name"/>
            <attribute tooltip="[value &inputOutputLabel; &MFDoubleLabel; #IMPLIED]&#10;The value attribute is a strictly typed data array providing relevant metadata information.&#10;Hint: many XML tools substitute XML character references for special characters automatically if needed within an attribute value (such as &amp;#38; for &#38; ampersand character, or &amp;#34; for &#34; quotation-mark character)." name="value"/>
            <attribute tooltip="[reference &inputOutputLabel; &SFStringLabel; #IMPLIED]&#10;Reference to the metadata standard or definition defining this particular metadata value." name="reference"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;metadata&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: set containerField=&#34;value&#34; when part of a MetadataSet payload, otherwise use default value &#34;metadata&#34; when providing information about a parent node itself.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/meta.gif" tooltip="[X3DNode,X3DMetadataObject] MetadataFloat contains a typed list of values providing metadata information about its parent node.&#10;Further information about this specific Metadata* node may be provided by a single child Metadata* node with containerField=&#34;metadata&#34;.&#10;Hint: use containerField=&#34;value&#34; if the parent node is MetadataSet.&#10;Hint: each of the Metadata nodes are allowed as top-level root nodes in a scene, be sure to explicitly define containerField='metadata'. https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/concepts.html#Rootnodes &#10;Warning: Metadata nodes can only contain other Metadata nodes.&#10;Hint: if present, an IS statement is the first child within any other node.&#10;Hint: an IS statement precedes any sibling Metadata* node, which in turn precedes any other sibling nodes.&#10;Hint: The choice of MetadataDouble versus MetadataFloat usually depends on the relevant tool utilizing the value, or else the relevant metadata reference defining the value.&#10;Hint: comments are not readable when a model file is loaded for viewing, but WorldInfo and Metadata* nodes are persistent and inspectable at run time.&#10;Hint: X3D for Web Authors, Chapter 15, Metadata Information https://x3dgraphics.com/examples/X3dForWebAuthors/Chapter15-Metadata/Chapter15-MetadataInformation.html" name="MetadataFloat">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[name &inputOutputLabel; type SFString #IMPLIED]&#10;Depending on the metadata vocabulary, the attribute name is usually required for metadata nodes.&#10;Warning: name field is not included if this instance is a USE node, in order to avoid potential mismatches.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="name"/>
            <attribute tooltip="[value &inputOutputLabel; &MFFloatLabel; #IMPLIED]&#10;The value attribute is a strictly typed data array providing relevant metadata information.&#10;Hint: many XML tools substitute XML character references for special characters automatically if needed within an attribute value (such as &amp;#38; for &#38; ampersand character, or &amp;#34; for &#34; quotation-mark character)." name="value"/>
            <attribute tooltip="[reference &inputOutputLabel; &SFStringLabel; #IMPLIED]&#10;Reference to the metadata standard or definition defining this particular metadata value." name="reference"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;metadata&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: set containerField=&#34;value&#34; when part of a MetadataSet payload, otherwise use default value &#34;metadata&#34; when providing information about a parent node itself.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/meta.gif" tooltip="[X3DNode,X3DMetadataObject] MetadataInteger contains a typed list of values providing metadata information about its parent node.&#10;Further information about this specific Metadata* node may be provided by a single child Metadata* node with containerField=&#34;metadata&#34;.&#10;Hint: use containerField=&#34;value&#34; if the parent node is MetadataSet.&#10;Hint: each of the Metadata nodes are allowed as top-level root nodes in a scene, be sure to explicitly define containerField='metadata'. https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/concepts.html#Rootnodes &#10;Warning: Metadata nodes can only contain other Metadata nodes.&#10;Hint: if present, an IS statement is the first child within any other node.&#10;Hint: an IS statement precedes any sibling Metadata* node, which in turn precedes any other sibling nodes.&#10;Hint: comments are not readable when a model file is loaded for viewing, but WorldInfo and Metadata* nodes are persistent and inspectable at run time.&#10;Hint: X3D for Web Authors, Chapter 15, Metadata Information https://x3dgraphics.com/examples/X3dForWebAuthors/Chapter15-Metadata/Chapter15-MetadataInformation.html" name="MetadataInteger">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[name &inputOutputLabel; type SFString #IMPLIED]&#10;Depending on the metadata vocabulary, the attribute name is usually required for metadata nodes.&#10;Warning: name field is not included if this instance is a USE node, in order to avoid potential mismatches.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="name"/>
            <attribute tooltip="[value &inputOutputLabel; &MFInt32Label; #IMPLIED]&#10;The value attribute is a strictly typed data array providing relevant metadata information.&#10;Hint: many XML tools substitute XML character references for special characters automatically if needed within an attribute value (such as &amp;#38; for &#38; ampersand character, or &amp;#34; for &#34; quotation-mark character)." name="value"/>
            <attribute tooltip="[reference &inputOutputLabel; &SFStringLabel; #IMPLIED]&#10;Reference to the metadata standard or definition defining this particular metadata value." name="reference"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;metadata&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: set containerField=&#34;value&#34; when part of a MetadataSet payload, otherwise use default value &#34;metadata&#34; when providing information about a parent node itself.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/meta.gif" tooltip="[X3DNode,X3DMetadataObject] MetadataSet contains a list of Metadata* nodes that each have containerField=&#34;value&#34;&#10;and together provide information about the parent node of the MetadataSet.&#10;Further information about this specific MetadataSet node may be provided by a single child Metadata* node with containerField=&#34;metadata&#34;.&#10;Hint: use containerField=&#34;value&#34; if the parent node is MetadataSet.&#10;Hint: each of the Metadata nodes are allowed as top-level root nodes in a scene, be sure to explicitly define containerField='metadata'. https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/concepts.html#Rootnodes &#10;Warning: Metadata nodes can only contain other Metadata nodes.&#10;Hint: if present, an IS statement is the first child within any other node.&#10;Hint: an IS statement precedes any sibling Metadata* node, which in turn precedes any other sibling nodes.&#10;Hint: MetadataSet can contain other MetadataSet nodes.&#10;Hint: comments are not readable when a model file is loaded for viewing, but WorldInfo and Metadata* nodes are persistent and inspectable at run time.&#10;Hint: X3D for Web Authors, Chapter 15, Metadata Information https://x3dgraphics.com/examples/X3dForWebAuthors/Chapter15-Metadata/Chapter15-MetadataInformation.html" name="MetadataSet">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[value &inputOutputLabel; &MFNodeLabel;, empty list] [X3DNode]&#10;The value field provides a list of X3DMetadataObject nodes whose meaning is determined by the name field." name="value"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[name &inputOutputLabel; type SFString #IMPLIED]&#10;Depending on the metadata vocabulary, the attribute name is usually required for metadata nodes.&#10;Warning: name field is not included if this instance is a USE node, in order to avoid potential mismatches.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="name"/>
            <attribute tooltip="[reference &inputOutputLabel; &SFStringLabel; #IMPLIED]&#10;Reference to the metadata standard or definition defining this particular metadata value." name="reference"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;metadata&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: set containerField=&#34;value&#34; when part of a MetadataSet payload, otherwise use default value &#34;metadata&#34; when providing information about a parent node itself.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/meta.gif" tooltip="[X3DNode,X3DMetadataObject] MetadataString contains a typed list of values providing metadata information about its parent node.&#10;Further information about this specific Metadata* node may be provided by a single child Metadata* node with containerField=&#34;metadata&#34;.&#10;Hint: use containerField=&#34;value&#34; if the parent node is MetadataSet.&#10;Hint: each of the Metadata nodes are allowed as top-level root nodes in a scene, be sure to explicitly define containerField='metadata'. https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-DIS/Part01/concepts.html#Rootnodes &#10;Warning: Metadata nodes can only contain other Metadata nodes.&#10;Hint: if present, an IS statement is the first child within any other node.&#10;Hint: an IS statement precedes any sibling Metadata* node, which in turn precedes any other sibling nodes.&#10;Hint: comments are not readable when a model file is loaded for viewing, but WorldInfo and Metadata* nodes are persistent and inspectable at run time.&#10;Hint: X3D for Web Authors, Chapter 15, Metadata Information https://x3dgraphics.com/examples/X3dForWebAuthors/Chapter15-Metadata/Chapter15-MetadataInformation.html" name="MetadataString">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[name &inputOutputLabel; type SFString #IMPLIED]&#10;Depending on the metadata vocabulary, the attribute name is usually required for metadata nodes.&#10;Warning: name field is not included if this instance is a USE node, in order to avoid potential mismatches.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="name"/>
            <attribute tooltip="[value &inputOutputLabel; &MFStringLabel; #IMPLIED]&#10;The value attribute is a strictly typed data array providing relevant metadata information.&#10;Hint: many XML tools substitute XML character references for special characters automatically if needed within an attribute value (such as &amp;#38; for &#38; ampersand character, or &amp;#34; for &#34; quotation-mark character)." name="value"/>
            <attribute tooltip="[reference &inputOutputLabel; &SFStringLabel; #IMPLIED]&#10;Reference to the metadata standard or definition defining this particular metadata value." name="reference"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;metadata&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: set containerField=&#34;value&#34; when part of a MetadataSet payload, otherwise use default value &#34;metadata&#34; when providing information about a parent node itself.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/MovieTexture.gif" tooltip="[X3DTexture2DNode,X3DSoundSourceNode,X3DUrlObject] MovieTexture applies a 2D movie image to surface geometry, or provides audio for a Sound node.&#10;First define as texture, then USE as Sound source to see it/hear it/save memory.&#10;Texture maps have a 2D coordinate system (s, t) horizontal and vertical, with (s, t) texture-coordinate values in range [0.0, 1.0] for opposite corners of the image.&#10;Hint: can contain a single TextureProperties node.&#10;Hint: insert Shape and Appearance nodes before adding texture.&#10;Hint: provide a Viewpoint that allows a clear view of the MovieTexture so that users can easily see all details.&#10;Hint: utilize DEF/USE references for multiple copies of a single MovieTexture video file in order to avoid multiple-download delays, reduce memory requirements, and maintain synchronization.&#10;Hint: authors can provide multiple video formats for the same video track, with each source address listed separately in the url field.&#10;Hint: player support for MPEG-1 video format is required, other formats are optional.&#10;Warning: MovieTexture has containerField='texture' when parent is an Appearance node, otherwise containerField='source' when parent is a Sound node.&#10;Hint: X3D Scene Authoring Hints, Images https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#Images&#10;Hint: Texture mapping https://en.wikipedia.org/wiki/Texture_mapping&#10;Hint: X3D Architecture 17.2.2 Lighting model https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/lighting.html#Lightingmodel&#10;Hint: when parent node is LoadSensor, apply containerField='children' (X3Dv4) or containerField='watchList' (X3Dv3). https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#fieldNameChanges" name="MovieTexture">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[textureProperties &initializeOnlyLabel; &SFNodeLabel;, NULL node] [TextureProperties]&#10;Single contained TextureProperties node that can specify additional visual attributes applied to corresponding texture images." name="textureProperties"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="(X3D version 4.0 draft) [autoRefresh &inputOutputLabel; &SFTimeLabel; &#34;0.0&#34;]&#10;autoRefresh defines interval in seconds before automatic reload of current url asset is performed.&#10;Hint: if preceding file loading fails or load field is false, no refresh is performed.&#10;Hint: repeated refresh attempts to reload currently loaded entry of url list. If that fails, the browser retries other entries in the url list.&#10;Warning: automatically reloading content has security considerations and needs to be considered carefully." name="autoRefresh"/>
            <attribute tooltip="(X3D version 4.0 draft) [autoRefreshTimeLimit &inputOutputLabel; &SFTimeLabel; &#34;3600.0&#34;]&#10;autoRefreshTimeLimit defines maximum duration that automatic refresh activity can occur.&#10;Hint: Automatic refresh is different than query and response timeouts performed by a networking library while sequentially attempting to retrieve addressed content from a url list.&#10;Warning: automatically reloading content has security considerations and needs to be considered carefully." name="autoRefreshTimeLimit"/>
            <attribute tooltip="[description &inputOutputLabel; &SFStringLabel; #IMPLIED]&#10;Author-provided prose that describes intended purpose of the url asset.&#10;Hint: many XML tools substitute XML character references for special characters automatically if needed within an attribute value (such as &amp;#38; for &#38; ampersand character, or &amp;#34; for &#34; quotation-mark character)." name="description"/>
            <attribute tooltip="(X3D version 4.0 draft) [enabled &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Enables/disables node operation." name="enabled"/>
            <attribute tooltip="(X3D version 4.0 draft) [gain &inputOutputLabel; &SFFloatLabel; &#34;1&#34;] (-&#8734;,+&#8734;)&#10;The gain field is a factor that represents the amount of linear amplification to apply to the output of the node.&#10;Warning: Decibel values shall not be used.&#10;Hint: Negative gain factors negate the input signal." name="gain"/>
            <attribute tooltip="(X3D version 4.0 draft) [load &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;load=true means load immediately,&#10;load=false means defer loading or else unload a previously loaded scene.&#10;Hint: allows author to design when Inline loading occurs via user interaction, event chains or scripting.&#10;Hint: use a separate LoadSensor node to detect when loading is complete." name="load"/>
            <attribute tooltip="[loop &inputOutputLabel; &SFBoolLabel; &#34;false&#34;]&#10;Repeat indefinitely when loop=true, repeat only once when loop=false." name="loop"/>
            <attribute tooltip="[pauseTime &inputOutputLabel; &SFTimeLabel; &#34;0&#34;]&#10;When time now &gt;= pauseTime, isPaused becomes true and MovieTexture becomes paused.&#10;Absolute time: number of seconds since January 1, 1970, 00:00:00 GMT.&#10;Hint: ROUTE a time value matching system clock to this field, such as output event from TouchSensor touchTime or TimeTrigger triggerTime.&#10;Warning: not supported in VRML97." name="pauseTime"/>
            <attribute tooltip="[pitch &inputOutputLabel; &SFFloatLabel; &#34;1.0&#34;] (0,+&#8734;)&#10;Multiplier for the rate at which sampled sound is played.&#10;Changing pitch also changes playback speed.&#10;Hint: changing the pitch field does not trigger a duration_changed event.  Playback interval may vary but duration of the original media data remains unmodified." name="pitch"/>
            <attribute tooltip="[resumeTime &inputOutputLabel; &SFTimeLabel; &#34;0&#34;]&#10;When resumeTime becomes &lt;= time now, isPaused becomes false and MovieTexture becomes active.&#10;Absolute time: number of seconds since January 1, 1970, 00:00:00 GMT.&#10;Hint: ROUTE a time value matching system clock to this field, such as output event from TouchSensor touchTime or TimeTrigger triggerTime.&#10;Warning: not supported in VRML97." name="resumeTime"/>
            <attribute tooltip="[repeatS &initializeOnlyLabel; &SFBoolLabel; &#34;true&#34;]&#10;Whether to repeat texture along S axis horizontally from left to right." name="repeatS"/>
            <attribute tooltip="[repeatT &initializeOnlyLabel; &SFBoolLabel; &#34;true&#34;]&#10;Whether to repeat texture along T axis vertically from top to bottom." name="repeatT"/>
            <attribute tooltip="[speed &inputOutputLabel; &SFFloatLabel; &#34;1.0&#34;]&#10;Factor for how fast the movie (or soundtrack) is played.&#10;Hint: a MovieTexture node shall display frame 0 if speed = 0.&#10;Hint: a negative speed value sets the movie to play in reverse." name="speed"/>
            <attribute tooltip="[startTime &inputOutputLabel; &SFTimeLabel; &#34;0&#34;]&#10;Absolute time: number of seconds since January 1, 1970, 00:00:00 GMT.&#10;Hint: ROUTE a time value matching system clock to this field, such as output event from TouchSensor touchTime or TimeTrigger triggerTime." name="startTime"/>
            <attribute tooltip="[stopTime &inputOutputLabel; &SFTimeLabel; &#34;0&#34;]&#10;Absolute time: number of seconds since January 1, 1970, 00:00:00 GMT.&#10;Hint: ROUTE a time value matching system clock to this field, such as output event from TouchSensor touchTime or TimeTrigger triggerTime.&#10;Warning: An active TimeSensor node ignores set_cycleInterval and set_startTime events.&#10;Warning:An active TimeSensor node ignores set_stopTime event values less than or equal to startTime." name="stopTime"/>
            <attribute tooltip="[url &inputOutputLabel; &MFStringLabel; #IMPLIED]&#10;Location and filename of movie file or stream.&#10;Multiple locations are more reliable, and including a Web address lets e-mail attachments work.&#10;Hint: MFString arrays can have multiple values, so separate each individual string by quote marks &quot;https://www.web3d.org&quot; &quot;https://www.web3d.org/about&quot; &quot;etc.&quot;&#10;Hint: alternative XML encoding for quotation mark &quot; is &#38;quot; (which is an example of a character entity).&#10;Warning: strictly match directory and filename capitalization for http links! This is important for portability. Some operating systems are forgiving of capitalization mismatches, but http/https url addresses and paths in Unix-based operating systems are all case sensitive and intolerant of uppercase/lowercase mismatches.&#10;Hint: can replace embedded blank(s) in url queries with %20 for each blank character.&#10;Hint: X3D Scene Authoring Hints, urls https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#urls" name="url"/>
            <attribute tooltip="[duration_changed &outputOnlyLabel; &SFTimeLabel; #FIXED &#34;&#34;] [0,+&#8734;) or -1.&#10;length of time in seconds for one cycle of media stream.&#10;Warning: duration value of -1 implies that media data has not yet loaded or is unavailable for some reason.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events.&#10;Hint: duration_changed is an SFTime duration interval, normally nonnegative, and not an absolute clock time.&#10;Hint: changing the pitch field does not trigger a duration_changed event.  Playback interval may vary but duration of the original media data remains unmodified." name="duration_changed"/>
            <attribute tooltip="[elapsedTime &outputOnlyLabel; &SFTimeLabel; #FIXED &#34;&#34;] [0,+&#8734;)&#10;Current elapsed time since MovieTexture activated/running, cumulative in seconds, and not counting any paused time.&#10;Warning: not supported in VRML97.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events.&#10;Hint: elapsedTime is a nonnegative SFTime duration interval, not an absolute clock time." name="elapsedTime"/>
            <attribute tooltip="[isActive &outputOnlyLabel; &SFBoolLabel; #FIXED &#34;&#34;]&#10;isActive true/false events are sent when playback starts/stops.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="isActive"/>
            <attribute tooltip="[isPaused &outputOnlyLabel; &SFBoolLabel; #FIXED &#34;&#34;]&#10;isPaused true/false events are sent when MovieTexture is paused/resumed.&#10;Warning: not supported in VRML97.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="isPaused"/>
            <attribute tooltip="[containerField type NMTOKEN (texture|source|watchList|back|bottom|front|left|right|top|backTexture|bottomTexture|frontTexture|leftTexture|rightTexture|topTexture|baseTexture|emissiveTexture|metallicRoughnessTexture|normalTexture|occlusionTexture) &#34;texture&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Warning: MovieTexture has containerField='texture' when parent is an Appearance node, otherwise containerField='source' when parent is a Sound node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/ImageTexture.gif" tooltip="[X3DTextureNode] MultiTexture applies several individual textures to a single geometry node, enabling a variety of visual effects that include light mapping and environment mapping. MultiTexture can contain zero or more ImageTexture, MovieTexture, PixelTexture, ComposedCubeMapTexture, GeneratedCubeMapTexture, ImageCubeMapTexture, ComposedTexture3D, ImageTexture3D, and PixelTexture3D nodes.&#10;Texture maps have a 2D coordinate system (s, t) horizontal and vertical, with (s, t) texture-coordinate values in range [0.0, 1.0] for opposite corners of the image.&#10;Hint: insert Shape and Appearance nodes before adding texture.&#10;Hint: Texture mapping https://en.wikipedia.org/wiki/Texture_mapping&#10;Warning: the number of textures to be blended may have a significant impact on performance, depending on available graphics hardware capabilities.&#10;Hint: multitexturing is accomplished using MultiTexture, MultiTextureCoordinate and MultiTextureTransform nodes.&#10;Hint: X3D Texturing component Figure 18.2 Lightmap example, https://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/components/texturing.html#f-Lightmapexample&#10;Hint: X3D Texturing component Table 18.2: Comparison of single texture and multitexture attributes, https://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/components/texturing.html#t-SingleAndMultitextureAttrs&#10;Hint: MultiTexture does not need to be included in LoadSensor watchList since any child ImageTexture and MovieTexture nodes of interest can be handled separately.&#10;Warning: MultiTexture may not contain another MultiTexture node." name="MultiTexture">
	        <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[texture &inputOutputLabel; &MFNodeLabel;, empty list] [X3DSingleTextureNode]&#10;Contained texture nodes (ImageTexture, MovieTexture, PixelTexture) that map image(s) to surface geometry, defining each of the different texture channels.&#10;Warning: MultiTexture may not contain another MultiTexture node.&#10;Hint: if texture node is NULL or unspecified, corresponding Shape geometry for this Appearance is not textured.&#10;Hint: X3D Scene Authoring Hints, Images https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#Images&#10;Hint: X3D Architecture 18 Texturing component https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/texturing.html&#10;Hint: X3D Architecture 33 Texturing3D component https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/texture3D.html" name="texture"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[alpha &inputOutputLabel; &SFFloatLabel; &#34;1.0&#34;] [0,1]&#10;The alpha field defines the alpha (1-transparency) base value for mode operations." name="alpha"/>
            <attribute tooltip="[color &inputOutputLabel; &SFColorLabel; &#34;1 1 1&#34;] [0,1]&#10;The color field defines the RGB base values for mode operations.&#10;Hint: X3D Scene Authoring Hints, Color https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#Color" name="color"/>
            <attribute tooltip="(X3D version 4.0 draft) [description &inputOutputLabel; &SFStringLabel; #IMPLIED]&#10;Author-provided prose that describes intended purpose of the url asset.&#10;Hint: many XML tools substitute XML character references for special characters automatically if needed within an attribute value (such as &amp;#38; for &#38; ampersand character, or &amp;#34; for &#34; quotation-mark character)." name="description"/>
            <attribute tooltip="[function &inputOutputLabel; &MFStringLabel; &MultiTextureFunctionValues; #IMPLIED]&#10;function operators COMPLEMENT or ALPHAREPLICATE can be applied after the mode blending operation. Empty string value &quot;&quot; indicates that no function operation is applied for that stage.&#10;Hint: include the same number of function values as textures, otherwise the default of no function operation is applied for each remaining stage.&#10;Hint: X3D Architecture Table 18.5 Values for the function field https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/texturing.html#t-ValuesForFunctionField for further details." name="function"/>
            <attribute tooltip="[mode &inputOutputLabel; &SFStringLabel; &MultiTextureModes; #IMPLIED]&#10;mode field indicates the type of blending operation, both for color and for alpha channel.&#10;Hint: include the same number of mode values as textures, otherwise the default value MODULATE is added for each remaining stage.&#10;Warning: do not wrap extra quotation marks  around these SFString enumeration values, since &#34;quotation&#34; &#34;marks&#34; are only used for MFString values.&#10;Hint: X3D Architecture Table 18.3 Multitexture modes https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/texturing.html#t-MultitextureModes for further details." name="mode"/>
            <attribute tooltip="[source &inputOutputLabel; &MFStringLabel; &MultiTextureSourceValues; #IMPLIED]&#10;source field determines whether each image source is treated as DIFFUSE, SPECULAR or a multiplicative FACTOR. Empty string value &quot;&quot; indicates that no source modifier is applied for that stage.&#10;Hint: include the same number of source values as textures, otherwise the default of no source interpretation is applied for each remaining stage.&#10;Hint: X3D Architecture Table 18.4 Values for the source field https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/texturing.html#t-ValuesForSourceField for further details." name="source"/>
            <attribute tooltip="[containerField type NMTOKEN (texture|back|bottom|front|left|right|top|backTexture|bottomTexture|frontTexture|leftTexture|rightTexture|topTexture|baseTexture|emissiveTexture|metallicRoughnessTexture|normalTexture|occlusionTexture) &#34;texture&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/TextureCoordinate.gif" tooltip="[X3DTextureCoordinateNode] MultiTextureCoordinate contains multiple TextureCoordinate or TextureCoordinateGenerator nodes, for use by a parent polygonal geometry node such as IndexedFaceSet or a Triangle* node. Each of the contained texture coordinate nodes correspond to the multiple texture nodes contained in a sibling Appearance/MultiTexture node.&#10;Hint: add Shape and then polgyonal/planar geometry before adding MultiTextureCoordinate.&#10;Hint: Texture mapping https://en.wikipedia.org/wiki/Texture_mapping&#10;Warning: the number of textures to be blended may have a significant impact on performance, depending on available graphics hardware capabilities.&#10;Hint: multitexturing is accomplished using MultiTexture, MultiTextureCoordinate and MultiTextureTransform nodes.&#10;Hint: X3D Texturing component Figure 18.2 Lightmap example, https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/texturing.html#f-Lightmapexample&#10;Hint: X3D Texturing component Table 18.2: Comparison of single texture and multitexture attributes, https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/texturing.html#t-SingleAndMultitextureAttrs&#10;Warning: MultiTextureCoordinate may not contain another MultiTextureCoordinate node." name="MultiTextureCoordinate">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[texCoord &inputOutputLabel; &MFNodeLabel;, empty list] [X3DSingleTextureCoordinateNode]&#10;Zero or more contained TextureCoordinate or TextureCoordinateGenerator nodes that specify texture coordinates for the different texture channels, used for texture mapping onto corresponding geometry.&#10;Warning: MultiTextureCoordinate may not contain another MultiTextureCoordinate node." name="texCoord"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;texCoord&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/TextureTransform.gif" tooltip="[X3DTextureTransformNode] MultiTextureTransform contains multiple TextureTransform nodes, each provided for use by corresponding ImageTexture MovieTexture or PixelTexture nodes within a sibling MultiTexture node.&#10;Hint: insert Shape and Appearance nodes before adding MultiTextureTransform.&#10;Hint: Texture mapping https://en.wikipedia.org/wiki/Texture_mapping&#10;Warning: the number of textures to be blended may have a significant impact on performance, depending on available graphics hardware capabilities.&#10;Hint: multitexturing is accomplished using MultiTexture, MultiTextureCoordinate and MultiTextureTransform nodes.&#10;Hint: X3D Texturing component Figure 18.2 Lightmap example, https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/texturing.html#f-Lightmapexample&#10;Hint: X3D Texturing component Table 18.2: Comparison of single texture and multitexture attributes, https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/texturing.html#t-SingleAndMultitextureAttrs&#10;Warning: MultiTextureTransform may not contain another MultiTextureTransform node." name="MultiTextureTransform">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[textureTransform &inputOutputLabel; &MFNodeLabel;, empty list] [X3DSingleTextureTransformNode]&#10;Zero or more contained TextureTransform nodes, for each of the different texture channels, that define 2D transformation applied to texture coordinates.&#10;Hint: if textureTransform array is empty, then this field has no effect.&#10;Warning: MultiTextureTransform may not contain another MultiTextureTransform node." name="textureTransform"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;textureTransform&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/NavigationInfo.gif" tooltip="[X3DBindableNode] NavigationInfo describes the user&apos;s viewing model, user navigation-interaction modalities, and also dimensional characteristics of the user's (typically invisible) avatar.&#10;Hint: for inspection of simple objects, usability often improves with type=&quot;EXAMINE&quot; &quot;ANY&quot;&#10;Hint: Background, Fog, GeoViewpoint, NavigationInfo, OrthoViewpoint, TextureBackground and Viewpoint are bindable nodes, meaning that no more than one of each node type can be active at a given time.&#10;Hint: NavigationInfo types &apos;&quot;WALK&quot; &quot;FLY&quot;&apos; support camera-to-object collision detection.&#10;Warning: results are undefined if a bindable node (Background, Fog, NavigationInfo, OrthoViewpoint, TextureBackground, Viewpoint) is a contained descendant node of either LOD or Switch. Avoid this authoring pattern.&#10;Hint: Regardless of viewpoint jump value at bind time, the relative viewing transformation between user's view and defined position/orientation is stored for later use when un-jumping (returning to the viewpoint when subsequent viewpoint is unbound).&#10;Hint: customizable design pattern for dedicated Viewpoint/NavigationInfo pair: &lt;Viewpoint DEF='SpecialView'/&gt; &lt;NavigationInfo DEF='SpecialNav'/&gt; &lt;ROUTE fromNode='SpecialView' fromField='isBound' toNode='SpecialNav' toField='set_bind'/&gt;&#10;Hint: X3D Scene Authoring Hints, Viewpoints https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#Viewpoints" name="NavigationInfo">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[type &inputOutputLabel; &MFStringLabel; &#34;EXAMINE&#34; &#34;ANY&#34;]&#10;Enter one or more quoted SFString values: &#34;EXAMINE&#34; &#34;WALK&#34; &#34;FLY&#34; &#34;LOOKAT&#34; &#34;EXPLORE&#34; &#34;ANY&#34; &#34;NONE&#34;.&#10;Hint: for inspection of simple objects, usability often improves with type=&quot;EXAMINE&quot; &quot;ANY&quot;.&#10;Hint: types WALK and FLY force strict camera-to-object collision detection.&#10;Hint: see Collision node for further details on camera-to-object collision detection.&#10;Hint: MFString arrays can have multiple values, so separate each individual string by quote marks &quot;https://www.web3d.org&quot; &quot;https://www.web3d.org/about&quot; &quot;etc.&quot; ]&#10;Interchange profile hint: this field may be ignored, applying the default value regardless." name="type"/>
            <attribute tooltip="[speed &inputOutputLabel; &SFFloatLabel; &#34;1.0&#34;] [0,+&#8734;)&#10;Default rate at which viewer travels through scene, meters/second.&#10;Warning: default 1 m/s usually seems slow for ordinary navigation.&#10;Interchange profile hint: this field may be ignored, applying the default value regardless." name="speed"/>
            <attribute tooltip="[headlight &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Enable/disable directional light that always points in the direction the user is looking." name="headlight"/>
            <attribute tooltip="[avatarSize &inputOutputLabel; &MFFloatLabel; &#34;0.25 1.6 0.75&#34;]&#10;avatarSize triplet values define three separate parameters: (a) collisionDistance between user and geometry, i.e. near clipping plane of view frustrum, default 0.25m, (b) viewer height above terrain, default 1.6m, and (c) tallest height viewer can WALK over, default 0.75m.&#10;Hint: X3D specification recommends that browsers set near clipping plane to one-half of avatarSize.CollisionDistance value.&#10;Warning: important design thumbrule is to keep (visibilityLimit / avatarSize.CollisionDistance) &lt; 10,000 to avoid aliasing artifacts (i.e. polygon &quot;tearing&quot;).&#10;Hint: Aliasing https://en.wikipedia.org/wiki/Aliasing and Clipping  https://en.wikipedia.org/wiki/Clipping_(computer_graphics)&#10;Interchange profile hint: this field may be ignored, applying the default value regardless.&#10;Hint: transformation hierarchy of currently bound Viewpoint node scales avatarSize, but translations and rotations have no effect.&#10;Hint: content must be visible to be collidable and to be pickable.&#10;Warning: data type is MFFloat rather than SFVec3f, be sure that three values are provided in the array since validation tools are typically unable to detect erroneous data prior to run time." name="avatarSize"/>
            <attribute tooltip="[visibilityLimit &inputOutputLabel; &SFFloatLabel; &#34;0.0&#34;]&#10;Geometry beyond the visibilityLimit may not be rendered (far clipping plane of the view frustrum).&#10;Hint: visibilityLimit=0.0 indicates an infinite visibility limit (no far clipping plane).&#10;Hint: set visibilityLimit to appropriate positive value in meters to define far culling plane of view frustum.&#10;Hint: X3D specification recommends that browsers set near clipping plane to one-half of avatarSize.CollisionDistance value.&#10;Warning: important design thumbrule is to keep (visibilityLimit / avatarSize.CollisionDistance) &lt; 10,000 to avoid aliasing artifacts (i.e. polygon &quot;tearing&quot;).&#10;Hint: Aliasing https://en.wikipedia.org/wiki/Aliasing and Clipping  https://en.wikipedia.org/wiki/Clipping_(computer_graphics)&#10;Interchange profile hint: this field may be ignored, applying the default value regardless." name="visibilityLimit"/>
            <attribute tooltip="(X3D version 3.1 or later) [transitionTime &inputOutputLabel; &MFFloatLabel; &#34;1.0&#34;]&#10;transitionTime defines the expected duration of viewpoint transition in seconds.&#10;Hint: If transitionType is &#34;ANIMATE&#34;, transitionTime provides browser-dependent animation parameters.&#10;Interchange profile hint: this field may be ignored, applying the default value regardless." name="transitionTime"/>
            <attribute tooltip="[transitionType &inputOutputLabel; &MFStringLabel; &#34;LINEAR&#34;]&#10;Camera transition between viewpoints. Enter one or more quoted SFString values: &#34;ANIMATE&#34; &#34;TELEPORT&#34; &#34;LINEAR&#34;.&#10;Hint: &#34;ANIMATE&#34; behavior is browser-specific, &#34;TELEPORT&#34; is immediate, and &#34;LINEAR&#34; may proceed directly through intervening objects." name="transitionType"/>
            <attribute tooltip="[transitionComplete &outputOnlyLabel; &MFFloatLabel; #FIXED &#34;&#34;]&#10;Event signaling viewpoint transition complete.&#10;Interchange profile hint: this field may be ignored.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="transitionComplete"/>
            <attribute tooltip="[set_bind &inputOnlyLabel; &SFBoolLabel; #FIXED &#34;&#34;]&#10;Receiving event set_bind=true activates and binds this node at the top of the binding stack. Receiving event set_bind=false deactivates and unbinds this node from the top of the binding stack. Thus setting set_bind to true/false will enable/disable the effect of this node.&#10;Hint: paired node operations can be established by connecting set_bind and isBound fields of corresponding bindable nodes.&#10;Warning: it is an error to define this transient inputOnly field in an X3D file, instead only use it a destination for ROUTE events." name="set_bind"/>
            <attribute tooltip="[isBound &outputOnlyLabel; &SFBoolLabel; #FIXED &#34;&#34;]&#10;Output event true gets sent when node becomes bound and activated, otherwise output event false gets sent when node becomes unbound and deactivated.&#10;Hint: paired node operations can be established by connecting set_bind and isBound fields of corresponding bindable nodes.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="isBound"/>
            <attribute tooltip="[bindTime &outputOnlyLabel; &SFTimeLabel; #FIXED &#34;&#34;]&#10;Event sent reporting timestamp when node becomes active/inactive.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="bindTime"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/Normal.gif" tooltip="[X3DNormalNode] Normal defines a set of 3D surface-normal vectors that apply either to a sibling Coordinate|CoordinateDouble node, or else to a parent ElevationGrid node.&#10;Normal values are perpendicular directions that are used per-polygon or per-vertex when computing lighting and shading. &#10;Hint: Normal values are typically only calculated or applied once, during initial loading of model geometry.&#10;Hint: custom Normal values can produce special effects.&#10;Hint: if no child Normal node is provided, the X3D browser shall automatically generate normals, using creaseAngle to determine smoothed shading across shared vertices.&#10;Hint: computation of normal values is performed quite quickly on modern 3D graphics hardware, often with no perceptible delay.&#10;Warning: adding normal values to a model might significantly increase file size. Testing can help determine proper tradeoffs between file size, network transmission delays and initial rendering speed.&#10;Hint: normal vectors perpendicular to 3D surface https://en.wikipedia.org/wiki/Normal_(geometry)" name="Normal">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[vector &inputOutputLabel; &MFVec3fLabel; #IMPLIED]&#10;set of unit-length normal vectors, corresponding to indexed polygons or vertices.&#10;Warning: unit length means a magnitude of 1.0, so normal values of (0,0,0) are invalid." name="vector"/>
            <attribute tooltip="[containerField type NMTOKEN (normal|skinNormal|skinBindingNormals) &#34;normal&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/NormalInterpolator.gif" tooltip="[X3DInterpolatorNode] NormalInterpolator generates a series of normal (perpendicular) 3-tuple SFVec3f values. Each vector value has unit length, i.e. the set of allowed vectors describes the surface of a unit sphere. Authors can ROUTE value_changed output events to a Normal node's vector  field, or to another 3-tuple SFVec3f field.&#10;Hint: typical input connection is ROUTE someTimeSensorDEF.fraction_changed TO thisInterpolatorDEF.set_fraction&#10;Hint: typical output connection is ROUTE thisInterpolatorDEF.value_changed TO someDestinationNodeDEF.set_someAttribute.&#10;Hint: example scenes and authoring assets at https://x3dgraphics.com/examples/X3dForWebAuthors/Chapter07EventAnimationInterpolation" name="NormalInterpolator">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[key &inputOutputLabel; &MFFloatLabel; #IMPLIED]&#10;Definition values for linear-interpolation function input intervals, listed in non-decreasing order and corresponding to a value in the keyValue array.&#10;Warning: number of keys must match number of keyValues!&#10;Warning: values in key array shall be monotonically non-decreasing, meaning that each value is greater than or equal to the preceding value.&#10;Hint: typical interval for values in key array is within range of 0 to 1, but larger intervals can be defined with arbitrary bounds." name="key"/>
            <attribute tooltip="[keyValue &inputOutputLabel; &MFVec3fLabel; #IMPLIED]&#10;Output values for linear interpolation, each corresponding to an input-fraction value in the key array.&#10;Hint: identical adjacent entries in keyValue array have the effect of defining constant-value step functions. https://en.wikipedia.org/wiki/Step_function &#10;Warning: number of keys must match number of keyValues!" name="keyValue"/>
            <attribute tooltip="[set_fraction &inputOnlyLabel; &SFFloatLabel; #FIXED &#34;&#34;]&#10;set_fraction selects input key for corresponding keyValue output.&#10;Hint: set_fraction values are typically in same range interval as values in the key array. Response to an input set_fraction value less than minimum is equivalent to minimum key, and response to an input set_fraction value greater than maximum is equivalent to maximum key.&#10;Warning: it is an error to define this transient inputOnly field in an X3D file, instead only use it a destination for ROUTE events." name="set_fraction"/>
            <attribute tooltip="[value_changed &outputOnlyLabel; &MFVec3fLabel; #FIXED &#34;&#34;]&#10;Linearly interpolated output value determined by current key time and corresponding keyValue pair.&#10;Hint: X3D players might not send unchanging intermediate values, thus avoiding excessive superfluous events that have no effect.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="value_changed"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/OrientationInterpolator.gif" tooltip="[X3DInterpolatorNode] OrientationInterpolator generates a series of 4-tuple axis-angle SFRotation values.&#10;Authors can ROUTE value_changed output events to a Transform node's rotation field or to another 4-tuple SFRotation field.&#10;Hint: typical input connection is ROUTE someTimeSensorDEF.fraction_changed TO thisInterpolatorDEF.set_fraction&#10;Hint: typical output connection is ROUTE thisInterpolatorDEF.value_changed TO someDestinationNodeDEF.set_someAttribute.&#10;Hint: example scenes and authoring assets at https://x3dgraphics.com/examples/X3dForWebAuthors/Chapter07EventAnimationInterpolation" name="OrientationInterpolator">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[key &inputOutputLabel; &MFFloatLabel; #IMPLIED]&#10;Definition values for linear-interpolation function input intervals, listed in non-decreasing order and corresponding to a value in the keyValue array.&#10;Warning: number of keys must match number of keyValues!&#10;Warning: values in key array shall be monotonically non-decreasing, meaning that each value is greater than or equal to the preceding value.&#10;Hint: typical interval for values in key array is within range of 0 to 1, but larger intervals can be defined with arbitrary bounds." name="key"/>
            <attribute tooltip="[keyValue &inputOutputLabel; &MFRotationLabel; #IMPLIED]&#10;Output values for linear interpolation, each corresponding to an input-fraction value in the key array.&#10;Hint: identical adjacent entries in keyValue array have the effect of defining constant-value step functions. https://en.wikipedia.org/wiki/Step_function &#10;Warning: number of keys must match number of keyValues!" name="keyValue"/>
            <attribute tooltip="[set_fraction &inputOnlyLabel; &SFFloatLabel; #FIXED &#34;&#34;]&#10;set_fraction selects input key for corresponding keyValue output.&#10;Hint: set_fraction values are typically in same range interval as values in the key array. Response to an input set_fraction value less than minimum is equivalent to minimum key, and response to an input set_fraction value greater than maximum is equivalent to maximum key.&#10;Warning: it is an error to define this transient inputOnly field in an X3D file, instead only use it a destination for ROUTE events." name="set_fraction"/>
            <attribute tooltip="[value_changed &outputOnlyLabel; &SFRotationLabel; #FIXED &#34;&#34;]&#10;Linearly interpolated output value determined by current key time and corresponding keyValue pair.&#10;Hint: X3D players might not send unchanging intermediate values, thus avoiding excessive superfluous events that have no effect.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="value_changed"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/Viewpoint.gif" tooltip="[X3DViewpointNode] OrthoViewpoint provides an orthographic perspective-free view of a scene from a specific location and direction.&#10;Hint: Background, Fog, GeoViewpoint, NavigationInfo, OrthoViewpoint, TextureBackground and Viewpoint are bindable nodes, meaning that no more than one of each node type can be active at a given time.&#10;Hint: GeoViewpoint OrthoViewpoint and Viewpoint share the same binding stack, so no more than one of these nodes can be bound and active at a given time.&#10;Warning: results are undefined if a bindable node (Background, Fog, NavigationInfo, OrthoViewpoint, TextureBackground, Viewpoint) is a contained descendant node of either LOD or Switch. Avoid this authoring pattern.&#10;Warning: do not include GeoViewpoint OrthoViewpoint or Viewpoint as a child of LOD or Switch, instead use ViewpointGroup as parent to constrain location proximity where the viewpoint is available to user.&#10;Hint: Regardless of viewpoint jump value at bind time, the relative viewing transformation between user's view and defined position/orientation is stored for later use when un-jumping (returning to the viewpoint when subsequent viewpoint is unbound).&#10;Hint: customizable design pattern for dedicated Viewpoint/NavigationInfo pair: &lt;Viewpoint DEF='SpecialView'/&gt; &lt;NavigationInfo DEF='SpecialNav'/&gt; &lt;ROUTE fromNode='SpecialView' fromField='isBound' toNode='SpecialNav' toField='set_bind'/&gt;&#10;Hint: X3D Scene Authoring Hints, Viewpoints https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#Viewpoints" name="OrthoViewpoint">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="(X3D version 4.0 draft) [navigationInfo &inputOutputLabel; &SFNodeLabel;, NULL node] [NavigationInfo]&#10;The navigationInfo field defines a dedicated NavigationInfo node for this X3DViewpointNode. The specified NavigationInfo node receives a set_bind TRUE event at the time when the parent node is bound and receives a set_bind FALSE at the time when the parent node is unbound.&#10;Hint: allows simple integration of custom navigation associated with each Viewpoint according to user needs at that location." name="navigationInfo"/>
            <attribute tooltip="(X3D version 4.0 draft) [viewAll &inputOutputLabel; &SFBoolLabel;, false]&#10;Viewpoint is automatically adjusted to view all visible geometry. Typically centerOfRotation is shifted to center of current bounding box and view is zoomed in or out until all visible objects are viewed.&#10;Hint: no collision detection or proximity sensing occurs when zooming.&#10;Warning: if needed, near and far clipping planes shall be adjusted to allow viewing the entire scene.&#10;Hint: when the value of the viewAll field is changed from TRUE to FALSE, no change in the current view occurs." name="viewAll"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[description &initializeOnlyLabel; &SFStringLabel; #IMPLIED]&#10;Text description or navigation hint to describe the significance of this model Viewpoint.&#10;Hint: a sequence of good Viewpoints with understandable descriptions can provide a guided tour of a model.&#10;Hint: the currently bound NavigationInfo node has a major effect on how a user might change viewing position and orientation after reaching this Viewpoint.&#10;Hint: consider paired Viewpoint/NavigationInfo node combinations by defining ROUTE connections between corresponding isBound/set_bind fields.&#10;Hint: include space characters since a description is not a DEF identifier. Write short phrases that make descriptions clear and readable.&#10;Warning: without description, this OrthoViewpoint is unlikely to appear on browser Viewpoint menus.&#10;Hint: many XML tools substitute XML character references for special characters automatically if needed within an attribute value (such as &amp;#38; for &#38; ampersand character, or &amp;#34; for &#34; quotation-mark character)." name="description"/>
            <attribute tooltip="(X3D version 4.0 draft) [farDistance &inputOutputLabel; &SFFloatLabel; &#34;-1&#34;] or (0,+&#8734;)&#10;farDistance defines maximum clipping plane distance allowed for object display.&#10;Hint: overrides bound NavigationInfo visibilityLimit value, if any.&#10;Hint: default value -1 means no effect on currently defined view frustum boundaries.&#10;Hint: Aliasing https://en.wikipedia.org/wiki/Aliasing and Clipping  https://en.wikipedia.org/wiki/Clipping_(computer_graphics)&#10;Warning: nearDistance must be less than farDistance." name="farDistance"/>
            <attribute tooltip="(X3D version 4.0 draft) [nearDistance &inputOutputLabel; &SFFloatLabel; &#34;-1&#34;] or (0,+&#8734;)&#10;nearDistance defines minimum clipping plane distance necessary for object display.&#10;Hint: overrides bound NavigationInfo avatarSize value, if any.&#10;Hint: default value -1 means no effect on currently defined view frustum boundaries.&#10;Hint: Aliasing https://en.wikipedia.org/wiki/Aliasing and Clipping  https://en.wikipedia.org/wiki/Clipping_(computer_graphics)&#10;Warning: nearDistance must be less than farDistance." name="nearDistance"/>
            <attribute tooltip="[position &inputOutputLabel; &SFVec3fLabel; &#34;0 0 10&#34;]&#10;position (x, y, z in meters) relative to local coordinate system." name="position"/>
            <attribute tooltip="[orientation &inputOutputLabel; &SFRotationLabel; &#34;0 0 1 0&#34;]&#10;Rotation (axis, angle in radians) of Viewpoint, relative to default -Z axis direction in local coordinate system.&#10;Warning: for VR/AR/MAR users wearing a head-mounted display (HMD), animating this field may induce motion sickness.&#10;Hint: this is orientation _change_ from default direction (0 0 -1).&#10;Hint: complex rotations can be accomplished axis-by-axis using parent Transforms." name="orientation"/>
            <attribute tooltip="[centerOfRotation &inputOutputLabel; &SFVec3fLabel; &#34;0 0 0&#34;]&#10;centerOfRotation specifies center point about which to rotate user's eyepoint when in EXAMINE or LOOKAT mode." name="centerOfRotation"/>
            <attribute tooltip="[fieldOfView &inputOutputLabel; &SFVec4fLabel; &#34;-1 -1, 1 1&#34;]&#10;Minimum and maximum extents of view in units of local coordinate system.&#10;Small field of view roughly corresponds to a telephoto lens,&#10;large field of view roughly corresponds to a wide-angle lens.&#10;Hint: validation type SFVec3f is stricter than specification legacy value in order to detect illegal values.&#10;Warning: minimum corner values must remain less than maximum corner values.&#10;Hint: rectangular display width/height = (maxX-minX) / (maxY-minY)" name="fieldOfView"/>
            <attribute tooltip="[jump &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Transition instantly by jumping, otherwise smoothly adjust offsets in place when changing to this Viewpoint.&#10;Hint: see NavigationInfo.transitionType for the manner in which animated Viewpoint transistions occur.&#10;Hint: set jump=true for instantaneous camera motion when going to this viewpoint.&#10;Warning: for VR/AR/MAR users wearing head-mounted displays, animating transitions between viewpoints may induce motion sickness." name="jump"/>
            <attribute tooltip="[retainUserOffsets &inputOutputLabel; &SFBoolLabel; &#34;false&#34;]&#10;Retain (true) or reset to zero (false) any prior user navigation offsets from defined viewpoint position, orientation." name="retainUserOffsets"/>
            <attribute tooltip="[set_bind &inputOnlyLabel; &SFBoolLabel; #FIXED &#34;&#34;]&#10;Sending event set_bind=true makes this node active.&#10;Sending event set_bind=false makes this node inactive.&#10;Thus setting set_bind to true/false will pop/push (enable/disable) this Viewpoint.&#10;Hint: paired node operations can be established by connecting set_bind and isBound fields of corresponding bindable nodes.&#10;Warning: it is an error to define this transient inputOnly field in an X3D file, instead only use it a destination for ROUTE events." name="set_bind"/>
            <attribute tooltip="[isBound &outputOnlyLabel; &SFBoolLabel; #FIXED &#34;&#34;]&#10;Output event true gets sent when node becomes bound and activated, otherwise output event false gets sent when node becomes unbound and deactivated.&#10;Hint: paired node operations can be established by connecting set_bind and isBound fields of corresponding bindable nodes.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="isBound"/>
            <attribute tooltip="[bindTime &outputOnlyLabel; &SFTimeLabel; #FIXED &#34;&#34;]&#10;Event sent reporting timestamp when node becomes active/inactive.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="bindTime"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/PixelTexture.gif" tooltip="[X3DTexture2DNode] PixelTexture creates a 2D-image texture map using a numeric array of pixel values.&#10;Texture maps have a 2D coordinate system (s, t) horizontal and vertical, with (s, t) texture-coordinate values in range [0.0, 1.0] for opposite corners of the image.&#10;Hint: this is a good way to bundle image(s) into a single scene file, avoiding multiple downloads.&#10;Hint: X3D-Edit includes PixelTexture image-conversion import capabilities. https://savage.nps.edu/X3D-Edit/images/PixelTextureImportImage.png&#10;Warning: aggregate file size can grow dramatically.&#10;Hint: can contain a single TextureProperties node.&#10;Hint: insert Shape and Appearance nodes before adding texture.&#10;Hint: X3D Scene Authoring Hints, Images and Videos https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#Images&#10;Warning: see ComposedCubeMapTexture and TextureBackground for special containerField values.&#10;Hint: if a texture is opaque, omitting values in the alpha channel can help avoid rendering artifacts related to transparency.&#10;Hint: Texture mapping https://en.wikipedia.org/wiki/Texture_mapping&#10;Hint: X3D Architecture 17.2.2 Lighting model https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/lighting.html#Lightingmodel" name="PixelTexture">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[textureProperties &initializeOnlyLabel; &SFNodeLabel;, NULL node] [TextureProperties]&#10;Single contained TextureProperties node that can specify additional visual attributes applied to corresponding texture images." name="textureProperties"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="(X3D version 4.0 draft) [description &inputOutputLabel; &SFStringLabel; #IMPLIED]&#10;Author-provided prose that describes intended purpose of the url asset.&#10;Hint: many XML tools substitute XML character references for special characters automatically if needed within an attribute value (such as &amp;#38; for &#38; ampersand character, or &amp;#34; for &#34; quotation-mark character)." name="description"/>
            <attribute tooltip="[image &inputOutputLabel; &SFImageLabel; &#34;0 0 0&#34;]&#10;Defines image: width, height, number_of_components per each pixel value, and list of pixel_values. Note that width and height are pixel count, and allowed values for RGBA number_of_components in each pixel value are 1 (intensity), 2 (intensity alpha), 3 (red green blue), 4 (red green blue alpha-opacity).&#10;Warning: the order of initial values in PixelTexture and PixelTexture3D image arrays are different.&#10;Example: intensity [1 2 1 0xFF 0x00]&#10;Example: intensity-alpha [2 2 1 0 255 255 0]&#10;Example: red-green-blue [2 4 3 0xFF0000 0xFF00 0 0 0 0 0xFFFFFF 0xFFFF00]&#10;Example: red-green-blue-alpha [2 2 4 0xFFFFFFAA 0xFFFF00AA 0x11111111AA 0x787800AA]&#10;Hint: it is easier to understand hexadecimal values for each pixel, but integer values are also allowed.&#10;Hint: the array of pixel values has length = (width*height).&#10;Hint: the full list of integers in this field has length = (width*height + 3)." name="image"/>
            <attribute tooltip="[repeatS &initializeOnlyLabel; &SFBoolLabel; &#34;true&#34;]&#10;Whether to repeat texture along S axis horizontally from left to right." name="repeatS"/>
            <attribute tooltip="[repeatT &initializeOnlyLabel; &SFBoolLabel; &#34;true&#34;]&#10;Whether to repeat texture along T axis vertically from top to bottom." name="repeatT"/>
            <attribute tooltip="[containerField type NMTOKEN (texture|back|bottom|front|left|right|top|backTexture|bottomTexture|frontTexture|leftTexture|rightTexture|topTexture|baseTexture|emissiveTexture|metallicRoughnessTexture|normalTexture|occlusionTexture) &#34;texture&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/PlaneSensor.gif" tooltip="[X3DDragSensorNode] PlaneSensor converts pointing device motion into 2D translation parallel to the local Z=0 plane.&#10;Hint: create a LineSensor by constraining one axis:&#10;(minPosition.x=maxPosition.x) or (minPosition.y=maxPosition.y).&#10;Hint: this sensor detects user interactions affecting peer nodes and their child geometry.&#10;Hint: add semi-transparent surrounding geometry to see the effect of the sensor.&#10;Hint: X3D Architecture 20.2.1 Overview of pointing device sensors https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/pointingDeviceSensor.html#OverviewOfPointingDeviceSensors&#10;Hint: X3D Architecture 20.2.2 Drag sensors https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/pointingDeviceSensor.html#DragSensors&#10;Hint: X3D Architecture 20.2.3 Activating and manipulating pointing device sensors https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/pointingDeviceSensor.html#Activatingandmanipulating&#10;Hint: example scenes and authoring assets at https://x3dgraphics.com/examples/X3dForWebAuthors/Chapter08UserInteractivity" name="PlaneSensor">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[description &inputOutputLabel; &SFStringLabel; #IMPLIED]&#10;Author-provided prose that describes intended purpose of this node.&#10;Hint: include space characters since a description is not a DEF identifier. Write short phrases that make descriptions clear and readable.&#10;Hint: many XML tools substitute XML character references for special characters automatically if needed within an attribute value (such as &amp;#38; for &#38; ampersand character, or &amp;#34; for &#34; quotation-mark character)." name="description"/>
            <attribute tooltip="[enabled &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Enables/disables node operation." name="enabled"/>
            <attribute tooltip="[minPosition &inputOutputLabel; &SFVec2fLabel; &#34;0 0&#34;]&#10;minPosition and maxPosition clamp translations to a range of values measured from origin of Z=0 plane&#10;default maxPosition &lt; minPosition means no clamping.&#10;Hint: create a LineSensor by constraining one axis&#10;(minPosition.x=maxPosition.x) or (minPosition.y=maxPosition.y)." name="minPosition"/>
            <attribute tooltip="[maxPosition &inputOutputLabel; &SFVec2fLabel; &#34;-1 -1&#34;]&#10;minPosition and maxPosition clamp translations to a range of values measured from origin of Z=0 plane&#10;default maxPosition &lt; minPosition means no clamping.&#10;Hint: create a LineSensor by constraining one axis&#10;(minPosition.x=maxPosition.x) or (minPosition.y=maxPosition.y)." name="maxPosition"/>
            <attribute tooltip="[autoOffset &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Determines whether previous offset values are remembered/accumulated." name="autoOffset"/>
            <attribute tooltip="[axisRotation &inputOutputLabel; &SFRotationLabel; &#34;0 1 0 0&#34;]&#10;axisRotation determines local sensor coordinate system by rotating the local coordinate system." name="axisRotation"/>
            <attribute tooltip="[offset &inputOutputLabel; &SFVec3fLabel; &#34;0 0 0&#34;]&#10;Sends event and remembers last value sensed.&#10;Warning: ROUTE connecting translation_changed to set_offset creates a self-reinforcing positive feedback loop and results in unmanageable response." name="offset"/>
            <attribute tooltip="[trackPoint_changed &outputOnlyLabel; &SFVec3fLabel; #FIXED &#34;&#34;]&#10;trackPoint_changed events give intersection point of bearing with sensor's virtual geometry.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events.&#10;Warning: trackPoint_changed events represent unclamped intersection points on plane surface. Browsers can interpret drags off of the surface in various ways.  Note that translation_changed events are clamped by minPosition/maxPosition and thus may be preferable." name="trackPoint_changed"/>
            <attribute tooltip="[translation_changed &outputOnlyLabel; &SFVec3fLabel; #FIXED &#34;&#34;]&#10;translation_changed events equal sum of relative translation change plus offset value.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="translation_changed"/>
            <attribute tooltip="[isActive &outputOnlyLabel; &SFBoolLabel; #FIXED &#34;&#34;]&#10;Select geometry by activating the pointing device (for example, clicking the mouse) to generate isActive events. Output event isActive=true is sent when geometry is selected (for example, when primary mouse button is pressed), output event isActive=false is sent when geometry is deselected (for example, when primary mouse button is released).&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="isActive"/>
            <attribute tooltip="[isOver &outputOnlyLabel; &SFBoolLabel; #FIXED &#34;&#34;]&#10;Hover over geometry by aiming the mouse (or pointing device) to generate isOver events. Sensor sends output event isOver=true event when pointing device moves over sensor's geometry, and later sends output event isOver=false event when pointing device moves off.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="isOver"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/PointLight.gif" tooltip="[X3DLightNode] PointLight is a single light source that illuminates outwards in all directions.&#10;Lighting illuminates all geometry except lines and points.  By default, light scope only illuminates peer geometry and children nodes within the scene graph hierarchy.&#10;Lights have no visible shape themselves and lighting effects continue through any intermediate geometry.&#10;Hint: the bound NavigationInfo controls whether headlight is enabled on/off. " name="PointLight">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[on &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Enables/disables this light source." name="on"/>
            <attribute tooltip="[color &inputOutputLabel; &SFColorLabel; &#34;1 1 1&#34;] [0,1]&#10;color of light, applied to colors of objects.&#10;Hint: X3D Scene Authoring Hints, Color https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#Color" name="color"/>
            <attribute tooltip="[location &inputOutputLabel; &SFVec3fLabel; &#34;0 0 0&#34;]&#10;Position of light relative to local coordinate system." name="location"/>
            <attribute tooltip="[intensity &inputOutputLabel; &SFFloatLabel; &#34;1&#34;] [0,+&#8734;]&#10;Brightness of direct emission from the light." name="intensity"/>
            <attribute tooltip="[ambientIntensity &inputOutputLabel; &SFFloatLabel; &#34;0&#34;] [0,1]&#10;Brightness of ambient (nondirectional background) emission from the light." name="ambientIntensity"/>
            <attribute tooltip="(X3D version 4.0 draft) [shadowIntensity &inputOutputLabel; &SFFloatLabel; &#34;0&#34;] [0,1]&#10; shadowIntensity field defines how much light is obscured by shapes that cast shadows, ranging from 0 (light not obscured, no visible shadows) to 1 (light completely obscured, full-intensity shadows)." name="shadowIntensity"/>
            <attribute tooltip="(X3D version 4.0 draft) [shadows &inputOutputLabel; &SFBoolLabel; &#34;false&#34;]&#10;shadows field indicates whether or not this light casts a shadow behind illuminated X3DShapeNode geometry." name="shadows"/>
            <attribute tooltip="[radius &inputOutputLabel; &SFFloatLabel; &#34;100&#34;]&#10;Maximum effective distance of light relative to local light position,&#10;affected by ancestor scaling." name="radius"/>
            <attribute tooltip="[attenuation &inputOutputLabel; &SFVec3fLabel; &#34;1 0 0&#34;]&#10;Constant, linear-distance and squared-distance dropoff factors as radial distance increases from the source.&#10;Hint: attenuation = 1/max(attenuation[0] + attenuation[1] &#10799; r + attenuation[2] &#10799; r2 , 1)" name="attenuation"/>
            <attribute tooltip="(X3D version 3.1 or later) [global &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Global lights illuminate all objects within their volume of lighting influence.&#10;Scoped lights only illuminate objects within the same transformation hierarchy.&#10;Warning: DirectionalLight default global=false to limit scope and avoid inadvertently illuminating every object in a large scene. PointLight and SpotLight default global=true since their effects are each limited by maximum radius value." name="global"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/PointSet.gif" tooltip="[X3DGeometryNode] PointSet is a node that contains a set of colored 3D points, represented by contained Color|ColorRGBA and Coordinate|CoordinateDouble nodes.&#10;Hint: Point (geometry) https://en.wikipedia.org/wiki/Point_(geometry)&#10;Hint: either values in a contained Color node, or else Material emissiveColor in corresponding Appearance node, are used for rendering lines and points.&#10;Warning: use a different color (or Material emissiveColor) than the Background color, otherwise geometry is invisible.&#10;Hint: insert a Shape node before adding geometry or Appearance.&#10;Hint: each point is displayed independently, no other PointSet attributes for rendering are provided." name="PointSet">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[attrib &inputOutputLabel; &MFNodeLabel;, empty list] [X3DVertexAttributeNode]&#10;Single contained FloatVertexAttribute node that can specify list of per-vertex attribute information for programmable shaders.&#10;Hint: X3D Architecture 32.2.2.4 Per-vertex attributes, https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/shaders.html#Pervertexattributes" name="attrib"/>
            <attribute tooltip="[color &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DColorNode]&#10;Single contained Color or ColorRGBA node that can specify color values applied to corresponding vertices according to colorIndex and colorPerVertex fields." name="color"/>
            <attribute tooltip="[coord &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DCoordinateNode]&#10;Single contained Coordinate or CoordinateDouble node that can specify a list of vertex values." name="coord"/>
            <attribute tooltip="[fogCoord &inputOutputLabel; &SFNodeLabel;, NULL node] [FogCoordinate]&#10;Single contained FogCoordinate node that can specify depth parameters for fog in corresponding geometry." name="fogCoord"/>
            <attribute tooltip="[normal &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DNormalNode]&#10;Single contained Normal node that can specify perpendicular vectors for corresponding vertices to support rendering computations.&#10;Hint: useful for special effects. Normal vector computation by 3D graphics hardware is quite fast so adding normals to a scene is typically unnecessary.&#10;Warning: normal vectors increase file size, typically doubling geometry definitions." name="normal"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;geometry&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/PositionInterpolator.gif" tooltip="[X3DInterpolatorNode] PositionInterpolator generates a series of 3-tuple SFVec3f values. Authors can ROUTE value_changed output events to a Transform node's translation field or another SFVec3f field.&#10;Hint: typical input connection is ROUTE someTimeSensorDEF.fraction_changed TO thisInterpolatorDEF.set_fraction&#10;Hint: typical output connection is ROUTE thisInterpolatorDEF.value_changed TO someDestinationNodeDEF.set_someAttribute.&#10;Hint: example scenes and authoring assets at https://x3dgraphics.com/examples/X3dForWebAuthors/Chapter07EventAnimationInterpolation" name="PositionInterpolator">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[key &inputOutputLabel; &MFFloatLabel; #IMPLIED]&#10;Definition values for linear-interpolation function input intervals, listed in non-decreasing order and corresponding to a value in the keyValue array.&#10;Warning: number of keys must match number of keyValues!&#10;Warning: values in key array shall be monotonically non-decreasing, meaning that each value is greater than or equal to the preceding value.&#10;Hint: typical interval for values in key array is within range of 0 to 1, but larger intervals can be defined with arbitrary bounds." name="key"/>
            <attribute tooltip="[keyValue &inputOutputLabel; &MFVec3fLabel; #IMPLIED]&#10;Output values for linear interpolation, each corresponding to an input-fraction value in the key array.&#10;Hint: identical adjacent entries in keyValue array have the effect of defining constant-value step functions. https://en.wikipedia.org/wiki/Step_function &#10;Warning: number of keys must match number of keyValues!" name="keyValue"/>
            <attribute tooltip="[set_fraction &inputOnlyLabel; &SFFloatLabel; #FIXED &#34;&#34;]&#10;set_fraction selects input key for corresponding keyValue output.&#10;Hint: set_fraction values are typically in same range interval as values in the key array. Response to an input set_fraction value less than minimum is equivalent to minimum key, and response to an input set_fraction value greater than maximum is equivalent to maximum key.&#10;Warning: it is an error to define this transient inputOnly field in an X3D file, instead only use it a destination for ROUTE events." name="set_fraction"/>
            <attribute tooltip="[value_changed &outputOnlyLabel; &SFVec3fLabel; #FIXED &#34;&#34;]&#10;Linearly interpolated output value determined by current key time and corresponding keyValue pair.&#10;Hint: X3D players might not send unchanging intermediate values, thus avoiding excessive superfluous events that have no effect.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="value_changed"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/PositionInterpolator2D.gif" tooltip="[X3DInterpolatorNode] PositionInterpolator2D generates a series of SFVec2f values. Authors can ROUTE value_changed output events to a SFVec2f attribute.&#10;Hint: typical input connection is ROUTE someTimeSensorDEF.fraction_changed TO thisInterpolatorDEF.set_fraction.&#10;Hint: typical output connection is ROUTE thisInterpolatorDEF.value_changed TO someDestinationNodeDEF.set_someAttribute.&#10;Warning: requires X3D profile='Full' or else include &lt;component name='Interpolation' level='3'/&gt;&#10;Hint: example scenes and authoring assets at https://x3dgraphics.com/examples/X3dForWebAuthors/Chapter07EventAnimationInterpolation" name="PositionInterpolator2D">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[key &inputOutputLabel; &MFFloatLabel; #IMPLIED]&#10;Definition values for linear-interpolation function input intervals, listed in non-decreasing order and corresponding to a value in the keyValue array.&#10;Hint: number of keyValues must be an integer multiple of the number of keys!&#10;Hint: keyValue/key integer multiple defines how many coordinates are sent in&#10;value_changed outputOnlys.&#10;Warning: values in key array shall be monotonically non-decreasing, meaning that each value is greater than or equal to the preceding value.&#10;Hint: typical interval for values in key array is within range of 0 to 1, but larger intervals can be defined with arbitrary bounds." name="key"/>
            <attribute tooltip="[keyValue &inputOutputLabel; &MFVec2fLabel; #IMPLIED]&#10;Output values for linear interpolation, each corresponding to an input-fraction value in the key array.&#10;Hint: identical adjacent entries in keyValue array have the effect of defining constant-value step functions. https://en.wikipedia.org/wiki/Step_function &#10;Hint: number of keyValues must be an integer multiple of the number of keys!&#10;Hint: keyValue/key integer multiple defines how many coordinates are sent in&#10;value_changed outputOnlys." name="keyValue"/>
            <attribute tooltip="[set_fraction &inputOnlyLabel; &SFFloatLabel; #FIXED &#34;&#34;]&#10;set_fraction selects input key for corresponding keyValue output.&#10;Hint: set_fraction values are typically in same range interval as values in the key array. Response to an input set_fraction value less than minimum is equivalent to minimum key, and response to an input set_fraction value greater than maximum is equivalent to maximum key.&#10;Warning: it is an error to define this transient inputOnly field in an X3D file, instead only use it a destination for ROUTE events." name="set_fraction"/>
            <attribute tooltip="[value_changed &outputOnlyLabel; &SFVec2fLabel; #FIXED &#34;&#34;]&#10;Linearly interpolated output value determined by current key time and corresponding keyValue pair.&#10;Hint: X3D players might not send unchanging intermediate values, thus avoiding excessive superfluous events that have no effect.&#10;Hint: keyValue/key integer multiple defines how many coordinates are sent in value_changed outputOnlys.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="value_changed"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/ProtoDeclare.gif" tooltip="[X3D statement] ProtoDeclare is a Prototype Declaration, defining a new node made up of other node(s). ProtoDeclare contains ProtoInterface and ProtoBody statements.&#10;Hint: ProtoInterface contains field interfaces using the &lt;field&gt; tag, then ProtoBody contains the X3D nodes making up this prototype.&#10;Hint: initial scene node in a ProtoDeclare/ProtoBody statement determines this prototype&apos;s node type.&#10;Hint: ProtoDeclare is a definition only, add corresponding ProtoInstance nodes later in a scene to create new node instances.&#10;Hint: Nested ProtoInstance and ProtoDeclare statements are allowed within a ProtoDeclare/ProtoBody.&#10;Warning: a ProtoInstance node may not be instantiated inside its own ProtoDeclare or ExternProtoDeclare declaration (i.e. recursive prototypes are illegal).&#10;Hint: X3D Scene Authoring Hints, Inlines and Prototypes https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#InlinesPrototypes&#10;Hint: X3D Architecture 7.2.5.8 PROTO statement https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#PROTOStatement&#10;Hint: X3D Architecture 4.4.4 Prototype semantics, https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/concepts.html#PROTOdefinitionsemantics&#10;Examples: X3D Example Archives, X3D for Web Authors, Chapter 14 Prototypes https://x3dgraphics.com/examples/X3dForWebAuthors/Chapter14Prototypes" name="ProtoDeclare">
            <attribute tooltip="[X3D statement #ProtoInterface] Include an optional ProtoInterface statement if this ProtoDeclare has field declarations.&#10;Hint: X3D Architecture 4.4.4 Prototype semantics, https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/concepts.html#PROTOdefinitionsemantics&#10;Examples: X3D Example Archives, X3D for Web Authors, Chapter 14 Prototypes https://x3dgraphics.com/examples/X3dForWebAuthors/Chapter14Prototypes" name="ProtoInterface"/>
            <attribute tooltip="[X3D statement #ProtoBody] Include one ProtoBody statement after the ProtoInterface statement." name="ProtoBody"/>
            <!-- TODO fix name entry -->
            <attribute tooltip="[name type NMTOKEN #REQUIRED]&#10;name of this prototype being declared.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="name"/>
            <attribute tooltip="[appinfo &SFStringLabel; #IMPLIED]&#10;Application information to provide simple description usable as a tooltip,&#10;similar to XML Schema appinfo tag." name="appinfo"/>
            <attribute tooltip="[documentation &SFStringLabel; #IMPLIED]&#10;Documentation url for further information,&#10;similar to XML Schema documentation tag." name="documentation"/>
        </element>
        <element icon="icons/ProtoDeclare.gif" tooltip="[X3D statement] ProtoInterface is the first statement inside a ProtoDeclare statement and holds field declarations. ProtoInterface is followed by a corresponding ProtoBody statement.&#10;Hint: X3D Architecture 4.4.4 Prototype semantics, https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/concepts.html#PROTOdefinitionsemantics&#10;Examples: X3D Example Archives, X3D for Web Authors, Chapter 14 Prototypes https://x3dgraphics.com/examples/X3dForWebAuthors/Chapter14Prototypes" name="ProtoInterface">
            <attribute tooltip="[X3D statement #field] Include a field statement for each field declaration in this ProtoDeclare&apos;s ProtoInterface." name="field"/>
        </element>
        <element icon="icons/ProtoDeclare.gif" tooltip="[X3D statement] ProtoBody statement follows the ProtoInterface statement in a ProtoDeclare statement, providing the scene-subgraph node definitions.&#10;Hint:  initial scene node in a ProtoDeclare/ProtoBody statement determines this prototype's node type.&#10;Warning: only the first top-level node and its children are rendered, subsequent nodes (such as Scripts and ROUTEs)&#10;are active but are not drawn." name="ProtoBody">
            <attribute tooltip="[children &inputOutputLabel; &MFNodeLabel;, empty list] [X3DNode]&#10;ProtoBody can contain nodes, statements and comments." name="children"/>
        </element>
        <element icon="icons/ProtoInstance.gif" tooltip="[X3D statement] ProtoInstance creates an instance node of a locally or externally declared prototype definition. ProtoDeclare/ExternProtoDeclare definitions are abstract, corresponding ProtoInstance nodes are concrete. ProtoInstance nodes typically contain fieldValue statements to override default field values defined in the original ProtoDeclare statement.&#10;Hint: the node type of a ProtoInstance exactly matches the first node in the corresponding ProtoDeclare/ProtoBody declaration.&#10;Warning: be sure to correctly set the containerField value to match the intended field in the parent node.&#10;Warning: do not mismatch node types when placing a ProtoInstance in a scene graph. Most validation tools will not catch this error.&#10;Hint: scene authors can override default initializations of prototype fields by including contained &lt;fieldValue&gt; elements.&#10;Hint: Nested ProtoInstance and ProtoDeclare statements are allowed within a ProtoDeclare/ProtoBody.&#10;Hint: if contained within a ProtoDeclare, then a ProtoInstance node can also contain IS/connect statements for other defined fields.&#10;Warning: a ProtoInstance node may not be instantiated inside its own ProtoDeclare or ExternProtoDeclare declaration (i.e. recursive prototypes are illegal).&#10;Warning: the local context of each ProtoInstance node must match the node type of the first node in the original ProtoDeclare declaration. &#10;Warning: ProtoInstance substitution for a Metadata* node might not validate. Workaround: put metadata-typed ProtoInstance nodes as contained values within a parent MetadataSet node.&#10;Hint: X3D Scene Authoring Hints, Inlines and Prototypes https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#InlinesPrototypes&#10;Hint: X3D Architecture 4.4.4 Prototype semantics, https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/concepts.html#PROTOdefinitionsemantics&#10;Examples: X3D Example Archives, X3D for Web Authors, Chapter 14 Prototypes https://x3dgraphics.com/examples/X3dForWebAuthors/Chapter14Prototypes" name="ProtoInstance">
            <attribute tooltip="[X3D statement #fieldValue] Include fieldValue statements if this ProtoInstance overrides default values in any of the original field declarations." name="fieldValue"/>
            <attribute tooltip="[name type NMTOKEN #IMPLIED]&#10;name of the prototype node being instanced.&#10;Hint: must match name of corresponding ProtoDeclare or ExternProtoDeclare in this scene.&#10;Warning: name must be specified unless this ProtoInstance is a USE node. Do not include name with ProtoInstance USE since it is duplicative (i.e. name is already defined in the DEF instance) and this approach avoids potential name mismatches. &#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="name"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene.&#10;Warning: do not define a name field in a USE node, the correct name can already be found in the original ProtoInstance DEF node." name="USE"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/ProximitySensor.gif" tooltip="[X3DEnvironmentalSensorNode] ProximitySensor generates events when the viewer enters,&#10;exits and moves within a region of space (defined by a box).&#10;Hint: multiple USEd instances are cumulative, but avoid overlaps.&#10;Hint: can first use Transform to relocate/reorient box.&#10;Hint: surround entire world to start behaviors once scene is loaded." name="ProximitySensor">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="(X3D version 4.0 draft) [description &inputOutputLabel; &SFStringLabel; #IMPLIED]&#10;Author-provided prose that describes intended purpose of the node.&#10;Hint: many XML tools substitute XML character references for special characters automatically if needed within an attribute value (such as &amp;#38; for &#38; ampersand character, or &amp;#34; for &#34; quotation-mark character)." name="description"/>
            <attribute tooltip="[enabled &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Enables/disables node operation." name="enabled"/>
            <attribute tooltip="[center &inputOutputLabel; &SFVec3fLabel; &#34;0 0 0&#34;]&#10;Position offset from origin of local coordinate system." name="center"/>
            <attribute tooltip="[size &inputOutputLabel; &SFVec3fLabel; &#34;0 0 0&#34;] [0,+&#8734;)&#10;size of Proximity box.&#10;Hint: size 0 0 0 is same as enabled false." name="size"/>
            <attribute tooltip="[isActive &outputOnlyLabel; &SFBoolLabel; #FIXED &#34;&#34;]&#10;isActive true/false events are sent as viewer enters/exits Proximity box.&#10;isActive=true when viewer enters Proximity box, isActive=false when viewer exits Proximity box.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="isActive"/>
            <attribute tooltip="[position_changed &outputOnlyLabel; &SFVec3fLabel; #FIXED &#34;&#34;]&#10;Sends translation event relative to center.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="position_changed"/>
            <attribute tooltip="[orientation_changed &outputOnlyLabel; &SFRotationLabel; #FIXED &#34;&#34;]&#10;Sends rotation event relative to center.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="orientation_changed"/>
            <attribute tooltip="[centerOfRotation_changed &outputOnlyLabel; &SFRotationLabel; #FIXED &#34;&#34;]&#10;Sends changed centerOfRotation values, likely caused by user interaction.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="centerOfRotation_changed"/>
            <attribute tooltip="[enterTime &outputOnlyLabel; &SFTimeLabel; #FIXED &#34;&#34;]&#10;Time event generated when user's camera enters the box.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="enterTime"/>
            <attribute tooltip="[exitTime &outputOnlyLabel; &SFTimeLabel; #FIXED &#34;&#34;]&#10;Time event generated when user's camera exits the box.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="exitTime"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/ROUTE.gif" tooltip="[X3D statement] ROUTE connects output fields of event-producing nodes to input fields of event-consuming nodes.&#10;Warning: each ROUTE must follow the DEF definition of both event-source and event-target nodes.&#10;Warning: strongly typed event checking means that data type  (SFInt32, MFVec3f, etc.) must match identically for both event-source and event-target fields.&#10;Warning: event-source fields can have accessType outputOnly or inputOutput, while event-target nodes can have accessType inputOnly or inputOutput.&#10;Hint: event tracing supports animation debugging https://x3dgraphics.com/examples/X3dForWebAuthors/Chapter07-EventAnimationInterpolation/Chapter07-EventAnimationInterpolation-EventTracing.pdf&#10;Hint: X3D Architecture 7.2.5.7 ROUTE statement https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#ROUTEStatement&#10;Hint: example scenes and authoring assets at https://x3dgraphics.com/examples/X3dForWebAuthors/Chapter07EventAnimationInterpolation" name="ROUTE">
            <attribute tooltip="[fromNode type IDREF #REQUIRED]&#10;fromNode is the DEF name of the node originating an event." name="fromNode"/>
            <attribute tooltip="[fromField type NMTOKEN #REQUIRED]&#10;fromField is the field name in the source node which is originating an event.&#10;Hint: if (and only if) corresponding field has accessType inputOutput, author has option to append &quot;_changed&quot; suffix to field name -  both forms are functionally equivalent.&#10;Warning: do not define an event connection using DEF, USE, class or containerField as literal values, since they are not fields in a node that can be modified by events at run time.&#10;Warning: if corresponding field has accessType outputOnly or inputOnly, do not modify the set_ prefix or the _changed suffix on the field name.&#10;Hint: X3D Architecture 4.4.2.2 Field Semantics https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/concepts.html#FieldSemantics&#10;Hint: X3D Compressed Binary Encoding, 4.2.3 X3D Canonical Form https://www.web3d.org/documents/specifications/19776-3/V3.3/Part03/concepts.html#X3DCanonicalForm" name="fromField"/>
            <attribute tooltip="[toNode type IDREF #REQUIRED]&#10;toNode is the DEF name of the destination node receiving an event." name="toNode"/>
            <attribute tooltip="[toField type NMTOKEN #REQUIRED]&#10;toField is the field name in the destination node which is receiving an event.&#10;Hint: if (and only if) corresponding field has accessType inputOutput, author has option to prepend &quot;set_&quot; prefix to field name -  both forms are functionally equivalent.&#10;Warning: do not define an event connection using DEF, USE, class or containerField as literal values, since they are not fields in a node that can be modified by events at run time.&#10;Warning: if corresponding field has accessType outputOnly or inputOnly, do not modify the set_ prefix or the _changed suffix on the field name.&#10;Hint: X3D Architecture 4.4.2.2 Field Semantics https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/concepts.html#FieldSemantics&#10;Hint: X3D Compressed Binary Encoding, 4.2.3 X3D Canonical Form https://www.web3d.org/documents/specifications/19776-3/V3.3/Part03/concepts.html#X3DCanonicalForm" name="toField"/>
        </element>
        <element icon="icons/ScalarInterpolator.gif" tooltip="[X3DInterpolatorNode] ScalarInterpolator generates piecewise-linear SFFloat values. Authors can ROUTE value_changed output events to other SFFloat fields.&#10;Hint: typical input connection is ROUTE someTimeSensorDEF.fraction_changed TO thisInterpolatorDEF.set_fraction&#10;Hint: typical output connection is ROUTE thisInterpolatorDEF.value_changed TO someDestinationNodeDEF.set_someAttribute.&#10;Hint: example scenes and authoring assets at https://x3dgraphics.com/examples/X3dForWebAuthors/Chapter07EventAnimationInterpolation" name="ScalarInterpolator">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[key &inputOutputLabel; &MFFloatLabel; #IMPLIED]&#10;Definition values for linear-interpolation function input intervals, listed in non-decreasing order and corresponding to a value in the keyValue array.&#10;Warning: number of keys must match number of keyValues!&#10;Warning: values in key array shall be monotonically non-decreasing, meaning that each value is greater than or equal to the preceding value.&#10;Hint: typical interval for values in key array is within range of 0 to 1, but larger intervals can be defined with arbitrary bounds." name="key"/>
            <attribute tooltip="[keyValue &inputOutputLabel; &MFFloatLabel; #IMPLIED]&#10;Output values for linear interpolation, each corresponding to an input-fraction value in the key array.&#10;Hint: identical adjacent entries in keyValue array have the effect of defining constant-value step functions. https://en.wikipedia.org/wiki/Step_function &#10;Warning: number of keys must match number of keyValues!" name="keyValue"/>
            <attribute tooltip="[set_fraction &inputOnlyLabel; &SFFloatLabel; #FIXED &#34;&#34;]&#10;set_fraction selects input key for corresponding keyValue output.&#10;Hint: set_fraction values are typically in same range interval as values in the key array. Response to an input set_fraction value less than minimum is equivalent to minimum key, and response to an input set_fraction value greater than maximum is equivalent to maximum key.&#10;Warning: it is an error to define this transient inputOnly field in an X3D file, instead only use it a destination for ROUTE events." name="set_fraction"/>
            <attribute tooltip="[value_changed &outputOnlyLabel; &SFFloatLabel; #FIXED &#34;&#34;]&#10;Linearly interpolated output value determined by current key time and corresponding keyValue pair.&#10;Hint: X3D players might not send unchanging intermediate values, thus avoiding excessive superfluous events that have no effect.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="value_changed"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/Scene.gif" tooltip="[X3D statement] Scene is the root element that contains an X3D scene graph, appearing after the head of an X3D model. Add nodes, statements and comments to build an X3D model. Only one Scene root element is allowed per X3D file.&#10;Hint: Scene can contain regular children nodes, Metadata* nodes and LayerSet as top-level root nodes.&#10;Hint: Scene is implicit, and not explicitly defined, in VRML97 and ClassicVRML encodings.&#10;Hint: the Scene statement cannot have a DEF since it is not a node, cannot be re-USEd, and cannot receive or send events.&#10;&#10;Hint: Scene nodes for Inline models report identical values as top-most root of the contained model.&#10;Warning: player support for attribute fields in this node is not defined.&#10;Warning: Scene is a child of X3D statement, and must follow the (optional) head statement." name="Scene">
            <attribute tooltip="[children &inputOutputLabel; &MFNodeLabel;, empty list] [X3DNode]&#10;Scene can contain nodes, statements and comments." name="children"/>
        </element>
        <element icon="icons/Script2.gif" tooltip="[X3DScriptNode] Script contains author-programmed event behaviors for a scene.&#10;Define the script input-output event interface by including &lt;field/&gt; elements.&#10;Scripting code is embedded in a child CDATA node or (deprecated) in the url field.&#10;Optionally supported programming languages are ECMAScript (JavaScript) and Java (via url to a myNode.class file).&#10;Hint: insert an XML Character Data (CDATA) block within the Script node to contain source code embedded within an X3D scene, avoiding the need for escape characters.&#10;Hint: a contained XML Character Data (CDATA) block for source code  protects whitespace, line breaks, and literal characters (such as &amp; for ampersand character, &lt; for less-than-sign character, and &gt; for greater-than-sign character) from unintended escape-character modifications by XML parsers.&#10;Warning: strict order is required for contained constructs: first field declarations (if any), then IS/connect statements (if any), and finally CDATA source-code block.&#10;Hint: X3D Scene Authoring Hints, Scripts https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#Scripts&#10;Hint: apply containerField='watchList' when parent node is LoadSensor.ECMAScript-262 specification http://www.ecma-international.org/publications/standards/Ecma-262.htm&#10;Hint: embedded ecmascript: source can also be contained in the sourceCode pseudo-field without escape characters, equivalent to last entry in the url list, when using other API codebases and file encodings." name="Script">
            <attribute tooltip="[X3D statement #field] Include a field statement for each field declaration in this Script node.&#10;Warning: to aid portability and avoid unintended overloading of variable references, it is good practice for X3D Script authors to avoid the use of variables with global scope." name="field"/>
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: DEF name is needed or else ROUTEs cannot connect Script node interfaces.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="(X3D version 4.0 draft) [autoRefresh &inputOutputLabel; &SFTimeLabel; &#34;0.0&#34;]&#10;autoRefresh defines interval in seconds before automatic reload of current url asset is performed.&#10;Hint: if preceding file loading fails or load field is false, no refresh is performed.&#10;Hint: repeated refresh attempts to reload currently loaded entry of url list. If that fails, the browser retries other entries in the url list.&#10;Warning: automatically reloading content has security considerations and needs to be considered carefully." name="autoRefresh"/>
            <attribute tooltip="(X3D version 4.0 draft) [autoRefreshTimeLimit &inputOutputLabel; &SFTimeLabel; &#34;3600.0&#34;]&#10;autoRefreshTimeLimit defines maximum duration that automatic refresh activity can occur.&#10;Hint: Automatic refresh is different than query and response timeouts performed by a networking library while sequentially attempting to retrieve addressed content from a url list.&#10;Warning: automatically reloading content has security considerations and needs to be considered carefully." name="autoRefreshTimeLimit"/>
            <attribute tooltip="(X3D version 4.0 draft) [description &inputOutputLabel; &SFStringLabel; #IMPLIED]&#10;Author-provided prose that describes intended purpose of the url asset.&#10;Hint: many XML tools substitute XML character references for special characters automatically if needed within an attribute value (such as &amp;#38; for &#38; ampersand character, or &amp;#34; for &#34; quotation-mark character)." name="description"/>
            <attribute tooltip="(X3D version 4.0 draft) [load &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;load=true means load immediately,&#10;load=false means defer loading or else unload a previously loaded scene.&#10;Hint: allows author to design when Inline loading occurs via user interaction, event chains or scripting.&#10;Hint: use a separate LoadSensor node to detect when loading is complete." name="load"/>
            <attribute tooltip="[url &inputOutputLabel; &MFStringLabel; #IMPLIED]&#10;List of address links for runnable script files.&#10;Hint: embedded ecmascript: source can also be contained in the sourceCode pseudo-field without escape characters, equivalent to last entry in the url list, when using other API codebases and file encodings.&#10;Hint: browsers are not required to support any particular scripting language, but ECMAScript (JavaScript)  is widely supported.&#10;Hint: equivalent script code written in multiple programming languages can be provided for portability, the first runnable version is chosen at run time.&#10;Hint: X3D Scene Authoring Hints, Scripts https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#Scripts&#10;Warning: source code can be placed in url attribute but may be unparsable due to escaping of special characters and elimination of line breaks (causing comments to nullify follow-on code). Use contained CDATA section instead for embedding source code.&#10;Hint: if both url field and CDATA section are provided simultaneously, the url field is processed first. This approach allows utilization of update modifications or live queries in external scripts, while still providing reliable script source as a fallback alternative within the model itself.&#10;Hint: X3D XML Encoding, 4.3.13 Encapsulating Script node code https://www.web3d.org/documents/specifications/19776-1/V3.3/Part01/concepts.html#EncapsulatingScriptNodeCode&#10;Hint: MFString arrays can have multiple values, so separate each individual string by quote marks &quot;https://www.web3d.org&quot; &quot;https://www.web3d.org/about&quot; &quot;etc.&quot;&#10;Hint: alternative XML encoding for quotation mark &quot; is &#38;quot; (which is an example of a character entity).&#10;Warning: strictly match directory and filename capitalization for http links! This is important for portability. Some operating systems are forgiving of capitalization mismatches, but http/https url addresses and paths in Unix-based operating systems are all case sensitive and intolerant of uppercase/lowercase mismatches.&#10;Hint: can replace embedded blank(s) in url queries with %20 for each blank character.&#10;Hint: X3D Scene Authoring Hints, urls https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#urls" name="url"/>
            <attribute tooltip="[directOutput &initializeOnlyLabel; &SFBoolLabel; &#34;false&#34;]&#10;Set directOutput true if Script has field reference(s) of type SFNode/MFNode, and&#10;also uses direct access to modify attributes of a referenced node in the Scene.&#10;Hint: set directOutput true if Script dynamically establishes or breaks ROUTEs.&#10;Hint: directOutput is a browser hint to avoid overoptimizing referenced nodes,&#10;since a Script might directly change attribute values in referenced SFNode/MFNode fields, without a ROUTE connecting output events.&#10;Hint: directOutput false means Script cannot modify referenced nodes or change ROUTEs." name="directOutput"/>
            <attribute tooltip="[mustEvaluate &initializeOnlyLabel; &SFBoolLabel; &#34;false&#34;]&#10;If mustEvaluate false, then the X3D player may delay sending input events to Script until output events are needed.&#10;If mustEvaluate true, then Script must receive input events immediately without any event-aggregation delays.&#10;Hint: set mustEvaluate true when sending/receiving values via the network." name="mustEvaluate"/>
            <attribute tooltip="[containerField type NMTOKEN (children|watchList) &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/SHAPE32.png" tooltip="[X3DShapeNode,X3DVisibleObject] Shape can appear under any grouping node.&#10;Shape can contain an Appearance node and a geometry node (for example one of the primitives Box Cone Cylinder Sphere Text, one of ElevationGrid Extrusion IndexedFaceSet IndexedLineSet LineSet PointSet, or one of the other geometry nodes).&#10;Hint: Shape https://en.wikipedia.org/wiki/Shape&#10;Hint: the Shape design pattern to collect appearance and geometry together is fundamentally the same for many types of 3D graphics software and hardware.&#10;Hint: for advanced extensibility, authors can substitute a type-matched ProtoInstance node (with correct containerField value) for contained node content.&#10;Hint: X3D Architecture 12.2.1 Shape nodes https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/shape.html#Shapenodes&#10;Hint: X3D Architecture 17.2.2 Lighting model https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/lighting.html#Lightingmodel&#10;Hint: apply containerField='shape' if parent node is CADFace." name="Shape">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[appearance &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DAppearanceNode]&#10;Single contained Appearance node that can specify visual attributes (such as material, texture, fillProperties and lineProperties) applied to corresponding geometry." name="appearance"/>
            <attribute tooltip="[geometry &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DGeometryNode]&#10;Single contained geometry node that is rendered according to corresponding appearance." name="geometry"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[bboxCenter &initializeOnlyLabel; &SFVec3fLabel; &#34;0 0 0&#34;]&#10;Bounding box center accompanies bboxSize and provides an optional hint for bounding box position offset from origin of local coordinate system.&#10;Hint: precomputation and inclusion of bounding box information can speed up the initialization of large detailed models, with a corresponding cost of increased file size.&#10;Hint: X3D Architecture, 10.2.2 Bounding boxes https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#BoundingBoxes&#10;Hint:  X3D Architecture, 10.3.1 X3DBoundedObject https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#X3DBoundedObject" name="bboxCenter"/>
            <attribute tooltip="[bboxSize &initializeOnlyLabel; &SFVec3fLabel; &#34;-1 -1 -1&#34;] or [0,+&#8734;)&#10;Bounding box size is usually omitted, and can easily be calculated automatically by an X3D player at scene-loading time with minimal computational cost. Bounding box size can also be defined as an optional authoring hint that suggests an optimization or constraint.&#10;Hint: can be useful for collision computations or inverse-kinematics (IK) engines.&#10;Hint: precomputation and inclusion of bounding box information can speed up the initialization of large detailed models, with a corresponding cost of increased file size.&#10;Hint: X3D Architecture, 10.2.2 Bounding boxes https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#BoundingBoxes&#10;Hint:  X3D Architecture, 10.3.1 X3DBoundedObject https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#X3DBoundedObject" name="bboxSize"/>
            <attribute tooltip="(X3D version 4.0 draft) [bboxDisplay &inputOutputLabel; &SFBoolLabel; &#34;false&#34;]&#10;Whether to display bounding box for associated geometry, aligned with world coordinates.&#10;Hint: the bounding box is displayed regardless of whether contained content is visible." name="bboxDisplay"/>
            <attribute tooltip="(X3D version 4.0 draft) [castShadow &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;castShadow defines whether this Shape casts shadows as produced by lighting nodes.&#10;Hint: if the visible field is FALSE, then the Shape does not cast any shadows.&#10;Hint: if prior X3D3 content is loaded into an X3D4 model, then legacy Shape nodes have shadows set to true." name="castShadow"/>
            <attribute tooltip="(X3D version 4.0 draft) [visible &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Whether or not renderable content within this node is visually displayed.&#10;Hint: the visible field has no effect on animation behaviors, event passing or other non-visual characteristics.&#10;Hint: content must be visible to be collidable and to be pickable." name="visible"/>
            <attribute tooltip="[containerField type NMTOKEN (children|proxy|rootNode|shape|skin) &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/Sound.gif" tooltip="[X3DSoundNode] The Sound node controls the 3D spatialization of sound playback by a child AudioClip or MovieTexture node. Sound intensity includes stereo support, varying according to user location and view direction in the scene.&#10;Hint: if the audio source is stereo or multi-channel, channel separation is retained during playback.&#10;Warning: while providing sounds on the ground plane, ensure that the audible auralization volume is sufficiently elevated to match avatar height.&#10;Hint: X3D Sound component Figure 16.2 Sound Node Geometry, https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/sound.html#f-Soundnodegeometry&#10;Hint: X3D Scene Authoring Hints:Audio https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#Audio&#10;Hint: Wikipedia 3D sound localization https://en.wikipedia.org/wiki/3D_sound_localization" name="Sound">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[source &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DSoundSourceNode]&#10;sound source for the Sound node, either an AudioClip node or a MovieTexture node.&#10;Warning: if source field is not specified, the Sound node does not emit audio." name="source"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="(X3D version 4.0 draft) [description &inputOutputLabel; &SFStringLabel; #IMPLIED]&#10;Author-provided prose that describes intended purpose of this node.&#10;Hint: include space characters since a description is not a DEF identifier. Write short phrases that make descriptions clear and readable.&#10;Hint: many XML tools substitute XML character references for special characters automatically if needed within an attribute value (such as &amp;#38; for &#38; ampersand character, or &amp;#34; for &#34; quotation-mark character)." name="description"/>
            <attribute tooltip="(X3D version 4.0 draft) [enabled &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Enables/disables node operation." name="enabled"/>
            <attribute tooltip="[location &inputOutputLabel; &SFVec3fLabel; &#34;0 0 0&#34;]&#10;Position of sound ellipsoid center, relative to local coordinate system.&#10;Hint: improve audibility by setting location='0 1.6 0' so that center height of sound ellipsoid matches typical NavigationInfo avatarSize height." name="location"/>
            <attribute tooltip="[direction &inputOutputLabel; &SFVec3fLabel; &#34;0 0 1&#34;]&#10;direction of sound axis, relative to local coordinate system." name="direction"/>
            <attribute tooltip="[intensity &inputOutputLabel; &SFFloatLabel; &#34;1&#34;]&#10;Factor [0,1] adjusting loudness (decibels) of emitted sound." name="intensity"/>
            <attribute tooltip="[minFront &inputOutputLabel; &SFFloatLabel; &#34;1&#34;]&#10;Inner (full loudness) ellipsoid distance along front direction.&#10;Warning: ensure minFront &lt;= maxFront." name="minFront"/>
            <attribute tooltip="[minBack &inputOutputLabel; &SFFloatLabel; &#34;1&#34;]&#10;Inner (full loudness) ellipsoid distance along back direction.&#10;Warning: ensure minBack &lt;= maxBack." name="minBack"/>
            <attribute tooltip="[maxFront &inputOutputLabel; &SFFloatLabel; &#34;10&#34;]&#10;Outer (zero loudness)ellipsoid distance along front direction.&#10;Warning: ensure minFront &lt;= maxFront." name="maxFront"/>
            <attribute tooltip="[maxBack &inputOutputLabel; &SFFloatLabel; &#34;10&#34;]&#10;Outer (zero loudness)ellipsoid distance along back direction.&#10;Warning: ensure minBack &lt;= maxBack." name="maxBack"/>
            <attribute tooltip="[priority &inputOutputLabel; &SFFloatLabel; &#34;0&#34;]&#10;Player hint [0,1] if needed to choose which sounds to play." name="priority"/>
            <attribute tooltip="[spatialize &initializeOnlyLabel; &SFBoolLabel; &#34;true&#34;]&#10;Whether to spatialize sound playback relative to viewer.&#10;Hint: only effective within the auralization volume." name="spatialize"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/Sphere.gif" tooltip="[X3DGeometryNode] Sphere is a geometry node, representing a perfectly round geometrical object that is the surface of a completely round ball.&#10;Hint: Sphere https://en.wikipedia.org/wiki/Sphere&#10;Hint: insert a Shape node before adding geometry or Appearance." name="Sphere">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[radius &initializeOnlyLabel; &SFFloatLabel; &#34;1&#34;] (0,+&#8734;)&#10;Size in meters.&#10;Warning: simple-geometry dimensions are initializeOnly and cannot be changed after initial creation, avoiding the need for potentially expensive tessellation at run time.&#10;Hint: for size animation, modify the scale of a parent/ancestor Transform node instead. " name="radius"/>
            <attribute tooltip="[solid &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Setting solid true means draw only one side of polygons (backface culling on), setting solid false means draw both sides of polygons (backface culling off).&#10;Hint: mnemonic &quot;this geometry is solid like a brick&quot; (you don't render the inside of a brick).&#10;Warning: default value true can completely hide geometry if viewed from wrong side!&#10;Hint: if in doubt, use solid='false' for maximum visibility.&#10;Warning: solid false not supported in VRML97.&#10;Hint: (X3D version 4.0 draft) accessType relaxed to inputOutput in order to support animation and visualization." name="solid"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;geometry&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/SphereSensor.gif" tooltip="[X3DDragSensorNode] SphereSensor converts pointing device motion into a spherical rotation&#10;about the origin of the local coordinate system.&#10;Hint: this sensor detects user interactions affecting peer nodes and their child geometry.&#10;Hint: add semi-transparent surrounding geometry to see the effect of the sensor.&#10;Hint: X3D Architecture 20.2.1 Overview of pointing device sensors https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/pointingDeviceSensor.html#OverviewOfPointingDeviceSensors&#10;Hint: X3D Architecture 20.2.2 Drag sensors https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/pointingDeviceSensor.html#DragSensors&#10;Hint: X3D Architecture 20.2.3 Activating and manipulating pointing device sensors https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/pointingDeviceSensor.html#Activatingandmanipulating" name="SphereSensor">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[description &inputOutputLabel; &SFStringLabel; #IMPLIED]&#10;Author-provided prose that describes intended purpose of this node.&#10;Hint: include space characters since a description is not a DEF identifier. Write short phrases that make descriptions clear and readable.&#10;Hint: many XML tools substitute XML character references for special characters automatically if needed within an attribute value (such as &amp;#38; for &#38; ampersand character, or &amp;#34; for &#34; quotation-mark character)." name="description"/>
            <attribute tooltip="[enabled &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Enables/disables node operation." name="enabled"/>
            <attribute tooltip="[autoOffset &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Determines whether previous offset values are remembered/accumulated." name="autoOffset"/>
            <attribute tooltip="[offset &inputOutputLabel; &SFRotationLabel; &#34;0 1 0 0&#34;]&#10;Sends event and remembers last value sensed.&#10;Warning: ROUTE connecting rotation_changed to set_offset creates a self-reinforcing positive feedback loop and results in unmanageable response." name="offset"/>
            <attribute tooltip="[isActive &outputOnlyLabel; &SFBoolLabel; #FIXED &#34;&#34;]&#10;Select geometry by activating the pointing device (for example, clicking the mouse) to generate isActive events. Output event isActive=true is sent when geometry is selected (for example, when primary mouse button is pressed), output event isActive=false is sent when geometry is deselected (for example, when primary mouse button is released).&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="isActive"/>
            <attribute tooltip="[isOver &outputOnlyLabel; &SFBoolLabel; #FIXED &#34;&#34;]&#10;Hover over geometry by aiming the mouse (or pointing device) to generate isOver events. Sensor sends output event isOver=true event when pointing device moves over sensor's geometry, and later sends output event isOver=false event when pointing device moves off.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="isOver"/>
            <attribute tooltip="[rotation_changed &outputOnlyLabel; &SFRotationLabel; #FIXED &#34;&#34;]&#10;rotation_changed events equal sum of relative bearing changes plus offset value.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="rotation_changed"/>
            <attribute tooltip="[trackPoint_changed &outputOnlyLabel; &SFVec3fLabel; #FIXED &#34;&#34;]&#10;trackPoint_changed events give intersection point of bearing with sensor's virtual geometry.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events.&#10;Warning: trackPoint_changed events represent unclamped intersection points on plane surface. Browsers can interpret drags off of the surface in various ways.  Note that translation_changed events are clamped by minPosition/maxPosition and thus may be preferable." name="trackPoint_changed"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/SpotLight.gif" tooltip="[X3DLightNode] SpotLight is a light source that illuminates geometry within a conical beam.&#10;Lighting illuminates all geometry except lines and points.  By default, light scope only illuminates peer geometry and children nodes within the scene graph hierarchy.&#10;Lights have no visible shape themselves and lighting effects continue through any intermediate geometry.&#10;Hint: the bound NavigationInfo controls whether headlight is enabled on/off. " name="SpotLight">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[on &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Enables/disables this light source." name="on"/>
            <attribute tooltip="[color &inputOutputLabel; &SFColorLabel; &#34;1 1 1&#34;] [0,1]&#10;color of light, applied to colors of objects.&#10;Hint: X3D Scene Authoring Hints, Color https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#Color" name="color"/>
            <attribute tooltip="[location &inputOutputLabel; &SFVec3fLabel; &#34;0 0 0&#34;]&#10;Position of light relative to local coordinate system." name="location"/>
            <attribute tooltip="[direction &inputOutputLabel; &SFVec3fLabel; &#34;0 0 -1&#34;]&#10;Orientation vector of light relative to local coordinate system." name="direction"/>
            <attribute tooltip="[intensity &inputOutputLabel; &SFFloatLabel; &#34;1&#34;] [0,+&#8734;]&#10;Brightness of direct emission from the light." name="intensity"/>
            <attribute tooltip="[ambientIntensity &inputOutputLabel; &SFFloatLabel; &#34;0&#34;] [0,1]&#10;Brightness of ambient (nondirectional background) emission from the light." name="ambientIntensity"/>
            <attribute tooltip="(X3D version 4.0 draft) [shadowIntensity &inputOutputLabel; &SFFloatLabel; &#34;0&#34;] [0,1]&#10; shadowIntensity field defines how much light is obscured by shapes that cast shadows, ranging from 0 (light not obscured, no visible shadows) to 1 (light completely obscured, full-intensity shadows)." name="shadowIntensity"/>
            <attribute tooltip="(X3D version 4.0 draft) [shadows &inputOutputLabel; &SFBoolLabel; &#34;false&#34;]&#10;shadows field indicates whether or not this light casts a shadow behind illuminated X3DShapeNode geometry." name="shadows"/>
            <attribute tooltip="[attenuation &inputOutputLabel; &SFVec3fLabel; &#34;1 0 0&#34;]&#10;Constant, linear-distance and squared-distance dropoff factors as radial distance increases from the source.&#10;Hint: attenuation = 1/max(attenuation[0] + attenuation[1] &#10799; r + attenuation[2] &#10799; r2 , 1)" name="attenuation"/>
            <attribute tooltip="[radius &inputOutputLabel; &SFFloatLabel; &#34;100&#34;]&#10;Maximum effective distance of light relative to local light position,&#10;affected by ancestor scaling." name="radius"/>
            <attribute tooltip="[beamWidth &inputOutputLabel; &SFFloatLabel; &#34;0.589049&#34;] [0,1.570796]&#10;Inner conical solid angle (in radians) where light source has uniform full intensity.&#10;Hint: beamWidth is inner angle of full intensity, cutOffAngle is outer angle of zero intensity. Therefore set beamWidth &lt;= cutOffAngle.&#10;Warning: if beamWidth &gt; cutOffAngle, then beamWidth is reset to equal cutOffAngle.&#10;Hint: radian units for angular measure https://en.wikipedia.org/wiki/Radian" name="beamWidth"/>
            <attribute tooltip="[cutOffAngle &inputOutputLabel; &SFFloatLabel; &#34;1.570796&#34;] [0,1.570796]&#10;Outer conical solid angle (in radians) where light source intensity becomes zero.&#10;Hint: beamWidth is inner angle of full intensity, cutOffAngle is outer angle of zero intensity. Therefore set beamWidth &lt;= cutOffAngle.&#10;Warning: if beamWidth &gt; cutOffAngle, then beamWidth is reset to equal cutOffAngle.&#10;Hint: radian units for angular measure https://en.wikipedia.org/wiki/Radian" name="cutOffAngle"/>
            <attribute tooltip="(X3D version 3.1 or later) [global &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Global lights illuminate all objects within their volume of lighting influence.&#10;Scoped lights only illuminate objects within the same transformation hierarchy.&#10;Warning: DirectionalLight default global=false to limit scope and avoid inadvertently illuminating every object in a large scene. PointLight and SpotLight default global=true since their effects are each limited by maximum radius value." name="global"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/Group.gif" tooltip="[X3DChildNode,X3DBoundedObject,X3DVisibleObject] StaticGroup is a Grouping node that can contain most nodes. StaticGroup children are guaranteed to not change, send events,&#10;receive events, or include re-USE-able content.&#10;This allows browser optimizations of contained-node content.&#10;Hint: insert a Shape node before adding geometry or Appearance.&#10;Warning: requires X3D profile='Full' or else include &lt;component name='Grouping' level='3'/&gt;" name="StaticGroup">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[children &inputOutputLabel; &MFNodeLabel;, empty list] [X3DChildNode]&#10;Grouping nodes contain an ordered list of children nodes.&#10;Hint: Each grouping node defines a coordinate space for its children, relative to the coordinate space of its parent node. Thus transformations accumulate down the scene graph hierarchy.&#10;Hint: inputOnly MFNode addChildren field can append new X3DChildNode nodes via a ROUTE connection, duplicate input nodes (i.e. matching DEF, USE values) are ignored.&#10;Warning: StaticGroup does not support inputOnly MFNode fields addChildren or removeChildren." name="children"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[bboxCenter &initializeOnlyLabel; &SFVec3fLabel; &#34;0 0 0&#34;]&#10;Bounding box center accompanies bboxSize and provides an optional hint for bounding box position offset from origin of local coordinate system.&#10;Hint: precomputation and inclusion of bounding box information can speed up the initialization of large detailed models, with a corresponding cost of increased file size.&#10;Hint: X3D Architecture, 10.2.2 Bounding boxes https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#BoundingBoxes&#10;Hint:  X3D Architecture, 10.3.1 X3DBoundedObject https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#X3DBoundedObject" name="bboxCenter"/>
            <attribute tooltip="[bboxSize &initializeOnlyLabel; &SFVec3fLabel; &#34;-1 -1 -1&#34;] or [0,+&#8734;)&#10;Bounding box size is usually omitted, and can easily be calculated automatically by an X3D player at scene-loading time with minimal computational cost. Bounding box size can also be defined as an optional authoring hint that suggests an optimization or constraint.&#10;Hint: can be useful for collision computations or inverse-kinematics (IK) engines.&#10;Hint: precomputation and inclusion of bounding box information can speed up the initialization of large detailed models, with a corresponding cost of increased file size.&#10;Hint: X3D Architecture, 10.2.2 Bounding boxes https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#BoundingBoxes&#10;Hint:  X3D Architecture, 10.3.1 X3DBoundedObject https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#X3DBoundedObject" name="bboxSize"/>
            <attribute tooltip="(X3D version 4.0 draft) [bboxDisplay &inputOutputLabel; &SFBoolLabel; &#34;false&#34;]&#10;Whether to display bounding box for associated geometry, aligned with world coordinates.&#10;Hint: the bounding box is displayed regardless of whether contained content is visible." name="bboxDisplay"/>
            <attribute tooltip="(X3D version 4.0 draft) [visible &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Whether or not renderable content within this node is visually displayed.&#10;Hint: the visible field has no effect on animation behaviors, event passing or other non-visual characteristics.&#10;Hint: content must be visible to be collidable and to be pickable." name="visible"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/StringSensor.gif" tooltip="[X3DKeyDeviceSensorNode] StringSensor generates events as the user presses keys on the keyboard. Browser support includes the notion of &quot;keyboard focus&quot;.&#10;Hint: example scenes and authoring assets at https://x3dgraphics.com/examples/X3dForWebAuthors/Chapter08UserInteractivity" name="StringSensor">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="(X3D version 4.0 draft) [description &inputOutputLabel; &SFStringLabel; #IMPLIED]&#10;Author-provided prose that describes intended purpose of the node.&#10;Hint: many XML tools substitute XML character references for special characters automatically if needed within an attribute value (such as &amp;#38; for &#38; ampersand character, or &amp;#34; for &#34; quotation-mark character)." name="description"/>
            <attribute tooltip="[enabled &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Enables/disables node operation." name="enabled"/>
            <attribute tooltip="[deletionAllowed &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;If deletionAllowed is true, then previously entered character in enteredText can be removed.&#10;If deletionAllowed is false, then characters may only be added to the string.&#10;Hint: deletion key is typically defined by local system." name="deletionAllowed"/>
            <attribute tooltip="[isActive &outputOnlyLabel; &SFBoolLabel; #FIXED &#34;&#34;]&#10;Select geometry by activating the pointing device (for example, clicking the mouse) to generate isActive events. Output event isActive=true is sent when geometry is selected (for example, when primary mouse button is pressed), output event isActive=false is sent when geometry is deselected (for example, when primary mouse button is released).&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="isActive"/>
            <attribute tooltip="[enteredText &outputOnlyLabel; &SFStringLabel; #FIXED &#34;&#34;]&#10;Events generated as character-producing keys are pressed on keyboard.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="enteredText"/>
            <attribute tooltip="[finalText &outputOnlyLabel; &SFStringLabel; #FIXED &#34;&#34;]&#10;Events generated when sequence of keystrokes matches keys in terminationText string&#10;when this condition occurs, enteredText is moved to finalText and enteredText is set to empty string.&#10;Hint: termination key is typically defined by local system.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="finalText"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/Switch.gif" tooltip="[X3DGroupingNode,X3DVisibleObject] Switch is a Grouping node that only renders one (or zero) child at a time.&#10;Switch can contain most nodes.&#10;(Contained nodes are now called 'children' rather than 'choice',&#10;for consistent naming among all GroupingNodeType nodes.)&#10;All child choices continue to receive and send events regardless of whichChoice is active.&#10;Hint: insert a Shape node before adding geometry or Appearance.&#10;Hint: authors can temporarily hide test geometry under an unselected child of a Switch.&#10;This is a good alternative to &quot;commenting out&quot; nodes.&#10;Hint: GeoViewpoint OrthoViewpoint and Viewpoint share the same binding stack, so no more than one of these nodes can be bound and active at a given time.&#10;Warning: do not include GeoViewpoint OrthoViewpoint or Viewpoint as a child of LOD or Switch, instead use ViewpointGroup as parent to constrain location proximity where the viewpoint is available to user.&#10;Warning: results are undefined if a bindable node (Background, Fog, NavigationInfo, OrthoViewpoint, TextureBackground, Viewpoint) is a contained descendant node of either LOD or Switch. Avoid this authoring pattern.&#10;Hint: contained nodes must have type X3DChildNode, such as Group or Transform or Shape.&#10;Warning: Switch is not allowed as parent of Appearance, Material, Color, Coordinate, Normal or Texture nodes." name="Switch">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[children &inputOutputLabel; &MFNodeLabel;, empty list] [X3DChildNode]&#10;Grouping nodes contain an ordered list of children nodes.&#10;Hint: Each grouping node defines a coordinate space for its children, relative to the coordinate space of its parent node. Thus transformations accumulate down the scene graph hierarchy.&#10;Hint: inputOnly MFNode addChildren field can append new X3DChildNode nodes via a ROUTE connection, duplicate input nodes (i.e. matching DEF, USE values) are ignored.&#10;Hint: inputOnly MFNode removeChildren field can remove nodes from the children list, unrecognized input nodes (i.e. nonmatching DEF, USE values) are ignored.&#10;Hint: X3D Architecture 10.2.1 Grouping and children node types, https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#GroupingAndChildrenNodes" name="children"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[whichChoice &inputOutputLabel; &SFInt32Label; &#34;-1&#34;] [-1,+&#8734;)&#10;Index of active child choice, counting from 0.&#10;Warning: default value whichChoice= -1 means no selection (and no rendering), whichChoice=0 means initial child, whichChoice=1 means second child, etc." name="whichChoice"/>
            <attribute tooltip="[bboxCenter &initializeOnlyLabel; &SFVec3fLabel; &#34;0 0 0&#34;]&#10;Bounding box center accompanies bboxSize and provides an optional hint for bounding box position offset from origin of local coordinate system.&#10;Hint: precomputation and inclusion of bounding box information can speed up the initialization of large detailed models, with a corresponding cost of increased file size.&#10;Hint: X3D Architecture, 10.2.2 Bounding boxes https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#BoundingBoxes&#10;Hint:  X3D Architecture, 10.3.1 X3DBoundedObject https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#X3DBoundedObject" name="bboxCenter"/>
            <attribute tooltip="[bboxSize &initializeOnlyLabel; &SFVec3fLabel; &#34;-1 -1 -1&#34;] or [0,+&#8734;)&#10;Bounding box size is usually omitted, and can easily be calculated automatically by an X3D player at scene-loading time with minimal computational cost. Bounding box size can also be defined as an optional authoring hint that suggests an optimization or constraint.&#10;Hint: can be useful for collision computations or inverse-kinematics (IK) engines.&#10;Hint: precomputation and inclusion of bounding box information can speed up the initialization of large detailed models, with a corresponding cost of increased file size.&#10;Hint: X3D Architecture, 10.2.2 Bounding boxes https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#BoundingBoxes&#10;Hint:  X3D Architecture, 10.3.1 X3DBoundedObject https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#X3DBoundedObject" name="bboxSize"/>
            <attribute tooltip="(X3D version 4.0 draft) [bboxDisplay &inputOutputLabel; &SFBoolLabel; &#34;false&#34;]&#10;Whether to display bounding box for associated geometry, aligned with world coordinates.&#10;Hint: the bounding box is displayed regardless of whether contained content is visible." name="bboxDisplay"/>
            <attribute tooltip="(X3D version 4.0 draft) [visible &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Whether or not renderable content within this node is visually displayed.&#10;Hint: the visible field has no effect on animation behaviors, event passing or other non-visual characteristics.&#10;Hint: content must be visible to be collidable and to be pickable." name="visible"/>
            <attribute tooltip="[containerField type (children|skin) NMTOKEN &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/Text.gif" tooltip="[X3DGeometryNode] Text is a 2D (flat) geometry node that can contain multiple lines of string values. Layout and styling is controlled by a contained FontStyle node.&#10;Hint: String (computer science) https://en.wikipedia.org/wiki/String_(computer_science)&#10;Hint: full internationalization (i18n) and localization (l10n) features are available for any written language.&#10;Hint: relates to Internationalization (i18n) http://www.w3.org/standards/webdesign/i18n&#10;Hint: insert a Shape node before adding geometry or Appearance.&#10;Hint: for advanced extensibility, authors can substitute a type-matched ProtoInstance node (with correct containerField value) for contained node content.&#10;Warning: Text node requires X3D profile='Immersive' or &lt;component name='Text' level='1'/&gt;" name="Text">
            <attribute tooltip="[fontStyle &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DFontStyleNode]&#10; The fontStyle field can contain a FontStyle or ScreenFontStyle node defining size, family, and style for presented text.&#10;Hint: Wikipedia https://en.wikipedia.org/wiki/Font" name="fontStyle"/>
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[string &inputOutputLabel; &MFStringLabel; #IMPLIED]&#10;Single or multiple string values to present as Text. Each value in the string array (including empty strings) gets displayed on a separate line.&#10;Hint: MFString arrays can have multiple values, so separate each individual string by quote marks.&#10;Hint: Strings can contain quote marks by first escaping them with a backslash&#10; example: &quot;say \&quot;hello\&quot; please&quot;&#10;Hint: many XML tools substitute XML character references for special characters automatically if needed within an attribute value (such as &amp;#38; for &#38; ampersand character, or &amp;#34; for &#34; quotation-mark character).&#10;Hint: relates to Internationalization (i18n) http://www.w3.org/standards/webdesign/i18n&#10;Example: https://x3dgraphics.com/examples/X3dForWebAuthors/Chapter02-GeometryPrimitives/TextIndex.html&#10;Example: https://x3dgraphics.com/examples/X3dForWebAuthors/Chapter02-GeometryPrimitives/TextSpecialCharactersIndex.html" name="string"/>
            <attribute tooltip="[length &inputOutputLabel; &MFFloatLabel; #IMPLIED]&#10;Array of length values for each text string in the local coordinate system.&#10;Each string is stretched or compressed to fit." name="length"/>
            <attribute tooltip="[maxExtent &inputOutputLabel; &SFFloatLabel; &#34;0.0&#34;]&#10;Limits/compresses all text strings if max string length is longer than maxExtent,&#10;as measured in local coordinate system." name="maxExtent"/>
            <attribute tooltip="[solid &inputOutputLabel; &SFBoolLabel; &#34;false&#34;]&#10;Setting solid true means draw only one side of polygons (backface culling on), setting solid false means draw both sides of polygons (backface culling off).&#10;Hint: mnemonic &quot;this geometry is solid like a brick&quot; (you don't render the inside of a brick).&#10;Warning: default value true can completely hide geometry if viewed from wrong side!&#10;Hint: if in doubt, use solid='false' for maximum visibility.&#10;Warning: solid false not supported in VRML97.&#10;Hint: (X3D version 4.0 draft) accessType relaxed to inputOutput in order to support animation and visualization." name="solid"/>
            <attribute tooltip="[lineBounds &outputOnlyLabel; &MFVec2fLabel; #IMPLIED]&#10;Array of 2D bounding box values for each line of text in the local coordinate system.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="lineBounds"/>
            <attribute tooltip="[origin &outputOnlyLabel; &SFVec3fLabel; #IMPLIED]&#10;origin of the text local coordinate system, in units of the coordinate system in which the Text node is embedded. The value of the origin field represents the upper left corner of the textBounds.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="origin"/>
            <attribute tooltip="[textBounds &outputOnlyLabel; &SFVec2fLabel; #IMPLIED]&#10;2D bounding box value for all lines of text in the local coordinate system.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="textBounds"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;geometry&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/Background.gif" tooltip="[X3DBackgroundNode] TextureBackground simulates ground and sky, using vertical arrays of wraparound color values,&#10;TextureBackground can also provide backdrop texture images on all six sides.&#10;Hint: Background, Fog, GeoViewpoint, NavigationInfo, OrthoViewpoint, TextureBackground and Viewpoint are bindable nodes, meaning that no more than one of each node type can be active at a given time.&#10;Warning: results are undefined if a bindable node (Background, Fog, NavigationInfo, OrthoViewpoint, TextureBackground, Viewpoint) is a contained descendant node of either LOD or Switch. Avoid this authoring pattern.&#10;Warning: each of the child ImageTexture or PixelTexture nodes must have unique containerField values for backTexture, bottomTexture, frontTexture, leftTexture, rightTexture, or topTexture.&#10;Hint: authors can have LoadSensor nodes receive notifications and send reporting events when background texture node(s) are loaded." name="TextureBackground">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[backTexture &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DTexture2DNode|MultiTexture] Parent TextureBackground element can contain up to six image nodes (ImageTexture PixelTexture MovieTexture MultiTexture).&#10;Warning: each child image node must have a different containerField value." name="backTexture"/>
            <attribute tooltip="[bottomTexture &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DTexture2DNode|MultiTexture] Parent TextureBackground element can contain up to six image nodes (ImageTexture PixelTexture MovieTexture MultiTexture).&#10;Warning: each child image node must have a different containerField value." name="bottomTexture"/>
            <attribute tooltip="[frontTexture &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DTexture2DNode|MultiTexture] Parent TextureBackground element can contain up to six image nodes (ImageTexture PixelTexture MovieTexture MultiTexture).&#10;Warning: each child image node must have a different containerField value." name="frontTexture"/>
            <attribute tooltip="[leftTexture &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DTexture2DNode|MultiTexture] Parent TextureBackground element can contain up to six image nodes (ImageTexture PixelTexture MovieTexture MultiTexture).&#10;Warning: each child image node must have a different containerField value." name="leftTexture"/>
            <attribute tooltip="[rightTexture &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DTexture2DNode|MultiTexture] Parent TextureBackground element can contain up to six image nodes (ImageTexture PixelTexture MovieTexture MultiTexture).&#10;Warning: each child image node must have a different containerField value." name="rightTexture"/>
            <attribute tooltip="[topTexture &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DTexture2DNode|MultiTexture] Parent TextureBackground element can contain up to six image nodes (ImageTexture PixelTexture MovieTexture MultiTexture).&#10;Warning: each child image node must have a different containerField value." name="topTexture"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[skyColor &inputOutputLabel; &MFColorLabel; &#34;0 0 0&#34;]&#10;Color of the sky at various angles on the sky sphere.&#10;First value is color of sky at 0.0 radians representing the zenith (straight up).&#10;Hint: setting the same color at two consecutive angles produces a solid color band.&#10;Warning: you must have one more skyColor value than skyAngle values.&#10;Interchange profile hint: only one color might be rendered, others can be ignored.&#10;Hint: X3D Scene Authoring Hints, Color https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#Color" name="skyColor"/>
            <attribute tooltip="[skyAngle &inputOutputLabel; &MFFloatLabel; #IMPLIED] [0,&#960;]&#10;The angle array values increase from 0.0 zenith (straight up) to &#960;/2=1.570796 (horizon) to &#960;=3.14159 (nadir).&#10;Warning: you must have one more skyColor value than skyAngle values.&#10;Warning: colors at skyAngle=0 are ignored.&#10;Interchange profile hint: this field may be ignored, applying the default value regardless.&#10;Hint: radian units for angular measure https://en.wikipedia.org/wiki/Radian" name="skyAngle"/>
            <attribute tooltip="[groundColor &inputOutputLabel; &MFColorLabel; #IMPLIED]&#10;Color of the ground at the various angles on the ground partial sphere.&#10;First value is color of ground at 0.0 radians representing the nadir (straight down).&#10;Hint: setting the same color at two consecutive angles produces a solid color band.&#10;Warning: you must have one more groundColor value than groundAngle values.&#10;Interchange profile hint: this field may be ignored, applying the default value regardless.&#10;Hint: X3D Scene Authoring Hints, Color https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#Color" name="groundColor"/>
            <attribute tooltip="[groundAngle &inputOutputLabel; &MFFloatLabel; #IMPLIED] [0,&#960;/2]&#10;The angle array values increase from 0.0 nadir (straight down) to &#960;/2=1.570796 (horizon).&#10;Warning: you must have one more groundColor value than groundAngle values.&#10;Warning: colors at groundAngle=0 are ignored.&#10;Interchange profile hint: this field may be ignored, applying the default value regardless.&#10;Hint: radian units for angular measure https://en.wikipedia.org/wiki/Radian" name="groundAngle"/>
            <attribute tooltip="[transparency &inputOutputLabel; &MFFloatLabel; &#34;0&#34;]&#10;transparency applied to texture images, enabling an X3D scene to overlay an HTML page or desktop." name="transparency"/>
            <attribute tooltip="[set_bind &inputOnlyLabel; &SFBoolLabel; #FIXED &#34;&#34;]&#10;Input event set_bind=true makes this node active,&#10;input event set_bind=false makes this node inactive.&#10;Thus setting set_bind true/false will pop/push (enable/disable) this node.&#10;Hint: paired node operations can be established by connecting set_bind and isBound fields of corresponding bindable nodes.&#10;Warning: it is an error to define this transient inputOnly field in an X3D file, instead only use it a destination for ROUTE events." name="set_bind"/>
            <attribute tooltip="[isBound &outputOnlyLabel; &SFBoolLabel; #FIXED &#34;&#34;]&#10;event true sent when node becomes active, event false sent when unbound by another node.&#10;Hint: paired node operations can be established by connecting set_bind and isBound fields of corresponding bindable nodes.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="isBound"/>
            <attribute tooltip="[bindTime &outputOnlyLabel; &SFTimeLabel; #FIXED &#34;&#34;]&#10;event sent when node becomes active/inactive.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="bindTime"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/TextureCoordinate.gif" tooltip="[X3DSingleTextureCoordinateNode] TextureCoordinate specifies 2D (s,t) texture-coordinate points, used by vertex-based geometry nodes (such as IndexedFaceSet or ElevationGrid) to map textures to vertices (and patches to NURBS surfaces).&#10;Hint: add Shape and then polgyonal/planar geometry before adding TextureCoordinate.&#10;Hint: Texture mapping https://en.wikipedia.org/wiki/Texture_mapping&#10;Hint: X3D Texturing component Figure 18.1, Texture map coordinate system https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/texturing.html#f-TextureMapCoordSystem" name="TextureCoordinate">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="(X3D version 4.0 draft) [mapping &inputOutputLabel; type NMTOKEN #IMPLIED]&#10;The mapping label identifies which texture coordinates and transformations are used to compute texture effects from corresponding geometry on a given material.&#10;Hint: TODO support planned to perform multiple-node mapping validation checks using X3D Schematron or X3D Validator https://savage.nps.edu/X3dValidator" name="mapping"/>
            <attribute tooltip="[point &inputOutputLabel; &MFVec2fLabel; #IMPLIED]&#10;pairs of 2D (s,t) texture coordinates, either in range [0,1] or higher if repeating." name="point"/>
            <attribute tooltip="[containerField type NMTOKEN (texCoord|texCoordRamp) &#34;texCoord&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/TextureCoordinate.gif" tooltip="[X3DSingleTextureCoordinateNode] TextureCoordinateGenerator computes 2D (s,t) texture-coordinate points, used by vertex-based geometry nodes (such as IndexedFaceSet or ElevationGrid) to map textures to vertices (and patches to NURBS surfaces).&#10;Hint: add Shape and then polgyonal/planar geometry before adding TextureCoordinateGenerator.&#10;Hint: Texture mapping https://en.wikipedia.org/wiki/Texture_mapping&#10;Hint: X3D Texturing component Figure 18.1, Texture map coordinate system https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/texturing.html#f-TextureMapCoordSystem" name="TextureCoordinateGenerator">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="(X3D version 4.0 draft) [mapping &inputOutputLabel; type NMTOKEN #IMPLIED]&#10;The mapping label identifies which texture coordinates and transformations are used to compute texture effects from corresponding geometry on a given material.&#10;Hint: TODO support planned to perform multiple-node mapping validation checks using X3D Schematron or X3D Validator https://savage.nps.edu/X3dValidator" name="mapping"/>
            <attribute tooltip="[mode &inputOutputLabel; &SFStringLabel; &TextureCoordinateGeneratorModes; SPHERE]&#10;parameter field defines the algorithm used to compute texture coordinates.&#10;Warning: do not wrap extra quotation marks  around these SFString enumeration values, since &#34;quotation&#34; &#34;marks&#34; are only used for MFString values.&#10;Hint: X3D Architecture Table 18.6 Texture coordinate generation modes https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/texturing.html#t-Texturecoordgeneration for further details." name="mode"/>
            <attribute tooltip="[parameter &inputOutputLabel; &MFVec2fLabel; #IMPLIED]&#10;parameter array contains scale and translation (x y z) values for Perlin NOISE mode, parameter[0] contains index of refraction for SPHERE-REFLECT mode, parameter[0] contains index of refraction and parameter[1 to 3] contains the eye point in local coordinates for SPHERE-REFLECT-LOCAL mode." name="parameter"/>
            <attribute tooltip="[containerField type NMTOKEN (texCoord|texCoordRamp) &#34;texCoord&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/TextureTransform.gif" tooltip="[X3DTextureTransformNode] TextureTransform shifts 2D texture coordinates for positioning, orienting and scaling image textures on geometry.&#10;Warning: resulting visible effects appear reversed because image changes occur before mapping to geometry.&#10;Hint: order of operations is translation, rotation about center, non-uniform scale about center.&#10;Hint: insert Shape and Appearance nodes before adding TextureTransform.&#10;Hint: Texture mapping https://en.wikipedia.org/wiki/Texture_mapping" name="TextureTransform">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="(X3D version 4.0 draft) [mapping &inputOutputLabel; type NMTOKEN #IMPLIED]&#10;The mapping label identifies which texture coordinates and transformations are used to compute texture effects from corresponding geometry on a given material.&#10;Hint: TODO support planned to perform multiple-node mapping validation checks using X3D Schematron or X3D Validator https://savage.nps.edu/X3dValidator" name="mapping"/>
            <attribute tooltip="[translation &inputOutputLabel; &SFVec2fLabel; &#34;0 0&#34;]&#10;Lateral/vertical shift in 2D (s,t) texture coordinates (opposite effect appears on geometry)." name="translation"/>
            <attribute tooltip="[center &inputOutputLabel; &SFVec2fLabel; &#34;0 0&#34;]&#10;center point in 2D (s,t) texture coordinates for rotation and scaling." name="center"/>
            <attribute tooltip="[rotation &inputOutputLabel; &SFFloatLabel; &#34;0&#34;]&#10;single rotation angle of texture about center (opposite effect appears on geometry).&#10;Warning: use a single radian angle value, not a 4-tuple Rotation." name="rotation"/>
            <attribute tooltip="[scale &inputOutputLabel; &SFVec2fLabel; &#34;1 1&#34;]&#10;Non-uniform planar scaling of texture about center (opposite effect appears on geometry)." name="scale"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;textureTransform&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/TimeSensor.gif" tooltip="[X3DTimeDependentNode,X3DSensorNode] TimeSensor continuously generates events as time passes.&#10;Typical use: ROUTE thisTimeSensorDEF.fraction_changed TO someInterpolatorDEF.set_fraction.&#10;Interchange profile hint: TimeSensor may be ignored if cycleInterval &lt; 0.01 second.&#10;Hint: event timing details are explained in X3D Specification 4.4.8.3 Execution model https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/concepts.html#ExecutionModel&#10;Hint: X3D Architecture 8 Time component https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/time.html&#10;Hint: example scenes and authoring assets at https://x3dgraphics.com/examples/X3dForWebAuthors/Chapter07EventAnimationInterpolation" name="TimeSensor">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[cycleInterval &inputOutputLabel; &SFTimeLabel; &#34;1.0&#34;] [0,+&#8734;)&#10;cycleInterval is loop duration in seconds.&#10;Interchange profile hint: TimeSensor may be ignored if&#10;cycleInterval &lt; 0.01 second.&#10;Warning: An active TimeSensor node ignores set_cycleInterval and set_startTime events.&#10;Hint: cycleInterval is a nonnegative SFTime duration interval, not an absolute clock time." name="cycleInterval"/>
            <attribute tooltip="(X3D version 4.0 draft) [description &inputOutputLabel; &SFStringLabel; #IMPLIED]&#10;Author-provided prose that describes intended purpose of this node.&#10;Hint: many XML tools substitute XML character references for special characters automatically if needed within an attribute value (such as &amp;#38; for &#38; ampersand character, or &amp;#34; for &#34; quotation-mark character)." name="description"/>
            <attribute tooltip="[enabled &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Enables/disables node operation." name="enabled"/>
            <attribute tooltip="[loop &inputOutputLabel; &SFBoolLabel; &#34;false&#34;]&#10;Repeat indefinitely when loop=true, repeat only once when loop=false." name="loop"/>
            <attribute tooltip="[startTime &inputOutputLabel; &SFTimeLabel; &#34;0&#34;]&#10;When time now &gt;= startTime, isActive becomes true and TimeSensor becomes active.&#10;Absolute time: number of seconds since January 1, 1970, 00:00:00 GMT.&#10;Hint: ROUTE a time value matching system clock to this field, such as output event from TouchSensor touchTime or TimeTrigger triggerTime." name="startTime"/>
            <attribute tooltip="[stopTime &inputOutputLabel; &SFTimeLabel; &#34;0&#34;]&#10;When stopTime becomes &lt;= time now, isActive becomes false and TimeSensor becomes inactive.&#10;Absolute time: number of seconds since January 1, 1970, 00:00:00 GMT.&#10;Hint: ROUTE a time value matching system clock to this field, such as output event from TouchSensor touchTime or TimeTrigger triggerTime.&#10;Warning: An active TimeSensor node ignores set_cycleInterval and set_startTime events.&#10;Warning:An active TimeSensor node ignores set_stopTime event values less than or equal to startTime." name="stopTime"/>
            <attribute tooltip="[cycleTime &outputOnlyLabel; &SFTimeLabel; #FIXED &#34;&#34;]&#10;cycleTime sends a time outputOnly at startTime, and also at the beginning of each new cycle (useful for synchronization with other time-based objects).&#10;Hint: the first cycleTime event for a TimeSensor node can be used as an alarm (single pulse at a specified time).&#10;Hint: cycleTime is a nonnegative SFTime duration interval, not an absolute clock time.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="cycleTime"/>
            <attribute tooltip="[isActive &outputOnlyLabel; &SFBoolLabel; #FIXED &#34;&#34;]&#10;isActive true/false events are sent when TimeSensor starts/stops running.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="isActive"/>
            <attribute tooltip="[isPaused &outputOnlyLabel; &SFBoolLabel; #FIXED &#34;&#34;]&#10;isPaused true/false events are sent when TimeSensor is paused/resumed.&#10;Warning: not supported in VRML97.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="isPaused"/>
            <attribute tooltip="[pauseTime &inputOutputLabel; &SFTimeLabel; &#34;0&#34;]&#10;When time now &gt;= pauseTime, isPaused becomes true and TimeSensor becomes paused.&#10;Absolute time: number of seconds since January 1, 1970, 00:00:00 GMT.&#10;Hint: ROUTE a time value matching system clock to this field, such as output event from TouchSensor touchTime or TimeTrigger triggerTime.&#10;Warning: not supported in VRML97." name="pauseTime"/>
            <attribute tooltip="[resumeTime &inputOutputLabel; &SFTimeLabel; &#34;0&#34;]&#10;When resumeTime becomes &lt;= time now, isPaused becomes false and TimeSensor becomes inactive.&#10;Absolute time: number of seconds since January 1, 1970, 00:00:00 GMT.&#10;Hint: ROUTE a time value matching system clock to this field, such as output event from TouchSensor touchTime or TimeTrigger triggerTime.&#10;Warning: not supported in VRML97." name="resumeTime"/>
            <attribute tooltip="[elapsedTime &outputOnlyLabel; &SFTimeLabel; #FIXED &#34;&#34;] [0,+&#8734;)&#10;Current elapsed time since TimeSensor activated/running, cumulative in seconds, and not counting any paused time.&#10;Warning: not supported in VRML97.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events.&#10;Hint: elapsedTime is a nonnegative SFTime duration interval, not an absolute clock time." name="elapsedTime"/>
            <attribute tooltip="[fraction_changed &outputOnlyLabel; &SFFloatLabel; #FIXED &#34;&#34;]&#10;fraction_changed continuously sends value in range [0,1] showing time progress in the current cycle.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="fraction_changed"/>
            <attribute tooltip="[time &outputOnlyLabel; &SFTimeLabel; #FIXED &#34;&#34;] [0,+&#8734;)&#10;Time continuously sends the absolute time (value 0.0 matches 1 January 1970) in seconds for a given simulation tick.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="time"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/TimeSensor.gif" tooltip="[X3DTriggerNode] TimeTrigger converts boolean true events to time events.&#10;Hint: example scenes and authoring assets at https://x3dgraphics.com/examples/X3dForWebAuthors/Chapter09-EventUtilitiesScripting&#10;Hint: X3D Event-Utility Node Diagrams https://x3dgraphics.com/examples/X3dForWebAuthors/Chapter09-EventUtilitiesScripting/X3dEventUtilityNodeEventDiagrams.pdf" name="TimeTrigger">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[set_boolean &inputOnlyLabel; &SFBoolLabel; #FIXED &#34;&#34;]&#10;If input event set_boolean is true, send output triggerTime event. Hint: for logical consistency, input event set_boolean false has no effect (under review as part of Mantis issue 519).&#10;Warning: it is an error to define this transient inputOnly field in an X3D file, instead only use it a destination for ROUTE events." name="set_boolean"/>
            <attribute tooltip="[triggerTime &outputOnlyLabel; &SFTimeLabel; #FIXED &#34;&#34;]&#10;triggerTime is output time event, sent when input event set_boolean is true.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="triggerTime"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/TouchSensor.gif" tooltip="[X3DTouchSensorNode] TouchSensor tracks location and state of the pointing device,&#10;detecting when a user points at or selects (activates) geometry.&#10;Hint: this sensor detects user interactions affecting peer nodes and their child geometry.&#10;Hint: X3D Architecture 20.2.1 Overview of pointing device sensors https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/pointingDeviceSensor.html#OverviewOfPointingDeviceSensors&#10;Hint: X3D Architecture 20.2.3 Activating and manipulating pointing device sensors https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/pointingDeviceSensor.html#Activatingandmanipulating&#10;Hint: example scenes and authoring assets at https://x3dgraphics.com/examples/X3dForWebAuthors/Chapter08UserInteractivity" name="TouchSensor">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[description &inputOutputLabel; &SFStringLabel; #IMPLIED]&#10;Author-provided prose that describes intended purpose of this node.&#10;Hint: include space characters since a description is not a DEF identifier. Write short phrases that make descriptions clear and readable.&#10;Hint: many XML tools substitute XML character references for special characters automatically if needed within an attribute value (such as &amp;#38; for &#38; ampersand character, or &amp;#34; for &#34; quotation-mark character)." name="description"/>
            <attribute tooltip="[enabled &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Enables/disables node operation." name="enabled"/>
            <attribute tooltip="[isActive &outputOnlyLabel; &SFBoolLabel; #FIXED &#34;&#34;]&#10;Select geometry by activating the pointing device (for example, clicking the mouse) to generate isActive events.&#10;Output event isActive=true is sent when pointing device selection is activated, output event isActive=false is sent when pointing device is deselected.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="isActive"/>
            <attribute tooltip="[isOver &outputOnlyLabel; &SFBoolLabel; #FIXED &#34;&#34;]&#10;Hover over geometry by aiming the mouse (or pointing device) to generate isOver events. Sensor sends output event isOver=true event when pointing device moves over sensor's geometry, and later sends output event isOver=false event when pointing device moves off.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="isOver"/>
            <attribute tooltip="[hitPoint_changed &outputOnlyLabel; &SFVec3fLabel; #FIXED &#34;&#34;]&#10;When pointing device selects geometry, send event containing 3D point on surface of underlying geometry, as measured in reference frame for TouchSensor&apos;s local coordinate system.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="hitPoint_changed"/>
            <attribute tooltip="[hitNormal_changed &outputOnlyLabel; &SFVec3fLabel; #FIXED &#34;&#34;]&#10;When pointing device selects geometry, send event containing surface normal vector at the hitPoint.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="hitNormal_changed"/>
            <attribute tooltip="[hitTexCoord_changed &outputOnlyLabel; &SFVec2fLabel; #FIXED &#34;&#34;]&#10;When pointing device selects geometry, send event containing texture coordinates of surface at the hitPoint.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="hitTexCoord_changed"/>
            <attribute tooltip="[touchTime &outputOnlyLabel; &SFTimeLabel; &#34;0&#34;]&#10;Time event generated when sensor is touched by pointing device, and then deselected by the user.&#10;Hint: touchTime event is generated when following three conditions are all met: (a) pointing device was pointing towards geometry when initially activated (isActive=true), (b) pointing device is currently pointing towards the geometry (isOver=true), and (c) pointing device selection is deactivated/deselected by user (isActive=false event is also generated).&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="touchTime"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/Transform.gif" tooltip="[X3DGroupingNode,X3DVisibleObject] Transform is a Grouping node that can contain most nodes. Transform translates, orients and scales child geometry within the local world coordinate system.&#10;Hint: each transformation creates a new coordinate system relative to the parent coordinate system.&#10;Hint: +Y axis is the up direction. (Similarly some scenes may consider +X is North and +Z is East.)&#10;Hint: best authoring approach is to keep +Y axis pointing towards local up direction, supporting scene composability and effective navigation response (which is based on gravity direction).&#10;Hint: insert a Shape node before adding geometry or Appearance.&#10;Hint: translation/rotation/scaling field attributes can be defined in any order in the scene. The applied order of translation/rotation/scaling transformation-matrix operations remains consistent.&#10;Hint: authors can modify order of translation/rotation/scaling operations by splitting them into separate nested parent/child Transform nodes.&#10;Warning: Transform contained by CADFace can only hold a single LOD or Shape node.&#10;Hint: X3D Scene Authoring Hints, Coordinate Systems https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#CoordinateSystems&#10;Hint: X3D Scene Authoring Hints, Scale Factors and Unit Conversions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#Scale&#10;Hint: apply containerField='shape' if parent node is CADFace." name="Transform">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[children &inputOutputLabel; &MFNodeLabel;, empty list] [X3DChildNode]&#10;Grouping nodes contain an ordered list of children nodes.&#10;Hint: Each grouping node defines a coordinate space for its children, relative to the coordinate space of its parent node. Thus transformations accumulate down the scene graph hierarchy.&#10;Hint: inputOnly MFNode addChildren field can append new X3DChildNode nodes via a ROUTE connection, duplicate input nodes (i.e. matching DEF, USE values) are ignored.&#10;Hint: inputOnly MFNode removeChildren field can remove nodes from the children list, unrecognized input nodes (i.e. nonmatching DEF, USE values) are ignored.&#10;Hint: X3D Architecture 10.2.1 Grouping and children node types, https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#GroupingAndChildrenNodes" name="children"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[translation &inputOutputLabel; &SFVec3fLabel; &#34;0 0 0&#34;]&#10;Position (x, y, z in meters) of children relative to local coordinate system.&#10;Hint: The order of operation is first apply the center offset, then scaleOrientation and scale, then rotation, then restore the center offset, then translation." name="translation"/>
            <attribute tooltip="[rotation &inputOutputLabel; &SFRotationLabel; &#34;0 0 1 0&#34;]&#10;Orientation (axis, angle in radians) of children relative to local coordinate system.&#10;Hint: The order of operation is first apply the center offset, then scaleOrientation and scale, then rotation, then restore the center offset, then translation." name="rotation"/>
            <attribute tooltip="[center &inputOutputLabel; &SFVec3fLabel; &#34;0 0 0&#34;]&#10;Translation offset from origin of local coordinate system, applied prior to rotation or scaling.&#10;Hint: The order of operation is first apply the center offset, then scaleOrientation and scale, then rotation, then restore the center offset, then translation." name="center"/>
            <attribute tooltip="[scale &inputOutputLabel; &SFVec3fLabel; &#34;1 1 1&#34;]&#10;Non-uniform x-y-z scale of child coordinate system, adjusted by center and scaleOrientation.&#10;Hint: The order of operation is first apply the center offset, then scaleOrientation and scale, then rotation, then restore the center offset, then translation." name="scale"/>
            <attribute tooltip="[scaleOrientation &inputOutputLabel; &SFRotationLabel; &#34;0 0 1 0&#34;]&#10;Preliminary rotation of coordinate system before scaling (to allow scaling around arbitrary orientations).&#10;Hint: The order of operation is first apply the center offset, then scaleOrientation and scale, then rotation, then restore the center offset, then translation." name="scaleOrientation"/>
            <attribute tooltip="[bboxCenter &initializeOnlyLabel; &SFVec3fLabel; &#34;0 0 0&#34;]&#10;Bounding box center accompanies bboxSize and provides an optional hint for bounding box position offset from origin of local coordinate system.&#10;Hint: precomputation and inclusion of bounding box information can speed up the initialization of large detailed models, with a corresponding cost of increased file size.&#10;Hint: X3D Architecture, 10.2.2 Bounding boxes https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#BoundingBoxes&#10;Hint:  X3D Architecture, 10.3.1 X3DBoundedObject https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#X3DBoundedObject" name="bboxCenter"/>
            <attribute tooltip="[bboxSize &initializeOnlyLabel; &SFVec3fLabel; &#34;-1 -1 -1&#34;] or [0,+&#8734;)&#10;Bounding box size is usually omitted, and can easily be calculated automatically by an X3D player at scene-loading time with minimal computational cost. Bounding box size can also be defined as an optional authoring hint that suggests an optimization or constraint.&#10;Hint: can be useful for collision computations or inverse-kinematics (IK) engines.&#10;Hint: precomputation and inclusion of bounding box information can speed up the initialization of large detailed models, with a corresponding cost of increased file size.&#10;Hint: X3D Architecture, 10.2.2 Bounding boxes https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#BoundingBoxes&#10;Hint:  X3D Architecture, 10.3.1 X3DBoundedObject https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#X3DBoundedObject" name="bboxSize"/>
            <attribute tooltip="(X3D version 4.0 draft) [bboxDisplay &inputOutputLabel; &SFBoolLabel; &#34;false&#34;]&#10;Whether to display bounding box for associated geometry, aligned with world coordinates.&#10;Hint: the bounding box is displayed regardless of whether contained content is visible." name="bboxDisplay"/>
            <attribute tooltip="(X3D version 4.0 draft) [visible &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Whether or not renderable content within this node is visually displayed.&#10;Hint: the visible field has no effect on animation behaviors, event passing or other non-visual characteristics.&#10;Hint: content must be visible to be collidable and to be pickable." name="visible"/>
            <attribute tooltip="[containerField type NMTOKEN (children|proxy|rootNode|shape|skin) &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/Triangle.gif" tooltip="[X3DComposedGeometryNode] IndexedTriangleFanSet is a geometry node containing a Coordinate|CoordinateDouble node, and can also contain Color|ColorRGBA, Normal and TextureCoordinate nodes.&#10;Hint: color, normal and texCoord values are applied in the same order as coord values.&#10;Hint: insert a Shape node before adding geometry or Appearance.&#10;Hint: for advanced extensibility, authors can substitute a type-matched ProtoInstance node (with correct containerField value) for contained node content." name="IndexedTriangleFanSet">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[attrib &inputOutputLabel; &MFNodeLabel;, empty list] [X3DVertexAttributeNode]&#10;Single contained FloatVertexAttribute node that can specify list of per-vertex attribute information for programmable shaders.&#10;Hint: X3D Architecture 32.2.2.4 Per-vertex attributes, https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/shaders.html#Pervertexattributes" name="attrib"/>
            <attribute tooltip="[color &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DColorNode]&#10;Single contained Color or ColorRGBA node that can specify color values applied to corresponding vertices according to colorIndex and colorPerVertex fields." name="color"/>
            <attribute tooltip="[coord &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DCoordinateNode]&#10;Single contained Coordinate or CoordinateDouble node that can specify a list of vertex values." name="coord"/>
            <attribute tooltip="[fogCoord &inputOutputLabel; &SFNodeLabel;, NULL node] [FogCoordinate]&#10;Single contained FogCoordinate node that can specify depth parameters for fog in corresponding geometry." name="fogCoord"/>
            <attribute tooltip="[normal &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DNormalNode]&#10;Single contained Normal node that can specify perpendicular vectors for corresponding vertices to support rendering computations, applied according to the normalPerVertex field.&#10;Hint: useful for special effects. Normal vector computation by 3D graphics hardware is quite fast so adding normals to a scene is typically unnecessary.&#10;Warning: normal vectors increase file size, typically doubling geometry definitions." name="normal"/>
            <attribute tooltip="[texCoord &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DTextureCoordinateNode]&#10;Single contained TextureCoordinate, TextureCoordinateGenerator or MultiTextureCoordinate node that can specify coordinates for texture mapping onto corresponding geometry." name="texCoord"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[index &initializeOnlyLabel; &MFInt32Label; #IMPLIED] [-1,+&#8734;)&#10;index list specifies triangles by connecting Coordinate vertices,&#10;each individual fan separated by -1 sentinel value.&#10;Hint: first indexed coordinate in each sequence is fan center." name="index"/>
            <attribute tooltip="[ccw &initializeOnlyLabel; &SFBoolLabel; &#34;true&#34;]&#10; ccw defines clockwise/counterclockwise ordering of vertex coordinates, which in turn defines front/back orientation of polygon normals according to Right-Hand Rule (RHR).&#10;Hint: a good debugging technique for problematic polygons is to try changing the value of ccw, which can reverse solid effects (single-sided backface culling) and normal-vector direction.&#10;Warning: consistent and correct ordering of left-handed or right-handed point sequences is important throughout the coord array of point values.&#10;Hint: clockwise https://en.wikipedia.org/wiki/Clockwise" name="ccw"/>
            <attribute tooltip="[colorPerVertex &initializeOnlyLabel; &SFBoolLabel; &#34;true&#34;]&#10;Whether Color|ColorRGBA values are applied to each point vertex (true) or to each polygon face (false).&#10;Warning: the provided value of IndexedTriangleFanSet colorPerVertex field is ignored and always treated as true.&#10;Warning: if child Color|ColorRGBA node is not provided, then geometry is rendered using corresponding Appearance and material/texture values.&#10;Hint: X3D Scene Authoring Hints, Color https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#Color" name="colorPerVertex"/>
            <attribute tooltip="[normalPerVertex &initializeOnlyLabel; &SFBoolLabel; &#34;true&#34;]&#10;Whether Normal node vector values are applied to each point vertex (true) or to each polygon face (false).&#10;Hint: if no child Normal node is provided, the X3D browser shall automatically generate normals, using creaseAngle to determine smoothed shading across shared vertices." name="normalPerVertex"/>
            <attribute tooltip="[solid &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Setting solid true means draw only one side of polygons (backface culling on), setting solid false means draw both sides of polygons (backface culling off).&#10;Hint: mnemonic &quot;this geometry is solid like a brick&quot; (you don't render the inside of a brick).&#10;Warning: default value true can completely hide geometry if viewed from wrong side!&#10;Hint: if in doubt, use solid='false' for maximum visibility.&#10;Hint: (X3D version 4.0 draft) accessType relaxed to inputOutput in order to support animation and visualization." name="solid"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;geometry&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/Triangle.gif" tooltip="[X3DComposedGeometryNode] IndexedTriangleSet is a geometry node containing a Coordinate|CoordinateDouble node, and can also contain Color|ColorRGBA, Normal and TextureCoordinate nodes.&#10;Hint: color, normal and texCoord values are applied in the same order as coord values.&#10;Hint: insert a Shape node before adding geometry or Appearance.&#10;Hint: for advanced extensibility, authors can substitute a type-matched ProtoInstance node (with correct containerField value) for contained node content." name="IndexedTriangleSet">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[attrib &inputOutputLabel; &MFNodeLabel;, empty list] [X3DVertexAttributeNode]&#10;Single contained FloatVertexAttribute node that can specify list of per-vertex attribute information for programmable shaders.&#10;Hint: X3D Architecture 32.2.2.4 Per-vertex attributes, https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/shaders.html#Pervertexattributes" name="attrib"/>
            <attribute tooltip="[color &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DColorNode]&#10;Single contained Color or ColorRGBA node that can specify color values applied to corresponding vertices according to colorIndex and colorPerVertex fields." name="color"/>
            <attribute tooltip="[coord &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DCoordinateNode]&#10;Single contained Coordinate or CoordinateDouble node that can specify a list of vertex values." name="coord"/>
            <attribute tooltip="[fogCoord &inputOutputLabel; &SFNodeLabel;, NULL node] [FogCoordinate]&#10;Single contained FogCoordinate node that can specify depth parameters for fog in corresponding geometry." name="fogCoord"/>
            <attribute tooltip="[normal &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DNormalNode]&#10;Single contained Normal node that can specify perpendicular vectors for corresponding vertices to support rendering computations, applied according to the normalPerVertex field.&#10;Hint: useful for special effects. Normal vector computation by 3D graphics hardware is quite fast so adding normals to a scene is typically unnecessary.&#10;Warning: normal vectors increase file size, typically doubling geometry definitions." name="normal"/>
            <attribute tooltip="[texCoord &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DTextureCoordinateNode]&#10;Single contained TextureCoordinate, TextureCoordinateGenerator or MultiTextureCoordinate node that can specify coordinates for texture mapping onto corresponding geometry." name="texCoord"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[index &initializeOnlyLabel; &MFInt32Label; #IMPLIED] [0,+&#8734;)&#10;index list specifies triangles by connecting Coordinate vertices.&#10;Warning: -1 sentinel values are not allowed." name="index"/>
            <attribute tooltip="[ccw &initializeOnlyLabel; &SFBoolLabel; &#34;true&#34;]&#10; ccw defines clockwise/counterclockwise ordering of vertex coordinates, which in turn defines front/back orientation of polygon normals according to Right-Hand Rule (RHR).&#10;Hint: a good debugging technique for problematic polygons is to try changing the value of ccw, which can reverse solid effects (single-sided backface culling) and normal-vector direction.&#10;Warning: consistent and correct ordering of left-handed or right-handed point sequences is important throughout the coord array of point values.&#10;Hint: clockwise https://en.wikipedia.org/wiki/Clockwise" name="ccw"/>
            <attribute tooltip="[colorPerVertex &initializeOnlyLabel; &SFBoolLabel; &#34;true&#34;]&#10;Whether Color|ColorRGBA values are applied to each point vertex (true) or to each polygon face (false).&#10;Warning: the provided value of IndexedTriangleSet colorPerVertex field is ignored and always treated as true.&#10;Warning: if child Color|ColorRGBA node is not provided, then geometry is rendered using corresponding Appearance and material/texture values.&#10;Hint: X3D Scene Authoring Hints, Color https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#Color" name="colorPerVertex"/>
            <attribute tooltip="[normalPerVertex &initializeOnlyLabel; &SFBoolLabel; &#34;true&#34;]&#10;Whether Normal node vector values are applied to each point vertex (true) or to each polygon face (false).&#10;Hint: if no child Normal node is provided, the X3D browser shall automatically generate normals, using creaseAngle to determine smoothed shading across shared vertices." name="normalPerVertex"/>
            <attribute tooltip="[solid &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Setting solid true means draw only one side of polygons (backface culling on), setting solid false means draw both sides of polygons (backface culling off).&#10;Hint: mnemonic &quot;this geometry is solid like a brick&quot; (you don't render the inside of a brick).&#10;Warning: default value true can completely hide geometry if viewed from wrong side!&#10;Hint: if in doubt, use solid='false' for maximum visibility.&#10;Hint: (X3D version 4.0 draft) accessType relaxed to inputOutput in order to support animation and visualization." name="solid"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;geometry&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/Triangle.gif" tooltip="[X3DComposedGeometryNode] IndexedTriangleStripSet is a geometry node containing a Coordinate|CoordinateDouble node, and can also contain Color|ColorRGBA, Normal and TextureCoordinate nodes.&#10;Hint: color, normal and texCoord values are applied in the same order as coord values.&#10;Hint: insert a Shape node before adding geometry or Appearance.&#10;Hint: for advanced extensibility, authors can substitute a type-matched ProtoInstance node (with correct containerField value) for contained node content." name="IndexedTriangleStripSet">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[attrib &inputOutputLabel; &MFNodeLabel;, empty list] [X3DVertexAttributeNode]&#10;Single contained FloatVertexAttribute node that can specify list of per-vertex attribute information for programmable shaders.&#10;Hint: X3D Architecture 32.2.2.4 Per-vertex attributes, https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/shaders.html#Pervertexattributes" name="attrib"/>
            <attribute tooltip="[color &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DColorNode]&#10;Single contained Color or ColorRGBA node that can specify color values applied to corresponding vertices according to colorIndex and colorPerVertex fields." name="color"/>
            <attribute tooltip="[coord &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DCoordinateNode]&#10;Single contained Coordinate or CoordinateDouble node that can specify a list of vertex values." name="coord"/>
            <attribute tooltip="[fogCoord &inputOutputLabel; &SFNodeLabel;, NULL node] [FogCoordinate]&#10;Single contained FogCoordinate node that can specify depth parameters for fog in corresponding geometry." name="fogCoord"/>
            <attribute tooltip="[normal &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DNormalNode]&#10;Single contained Normal node that can specify perpendicular vectors for corresponding vertices to support rendering computations, applied according to the normalPerVertex field.&#10;Hint: useful for special effects. Normal vector computation by 3D graphics hardware is quite fast so adding normals to a scene is typically unnecessary.&#10;Warning: normal vectors increase file size, typically doubling geometry definitions." name="normal"/>
            <attribute tooltip="[texCoord &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DTextureCoordinateNode]&#10;Single contained TextureCoordinate, TextureCoordinateGenerator or MultiTextureCoordinate node that can specify coordinates for texture mapping onto corresponding geometry." name="texCoord"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[index &initializeOnlyLabel; &MFInt32Label; #IMPLIED] [-1,+&#8734;)&#10;index list specifies triangles by connecting Coordinate vertices for each individual strip, separated by -1 sentinel values.&#10;" name="index"/>
            <attribute tooltip="[ccw &initializeOnlyLabel; &SFBoolLabel; &#34;true&#34;]&#10; ccw defines clockwise/counterclockwise ordering of vertex coordinates, which in turn defines front/back orientation of polygon normals according to Right-Hand Rule (RHR).&#10;Hint: a good debugging technique for problematic polygons is to try changing the value of ccw, which can reverse solid effects (single-sided backface culling) and normal-vector direction.&#10;Warning: consistent and correct ordering of left-handed or right-handed point sequences is important throughout the coord array of point values.&#10;Hint: clockwise https://en.wikipedia.org/wiki/Clockwise" name="ccw"/>
            <attribute tooltip="[colorPerVertex &initializeOnlyLabel; &SFBoolLabel; &#34;true&#34;]&#10;Whether Color|ColorRGBA values are applied to each point vertex (true) or to each polygon face (false).&#10;Warning: the provided value of IndexedTriangleStripSet colorPerVertex field is ignored and always treated as true.&#10;Warning: if child Color|ColorRGBA node is not provided, then geometry is rendered using corresponding Appearance and material/texture values.&#10;Hint: X3D Scene Authoring Hints, Color https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#Color" name="colorPerVertex"/>
            <attribute tooltip="[normalPerVertex &initializeOnlyLabel; &SFBoolLabel; &#34;true&#34;]&#10;Whether Normal node vector values are applied to each point vertex (true) or to each polygon face (false).&#10;Hint: if no child Normal node is provided, the X3D browser shall automatically generate normals, using creaseAngle to determine smoothed shading across shared vertices." name="normalPerVertex"/>
            <attribute tooltip="[solid &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Setting solid true means draw only one side of polygons (backface culling on), setting solid false means draw both sides of polygons (backface culling off).&#10;Hint: mnemonic &quot;this geometry is solid like a brick&quot; (you don't render the inside of a brick).&#10;Warning: default value true can completely hide geometry if viewed from wrong side!&#10;Hint: if in doubt, use solid='false' for maximum visibility.&#10;Hint: (X3D version 4.0 draft) accessType relaxed to inputOutput in order to support animation and visualization." name="solid"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;geometry&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/Triangle.gif" tooltip="[X3DComposedGeometryNode] TriangleFanSet is a geometry node containing a Coordinate|CoordinateDouble node, and can also contain Color|ColorRGBA, Normal and TextureCoordinate nodes.&#10;Hint: color, normal and texCoord values are applied in the same order as coord values.&#10;Hint: insert a Shape node before adding geometry or Appearance.&#10;Hint: for advanced extensibility, authors can substitute a type-matched ProtoInstance node (with correct containerField value) for contained node content." name="TriangleFanSet">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[attrib &inputOutputLabel; &MFNodeLabel;, empty list] [X3DVertexAttributeNode]&#10;Single contained FloatVertexAttribute node that can specify list of per-vertex attribute information for programmable shaders.&#10;Hint: X3D Architecture 32.2.2.4 Per-vertex attributes, https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/shaders.html#Pervertexattributes" name="attrib"/>
            <attribute tooltip="[color &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DColorNode]&#10;Single contained Color or ColorRGBA node that can specify color values applied to corresponding vertices according to colorIndex and colorPerVertex fields." name="color"/>
            <attribute tooltip="[coord &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DCoordinateNode]&#10;Single contained Coordinate or CoordinateDouble node that can specify a list of vertex values." name="coord"/>
            <attribute tooltip="[fogCoord &inputOutputLabel; &SFNodeLabel;, NULL node] [FogCoordinate]&#10;Single contained FogCoordinate node that can specify depth parameters for fog in corresponding geometry." name="fogCoord"/>
            <attribute tooltip="[normal &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DNormalNode]&#10;Single contained Normal node that can specify perpendicular vectors for corresponding vertices to support rendering computations, applied according to the normalPerVertex field.&#10;Hint: useful for special effects. Normal vector computation by 3D graphics hardware is quite fast so adding normals to a scene is typically unnecessary.&#10;Warning: normal vectors increase file size, typically doubling geometry definitions." name="normal"/>
            <attribute tooltip="[texCoord &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DTextureCoordinateNode]&#10;Single contained TextureCoordinate, TextureCoordinateGenerator or MultiTextureCoordinate node that can specify coordinates for texture mapping onto corresponding geometry." name="texCoord"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[fanCount &initializeOnlyLabel; &MFInt32Label; #IMPLIED] (3,+&#8734;)&#10;fanCount array provides number of vertices in each fan." name="fanCount"/>
            <attribute tooltip="[ccw &initializeOnlyLabel; &SFBoolLabel; &#34;true&#34;]&#10; ccw defines clockwise/counterclockwise ordering of vertex coordinates, which in turn defines front/back orientation of polygon normals according to Right-Hand Rule (RHR).&#10;Hint: a good debugging technique for problematic polygons is to try changing the value of ccw, which can reverse solid effects (single-sided backface culling) and normal-vector direction.&#10;Warning: consistent and correct ordering of left-handed or right-handed point sequences is important throughout the coord array of point values.&#10;Hint: clockwise https://en.wikipedia.org/wiki/Clockwise" name="ccw"/>
            <attribute tooltip="[colorPerVertex &initializeOnlyLabel; &SFBoolLabel; &#34;true&#34;]&#10;Whether Color|ColorRGBA values are applied to each point vertex (true) or to each polygon face (false).&#10;Warning: the provided value of TriangleFanSet colorPerVertex field is ignored and always treated as true.&#10;Warning: if child Color|ColorRGBA node is not provided, then geometry is rendered using corresponding Appearance and material/texture values.&#10;Hint: X3D Scene Authoring Hints, Color https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#Color" name="colorPerVertex"/>
            <attribute tooltip="[normalPerVertex &initializeOnlyLabel; &SFBoolLabel; &#34;true&#34;]&#10;Whether Normal node vector values are applied to each point vertex (true) or to each polygon face (false).&#10;Hint: if no child Normal node is provided, the X3D browser shall automatically generate normals, using creaseAngle to determine smoothed shading across shared vertices." name="normalPerVertex"/>
            <attribute tooltip="[solid &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Setting solid true means draw only one side of polygons (backface culling on), setting solid false means draw both sides of polygons (backface culling off).&#10;Hint: mnemonic &quot;this geometry is solid like a brick&quot; (you don't render the inside of a brick).&#10;Warning: default value true can completely hide geometry if viewed from wrong side!&#10;Hint: if in doubt, use solid='false' for maximum visibility.&#10;Hint: (X3D version 4.0 draft) accessType relaxed to inputOutput in order to support animation and visualization." name="solid"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;geometry&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/Triangle.gif" tooltip="[X3DComposedGeometryNode] TriangleSet is a geometry node containing a Coordinate|CoordinateDouble node, and can also contain Color|ColorRGBA, Normal and TextureCoordinate nodes.&#10;Hint: color, normal and texCoord values are applied in the same order as coord values.&#10;Hint: insert a Shape node before adding geometry or Appearance.&#10;Hint: for advanced extensibility, authors can substitute a type-matched ProtoInstance node (with correct containerField value) for contained node content." name="TriangleSet">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[attrib &inputOutputLabel; &MFNodeLabel;, empty list] [X3DVertexAttributeNode]&#10;Single contained FloatVertexAttribute node that can specify list of per-vertex attribute information for programmable shaders.&#10;Hint: X3D Architecture 32.2.2.4 Per-vertex attributes, https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/shaders.html#Pervertexattributes" name="attrib"/>
            <attribute tooltip="[color &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DColorNode]&#10;Single contained Color or ColorRGBA node that can specify color values applied to corresponding vertices according to colorIndex and colorPerVertex fields." name="color"/>
            <attribute tooltip="[coord &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DCoordinateNode]&#10;Single contained Coordinate or CoordinateDouble node that can specify a list of vertex values." name="coord"/>
            <attribute tooltip="[fogCoord &inputOutputLabel; &SFNodeLabel;, NULL node] [FogCoordinate]&#10;Single contained FogCoordinate node that can specify depth parameters for fog in corresponding geometry." name="fogCoord"/>
            <attribute tooltip="[normal &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DNormalNode]&#10;Single contained Normal node that can specify perpendicular vectors for corresponding vertices to support rendering computations, applied according to the normalPerVertex field.&#10;Hint: useful for special effects. Normal vector computation by 3D graphics hardware is quite fast so adding normals to a scene is typically unnecessary.&#10;Warning: normal vectors increase file size, typically doubling geometry definitions." name="normal"/>
            <attribute tooltip="[texCoord &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DTextureCoordinateNode]&#10;Single contained TextureCoordinate, TextureCoordinateGenerator or MultiTextureCoordinate node that can specify coordinates for texture mapping onto corresponding geometry." name="texCoord"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[ccw &initializeOnlyLabel; &SFBoolLabel; &#34;true&#34;]&#10; ccw defines clockwise/counterclockwise ordering of vertex coordinates, which in turn defines front/back orientation of polygon normals according to Right-Hand Rule (RHR).&#10;Hint: a good debugging technique for problematic polygons is to try changing the value of ccw, which can reverse solid effects (single-sided backface culling) and normal-vector direction.&#10;Warning: consistent and correct ordering of left-handed or right-handed point sequences is important throughout the coord array of point values.&#10;Hint: clockwise https://en.wikipedia.org/wiki/Clockwise" name="ccw"/>
            <attribute tooltip="[colorPerVertex &initializeOnlyLabel; &SFBoolLabel; &#34;true&#34;]&#10;Whether Color|ColorRGBA values are applied to each point vertex (true) or to each polygon face (false).&#10;Warning: the provided value of TriangleSet colorPerVertex field is ignored and always treated as true.&#10;Warning: if child Color|ColorRGBA node is not provided, then geometry is rendered using corresponding Appearance and material/texture values.&#10;Hint: X3D Scene Authoring Hints, Color https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#Color" name="colorPerVertex"/>
            <attribute tooltip="[normalPerVertex &initializeOnlyLabel; &SFBoolLabel; &#34;true&#34;]&#10;Whether Normal node vector values are applied to each point vertex (true) or to each polygon face (false).&#10;Hint: if no child Normal node is provided, the X3D browser shall automatically generate normals, using creaseAngle to determine smoothed shading across shared vertices." name="normalPerVertex"/>
            <attribute tooltip="[solid &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Setting solid true means draw only one side of polygons (backface culling on), setting solid false means draw both sides of polygons (backface culling off).&#10;Hint: mnemonic &quot;this geometry is solid like a brick&quot; (you don't render the inside of a brick).&#10;Warning: default value true can completely hide geometry if viewed from wrong side!&#10;Hint: if in doubt, use solid='false' for maximum visibility.&#10;Hint: (X3D version 4.0 draft) accessType relaxed to inputOutput in order to support animation and visualization." name="solid"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;geometry&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/Triangle.gif" tooltip="[X3DComposedGeometryNode] TriangleStripSet is a geometry node containing a Coordinate|CoordinateDouble node, and can also contain Color|ColorRGBA, Normal and TextureCoordinate nodes.&#10;Hint: color, normal and texCoord values are applied in the same order as coord values.&#10;Hint: insert a Shape node before adding geometry or Appearance.&#10;Hint: for advanced extensibility, authors can substitute a type-matched ProtoInstance node (with correct containerField value) for contained node content." name="TriangleStripSet">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[attrib &inputOutputLabel; &MFNodeLabel;, empty list] [X3DVertexAttributeNode]&#10;Single contained FloatVertexAttribute node that can specify list of per-vertex attribute information for programmable shaders.&#10;Hint: X3D Architecture 32.2.2.4 Per-vertex attributes, https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/shaders.html#Pervertexattributes" name="attrib"/>
            <attribute tooltip="[color &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DColorNode]&#10;Single contained Color or ColorRGBA node that can specify color values applied to corresponding vertices according to colorIndex and colorPerVertex fields." name="color"/>
            <attribute tooltip="[coord &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DCoordinateNode]&#10;Single contained Coordinate or CoordinateDouble node that can specify a list of vertex values." name="coord"/>
            <attribute tooltip="[fogCoord &inputOutputLabel; &SFNodeLabel;, NULL node] [FogCoordinate]&#10;Single contained FogCoordinate node that can specify depth parameters for fog in corresponding geometry." name="fogCoord"/>
            <attribute tooltip="[normal &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DNormalNode]&#10;Single contained Normal node that can specify perpendicular vectors for corresponding vertices to support rendering computations, applied according to the normalPerVertex field.&#10;Hint: useful for special effects. Normal vector computation by 3D graphics hardware is quite fast so adding normals to a scene is typically unnecessary.&#10;Warning: normal vectors increase file size, typically doubling geometry definitions." name="normal"/>
            <attribute tooltip="[texCoord &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DTextureCoordinateNode]&#10;Single contained TextureCoordinate, TextureCoordinateGenerator or MultiTextureCoordinate node that can specify coordinates for texture mapping onto corresponding geometry." name="texCoord"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[stripCount &initializeOnlyLabel; &MFInt32Label; #IMPLIED] (3,+&#8734;)&#10;stripCount array provides number of vertices in each strip.&#10;Warning: do not exceed number of points in contained Coordinate|CoordinateDouble node." name="stripCount"/>
            <attribute tooltip="[ccw &initializeOnlyLabel; &SFBoolLabel; &#34;true&#34;]&#10; ccw defines clockwise/counterclockwise ordering of vertex coordinates, which in turn defines front/back orientation of polygon normals according to Right-Hand Rule (RHR).&#10;Hint: a good debugging technique for problematic polygons is to try changing the value of ccw, which can reverse solid effects (single-sided backface culling) and normal-vector direction.&#10;Warning: consistent and correct ordering of left-handed or right-handed point sequences is important throughout the coord array of point values.&#10;Hint: clockwise https://en.wikipedia.org/wiki/Clockwise" name="ccw"/>
            <attribute tooltip="[colorPerVertex &initializeOnlyLabel; &SFBoolLabel; &#34;true&#34;]&#10;Whether Color|ColorRGBA values are applied to each point vertex (true) or to each polygon face (false).&#10;Warning: the provided value of TriangleStripSet colorPerVertex field is ignored and always treated as true.&#10;Warning: if child Color|ColorRGBA node is not provided, then geometry is rendered using corresponding Appearance and material/texture values.&#10;Hint: X3D Scene Authoring Hints, Color https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#Color" name="colorPerVertex"/>
            <attribute tooltip="[normalPerVertex &initializeOnlyLabel; &SFBoolLabel; &#34;true&#34;]&#10;Whether Normal node vector values are applied to each point vertex (true) or to each polygon face (false).&#10;Hint: if no child Normal node is provided, the X3D browser shall automatically generate normals, using creaseAngle to determine smoothed shading across shared vertices." name="normalPerVertex"/>
            <attribute tooltip="[solid &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Setting solid true means draw only one side of polygons (backface culling on), setting solid false means draw both sides of polygons (backface culling off).&#10;Hint: mnemonic &quot;this geometry is solid like a brick&quot; (you don't render the inside of a brick).&#10;Warning: default value true can completely hide geometry if viewed from wrong side!&#10;Hint: if in doubt, use solid='false' for maximum visibility.&#10;Hint: (X3D version 4.0 draft) accessType relaxed to inputOutput in order to support animation and visualization." name="solid"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;geometry&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/Material.gif" tooltip="(X3D version 3.2 or later) [X3DMaterialNode] TwoSidedMaterial specifies surface rendering properties for associated geometry nodes, for outer (front) and inner (back) sides of polygons.&#10;Material attributes are used by the X3D lighting equations during rendering.&#10;Warning: requires X3D profile='Full' or else include &lt;component name='Shape' level='4'/&gt;&#10;Hint: insert Shape and Appearance nodes before adding material.&#10;Hint: DEF/USE copies of a single node can provide a similar &quot;look + feel&quot; style for related shapes in a scene.&#10;Hint: X3D Scene Authoring Hints, Color https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#Color&#10;Warning: corresponding geometry within the parent Shape must have solid='false' for two-sided rendering, otherwise no reverse-side back geometry is displayed.&#10;Hint: X3D Architecture 12.2.3 Two-sided materials https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/shape.html#TwoSidedMaterials&#10;Hint: X3D Architecture 17.2.2 Lighting model https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/lighting.html#Lightingmodel&#10;Warning: X3D4 Architecture has deprecated TwoSidedMaterial, preferring use of child backMaterial node in parent Appearance." name="TwoSidedMaterial">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[separateBackColor &inputOutputLabel; &SFBoolLabel; &#34;false&#34;]&#10;separateBackColor determines whether separate Material values are used for back faces.&#10;Warning: backface Material values are ignored unless you set separateBackColor='true'" name="separateBackColor"/>
            <attribute tooltip="[backDiffuseColor &inputOutputLabel; &SFColorLabel; &#34;0.8 0.8 0.8&#34;] [0,1]&#10;how much direct, angle-dependent light is reflected from all light sources.&#10;Hint: only emissiveColor affects IndexedLineSet, LineSet and PointSet." name="backDiffuseColor"/>
            <attribute tooltip="[backEmissiveColor &inputOutputLabel; &SFColorLabel; &#34;0 0 0&#34;] [0,1]&#10;how much glowing light is emitted from this object.&#10;Hint: emissiveColors glow even when all lights are off.&#10;Hint: reset diffuseColor from default (.8 .8 .8) to (0 0 0) to avoid washout.&#10;Hint: only emissiveColor affects IndexedLineSet, LineSet and PointSet.&#10;Warning: bright emissiveColor values can wash out other colors and some textures." name="backEmissiveColor"/>
            <attribute tooltip="[backSpecularColor &inputOutputLabel; &SFColorLabel; &#34;0 0 0&#34;] [0,1]&#10;specular highlights are brightness reflections (example: shiny spots on an apple).&#10;Interchange profile hint: this field may be ignored, applying the default value regardless." name="backSpecularColor"/>
            <attribute tooltip="[backShininess &inputOutputLabel; &SFFloatLabel; &#34;0.2&#34;] [0,1]&#10;Lower shininess values provide soft specular glows, while higher values result in sharper, smaller highlights.&#10;Interchange profile hint: this field may be ignored, applying the default value regardless." name="backShininess"/>
            <attribute tooltip="[backAmbientIntensity &inputOutputLabel; &SFFloatLabel; &#34;0.2&#34;] [0,1]&#10;how much ambient omnidirectional light is reflected from all light sources.&#10;Interchange profile hint: this field may be ignored, applying the default value regardless." name="backAmbientIntensity"/>
            <attribute tooltip="[backTransparency &inputOutputLabel; &SFFloatLabel; &#34;0&#34;] [0,1]&#10;how &quot;clear&quot; an object is: 1.0 is completely transparent, 0.0 is completely opaque.&#10;Interchange profile hint: transparency &lt; .5 opaque, transparency &gt; .5 transparent." name="backTransparency"/>
            <attribute tooltip="[diffuseColor &inputOutputLabel; &SFColorLabel; &#34;0.8 0.8 0.8&#34;] [0,1]&#10;how much direct, angle-dependent light is reflected from all light sources.&#10;Hint: only emissiveColor affects IndexedLineSet, LineSet and PointSet." name="diffuseColor"/>
            <attribute tooltip="[emissiveColor &inputOutputLabel; &SFColorLabel; &#34;0 0 0&#34;] [0,1]&#10;how much glowing light is emitted from this object.&#10;Hint: emissiveColors glow even when all lights are off.&#10;Hint: reset diffuseColor from default (.8 .8 .8) to (0 0 0) to avoid washout.&#10;Hint: only emissiveColor affects IndexedLineSet, LineSet and PointSet.&#10;Warning: bright emissiveColor values can wash out other colors and some textures." name="emissiveColor"/>
            <attribute tooltip="[specularColor &inputOutputLabel; &SFColorLabel; &#34;0 0 0&#34;] [0,1]&#10;specular highlights are brightness reflections (example: shiny spots on an apple).&#10;Interchange profile hint: this field may be ignored, applying the default value regardless." name="specularColor"/>
            <attribute tooltip="[shininess &inputOutputLabel; &SFFloatLabel; &#34;0.2&#34;] [0,1]&#10;Lower shininess values provide soft specular glows, while higher values result in sharper, smaller highlights.&#10;Interchange profile hint: this field may be ignored, applying the default value regardless." name="shininess"/>
            <attribute tooltip="[ambientIntensity &inputOutputLabel; &SFFloatLabel; &#34;0.2&#34;] [0,1]&#10;how much ambient omnidirectional light is reflected from all light sources.&#10;Interchange profile hint: this field may be ignored, applying the default value regardless." name="ambientIntensity"/>
            <attribute tooltip="[transparency &inputOutputLabel; &SFFloatLabel; &#34;0&#34;] [0,1]&#10;how &quot;clear&quot; an object is: 1.0 is completely transparent, 0.0 is completely opaque.&#10;Interchange profile hint: transparency &lt; .5 opaque, transparency &gt; .5 transparent." name="transparency"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;material&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <!-- USE is not a legal element. -->
        <element icon="icons/Viewpoint.gif" tooltip="[X3DViewpointNode] Viewpoint provides a specific location and direction where the user may view the scene. Viewpoints are the primary way for a user to navigate within a scene, and for an author to show critical aspects of a model.&#10;Hint: a sequence of good Viewpoints with understandable descriptions can provide a guided tour of a model.&#10;Hint: the currently bound NavigationInfo node has a major effect on how a user might change viewing position and orientation after reaching this Viewpoint.&#10;Hint: consider paired Viewpoint/NavigationInfo node combinations by defining ROUTE connections between corresponding isBound/set_bind fields.&#10;Hint: consider how users might interact with the current X3D model, either standalone or as an Inline within a larger parent scene.&#10;Hint: Background, Fog, GeoViewpoint, NavigationInfo, OrthoViewpoint, TextureBackground and Viewpoint are bindable nodes, meaning that no more than one of each node type can be active at a given time.&#10;Hint: GeoViewpoint OrthoViewpoint and Viewpoint share the same binding stack, so no more than one of these nodes can be bound and active at a given time.&#10;Warning: results are undefined if a bindable node (Background, Fog, NavigationInfo, OrthoViewpoint, TextureBackground, Viewpoint) is a contained descendant node of either LOD or Switch. Avoid this authoring pattern.&#10;Warning: do not include GeoViewpoint OrthoViewpoint or Viewpoint as a child of LOD or Switch, instead use ViewpointGroup as parent to constrain location proximity where the viewpoint is available to user.&#10;Hint: Regardless of viewpoint jump value at bind time, the relative viewing transformation between user's view and defined position/orientation is stored for later use when un-jumping (returning to the viewpoint when subsequent viewpoint is unbound).&#10;Hint: customizable design pattern for dedicated Viewpoint/NavigationInfo pair: &lt;Viewpoint DEF='SpecialView'/&gt; &lt;NavigationInfo DEF='SpecialNav'/&gt; &lt;ROUTE fromNode='SpecialView' fromField='isBound' toNode='SpecialNav' toField='set_bind'/&gt;&#10;Hint: X3D Scene Authoring Hints, Viewpoints https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#Viewpoints" name="Viewpoint">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="(X3D version 4.0 draft) [navigationInfo &inputOutputLabel; &SFNodeLabel;, NULL node] [NavigationInfo]&#10;The navigationInfo field defines a dedicated NavigationInfo node for this X3DViewpointNode. The specified NavigationInfo node receives a set_bind TRUE event at the time when the parent node is bound and receives a set_bind FALSE at the time when the parent node is unbound.&#10;Hint: allows simple integration of custom navigation associated with each Viewpoint according to user needs at that location." name="navigationInfo"/>
            <attribute tooltip="(X3D version 4.0 draft) [viewAll &inputOutputLabel; &SFBoolLabel;, false]&#10;Viewpoint is automatically adjusted to view all visible geometry. Typically centerOfRotation is shifted to center of current bounding box and view is zoomed in or out until all visible objects are viewed.&#10;Hint: no collision detection or proximity sensing occurs when zooming.&#10;Warning: if needed, near and far clipping planes shall be adjusted to allow viewing the entire scene.&#10;Hint: when the value of the viewAll field is changed from TRUE to FALSE, no change in the current view occurs." name="viewAll"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[description &initializeOnlyLabel; &SFStringLabel; #IMPLIED]&#10;Text description or navigation hint to describe the significance of this model Viewpoint.&#10;Hint: a sequence of good Viewpoints with understandable descriptions can provide a guided tour of a model.&#10;Hint: the currently bound NavigationInfo node has a major effect on how a user might change viewing position and orientation after reaching this Viewpoint.&#10;Hint: consider paired Viewpoint/NavigationInfo node combinations by defining ROUTE connections between corresponding isBound/set_bind fields.&#10;Hint: include space characters since a description is not a DEF identifier. Write short phrases that make descriptions clear and readable.&#10;Warning: without description, this Viewpoint is unlikely to appear on browser Viewpoint menus.&#10;Hint: many XML tools substitute XML character references for special characters automatically if needed within an attribute value (such as &amp;#38; for &#38; ampersand character, or &amp;#34; for &#34; quotation-mark character)." name="description"/>
            <attribute tooltip="(X3D version 4.0 draft) [farDistance &inputOutputLabel; &SFFloatLabel; &#34;-1&#34;] or (0,+&#8734;)&#10;farDistance defines maximum clipping plane distance allowed for object display.&#10;Hint: overrides bound NavigationInfo visibilityLimit value, if any.&#10;Hint: default value -1 means no effect on currently defined view frustum boundaries.&#10;Hint: Aliasing https://en.wikipedia.org/wiki/Aliasing and Clipping  https://en.wikipedia.org/wiki/Clipping_(computer_graphics)&#10;Warning: nearDistance must be less than farDistance." name="farDistance"/>
            <attribute tooltip="(X3D version 4.0 draft) [nearDistance &inputOutputLabel; &SFFloatLabel; &#34;-1&#34;] or (0,+&#8734;)&#10;nearDistance defines minimum clipping plane distance necessary for object display.&#10;Hint: overrides bound NavigationInfo avatarSize value, if any.&#10;Hint: default value -1 means no effect on currently defined view frustum boundaries.&#10;Hint: Aliasing https://en.wikipedia.org/wiki/Aliasing and Clipping  https://en.wikipedia.org/wiki/Clipping_(computer_graphics)&#10;Warning: nearDistance must be less than farDistance." name="nearDistance"/>
            <attribute tooltip="[position &inputOutputLabel; &SFVec3fLabel; &#34;0 0 10&#34;]&#10;position (x, y, z in meters) relative to local coordinate system." name="position"/>
            <attribute tooltip="[orientation &inputOutputLabel; &SFRotationLabel; &#34;0 0 1 0&#34;]&#10;Rotation (axis, angle in radians) of Viewpoint, relative to default -Z axis direction in local coordinate system.&#10;Warning: for VR/AR/MAR users wearing a head-mounted display (HMD), animating this field may induce motion sickness.&#10;Hint: this is orientation _change_ from default direction (0 0 -1).&#10;Hint: complex rotations can be accomplished axis-by-axis using parent Transforms." name="orientation"/>
            <attribute tooltip="[centerOfRotation &inputOutputLabel; &SFVec3fLabel; &#34;0 0 0&#34;]&#10;centerOfRotation specifies center point about which to rotate user's eyepoint when in EXAMINE or LOOKAT mode." name="centerOfRotation"/>
            <attribute tooltip="[fieldOfView &inputOutputLabel; &SFFloatLabel; &#34;0.7854&#34; (0,&#960;)]&#10;Preferred minimum viewing angle from this viewpoint in radians, providing minimum height or minimum width (whichever is smaller).&#10;Small field of view roughly corresponds to a telephoto lens,&#10;large field of view roughly corresponds to a wide-angle lens.&#10;Hint: modifying Viewpoint distance to object may be better for zooming.&#10;Warning: fieldOfView may not be correct for different window sizes and aspect ratios.&#10;Warning: for VR/AR/MAR users wearing a head-mounted display (HMD), animating this field may induce motion sickness.&#10;Interchange profile hint: this field may be ignored, applying the default value regardless." name="fieldOfView"/>
            <attribute tooltip="[jump &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Transition instantly by jumping, otherwise smoothly adjust offsets in place when changing to this Viewpoint.&#10;Hint: see NavigationInfo.transitionType for the manner in which animated Viewpoint transistions occur.&#10;Hint: set jump=true for instantaneous camera motion when going to this viewpoint.&#10;Warning: for VR/AR/MAR users wearing head-mounted displays, animating transitions between viewpoints may induce motion sickness." name="jump"/>
            <attribute tooltip="[retainUserOffsets &inputOutputLabel; &SFBoolLabel; &#34;false&#34;]&#10;Retain (true) or reset to zero (false) any prior user navigation offsets from defined viewpoint position, orientation." name="retainUserOffsets"/>
            <attribute tooltip="[set_bind &inputOnlyLabel; &SFBoolLabel; #FIXED &#34;&#34;]&#10;Sending event set_bind=true makes this node active.&#10;Sending event set_bind=false makes this node inactive.&#10;Thus setting set_bind to true/false will pop/push (enable/disable) this Viewpoint.&#10;Hint: paired node operations can be established by connecting set_bind and isBound fields of corresponding bindable nodes.&#10;Warning: it is an error to define this transient inputOnly field in an X3D file, instead only use it a destination for ROUTE events." name="set_bind"/>
            <attribute tooltip="[isBound &outputOnlyLabel; &SFBoolLabel; #FIXED &#34;&#34;]&#10;Output event true gets sent when node becomes bound and activated, otherwise output event false gets sent when node becomes unbound and deactivated.&#10;Hint: paired node operations can be established by connecting set_bind and isBound fields of corresponding bindable nodes.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="isBound"/>
            <attribute tooltip="[bindTime &outputOnlyLabel; &SFTimeLabel; #FIXED &#34;&#34;]&#10;Event sent reporting timestamp when node becomes active/inactive.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="bindTime"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/Viewpoint.gif" tooltip="(X3D version 3.2 or later) [X3DChildNode] ViewpointGroup can contain Viewpoint, OrthoViewpoint, GeoViewpoint and other ViewpointGroup nodes for better user-navigation support with a shared description on the viewpoint list.&#10;Hint: use ViewpointGroup as parent for Viewpoint, OrthoViewpoint, GeoViewpoint and other ViewpointGroup nodes to constrain location proximity where contained viewpoints are available to user.&#10;Hint: ViewpointGroup and OrthoViewpoint require Navigation component level 3, which is higher than CADInterchange profile.&#10;Hint: Viewpoint and ViewpointGroup descriptions together build simple menu/submenu lists for simple user navigation.&#10;ViewpointGroup is not an X3DGroupingNode, and can only contain a Metadata* node, Viewpoint, OrthoViewpoint, GeoViewpoint and other ViewpointGroup nodes." name="ViewpointGroup">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[children &inputOutputLabel; &MFNodeLabel;, empty list] [X3DChildNode]&#10;ViewpointGroup contains Viewpoint, OrthoViewpoint, GeoViewpoint and other ViewpointGroup nodes that each have containerField=&apos;children&apos; default value.&#10;Hint: inputOnly MFNode addChildren field can append new X3DChildNode nodes via a ROUTE connection, duplicate input nodes (i.e. matching DEF, USE values) are ignored.&#10;Hint: inputOnly MFNode removeChildren field can remove nodes from the children list, unrecognized input nodes (i.e. nonmatching DEF, USE values) are ignored.&#10;Hint: X3D Architecture 10.2.1 Grouping and children node types, https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#GroupingAndChildrenNodes" name="children"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[description &initializeOnlyLabel; &SFStringLabel; #IMPLIED]&#10;Text description or navigation hint to identify this ViewpointGroup.&#10;Hint: include space characters since a description is not a DEF identifier. Write short phrases that make descriptions clear and readable.&#10;Warning: without description, this ViewpointGroup is unlikely to appear on browser Viewpoint menus.&#10;Hint: many XML tools substitute XML character references for special characters automatically if needed within an attribute value (such as &amp;#38; for &#38; ampersand character, or &amp;#34; for &#34; quotation-mark character)." name="description"/>
            <attribute tooltip="[displayed &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;displayed determines whether this ViewpointGroup is displayed in the current viewpoint list." name="displayed"/>
            <attribute tooltip="[center &inputOutputLabel; &SFVec3fLabel; &#34;0 0 0&#34;]&#10;center specifies center point of proximity box within which ViewpointGroup is usable and displayed on viewpoint list." name="center"/>
            <attribute tooltip="[size &inputOutputLabel; &SFVec3fLabel; &#34;0 0 0&#34;] [0,+&#8734;)&#10;Size of proximity box around center location within which ViewpointGroup is usable and displayed on viewpoint list.&#10;Hint: size 0 0 0 specifies that ViewpointGroup is always usable and displayable." name="size"/>
            <attribute tooltip="[retainUserOffsets &inputOutputLabel; &SFBoolLabel; &#34;false&#34;]&#10;Retain (true) or reset to zero (false) any prior user navigation offsets from defined viewpoint position, orientation." name="retainUserOffsets"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/VisibilitySensor.gif" tooltip="[X3DEnvironmentalSensorNode] VisibilitySensor detects when user can see a specific object or region&#10;as they navigate the world. The region sensed for visibility to the user is bounded by a rectangular box.&#10;Hint: often used to attract user attention or improve performance.&#10;Hint: this sensor detects user interactions affecting peer nodes and their child geometry." name="VisibilitySensor">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="(X3D version 4.0 draft) [description &inputOutputLabel; &SFStringLabel; #IMPLIED]&#10;Author-provided prose that describes intended purpose of the node.&#10;Hint: many XML tools substitute XML character references for special characters automatically if needed within an attribute value (such as &amp;#38; for &#38; ampersand character, or &amp;#34; for &#34; quotation-mark character)." name="description"/>
            <attribute tooltip="[enabled &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Enables/disables node operation." name="enabled"/>
            <attribute tooltip="[center &inputOutputLabel; &SFVec3fLabel; &#34;0 0 0&#34;]&#10;Translation offset from origin of local coordinate system." name="center"/>
            <attribute tooltip="[size &inputOutputLabel; &SFVec3fLabel; &#34;0 0 0&#34;] [0,+&#8734;)&#10;size of visibility box, measured from center in meters." name="size"/>
            <attribute tooltip="[isActive &outputOnlyLabel; &SFBoolLabel; #FIXED &#34;&#34;]&#10;isActive true/false events are sent when triggering the sensor.&#10;isActive=true when entering visibility region, isActive=false when exiting visibility region.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="isActive"/>
            <attribute tooltip="[enterTime &outputOnlyLabel; &SFTimeLabel; #FIXED &#34;&#34;]&#10;Time event generated when user's camera enters visibility region for sensor.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="enterTime"/>
            <attribute tooltip="[exitTime &outputOnlyLabel; &SFTimeLabel; #FIXED &#34;&#34;]&#10;Time event generated when user's camera exits visibility region for sensor.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="exitTime"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/WorldInfo.gif" tooltip="[X3DInfoNode] WorldInfo incldes a browsesr-displayable title and persistent string information about an X3D scene. For X3D4 models, WorldInfo can also contain a single MetadataSet node with further metadata information about the scene.&#10;Hint: comments are not readable when a model file is loaded for viewing, but WorldInfo and Metadata* nodes are persistent and inspectable at run time.&#10;Hint: X3D for Web Authors, Chapter 15, Metadata Information https://x3dgraphics.com/examples/X3dForWebAuthors/Chapter15-Metadata/Chapter15-MetadataInformation.html" name="WorldInfo">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[title &inputOutputLabel; &SFStringLabel; #IMPLIED]&#10;title of this world, placed in window title.&#10;Hint: many XML tools substitute XML character references for special characters automatically if needed within an attribute value (such as &amp;#38; for &#38; ampersand character, or &amp;#34; for &#34; quotation-mark character)." name="title"/>
            <attribute tooltip="[info &inputOutputLabel; &MFStringLabel; #IMPLIED]&#10;Additional information about this model.&#10;Hint: MFString arrays can have multiple values, so separate each individual string by quote marks &quot;https://www.web3d.org&quot; &quot;https://www.web3d.org/about&quot; &quot;etc.&quot;&#10;Hint: many XML tools substitute XML character references for special characters automatically if needed within an attribute value (such as &amp;#38; for &#38; ampersand character, or &amp;#34; for &#34; quotation-mark character)." name="info"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/X3D.gif" tooltip="[X3D statement] X3D is the top-most XML element for an Extensible 3D (X3D) Graphics model.&#10;The X3D element contains a single head element for metadata, and a single Scene element which is root node of the 3D scene graph. &#10;Hint: for more on XML declaration and DOCTYPE (DTD) statements, which precede the X3D statement, see https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#Validation&#10;Hint: each X3D model has a tree structure. Wikipedia: Tree (data structure) https://en.wikipedia.org/wiki/Tree_(data_structure) &#10;Hint: X3D model is also a form of Directed Acyclic Graph (DAG), which has no loops and helps to ensure efficient processing.&#10;Hint: additional attributes are under consideration for use when embedding X3D version 4 scenes within HTML version 5 web pages.&#10;Hint: X3D Architecture 7.2.5.2 Header statement https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#HeaderStatement" name="X3D">
            <attribute tooltip="[X3D statement #head] Include a head element to contain component, unit or meta statements for this X3D model." name="head"/>
            <attribute tooltip="[X3D statement #Scene] Include a Scene element to contain scene-graph nodes for this X3D model.&#10;Warning: Scene is a child of X3D statement, and must follow the (optional) head statement." name="Scene"/>
            <!-- TODO other years -->
            <attribute tooltip="[version type ENUMERATION #REQUIRED (3.0|3.1|3.2|3.3|4.0)]&#10;Default is highest value matching schema and DOCTYPE in the scene.&#10;Hint: X3D version 3.0 standardization occurred in 2004, version 3.1 standardization occurred in 2006, version 3.2 standardization occurred in 2008, version 3.3 standardization occurred in 2012, version 4.0 undergoing final implementation, evaluation and publication in 2020.&#10;Warning: X3D version 4.0 is experimental and under development, focused on HTML5/DOM interoperability.&#10;Warning: X3D version 4.1 is experimental and under development, focused on Mixed and Augmented Reality (MAR).&#10;Hint: X3D version 4 Overview at https://www.web3d.org/x3d4&#10;Hint: X3D version 4 Implementations Status at https://www.web3d.org/x3dv4-implementations" name="version"/>
            <attribute tooltip="[profile type ENUMERATION #REQUIRED &profileNames;]&#10;profile attribute is required and defines the player or tool support needed for this model.&#10;Hint: Core profile corresponds to minimalist extensible profile with Metadata* nodes, useful for defining custom scene capabilities via addition of individual component statements. https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/coreprofile.html&#10;Hint: Interchange profile corresponds to minimum lightweight subset of nodes needed to display (or import/export) compelling 3D content. https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/interchange.html&#10;Hint: Interactive profile corresponds to Interchange geometry plus simple user interaction. https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/interactive.html&#10;Hint: Immersive profile is common and approximately matches VRML97 with Script and Prototypes. https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/immersive.html&#10;Hint: CADInterchange profile (X3D version 3.1 or later) corresponds to Interchange geometry plus distillation of computer-aided design (CAD) models. https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/CADInterchange.html&#10;Hint: MedicalInterchange profile (X3D version 3.3 or later) adds support for VolumeRendering component to Interchange profile. https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/MedicalInterchange.html&#10;Hint: Full profile contains all nodes defined in X3D specification. https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/fullProfile.html&#10;Warning: PROFILE is capitalized and is a separate  statement in the ClassicVRML Encoding.&#10;Hint: X3D Architecture 7.2.5.3 PROFILE statement https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#PROFILEStatement" name="profile"/>
            <attribute tooltip="[xmlns:xsd type CDATA &#34;http://www.w3.org/2001/XMLSchema-instance&#34;]&#10;XML namespace (xmlns) for XML Schema Definition (xsd).&#10;Hint: X3D Scene Authoring Hints, Validation of X3D Scenes using DTD and XML Schema https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#Validation" name="xmlns:xsd"/>
            <attribute tooltip="[xsd:noNamespaceSchemaLocation type CDATA &#34;https://www.web3d.org/specifications/x3d-3.3.xsd&#34;]&#10;url for the X3D Schema defining the X3D document-validation rules.&#10;Hint: X3D Scene Authoring Hints, Validation of X3D Scenes using DTD and XML Schema https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#Validation" name="xsd:noNamespaceSchemaLocation"/>
        </element>
        <element tooltip="Comment can be used anywhere to make a scene clearer.&#10;Hint: only enter comments using this node, don't put comments into attribute values.&#10;Hint: VRML comments start with a # symbol and do not have to be retained by a browser.&#10;Hint: Use WorldInfo for persistent comments that must stay with a Scene." name="XML_COMMENT"/>
        <element tooltip="TEXT (text data)." name="XML_TEXT"/>
        <element tooltip="CDATA (Character Data) Section&#10;Preserves literal character data verbatim.&#10;CDATA protects contained text from any XML substitutions.&#10;Hint: CDATA protects &lt; and &gt; operators in contained Script code.&#10;Hint: VRML comments start with a # symbol and do not have to be retained by a browser.&#10;Hint: Use WorldInfo for persistent comments that must stay with a Scene." name="XML_CDATA"/>
        <element tooltip="Processing Instruction (PI) -&#10;Use it to pass directions and information to programs." name="XML_PI"/>
        <element tooltip="Document Type Definition (DTD)." name="XML_DOCUMENT_TYPE"/>

        <!-- Distributed Interactive Simulation (DIS) Protocol: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->

        <element icon="icons/EspduTransform.gif" tooltip="[X3DGroupingNode,X3DNetworkSensorNode,X3DVisibleObject] EspduTransform is a networked Transform node that can contain most nodes. If activated, EspduTransform can send or receive Entity State Protocol Data Unit (PDU) packets, also integrating functionality for the following DIS PDUs: EntityStatePdu, CollisionPdu, DetonatePdu, FirePdu, CreateEntity and RemoveEntity PDUs.&#10;Hint: these PDU packets use the IEEE Distributed Interactive Simulation (DIS) protocol.&#10;Hint: Savage Developers Guide on DIS https://savage.nps.edu/Savage/developers.html#DIS&#10;Hint: insert a Shape node before adding geometry or Appearance.&#10;Hint: X3D for Advanced Modeling (X3D4AM) slideset https://x3dgraphics.com/slidesets/X3dForAdvancedModeling/DistributedInteractiveSimulation.pdf&#10;Warning: requires X3D profile='Full' or else include &lt;component name='DIS' level='1'/&gt;" name="EspduTransform">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[children &inputOutputLabel; &MFNodeLabel;, empty list] [X3DChildNode]&#10;Grouping nodes contain an ordered list of children nodes.&#10;Hint: Each grouping node defines a coordinate space for its children, relative to the coordinate space of its parent node. Thus transformations accumulate down the scene graph hierarchy.&#10;Hint: inputOnly MFNode addChildren field can append new X3DChildNode nodes via a ROUTE connection, duplicate input nodes (i.e. matching DEF, USE values) are ignored.&#10;Hint: inputOnly MFNode removeChildren field can remove nodes from the children list, unrecognized input nodes (i.e. nonmatching DEF, USE values) are ignored.&#10;Hint: X3D Architecture 10.2.1 Grouping and children node types, https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#GroupingAndChildrenNodes" name="children"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="(X3D version 4.0 draft) [description &inputOutputLabel; &SFStringLabel; #IMPLIED]&#10;Author-provided prose that describes intended purpose of the node.&#10;Hint: many XML tools substitute XML character references for special characters automatically if needed within an attribute value (such as &amp;#38; for &#38; ampersand character, or &amp;#34; for &#34; quotation-mark character)." name="description"/>
            <attribute tooltip="[enabled &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Enables/disables the sensor node." name="enabled"/>
            <attribute tooltip="[marking &inputOutputLabel; &SFStringLabel; #IMPLIED]&#10;Maximum of 11 characters for simple entity label." name="marking"/>
            <attribute tooltip="[entityID &inputOutputLabel; &SFInt32Label; &#34;0&#34;]&#10;Simulation/exercise entityID is a unique ID for a single entity within that application." name="entityID"/>
            <attribute tooltip="[applicationID &inputOutputLabel; &SFInt32Label; &#34;0&#34;]&#10;Simulation/exercise applicationID is unique for application at that site. Each simulation application that can respond to simulation management PDUs needs to have a unique applicationID." name="applicationID"/>
            <attribute tooltip="[siteID &inputOutputLabel; &SFInt32Label; &#34;0&#34;]&#10;Simulation/exercise siteID of the participating LAN or organization." name="siteID"/>

            <attribute tooltip="[forceID &inputOutputLabel; &SFInt32Label; &#34;0&#34;]&#10;forceID determines the team membership of the issuing entity, and whether FRIENDLY OPPOSING or NEUTRAL or OTHER." name="forceID"/>
            <attribute tooltip="[entityKind &inputOutputLabel; &SFInt32Label; &#34;0&#34;]&#10;Integer enumerations value for whether entity is a PLATFORM, MUNITION, LIFE_FORM, ENVIRONMENTAL, CULTURAL_FEATURE, SUPPLY, RADIO, EXPENDABLE, SENSOR_EMITTER or OTHER." name="entityKind"/>
            <attribute tooltip="[entityDomain &inputOutputLabel; &SFInt32Label; &#34;0&#34;]&#10;Integer enumerations value for domain in which the entity operates: LAND, AIR, SURFACE, SUBSURFACE, SPACE or OTHER." name="entityDomain"/>
            <attribute tooltip="[entityCountry &inputOutputLabel; &SFInt32Label; &#34;0&#34;]&#10;Integer enumerations value for country to which the design of the entity or its design specification is attributed." name="entityCountry"/>
            <attribute tooltip="[entityCategory &inputOutputLabel; &SFInt32Label; &#34;0&#34;]&#10;Integer enumerations value for main category that describes the entity, semantics of each code varies according to domain. See DIS Enumerations values." name="entityCategory"/>
            <attribute tooltip="[entitySubcategory &inputOutputLabel; &SFInt32Label; &#34;0&#34;]&#10;Integer enumerations value for particular subcategory to which an entity belongs based on the category field. See DIS Enumerations values." name="entitySubcategory"/>
            <attribute tooltip="[entitySpecific &inputOutputLabel; &SFInt32Label; &#34;0&#34;]&#10;Specific information about an entity based on the Subcategory field. See DIS Enumerations values." name="entitySpecific"/>
            <attribute tooltip="[entityExtra &inputOutputLabel; &SFInt32Label; &#34;0&#34;]&#10;Any extra information required to describe a particular entity. The contents of this field shall depend on the type of entity represented." name="entityExtra"/>

            <attribute tooltip="[readInterval &inputOutputLabel; &SFTimeLabel; &#34;0.1&#34;] [0,+&#8734;)&#10;Seconds between read updates, 0 means no reading.&#10;Hint: readInterval is a nonnegative SFTime duration interval, not an absolute clock time." name="readInterval"/>
            <attribute tooltip="[writeInterval &inputOutputLabel; &SFTimeLabel; &#34;1.0&#34;] [0,+&#8734;)&#10;Seconds between write updates, 0 means no writing (sending).&#10;Hint: writeInterval is a nonnegative SFTime duration interval, not an absolute clock time." name="writeInterval"/>
            <attribute tooltip="[networkMode &inputOutputLabel; &SFStringLabel; &DisNetworkModeValues; standAlone]&#10;Whether this entity is ignoring the network, sending DIS packets to the network, or receiving DIS packets from the network.&#10;(1) standAlone: ignore network but still respond to events in local scene.&#10;(2) networkReader: listen to network and read PDU packets at readInterval, act as remotely linked copy of entity.&#10;(3) networkWriter: send PDU packets to network at writeInterval, act as master entity.&#10;Default value &#34;standAlone&#34; ensures that DIS network activation within a scene  as networkReader or networkWriter is intentional.&#10;Warning: do not wrap extra quotation marks  around these SFString enumeration values, since &#34;quotation&#34; &#34;marks&#34; are only used for MFString values.&#10;Warning: network activity may have associated security issues." name="networkMode"/>
            <attribute tooltip="[isStandAlone &outputOnlyLabel; &SFBoolLabel; #FIXED &#34;&#34;]&#10;Whether networkMode='local' (ignore network but still respond to local events).&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="isStandAlone"/>
            <attribute tooltip="[isNetworkReader &outputOnlyLabel; &SFBoolLabel; #FIXED &#34;&#34;]&#10;Whether networkMode='remote' (listen to network as copy of remote entity).&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="isNetworkReader"/>
            <attribute tooltip="[isNetworkWriter &outputOnlyLabel; &SFBoolLabel; #FIXED &#34;&#34;]&#10;Whether networkMode='master' (output to network as master entity at writeInterval).&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="isNetworkWriter"/>

            <attribute tooltip="[address &inputOutputLabel; &SFStringLabel; localhost]&#10;Multicast network address, or else 'localhost';&#10;Example: 224.2.181.145." name="address"/>
            <attribute tooltip="[port &inputOutputLabel; &SFInt32Label; &#34;0&#34;]&#10;Network connection port number (EXAMPLE  3000) for sending or receiving DIS messages. &#10;Example: 3000." name="port"/>
            <attribute tooltip="[multicastRelayHost &inputOutputLabel; &SFStringLabel; #IMPLIED]&#10;Fallback server address if multicast not available locally.&#10;Example: track.nps.edu." name="multicastRelayHost"/>
            <attribute tooltip="[multicastRelayPort &inputOutputLabel; &SFInt32Label; &#34;0&#34;]&#10;Fallback server port if multicast not available locally.&#10;Example: 8010." name="multicastRelayPort"/>
            <attribute tooltip="[rtpHeaderExpected &inputOutputLabel; &SFBoolLabel; &#34;false&#34;]&#10;Whether RTP headers are prepended to DIS PDUs." name="rtpHeaderExpected"/>
            <attribute tooltip="[isRtpHeaderHeard &outputOnlyLabel; &SFBoolLabel; #FIXED &#34;&#34;]&#10;Whether incoming DIS packets have an RTP header prepended.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="isRtpHeaderHeard"/>
            <attribute tooltip="[isActive &outputOnlyLabel; &SFBoolLabel; #FIXED &#34;&#34;]&#10;Have we received a network update recently?&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="isActive"/>
            <attribute tooltip="[timestamp &outputOnlyLabel; &SFTimeLabel; #FIXED &#34;&#34;]&#10;DIS timestamp received from latest PDU update, converted to X3D SFTime units.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="timestamp"/>

            <attribute tooltip="[translation &inputOutputLabel; &SFVec3fLabel; &#34;0 0 0&#34;]&#10;Position of children relative to local coordinate system,&#10;usually read from (or written to) remote, networked EspduTransform nodes." name="translation"/>
            <attribute tooltip="[rotation &inputOutputLabel; &SFRotationLabel; &#34;0 0 1 0&#34;]&#10;Orientation of children relative to local coordinate system,&#10;usually read from (or written to) remote, networked EspduTransform nodes." name="rotation"/>
            <attribute tooltip="[center &inputOutputLabel; &SFVec3fLabel; &#34;0 0 0&#34;]&#10;Translation offset from origin of local coordinate system." name="center"/>
            <attribute tooltip="[scale &inputOutputLabel; &SFVec3fLabel; &#34;1 1 1&#34;]&#10;Non-uniform x-y-z scale of child coordinate system, adjusted by center and scaleOrientation." name="scale"/>
            <attribute tooltip="[scaleOrientation &inputOutputLabel; &SFRotationLabel; &#34;0 0 1 0&#34;]&#10;Preliminary rotation of coordinate system before scaling (to allow scaling around arbitrary orientations)." name="scaleOrientation"/>
            <attribute tooltip="[bboxCenter &initializeOnlyLabel; &SFVec3fLabel; &#34;0 0 0&#34;]&#10;Bounding box center accompanies bboxSize and provides an optional hint for bounding box position offset from origin of local coordinate system.&#10;Hint: precomputation and inclusion of bounding box information can speed up the initialization of large detailed models, with a corresponding cost of increased file size.&#10;Hint: X3D Architecture, 10.2.2 Bounding boxes https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#BoundingBoxes&#10;Hint:  X3D Architecture, 10.3.1 X3DBoundedObject https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#X3DBoundedObject" name="bboxCenter"/>
            <attribute tooltip="[bboxSize &initializeOnlyLabel; &SFVec3fLabel; &#34;-1 -1 -1&#34;] or [0,+&#8734;)&#10;Bounding box size is usually omitted, and can easily be calculated automatically by an X3D player at scene-loading time with minimal computational cost. Bounding box size can also be defined as an optional authoring hint that suggests an optimization or constraint.&#10;Hint: can be useful for collision computations or inverse-kinematics (IK) engines.&#10;Hint: precomputation and inclusion of bounding box information can speed up the initialization of large detailed models, with a corresponding cost of increased file size.&#10;Hint: X3D Architecture, 10.2.2 Bounding boxes https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#BoundingBoxes&#10;Hint:  X3D Architecture, 10.3.1 X3DBoundedObject https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#X3DBoundedObject" name="bboxSize"/>
            <attribute tooltip="(X3D version 4.0 draft) [bboxDisplay &inputOutputLabel; &SFBoolLabel; &#34;false&#34;]&#10;Whether to display bounding box for associated geometry, aligned with world coordinates.&#10;Hint: the bounding box is displayed regardless of whether contained content is visible." name="bboxDisplay"/>
            <attribute tooltip="(X3D version 4.0 draft) [visible &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Whether or not renderable content within this node is visually displayed.&#10;Hint: the visible field has no effect on animation behaviors, event passing or other non-visual characteristics.&#10;Hint: content must be visible to be collidable and to be pickable." name="visible"/>
            <attribute tooltip="[linearVelocity &inputOutputLabel; &SFVec3fLabel; &#34;0 0 0&#34;]Velocity of the entity relative to the rotating Earth in either world or entity coordinates, depending on the dead reckoning algorithm used." name="linearVelocity"/>
            <attribute tooltip="[linearAcceleration &inputOutputLabel; &SFVec3fLabel; &#34;0 0 0&#34;]&#10;Acceleration of the entity relative to the rotating Earth in either world or entity coordinates, depending on the dead reckoning algorithm used." name="linearAcceleration"/>
            <attribute tooltip="[deadReckoning &inputOutputLabel; &SFInt32Label; &#34;0&#34;]&#10;Dead reckoning algorithm being used to project position/orientation with velocities/accelerations." name="deadReckoning"/>
            <attribute tooltip="[isCollided &outputOnlyLabel; &SFBoolLabel; #FIXED &#34;&#34;]&#10;Has a matching CollisionPDU reported a collision?&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="isCollided"/>
            <attribute tooltip="[collideTime &outputOnlyLabel; &SFTimeLabel; #FIXED &#34;&#34;]&#10;When were we collided with?&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="collideTime"/>
            <attribute tooltip="[isDetonated &outputOnlyLabel; &SFBoolLabel; #FIXED &#34;&#34;]&#10;Has a matching DetonationPDU reported a detonation?&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="isDetonated"/>
            <attribute tooltip="[detonateTime &outputOnlyLabel; &SFTimeLabel; #FIXED &#34;&#34;]&#10;When were we detonated?" name="detonateTime"/>
            <attribute tooltip="[fired1 &inputOutputLabel; &SFBoolLabel; &#34;false&#34;]&#10;Has the primary weapon (Fire PDU) been fired?" name="fired1"/>
            <attribute tooltip="[fired2 &inputOutputLabel; &SFBoolLabel; &#34;false&#34;]&#10;Has the secondary weapon (Fire PDU) been fired?" name="fired2"/>
            <attribute tooltip="[fireMissionIndex &inputOutputLabel; &SFInt32Label; #FIXED &#34;&#34;]&#10;" name="fireMissionIndex"/>
            <attribute tooltip="[firedTime &outputOnlyLabel; &SFTimeLabel; #FIXED &#34;&#34;]&#10;When did we shoot a weapon (Fire PDU)?&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="firedTime"/>
            <attribute tooltip="[munitionStartPoint &inputOutputLabel; &SFVec3fLabel; &#34;0 0 0&#34;]&#10;Initial point of the munition path from firing weapon to detonation or impact, in exercise coordinates." name="munitionStartPoint"/>
            <attribute tooltip="[munitionEndPoint &inputOutputLabel; &SFVec3fLabel; &#34;0 0 0&#34;]&#10;Final point of the munition path from firing weapon to detonation or impact, in exercise coordinates." name="munitionEndPoint"/>
            <attribute tooltip="[munitionEntityID &inputOutputLabel; &SFInt32Label; &#34;0&#34;]&#10;munitionEntityID is unique ID for entity firing munition within that application." name="munitionEntityID"/>
            <attribute tooltip="[munitionApplicationID &inputOutputLabel; &SFInt32Label; &#34;1&#34;]&#10;munitionApplicationID, unique for application at that site. Each simulation application that can respond to simulation management PDUs needs to have a unique applicationID." name="munitionApplicationID"/>
            <attribute tooltip="[munitionSiteID &inputOutputLabel; &SFInt32Label; &#34;0&#34;]&#10;Munition siteID of the participating LAN or organization." name="munitionSiteID"/>
            <attribute tooltip="[warhead &inputOutputLabel; &SFInt32Label; &#34;0&#34;]&#10;Integer enumerations value for type of warhead on the munition." name="warhead"/>
            <attribute tooltip="[fuse &inputOutputLabel; &SFInt32Label; &#34;0&#34;]&#10;Integer enumerations value for type of fuse on the munition." name="fuse"/>
            <attribute tooltip="[munitionQuantity &inputOutputLabel; &SFInt32Label; &#34;0&#34;]&#10;Quantity of munitions fired." name="munitionQuantity"/>
            <attribute tooltip="[firingRate &inputOutputLabel; &SFInt32Label; &#34;0&#34;]&#10;Rate at which munitions are fired." name="firingRate"/>
            <attribute tooltip="[firingRange &inputOutputLabel; &SFFloatLabel; &#34;0&#34;]&#10;Range (three dimension, straight-line distance) that the firing entity&apos;s fire control system has assumed for computing the fire control solution if a weapon and if the value is known" name="firingRange"/>

            <attribute tooltip="[collisionType &inputOutputLabel; &SFInt32Label; &#34;0&#34;]&#10;Integer enumeration for type of collision: ELASTIC or INELASTIC." name="collisionType"/>
            <attribute tooltip="[detonationLocation &inputOutputLabel; &SFVec3fLabel; &#34;0 0 0&#34;]&#10;World coordinates for detonationLocation" name="detonationLocation"/>
            <attribute tooltip="[detonationRelativeLocation &inputOutputLabel; &SFVec3fLabel; &#34;0 0 0&#34;]&#10;Relative coordinates for detonation location" name="detonationRelativeLocation"/>
            <attribute tooltip="[detonationResult &inputOutputLabel; &SFInt32Label; &#34;0&#34;]&#10;Integer enumeration for type of detonation and result that occurred., if any." name="detonationResult"/>
            <attribute tooltip="[eventApplicationID &inputOutputLabel; &SFInt32Label; &#34;1&#34;]Simulation/exercise eventApplicationID is unique for events generated from application at that site. Each simulation application that can respond to simulation management PDUs needs to have a unique applicationID." name="eventApplicationID"/>
            <attribute tooltip="[eventEntityID &inputOutputLabel; &SFInt32Label; &#34;0&#34;]&#10;For a given event, simulation/exercise entityID is a unique ID for a single entity within that application." name="eventEntityID"/>
            <attribute tooltip="[eventNumber &inputOutputLabel; &SFInt32Label; &#34;0&#34;]&#10;Sequential number of each event issued by an application.&#10;Warning: reuse of numbers may be necessary during long simulation exercises." name="eventNumber"/>
            <attribute tooltip="[eventSiteID &inputOutputLabel; &SFInt32Label; &#34;0&#34;]&#10;Simulation/exercise siteID of the participating LAN or organization." name="eventSiteID"/>

            <attribute tooltip="[articulationParameterCount &inputOutputLabel; &SFInt32Label; &#34;0&#34;]&#10;Number of articulated parameters attached to this entity state PDU." name="articulationParameterCount"/>
            <attribute tooltip="[articulationParameterDesignatorArray &inputOutputLabel; &MFInt32Label; #IMPLIED]&#10;Array of designators for each articulated parameter." name="articulationParameterDesignatorArray"/>
            <attribute tooltip="[articulationParameterChangeIndicatorArray &inputOutputLabel; &MFInt32Label; #IMPLIED]&#10;Array of change counters, each incremented when an articulated parameter is updated.#IMPLIED]&#10;" name="articulationParameterChangeIndicatorArray"/>
            <attribute tooltip="[articulationParameterIdPartAttachedToArray &inputOutputLabel; &MFInt32Label; #IMPLIED]&#10;Array of ID parts that each articulated parameter is attached to." name="articulationParameterIdPartAttachedToArray"/>
            <attribute tooltip="[articulationParameterTypeArray &inputOutputLabel; &MFInt32Label; #IMPLIED]&#10;Array of type enumerations for each articulated parameter element." name="articulationParameterTypeArray"/>
            <attribute tooltip="[articulationParameterArray &inputOutputLabel; &MFFloatLabel; #IMPLIED]&#10;Information required for representation of the entity&apos;s visual appearance and position of its articulated parts.&#10;Hint: renamed as Variable Parameter in IEEE DIS 2012 revised standard." name="articulationParameterArray"/>
            <attribute tooltip="[set_articulationParameterValue0 &inputOnlyLabel; &SFFloatLabel; #FIXED &#34;&#34;]&#10;Set element of user-defined payload array.&#10;Warning: it is an error to define this transient inputOnly field in an X3D file, instead only use it a destination for ROUTE events." name="set_articulationParameterValue0"/>
            <attribute tooltip="[set_articulationParameterValue1 &inputOnlyLabel; &SFFloatLabel; #FIXED &#34;&#34;]&#10;Set element of user-defined payload array.&#10;Warning: it is an error to define this transient inputOnly field in an X3D file, instead only use it a destination for ROUTE events." name="set_articulationParameterValue1"/>
            <attribute tooltip="[set_articulationParameterValue2 &inputOnlyLabel; &SFFloatLabel; #FIXED &#34;&#34;]&#10;Set element of user-defined payload array.&#10;Warning: it is an error to define this transient inputOnly field in an X3D file, instead only use it a destination for ROUTE events." name="set_articulationParameterValue2"/>
            <attribute tooltip="[set_articulationParameterValue3 &inputOnlyLabel; &SFFloatLabel; #FIXED &#34;&#34;]&#10;Set element of user-defined payload array.&#10;Warning: it is an error to define this transient inputOnly field in an X3D file, instead only use it a destination for ROUTE events." name="set_articulationParameterValue3"/>
            <attribute tooltip="[set_articulationParameterValue4 &inputOnlyLabel; &SFFloatLabel; #FIXED &#34;&#34;]&#10;Set element of user-defined payload array.&#10;Warning: it is an error to define this transient inputOnly field in an X3D file, instead only use it a destination for ROUTE events." name="set_articulationParameterValue4"/>
            <attribute tooltip="[set_articulationParameterValue5 &inputOnlyLabel; &SFFloatLabel; #FIXED &#34;&#34;]&#10;Set element of user-defined payload array.&#10;Warning: it is an error to define this transient inputOnly field in an X3D file, instead only use it a destination for ROUTE events." name="set_articulationParameterValue5"/>
            <attribute tooltip="[set_articulationParameterValue6 &inputOnlyLabel; &SFFloatLabel; #FIXED &#34;&#34;]&#10;Set element of user-defined payload array.&#10;Warning: it is an error to define this transient inputOnly field in an X3D file, instead only use it a destination for ROUTE events." name="set_articulationParameterValue6"/>
            <attribute tooltip="[set_articulationParameterValue7 &inputOnlyLabel; &SFFloatLabel; #FIXED &#34;&#34;]&#10;Set element of user-defined payload array.&#10;Warning: it is an error to define this transient inputOnly field in an X3D file, instead only use it a destination for ROUTE events." name="set_articulationParameterValue7"/>
            <attribute tooltip="[articulationParameterValue0_changed &outputOnlyLabel; &SFFloatLabel; #FIXED &#34;&#34;]&#10;Get element of user-defined payload array.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="articulationParameterValue0_changed"/>
            <attribute tooltip="[articulationParameterValue1_changed &outputOnlyLabel; &SFFloatLabel; #FIXED &#34;&#34;]&#10;Get element of user-defined payload array.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="articulationParameterValue1_changed"/>
            <attribute tooltip="[articulationParameterValue2_changed &outputOnlyLabel; &SFFloatLabel; #FIXED &#34;&#34;]&#10;Get element of user-defined payload array." name="articulationParameterValue2_changed"/>
            <attribute tooltip="[articulationParameterValue3_changed &outputOnlyLabel; &SFFloatLabel; #FIXED &#34;&#34;]&#10;Get element of user-defined payload array.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="articulationParameterValue3_changed"/>
            <attribute tooltip="[articulationParameterValue4_changed &outputOnlyLabel; &SFFloatLabel; #FIXED &#34;&#34;]&#10;Get element of user-defined payload array.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="articulationParameterValue4_changed"/>
            <attribute tooltip="[articulationParameterValue5_changed &outputOnlyLabel; &SFFloatLabel; #FIXED &#34;&#34;]&#10;Get element of user-defined payload array.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="articulationParameterValue5_changed"/>
            <attribute tooltip="[articulationParameterValue6_changed &outputOnlyLabel; &SFFloatLabel; #FIXED &#34;&#34;]&#10;Get element of user-defined payload array.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="articulationParameterValue6_changed"/>
            <attribute tooltip="[articulationParameterValue7_changed &outputOnlyLabel; &SFFloatLabel; #FIXED &#34;&#34;]&#10;Get element of user-defined payload array.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="articulationParameterValue7_changed"/>
            <attribute tooltip="(X3D version 3.3 or later) [geoCoords &inputOutputLabel; &SFVec3dLabel; &#34;0 0 0&#34;]&#10;Geographic location (specified in current geoSystem coordinates)&#10;for children geometry (specified in relative coordinate system, in meters).&#10;Hint: X3D for Advanced Modeling (X3D4AM) slideset https://x3dgraphics.com/slidesets/X3dForAdvancedModeling/GeospatialComponentX3dEarth.pdf&#10;Warning: requires X3D profile='Full' or else include &lt;component name='Geospatial' level='1'/&gt;" name="geoCoords"/>
            <attribute tooltip='(X3D version 3.3 or later) [geoSystem &initializeOnlyLabel; &GeoSystemType;]&#10;Identifies spatial reference frame: Geodetic (GD), Geocentric (GC), Universal Transverse Mercator (UTM).&#10;Supported values: &quot;GD&quot; &quot;UTM&quot; or &quot;GC" followed by additional quoted string parameters as appropriate for the type.&#10;Hint: X3D Architecture 25.2.2 Spatial reference frames https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/geospatial.html#Spatialreferenceframes&#10;Hint: X3D Architecture 25.2.4 Specifying geospatial coordinates https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/geospatial.html#Specifyinggeospatialcoords&#10;Hint: UTM is Universal Transverse Mercator coordinate system https://en.wikipedia.org/wiki/Universal_Transverse_Mercator_coordinate_system&#10;Warning: deprecated values are GDC (replaced by GD) and GCC (replaced by GC).' name="geoSystem"/>

            <attribute tooltip="[containerField type NMTOKEN &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/ReceiverPdu.gif" tooltip="[X3DNetworkSensorNode,X3DBoundedObject,X3DVisibleObject] ReceiverPdu is a networked Protocol Data Unit (PDU) information node that transmits the state of radio frequency (RF) receivers modeled in a simulation.&#10;Hint: ReceiverPdu packets use the IEEE Distributed Interactive Simulation (DIS) protocol.&#10;Hint: Savage Developers Guide on DIS https://savage.nps.edu/Savage/developers.html#DIS&#10;Hint: X3D for Advanced Modeling (X3D4AM) slideset https://x3dgraphics.com/slidesets/X3dForAdvancedModeling/DistributedInteractiveSimulation.pdf&#10;Warning: requires X3D profile='Full' or else include &lt;component name='DIS' level='1'/&gt;" name="ReceiverPdu">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="(X3D version 4.0 draft) [description &inputOutputLabel; &SFStringLabel; #IMPLIED]&#10;Author-provided prose that describes intended purpose of the node.&#10;Hint: many XML tools substitute XML character references for special characters automatically if needed within an attribute value (such as &amp;#38; for &#38; ampersand character, or &amp;#34; for &#34; quotation-mark character)." name="description"/>
            <attribute tooltip="[enabled &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Enables/disables the sensor node." name="enabled"/>
            <attribute tooltip="[whichGeometry &inputOutputLabel; &SFInt32Label; &#34;1&#34;]&#10;Select geometry to render: -1 for no geometry, 0 for text trace, 1 for default geometry, (optional) higher values to render different states." name="whichGeometry"/>
            <attribute tooltip="[bboxCenter &initializeOnlyLabel; &SFVec3fLabel; &#34;0 0 0&#34;]&#10;Bounding box center accompanies bboxSize and provides an optional hint for bounding box position offset from origin of local coordinate system.&#10;Hint: precomputation and inclusion of bounding box information can speed up the initialization of large detailed models, with a corresponding cost of increased file size.&#10;Hint: X3D Architecture, 10.2.2 Bounding boxes https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#BoundingBoxes&#10;Hint:  X3D Architecture, 10.3.1 X3DBoundedObject https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#X3DBoundedObject" name="bboxCenter"/>
            <attribute tooltip="[bboxSize &initializeOnlyLabel; &SFVec3fLabel; &#34;-1 -1 -1&#34;] or [0,+&#8734;)&#10;Bounding box size is usually omitted, and can easily be calculated automatically by an X3D player at scene-loading time with minimal computational cost. Bounding box size can also be defined as an optional authoring hint that suggests an optimization or constraint.&#10;Hint: can be useful for collision computations or inverse-kinematics (IK) engines.&#10;Hint: precomputation and inclusion of bounding box information can speed up the initialization of large detailed models, with a corresponding cost of increased file size.&#10;Hint: X3D Architecture, 10.2.2 Bounding boxes https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#BoundingBoxes&#10;Hint:  X3D Architecture, 10.3.1 X3DBoundedObject https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#X3DBoundedObject" name="bboxSize"/>
            <attribute tooltip="(X3D version 4.0 draft) [bboxDisplay &inputOutputLabel; &SFBoolLabel; &#34;false&#34;]&#10;Whether to display bounding box for associated geometry, aligned with world coordinates.&#10;Hint: the bounding box is displayed regardless of whether contained content is visible." name="bboxDisplay"/>
            <attribute tooltip="(X3D version 4.0 draft) [visible &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Whether or not renderable content within this node is visually displayed.&#10;Hint: the visible field has no effect on animation behaviors, event passing or other non-visual characteristics.&#10;Hint: content must be visible to be collidable and to be pickable." name="visible"/>
            <attribute tooltip="[entityID &inputOutputLabel; &SFInt32Label; &#34;0&#34;]&#10;EntityID unique ID for entity within that application." name="entityID"/>
            <attribute tooltip="[applicationID &inputOutputLabel; &SFInt32Label; &#34;0&#34;]&#10;Each simulation application that can respond to simulation management PDUs needs to have a unique applicationID." name="applicationID"/>
            <attribute tooltip="[siteID &inputOutputLabel; &SFInt32Label; &#34;0&#34;]&#10;Simulation/exercise siteID of the participating LAN or organization." name="siteID"/>

            <attribute tooltip="[readInterval &inputOutputLabel; &SFTimeLabel; &#34;0.1&#34;] [0,+&#8734;)&#10;Seconds between read updates, 0 means no reading.&#10;Hint: readInterval is a nonnegative SFTime duration interval, not an absolute clock time." name="readInterval"/>
            <attribute tooltip="[writeInterval &inputOutputLabel; &SFTimeLabel; &#34;1.0&#34;] [0,+&#8734;)&#10;Seconds between write updates, 0 means no writing (sending).&#10;Hint: writeInterval is a nonnegative SFTime duration interval, not an absolute clock time." name="writeInterval"/>
            <attribute tooltip="[networkMode &inputOutputLabel; &SFStringLabel; &DisNetworkModeValues; standAlone]&#10;Whether this entity is ignoring the network, sending DIS packets to the network, or receiving DIS packets from the network.&#10;(1) standAlone: ignore network but still respond to events in local scene.&#10;(2) networkReader: listen to network and read PDU packets at readInterval, act as remotely linked copy of entity.&#10;(3) networkWriter: send PDU packets to network at writeInterval, act as master entity.&#10;Default value &#34;standAlone&#34; ensures that DIS network activation within a scene  as networkReader or networkWriter is intentional.&#10;Warning: do not wrap extra quotation marks  around these SFString enumeration values, since &#34;quotation&#34; &#34;marks&#34; are only used for MFString values.&#10;Warning: network activity may have associated security issues." name="networkMode"/>
            <attribute tooltip="[isStandAlone &outputOnlyLabel; &SFBoolLabel; #FIXED &#34;&#34;]&#10;Whether networkMode='local' (ignore network but still respond to local events).&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="isStandAlone"/>
            <attribute tooltip="[isNetworkReader &outputOnlyLabel; &SFBoolLabel; #FIXED &#34;&#34;]&#10;Whether networkMode='remote' (listen to network as copy of remote entity).&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="isNetworkReader"/>
            <attribute tooltip="[isNetworkWriter &outputOnlyLabel; &SFBoolLabel; #FIXED &#34;&#34;]&#10;Whether networkMode='master' (output to network as master entity at writeInterval).&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="isNetworkWriter"/>

            <attribute tooltip="[address &inputOutputLabel; &SFStringLabel; localhost]&#10;Multicast network address, or else 'localhost';&#10;Example: 224.2.181.145." name="address"/>
            <attribute tooltip="[port &inputOutputLabel; &SFInt32Label; &#34;0&#34;]&#10;Multicast network port, for example: 3000." name="port"/>
            <attribute tooltip="[multicastRelayHost &inputOutputLabel; &SFStringLabel; #IMPLIED]&#10;Fallback server address if multicast not available locally.&#10;For example: track.nps.edu." name="multicastRelayHost"/>
            <attribute tooltip="[multicastRelayPort &inputOutputLabel; &SFInt32Label; &#34;0&#34;]&#10;Fallback server port if multicast not available locally.&#10;For example: 8010." name="multicastRelayPort"/>
            <attribute tooltip="[rtpHeaderExpected &inputOutputLabel; &SFBoolLabel; &#34;false&#34;]&#10;Whether RTP headers are prepended to DIS PDUs." name="rtpHeaderExpected"/>
            <attribute tooltip="[isRtpHeaderHeard &outputOnlyLabel; &SFBoolLabel; #FIXED &#34;&#34;]&#10;Whether incoming DIS packets have an RTP header prepended.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="isRtpHeaderHeard"/>
            <attribute tooltip="[isActive &outputOnlyLabel; &SFBoolLabel; #FIXED &#34;&#34;]&#10;confirm whether there has been a recent network update.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="isActive"/>
            <attribute tooltip="[timestamp &outputOnlyLabel; &SFTimeLabel; #FIXED &#34;&#34;]&#10;DIS timestamp in X3D units (value 0.0 matches 1 January 1970) in seconds.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="timestamp"/>

            <attribute tooltip="[radioID &inputOutputLabel; &SFInt32Label; &#34;0&#34;]&#10;Identifies a particular radio within a given entity." name="radioID"/>
            <attribute tooltip="[receivedPower &inputOutputLabel; &SFFloatLabel; &#34;0&#34;]&#10;receivedPower indicates radio frequency (RF) power received, in units of decibel-milliwatts (dBm), after applying any propagation loss and antenna gain" name="receivedPower"/>
            <attribute tooltip="[receiverState &inputOutputLabel; &SFInt32Label; &#34;0&#34;]&#10;receiverState indicates if receiver is currently idle or busy via one of these enumerated values: 0 = off, 1 = on but not receiving, or 2 = on and receiving." name="receiverState"/>
            <attribute tooltip="[transmitterRadioID &inputOutputLabel; &SFInt32Label; &#34;0&#34;]&#10;Identifies a particular radio within a given entity." name="transmitterRadioID"/>
            <attribute tooltip="[transmitterEntityID &inputOutputLabel; &SFInt32Label; &#34;0&#34;]&#10;Simulation/exercise transmitterEntityID is a unique ID for a single entity within that application." name="transmitterEntityID"/>
            <attribute tooltip="[transmitterApplicationID &inputOutputLabel; &SFInt32Label; &#34;0&#34;]Simulation/exercise transmitterApplicationID is unique for transmitter application at that site. Each simulation application that can respond to simulation management PDUs needs to have a unique applicationID." name="transmitterApplicationID"/>
            <attribute tooltip="[transmitterSiteID &inputOutputLabel; &SFInt32Label; &#34;0&#34;]&#10;Simulation/exercise transmitterSiteID of the participating LAN or organization." name="transmitterSiteID"/>
            <attribute tooltip="(X3D version 3.3 or later) [geoCoords &inputOutputLabel; &SFVec3dLabel; &#34;0 0 0&#34;]&#10;Geographic location (specified in current geoSystem coordinates)&#10;for children geometry (specified in relative coordinate system, in meters).&#10;Hint: X3D for Advanced Modeling (X3D4AM) slideset https://x3dgraphics.com/slidesets/X3dForAdvancedModeling/GeospatialComponentX3dEarth.pdf&#10;Warning: requires X3D profile='Full' or else include &lt;component name='Geospatial' level='1'/&gt;" name="geoCoords"/>
            <attribute tooltip='(X3D version 3.3 or later) [geoSystem &initializeOnlyLabel; &GeoSystemType;]&#10;Identifies spatial reference frame: Geodetic (GD), Geocentric (GC), Universal Transverse Mercator (UTM).&#10;Supported values: &quot;GD&quot; &quot;UTM&quot; or &quot;GC" followed by additional quoted string parameters as appropriate for the type.&#10;Hint: X3D Architecture 25.2.2 Spatial reference frames https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/geospatial.html#Spatialreferenceframes&#10;Hint: X3D Architecture 25.2.4 Specifying geospatial coordinates https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/geospatial.html#Specifyinggeospatialcoords&#10;Hint: UTM is Universal Transverse Mercator coordinate system https://en.wikipedia.org/wiki/Universal_Transverse_Mercator_coordinate_system&#10;Warning: deprecated values are GDC (replaced by GD) and GCC (replaced by GC).' name="geoSystem"/>

            <attribute tooltip="[containerField type NMTOKEN &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/SignalPdu.gif" tooltip="[X3DNetworkSensorNode,X3DBoundedObject,X3DVisibleObject] SignalPdu is a networked Protocol Data Unit (PDU) information node that communicates the transmission of voice, audio or other data modeled in a simulation.&#10;Hint: SignalPdu packets use the IEEE Distributed Interactive Simulation (DIS) protocol.&#10;Hint: Savage Developers Guide on DIS https://savage.nps.edu/Savage/developers.html#DIS&#10;Hint: X3D for Advanced Modeling (X3D4AM) slideset https://x3dgraphics.com/slidesets/X3dForAdvancedModeling/DistributedInteractiveSimulation.pdf&#10;Warning: requires X3D profile='Full' or else include &lt;component name='DIS' level='1'/&gt;" name="SignalPdu">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[enabled &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Enables/disables the sensor node." name="enabled"/>
            <attribute tooltip="[whichGeometry &inputOutputLabel; &SFInt32Label; &#34;1&#34;]&#10;Select geometry to render: -1 for no geometry, 0 for text trace, 1 for default geometry, (optional) higher values to render different states." name="whichGeometry"/>
            <attribute tooltip="[bboxCenter &initializeOnlyLabel; &SFVec3fLabel; &#34;0 0 0&#34;]&#10;Bounding box center accompanies bboxSize and provides an optional hint for bounding box position offset from origin of local coordinate system.&#10;Hint: precomputation and inclusion of bounding box information can speed up the initialization of large detailed models, with a corresponding cost of increased file size.&#10;Hint: X3D Architecture, 10.2.2 Bounding boxes https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#BoundingBoxes&#10;Hint:  X3D Architecture, 10.3.1 X3DBoundedObject https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#X3DBoundedObject" name="bboxCenter"/>
            <attribute tooltip="[bboxSize &initializeOnlyLabel; &SFVec3fLabel; &#34;-1 -1 -1&#34;] or [0,+&#8734;)&#10;Bounding box size is usually omitted, and can easily be calculated automatically by an X3D player at scene-loading time with minimal computational cost. Bounding box size can also be defined as an optional authoring hint that suggests an optimization or constraint.&#10;Hint: can be useful for collision computations or inverse-kinematics (IK) engines.&#10;Hint: precomputation and inclusion of bounding box information can speed up the initialization of large detailed models, with a corresponding cost of increased file size.&#10;Hint: X3D Architecture, 10.2.2 Bounding boxes https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#BoundingBoxes&#10;Hint:  X3D Architecture, 10.3.1 X3DBoundedObject https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#X3DBoundedObject" name="bboxSize"/>
            <attribute tooltip="(X3D version 4.0 draft) [bboxDisplay &inputOutputLabel; &SFBoolLabel; &#34;false&#34;]&#10;Whether to display bounding box for associated geometry, aligned with world coordinates.&#10;Hint: the bounding box is displayed regardless of whether contained content is visible." name="bboxDisplay"/>
            <attribute tooltip="(X3D version 4.0 draft) [description &inputOutputLabel; &SFStringLabel; #IMPLIED]&#10;Author-provided prose that describes intended purpose of the node.&#10;Hint: many XML tools substitute XML character references for special characters automatically if needed within an attribute value (such as &amp;#38; for &#38; ampersand character, or &amp;#34; for &#34; quotation-mark character)." name="description"/>
            <attribute tooltip="(X3D version 4.0 draft) [visible &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Whether or not renderable content within this node is visually displayed.&#10;Hint: the visible field has no effect on animation behaviors, event passing or other non-visual characteristics.&#10;Hint: content must be visible to be collidable and to be pickable." name="visible"/>
            <attribute tooltip="[entityID &inputOutputLabel; &SFInt32Label; &#34;0&#34;]&#10;EntityID unique ID for entity within that application." name="entityID"/>
            <attribute tooltip="[applicationID &inputOutputLabel; &SFInt32Label; &#34;0&#34;]&#10;Each simulation application that can respond to simulation management PDUs needs to have a unique applicationID." name="applicationID"/>
            <attribute tooltip="[siteID &inputOutputLabel; &SFInt32Label; &#34;0&#34;]&#10;Simulation/exercise siteID of the participating LAN or organization." name="siteID"/>

            <attribute tooltip="[readInterval &inputOutputLabel; &SFTimeLabel; &#34;0.1&#34;] [0,+&#8734;)&#10;Seconds between read updates, 0 means no reading.&#10;Hint: readInterval is a nonnegative SFTime duration interval, not an absolute clock time." name="readInterval"/>
            <attribute tooltip="[writeInterval &inputOutputLabel; &SFTimeLabel; &#34;1.0&#34;] [0,+&#8734;)&#10;Seconds between write updates, 0 means no writing (sending).&#10;Hint: writeInterval is a nonnegative SFTime duration interval, not an absolute clock time." name="writeInterval"/>
            <attribute tooltip="[networkMode &inputOutputLabel; &SFStringLabel; &DisNetworkModeValues; standAlone]&#10;Whether this entity is ignoring the network, sending DIS packets to the network, or receiving DIS packets from the network.&#10;(1) standAlone: ignore network but still respond to events in local scene.&#10;(2) networkReader: listen to network and read PDU packets at readInterval, act as remotely linked copy of entity.&#10;(3) networkWriter: send PDU packets to network at writeInterval, act as master entity.&#10;Default value &#34;standAlone&#34; ensures that DIS network activation within a scene  as networkReader or networkWriter is intentional.&#10;Warning: do not wrap extra quotation marks  around these SFString enumeration values, since &#34;quotation&#34; &#34;marks&#34; are only used for MFString values.&#10;Warning: network activity may have associated security issues." name="networkMode"/>
            <attribute tooltip="[isStandAlone &outputOnlyLabel; &SFBoolLabel; #FIXED &#34;&#34;]&#10;Whether networkMode='local' (ignore network but still respond to local events).&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="isStandAlone"/>
            <attribute tooltip="[isNetworkReader &outputOnlyLabel; &SFBoolLabel; #FIXED &#34;&#34;]&#10;Whether networkMode='remote' (listen to network as copy of remote entity).&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="isNetworkReader"/>
            <attribute tooltip="[isNetworkWriter &outputOnlyLabel; &SFBoolLabel; #FIXED &#34;&#34;]&#10;Whether networkMode='master' (output to network as master entity at writeInterval).&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="isNetworkWriter"/>

            <attribute tooltip="[address &inputOutputLabel; &SFStringLabel; localhost]&#10;Multicast network address, or else 'localhost'. Example: 224.2.181.145." name="address"/>
            <attribute tooltip="[port &inputOutputLabel; &SFInt32Label; &#34;0&#34;]&#10;Multicast network port, for example: 3000." name="port"/>
            <attribute tooltip="[multicastRelayHost &inputOutputLabel; &SFStringLabel; #IMPLIED]&#10;Fallback server address if multicast not available locally.&#10;For example: track.nps.edu." name="multicastRelayHost"/>
            <attribute tooltip="[multicastRelayPort &inputOutputLabel; &SFInt32Label; &#34;0&#34;]&#10;Fallback server port if multicast not available locally.&#10;For example: 8010." name="multicastRelayPort"/>
            <attribute tooltip="[rtpHeaderExpected &inputOutputLabel; &SFBoolLabel; &#34;false&#34;]&#10;Whether RTP headers are prepended to DIS PDUs." name="rtpHeaderExpected"/>
            <attribute tooltip="[isRtpHeaderHeard &outputOnlyLabel; &SFBoolLabel; #FIXED &#34;&#34;]&#10;Whether incoming DIS packets have an RTP header prepended.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="isRtpHeaderHeard"/>
            <attribute tooltip="[isActive &outputOnlyLabel; &SFBoolLabel; #FIXED &#34;&#34;]&#10;confirm whether there has been a recent network update.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="isActive"/>
            <attribute tooltip="[timestamp &outputOnlyLabel; &SFTimeLabel; #FIXED &#34;&#34;]&#10;DIS timestamp in X3D units (value 0.0 matches 1 January 1970) in seconds.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="timestamp"/>

            <attribute tooltip="[radioID &inputOutputLabel; &SFInt32Label; &#34;0&#34;]&#10;Identifies a particular radio within a given entity." name="radioID"/>
            <attribute tooltip="[encodingScheme &inputOutputLabel; &SFInt32Label; &#34;0&#34;]&#10;designates both Encoding Class and Encoding Type.&#10;Encoding Class enumerated value (2 most significant bits): 0 = Encoded Voice; 1 = Raw Binary Data; 2 = Application-Specific Data; 3 = Database Index. Encoding Type enumerated value (14 least significant bits): 1 = 8-bit mu-law; 2 = CVSD per MIL-STD-188-113; 3 = ADPCM per CCITT G.721; 4 = 16-bit linear PCM; 5 = 8-bit  linear PCM; 6 = Vector Quantization." name="encodingScheme"/>
            <attribute tooltip="[tdlType &inputOutputLabel; &SFInt32Label; &#34;0&#34;]&#10;Tactical Data Link (TDL) type as an enumerated value when the Encoding Class is voice, raw binary, application-specific, or database index representation of a TDL message." name="tdlType"/>
            <attribute tooltip="[sampleRate &inputOutputLabel; &SFInt32Label; &#34;0&#34;]&#10;sampleRate gives either (1) sample rate in samples per second if Encoding Class is encoded audio, or (2) data rate in bits per second for data transmissions. If Encoding Class is database index, sampleRate is set to zero.&#10;Hint: Wikipedia Nyquist frequency https://en.wikipedia.org/wiki/Nyquist_frequency" name="sampleRate"/>
            <attribute tooltip="[samples &inputOutputLabel; &SFInt32Label; &#34;0&#34;]&#10;Number of samples in the PDU if the Encoding Class is encoded voice, otherwise the field is set to zero." name="samples"/>
            <attribute tooltip="[dataLength &inputOutputLabel; &SFInt32Label; &#34;0&#34;]&#10;number of bits of digital voice audio or digital data being sent in the Signal PDU. If the Encoding Class is database index, then dataLength field is set to 96." name="dataLength"/>
            <attribute tooltip="[data &inputOutputLabel; &MFInt32Label; #IMPLIED]&#10;Holds audio or digital data conveyed by the radio transmission. Interpretation of the field depends on values of encodingScheme and tdlType fields." name="data"/>
            <attribute tooltip="(X3D version 3.3 or later) [geoCoords &inputOutputLabel; &SFVec3dLabel; &#34;0 0 0&#34;]&#10;Geographic location (specified in current geoSystem coordinates)&#10;for children geometry (specified in relative coordinate system, in meters).&#10;Hint: X3D for Advanced Modeling (X3D4AM) slideset https://x3dgraphics.com/slidesets/X3dForAdvancedModeling/GeospatialComponentX3dEarth.pdf&#10;Warning: requires X3D profile='Full' or else include &lt;component name='Geospatial' level='1'/&gt;" name="geoCoords"/>
            <attribute tooltip='(X3D version 3.3 or later) [geoSystem &initializeOnlyLabel; &GeoSystemType;]&#10;Identifies spatial reference frame: Geodetic (GD), Geocentric (GC), Universal Transverse Mercator (UTM).&#10;Supported values: &quot;GD&quot; &quot;UTM&quot; or &quot;GC" followed by additional quoted string parameters as appropriate for the type.&#10;Hint: X3D Architecture 25.2.2 Spatial reference frames https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/geospatial.html#Spatialreferenceframes&#10;Hint: X3D Architecture 25.2.4 Specifying geospatial coordinates https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/geospatial.html#Specifyinggeospatialcoords&#10;Hint: UTM is Universal Transverse Mercator coordinate system https://en.wikipedia.org/wiki/Universal_Transverse_Mercator_coordinate_system&#10;Warning: deprecated values are GDC (replaced by GD) and GCC (replaced by GC).' name="geoSystem"/>
	
            <attribute tooltip="[containerField type NMTOKEN &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/TransmitterPdu.gif" tooltip="[X3DNetworkSensorNode,X3DBoundedObject,X3DVisibleObject] TransmitterPdu is a networked Protocol Data Unit (PDU) information node that provides detailed information about a radio transmitter modeled in a simulation.&#10;Hint: TransmitterPdu packets use the IEEE Distributed Interactive Simulation (DIS) protocol.&#10;Hint: Savage Developers Guide on DIS https://savage.nps.edu/Savage/developers.html#DIS&#10;Hint: X3D for Advanced Modeling (X3D4AM) slideset https://x3dgraphics.com/slidesets/X3dForAdvancedModeling/DistributedInteractiveSimulation.pdf&#10;Warning: requires X3D profile='Full' or else include &lt;component name='DIS' level='1'/&gt;" name="TransmitterPdu">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[enabled &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Enables/disables the sensor node." name="enabled"/>
            <attribute tooltip="[whichGeometry &inputOutputLabel; &SFInt32Label; &#34;1&#34;]&#10;Select geometry to render: -1 for no geometry, 0 for text trace, 1 for default geometry, (optional) higher values to render different states." name="whichGeometry"/>
            <attribute tooltip="[bboxCenter &initializeOnlyLabel; &SFVec3fLabel; &#34;0 0 0&#34;]&#10;Bounding box center accompanies bboxSize and provides an optional hint for bounding box position offset from origin of local coordinate system.&#10;Hint: precomputation and inclusion of bounding box information can speed up the initialization of large detailed models, with a corresponding cost of increased file size.&#10;Hint: X3D Architecture, 10.2.2 Bounding boxes https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#BoundingBoxes&#10;Hint:  X3D Architecture, 10.3.1 X3DBoundedObject https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#X3DBoundedObject" name="bboxCenter"/>
            <attribute tooltip="[bboxSize &initializeOnlyLabel; &SFVec3fLabel; &#34;-1 -1 -1&#34;] or [0,+&#8734;)&#10;Bounding box size is usually omitted, and can easily be calculated automatically by an X3D player at scene-loading time with minimal computational cost. Bounding box size can also be defined as an optional authoring hint that suggests an optimization or constraint.&#10;Hint: can be useful for collision computations or inverse-kinematics (IK) engines.&#10;Hint: precomputation and inclusion of bounding box information can speed up the initialization of large detailed models, with a corresponding cost of increased file size.&#10;Hint: X3D Architecture, 10.2.2 Bounding boxes https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#BoundingBoxes&#10;Hint:  X3D Architecture, 10.3.1 X3DBoundedObject https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#X3DBoundedObject" name="bboxSize"/>
            <attribute tooltip="(X3D version 4.0 draft) [bboxDisplay &inputOutputLabel; &SFBoolLabel; &#34;false&#34;]&#10;Whether to display bounding box for associated geometry, aligned with world coordinates.&#10;Hint: the bounding box is displayed regardless of whether contained content is visible." name="bboxDisplay"/>
            <attribute tooltip="(X3D version 4.0 draft) [description &inputOutputLabel; &SFStringLabel; #IMPLIED]&#10;Author-provided prose that describes intended purpose of the node.&#10;Hint: many XML tools substitute XML character references for special characters automatically if needed within an attribute value (such as &amp;#38; for &#38; ampersand character, or &amp;#34; for &#34; quotation-mark character)." name="description"/>
            <attribute tooltip="(X3D version 4.0 draft) [visible &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Whether or not renderable content within this node is visually displayed.&#10;Hint: the visible field has no effect on animation behaviors, event passing or other non-visual characteristics.&#10;Hint: content must be visible to be collidable and to be pickable." name="visible"/>
            <attribute tooltip="[entityID &inputOutputLabel; &SFInt32Label; &#34;0&#34;]&#10;EntityID unique ID for entity within that application." name="entityID"/>
            <attribute tooltip="[applicationID &inputOutputLabel; &SFInt32Label; &#34;0&#34;]&#10;Each simulation application that can respond to simulation management PDUs needs to have a unique applicationID." name="applicationID"/>
            <attribute tooltip="[siteID &inputOutputLabel; &SFInt32Label; &#34;0&#34;]&#10;Simulation/exercise siteID of the participating LAN or organization." name="siteID"/>

            <attribute tooltip="[readInterval &inputOutputLabel; &SFTimeLabel; &#34;0.1&#34;] [0,+&#8734;)&#10;Seconds between read updates, 0 means no reading.&#10;Hint: readInterval is a nonnegative SFTime duration interval, not an absolute clock time." name="readInterval"/>
            <attribute tooltip="[writeInterval &inputOutputLabel; &SFTimeLabel; &#34;1.0&#34;] [0,+&#8734;)&#10;Seconds between write updates, 0 means no writing (sending).&#10;Hint: writeInterval is a nonnegative SFTime duration interval, not an absolute clock time." name="writeInterval"/>
            <attribute tooltip="[networkMode &inputOutputLabel; &SFStringLabel; &DisNetworkModeValues; standAlone]&#10;Whether this entity is ignoring the network, sending DIS packets to the network, or receiving DIS packets from the network.&#10;(1) standAlone: ignore network but still respond to events in local scene.&#10;(2) networkReader: listen to network and read PDU packets at readInterval, act as remotely linked copy of entity.&#10;(3) networkWriter: send PDU packets to network at writeInterval, act as master entity.&#10;Default value &#34;standAlone&#34; ensures that DIS network activation within a scene  as networkReader or networkWriter is intentional.&#10;Warning: do not wrap extra quotation marks  around these SFString enumeration values, since &#34;quotation&#34; &#34;marks&#34; are only used for MFString values.&#10;Warning: network activity may have associated security issues." name="networkMode"/>
            <attribute tooltip="[isStandAlone &outputOnlyLabel; &SFBoolLabel; #FIXED &#34;&#34;]&#10;Whether networkMode='local' (ignore network but still respond to local events).&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="isStandAlone"/>
            <attribute tooltip="[isNetworkReader &outputOnlyLabel; &SFBoolLabel; #FIXED &#34;&#34;]&#10;Whether networkMode='remote' (listen to network as copy of remote entity).&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="isNetworkReader"/>
            <attribute tooltip="[isNetworkWriter &outputOnlyLabel; &SFBoolLabel; #FIXED &#34;&#34;]&#10;Whether networkMode='master' (output to network as master entity at writeInterval).&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="isNetworkWriter"/>

            <attribute tooltip="[address &inputOutputLabel; &SFStringLabel; localhost]&#10;Multicast network address, or else 'localhost'. Example: 224.2.181.145." name="address"/>
            <attribute tooltip="[port &inputOutputLabel; &SFInt32Label; &#34;0&#34;]&#10;Multicast network port, for example: 3000." name="port"/>
            <attribute tooltip="[multicastRelayHost &inputOutputLabel; &SFStringLabel; #IMPLIED]&#10;Fallback server address if multicast not available locally.&#10;For example: track.nps.edu." name="multicastRelayHost"/>
            <attribute tooltip="[multicastRelayPort &inputOutputLabel; &SFInt32Label; &#34;0&#34;]&#10;Fallback server port if multicast not available locally.&#10;For example: 8010." name="multicastRelayPort"/>
            <attribute tooltip="[rtpHeaderExpected &inputOutputLabel; &SFBoolLabel; &#34;false&#34;]&#10;Whether RTP headers are prepended to DIS PDUs." name="rtpHeaderExpected"/>
            <attribute tooltip="[isRtpHeaderHeard &outputOnlyLabel; &SFBoolLabel; #FIXED &#34;&#34;]&#10;Whether incoming DIS packets have an RTP header prepended.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="isRtpHeaderHeard"/>
            <attribute tooltip="[isActive &outputOnlyLabel; &SFBoolLabel; #FIXED &#34;&#34;]&#10;confirm whether there has been a recent network update.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="isActive"/>
            <attribute tooltip="[timestamp &outputOnlyLabel; &SFTimeLabel; #FIXED &#34;&#34;]&#10;DIS timestamp in X3D units (value 0.0 matches 1 January 1970) in seconds.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="timestamp"/>

            <attribute tooltip="[radioID &inputOutputLabel; &SFInt32Label; &#34;0&#34;]&#10;Identifies a particular radio within a given entity." name="radioID"/>
            <attribute tooltip="[antennaLocation &inputOutputLabel; &SFVec3fLabel; &#34;0 0 0&#34;]&#10;World coordinates for antenna location." name="antennaLocation"/>
            <attribute tooltip="[relativeAntennaLocation &inputOutputLabel; &SFVec3fLabel; &#34;0 0 0&#34;]&#10;Relative coordinates for antenna location." name="relativeAntennaLocation"/>
            <attribute tooltip="[antennaPatternLength &inputOutputLabel; &SFInt32Label; &#34;0&#34;]&#10;" name="antennaPatternLength"/>
            <attribute tooltip="[antennaPatternType &inputOutputLabel; &SFInt32Label; &#34;0&#34;]&#10;Antenna shape pattern: 0 for omnidirectional, 1 for beam, 2 for spherical harmonic (deprecated), or optional higher value" name="antennaPatternType"/>
            <attribute tooltip="[cryptoKeyID &inputOutputLabel; &SFInt32Label; &#34;0&#34;]&#10;Nonzero value corresponding to the simulated cryptographic key. Enumerations value 0 indicates plain (unencrypted) communications." name="cryptoKeyID"/>
            <attribute tooltip="[cryptoSystem &inputOutputLabel; &SFInt32Label; &#34;0&#34;]&#10;Indicates type of crypto system being used, even if the encryption equipment is not keyed. Value 0 for No Encryption Device, higher enumerations values correspond to other specific equipment." name="cryptoSystem"/>
            <attribute tooltip="[frequency &inputOutputLabel; &SFInt32Label; &#34;0&#34;]&#10;Transmission frequency in Hz. If the radio is in frequency hopping mode, this field may be set to the center of the frequency hopping band currently in use, or to some other appropriate value." name="frequency"/>
            <attribute tooltip="[inputSource &inputOutputLabel; &SFInt32Label; &#34;0&#34;]&#10;Source of transmission input. Enumerations value 0 for Other, 1 for Pilot, 2 for Copilot, 3 for First Officer, 4 for Driver, 5 for Loader, 6 for Gunner, 7 for Commander, 8 for Digital Data Device, 9 for Intercom, 10 for Audio Jammer, 11 for Data Jammer, 12 for GPS Jammer, 13 for GPS Meaconer (masking beacon)." name="inputSource"/>
            <attribute tooltip="[lengthOfModulationParameters &inputOutputLabel; &SFInt32Label; &#34;0&#34;]&#10;" name="lengthOfModulationParameters"/>
            <attribute tooltip="[modulationTypeDetail &inputOutputLabel; &SFInt32Label; &#34;0&#34;]&#10;Integer enumeration containing detailed information depending on the major modulation type." name="modulationTypeDetail"/>
            <attribute tooltip="[modulationTypeMajor &inputOutputLabel; &SFInt32Label; &#34;0&#34;]&#10;Integer enumeration containing major classification of the modulation type. Enumerations value 0 for No Statement, 1 for Amplitude, 2 for Amplitude and Angle, 3 for Angle, 4 for Combination, 5 for Pulse, 6 for Unmodulated, 7 for Carrier Phase Shift Modulation (CPSM)." name="modulationTypeMajor"/>
            <attribute tooltip="[modulationTypeSpreadSpectrum &inputOutputLabel; &SFInt32Label; &#34;0&#34;]&#10;Indicates the spread spectrum technique or combination of spread spectrum techniques in use." name="modulationTypeSpreadSpectrum"/>
            <attribute tooltip="[modulationTypeSystem &inputOutputLabel; &SFInt32Label; &#34;0&#34;]&#10;Specifies radio system associated with this Transmitter PDU and used to interpret other fields whose values depend on a specific radio system." name="modulationTypeSystem"/>
            <attribute tooltip="[power &inputOutputLabel; &SFFloatLabel; &#34;0&#34;]&#10;Power that radio would be capable of outputting if on and transmitting, independent of actual transmit state of the radio." name="power"/>
            <attribute tooltip="[radioEntityTypeCategory &inputOutputLabel; &SFInt32Label; &#34;0&#34;]&#10;Integer enumeration containing EntityType of transmitter radio. Enumerations value: 0 for Other, 1 for Generic Radio or Simple Intercom, 2 for HAVE QUICK, 3 for HAVE QUICK II, 4 for HAVE QUICK IIA, 5 for SINCGARS, 6 for CCTT SINCGARS, 7 for EPLRS (Enhanced Position Location Reporting System), 8 for JTIDS/MIDS, 9 for Link 11, 10 for Link 11B, 11 for L-Band SATCOM, 12 for Enhanced SINCGARS 7.3, 13 for Navigation Aid." name="radioEntityTypeCategory"/>
            <attribute tooltip="[radioEntityTypeCountry &inputOutputLabel; &SFInt32Label; &#34;0&#34;]&#10;Integer enumerations value for country to which the design of the entity or its design specification is attributed." name="radioEntityTypeCountry"/>
            <attribute tooltip="[radioEntityTypeDomain &inputOutputLabel; &SFInt32Label; &#34;0&#34;]&#10;Integer enumerations value for domain in which the entity operates: LAND, AIR, SURFACE, SUBSURFACE, SPACE or OTHER." name="radioEntityTypeDomain"/>
            <attribute tooltip="[radioEntityTypeKind &inputOutputLabel; &SFInt32Label; &#34;0&#34;]&#10;Integer enumerations value for whether entity is a PLATFORM, MUNITION, LIFE_FORM, ENVIRONMENTAL, CULTURAL_FEATURE, SUPPLY, RADIO, EXPENDABLE, SENSOR_EMITTER or OTHER." name="radioEntityTypeKind"/>
            <attribute tooltip="[radioEntityTypeNomenclature &inputOutputLabel; &SFInt32Label; &#34;0&#34;]&#10;Integer enumerations value indicating nomenclature (name) for a particular emitter. See DIS enumerations reference for value/name pairs." name="radioEntityTypeNomenclature"/>
            <attribute tooltip="[radioEntityTypeNomenclatureVersion &inputOutputLabel; &SFInt32Label; &#34;0&#34;]&#10;Named equipment version number." name="radioEntityTypeNomenclatureVersion"/>
            <attribute tooltip="[transmitFrequencyBandwidth &inputOutputLabel; &SFFloatLabel; &#34;0.0&#34;]&#10;Bandwidth of the particular transmitter measured between the half-power (-3 dB) points (this value represents total bandwidth, not the deviation from the center frequency)."  name="transmitFrequencyBandwidth"/>
            <attribute tooltip="[transmitState &inputOutputLabel; &SFInt32Label; &#34;0&#34;]&#10;Specify radio transmission state where enumerations value 0 is for off, value 1 for powered but not transmitting, or value 1 is for powered and transmitting," name="transmitState"/>
            <attribute tooltip="(X3D version 3.3 or later) [geoCoords &inputOutputLabel; &SFVec3dLabel; &#34;0 0 0&#34;]&#10;Geographic location (specified in current geoSystem coordinates)&#10;for children geometry (specified in relative coordinate system, in meters).&#10;Hint: X3D for Advanced Modeling (X3D4AM) slideset https://x3dgraphics.com/slidesets/X3dForAdvancedModeling/GeospatialComponentX3dEarth.pdf&#10;Warning: requires X3D profile='Full' or else include &lt;component name='Geospatial' level='1'/&gt;" name="geoCoords"/>
            <attribute tooltip='(X3D version 3.3 or later) [geoSystem &initializeOnlyLabel; &GeoSystemType;]&#10;Identifies spatial reference frame: Geodetic (GD), Geocentric (GC), Universal Transverse Mercator (UTM).&#10;Supported values: &quot;GD&quot; &quot;UTM&quot; or &quot;GC" followed by additional quoted string parameters as appropriate for the type.&#10;Hint: X3D Architecture 25.2.2 Spatial reference frames https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/geospatial.html#Spatialreferenceframes&#10;Hint: X3D Architecture 25.2.4 Specifying geospatial coordinates https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/geospatial.html#Specifyinggeospatialcoords&#10;Hint: UTM is Universal Transverse Mercator coordinate system https://en.wikipedia.org/wiki/Universal_Transverse_Mercator_coordinate_system&#10;Warning: deprecated values are GDC (replaced by GD) and GCC (replaced by GC).' name="geoSystem"/>

            <attribute tooltip="[containerField type NMTOKEN &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/DISENTITYMANAGER16.png" tooltip="[X3DChildNode] DISEntityManager notifies a scene when new DIS ESPDU entities arrive or current entities leave. DISEntityManager may contain any number of DISEntityTypeMapping nodes that provide a best-match X3D model to incoming entity type values. For each new DIS entity, DISEntityManager thus produces a new EspduTransform node that contains a corresponding X3D model.&#10;Hint: DISEntityManager contains DISEntityTypeMapping nodes.&#10;Hint: DisEntityManager ESPDU packets use the IEEE Distributed Interactive Simulation (DIS) protocol.&#10;Warning: 'children' field originally named 'mapping' in X3Dv3. https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#fieldNameChanges&#10;Hint: Savage Developers Guide on DIS https://savage.nps.edu/Savage/developers.html#DIS&#10;Hint: X3D for Advanced Modeling (X3D4AM) slideset https://x3dgraphics.com/slidesets/X3dForAdvancedModeling/DistributedInteractiveSimulation.pdf&#10;Warning: requires X3D profile='Full' or else include &lt;component name='DIS' level='2'/&gt;" name="DISEntityManager">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="(X3D version 4.0 draft) [children &inputOutputLabel; &MFNodeLabel;, empty list] [DISEntityTypeMapping]&#10;mapping field provides a mechanism for automatically creating an X3D model when a new entity arrives over the network. If a new entity matches one of the nodes, an instance of the provided URL is created and added as a child to the EspduTransform specified in the addedEntities field.&#10;Hint: multiple DISEntityTypeMapping nodes can be provided in mapping field, best match takes precedence.&#10;Warning: field originally named 'mapping' in X3Dv3. https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#fieldNameChanges" name="children"/>
            <attribute tooltip="[addedEntities &outputOnlyLabel; &MFNodeLabel;] [EspduTransform]&#10;addedEntities array contains any new entities added during the last frame.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="addedEntities"/>
            <attribute tooltip="[removedEntities &outputOnlyLabel; &MFNodeLabel;] [EspduTransform]&#10;removedEntities output array provides EspduTransform references to any entities removed during last frame, either due to a timeout or from an explicit RemoveEntityPDU action.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="removedEntities"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[address &inputOutputLabel; &SFStringLabel; localhost]&#10;Multicast network address, or else 'localhost'. Example: 224.2.181.145." name="address"/>
            <attribute tooltip="[port &inputOutputLabel; &SFInt32Label; &#34;0&#34;]&#10;Multicast network port, for example: 3000." name="port"/>
            <attribute tooltip="[applicationID &inputOutputLabel; &SFInt32Label; &#34;0&#34;]&#10;Each simulation application that can respond to simulation management PDUs needs to have a unique applicationID." name="applicationID"/>
            <attribute tooltip="[siteID &inputOutputLabel; &SFInt32Label; &#34;0&#34;]&#10;Simulation/exercise siteID of the participating LAN or organization." name="siteID"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/DISENTITYTYPEMAPPING16.png" tooltip="[X3DInfoNode,X3DUrlObject] DISEntityTypeMapping provides a best-match mapping from DIS ESPDU entity type information to a specific X3D model, thus providing a visual and behavioral representation that best matches the entity type. Fields are processed in order: kind, domain, country, category, subcategory, specific, extra.&#10;Hint: values set to zero are wildcards, matching any received value.&#10;Hint: DISEntityTypeMapping is contained by a parent DISEntityManager node.&#10;Hint: DisEntityManager ESPDU packets use the IEEE Distributed Interactive Simulation (DIS) protocol.&#10;Hint: Savage Developers Guide on DIS https://savage.nps.edu/Savage/developers.html#DIS
&#10;Hint: X3D for Advanced Modeling (X3D4AM) slideset https://x3dgraphics.com/slidesets/X3dForAdvancedModeling/DistributedInteractiveSimulation.pdf&#10;Warning: requires X3D profile='Full' or else include &lt;component name='DIS' level='2'/&gt;&#10;Hint: when parent node is LoadSensor, apply containerField='children' (X3Dv4) or containerField='watchList' (X3Dv3). https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#fieldNameChanges" name="DISEntityTypeMapping">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="(X3D version 4.0 draft) [autoRefresh &inputOutputLabel; &SFTimeLabel; &#34;0.0&#34;]&#10;autoRefresh defines interval in seconds before automatic reload of current url asset is performed.&#10;Hint: if preceding file loading fails or load field is false, no refresh is performed.&#10;Hint: repeated refresh attempts to reload currently loaded entry of url list. If that fails, the browser retries other entries in the url list.&#10;Warning: automatically reloading content has security considerations and needs to be considered carefully." name="autoRefresh"/>
            <attribute tooltip="(X3D version 4.0 draft) [autoRefreshTimeLimit &inputOutputLabel; &SFTimeLabel; &#34;3600.0&#34;]&#10;autoRefreshTimeLimit defines maximum duration that automatic refresh activity can occur.&#10;Hint: Automatic refresh is different than query and response timeouts performed by a networking library while sequentially attempting to retrieve addressed content from a url list.&#10;Warning: automatically reloading content has security considerations and needs to be considered carefully." name="autoRefreshTimeLimit"/>
            <attribute tooltip="(X3D version 4.0 draft) [description &inputOutputLabel; &SFStringLabel; #IMPLIED]&#10;Author-provided prose that describes intended purpose of the url asset.&#10;Hint: many XML tools substitute XML character references for special characters automatically if needed within an attribute value (such as &amp;#38; for &#38; ampersand character, or &amp;#34; for &#34; quotation-mark character)." name="description"/>
            <attribute tooltip="(X3D version 4.0 draft) [load &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;load=true means load immediately,&#10;load=false means defer loading or else unload a previously loaded scene.&#10;Hint: allows author to design when Inline loading occurs via user interaction, event chains or scripting.&#10;Hint: use a separate LoadSensor node to detect when loading is complete." name="load"/>
            <attribute tooltip="[url &inputOutputLabel; &MFStringLabel; #IMPLIED]&#10;Local and/or online addresses of X3D model of interest, for example: &quot;ExtrusionExampleShip.x3d&quot; &quot;https://www.web3d.org/x3d/content/examples/Basic/course/ExtrusionExampleShip.x3d&quot;&#10;Hint: see https://www.web3d.org/x3d/content/examples/Basic/course/ExtrusionExampleShipIndex.html&#10;Hint: MFString arrays can have multiple values, so separate each individual string by quote marks &quot;https://www.web3d.org&quot; &quot;https://www.web3d.org/about&quot; &quot;etc.&quot;&#10;Hint: alternative XML encoding for quotation mark &quot; is &#38;quot; (which is an example of a character entity).&#10;Warning: strictly match directory and filename capitalization for http links! This is important for portability. Some operating systems are forgiving of capitalization mismatches, but http/https url addresses and paths in Unix-based operating systems are all case sensitive and intolerant of uppercase/lowercase mismatches.&#10;Hint: can replace embedded blank(s) in url queries with %20 for each blank character.&#10;Hint: X3D Scene Authoring Hints, urls https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#urls" name="url"/>
            <attribute tooltip="[kind &inputOutputLabel; &SFInt32Label; &#34;0&#34;]&#10;Integer enumerations value for whether entity is a PLATFORM, MUNITION, LIFE_FORM, ENVIRONMENTAL, CULTURAL_FEATURE, SUPPLY, RADIO, EXPENDABLE, SENSOR_EMITTER or OTHER." name="kind"/>
            <attribute tooltip="[domain &inputOutputLabel; &SFInt32Label; &#34;0&#34;]&#10;Integer enumerations value for domain in which the entity operates: LAND, AIR, SURFACE, SUBSURFACE, SPACE or OTHER." name="domain"/>
            <attribute tooltip="[country &inputOutputLabel; &SFInt32Label; &#34;0&#34;]&#10;Integer enumerations value for country to which the design of the entity or its design specification is attributed." name="country"/>
            <attribute tooltip="[category &inputOutputLabel; &SFInt32Label; &#34;0&#34;]&#10;Integer enumerations value for main category that describes the entity, semantics of each code varies according to domain. See DIS Enumerations values." name="category"/>
            <attribute tooltip="[subcategory &inputOutputLabel; &SFInt32Label; &#34;0&#34;]&#10;Integer enumerations value for particular subcategory to which an entity belongs based on the category field. See DIS Enumerations values." name="subcategory"/>
            <attribute tooltip="[specific &inputOutputLabel; &SFInt32Label; &#34;0&#34;]&#10;Specific information about an entity based on the subcategory field. See DIS Enumerations values." name="specific"/>
            <attribute tooltip="[extra &inputOutputLabel; &SFInt32Label; &#34;0&#34;]&#10;Any extra information required to describe a particular entity. The contents of this field shall depend on the type of entity represented." name="extra"/>
            <attribute tooltip="[containerField type NMTOKEN (children|mapping|watchList) &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>

        <!-- GeoVRML, GeoSpatial component - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->

        <element icon="icons/GeoCoordinate.gif" tooltip="[X3DCoordinateNode] GeoCoordinate builds geometry as a set of geographic 3D coordinates.&#10;These are transformed into a geocentric, curved-earth representation.&#10;GeoCoordinate is only used by IndexedFaceSet, IndexedLineSet, LineSet and PointSet.&#10;GeoCoordinate can contain a GeoOrigin node.&#10;Hint: X3D for Advanced Modeling (X3D4AM) slideset https://x3dgraphics.com/slidesets/X3dForAdvancedModeling/GeospatialComponentX3dEarth.pdf&#10;Warning: requires X3D profile='Full' or else include &lt;component name='Geospatial' level='1'/&gt;" name="GeoCoordinate">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[geoOrigin &initializeOnlyLabel; &SFNodeLabel;, NULL node] [GeoOrigin]&#10;Single contained GeoOrigin node that can specify a local coordinate frame for extended precision.&#10;Hint: X3D Architecture 25.2.5 Dealing with high-precision coordinates https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/geospatial.html#high-precisioncoords&#10;Warning: XML validation requires placement as first child node following contained metadata nodes (if any)." name="geoOrigin"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip='[geoSystem &initializeOnlyLabel; &GeoSystemType;]&#10;Identifies spatial reference frame: Geodetic (GD), Geocentric (GC), Universal Transverse Mercator (UTM).&#10;Supported values: &quot;GD&quot; &quot;UTM&quot; or &quot;GC" followed by additional quoted string parameters as appropriate for the type.&#10;Hint: X3D Architecture 25.2.2 Spatial reference frames https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/geospatial.html#Spatialreferenceframes&#10;Hint: X3D Architecture 25.2.4 Specifying geospatial coordinates https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/geospatial.html#Specifyinggeospatialcoords&#10;Hint: UTM is Universal Transverse Mercator coordinate system https://en.wikipedia.org/wiki/Universal_Transverse_Mercator_coordinate_system&#10;Warning: deprecated values are GDC (replaced by GD) and GCC (replaced by GC).' name="geoSystem"/>
            <attribute tooltip='[point &inputOutputLabel; &MFVec3dLabel; #IMPLIED]&#10;point contains a set of actual 3D geographic coordinates, provided in geoSystem format&#10;can split strings if desired: "x1 y1 z1 x2 y2 z2" or "x1 y1 z1", "x2 y2 z2"' name="point"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;coord&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/GeoElevationGrid.gif" tooltip="[X3DGeometryNode] GeoElevationGrid is a geometry node defining a rectangular height field, with default values for a 1m by 1m square at height 0. Vertices corresponding to GeoElevationGrid height values define quadrilaterals, which are placed above or below a curved geospatial surface using geographic coordinates.&#10;Hint: the height array defines (xDimension-1)*(zDimension-1) quadrilaterals.&#10;Warning: generated quadrilaterals can be nonplanar. Tessellation splits quadrilaterals into triangles along seam starting at initial vertex of the quadrilateral and proceeding to opposite vertex.&#10;Hint: positive direction for normal of each triangle is on same side of the quadrilateral. Triangles are defined either counterclockwise or clockwise depending on value of ccw field.&#10;Hint: GeoElevationGrid can contain GeoOrigin, Color|ColorRGBA, Normal and TextureCoordinate nodes.&#10;Hint: insert a Shape node before adding geometry or Appearance.&#10;Hint: X3D for Advanced Modeling (X3D4AM) slideset https://x3dgraphics.com/slidesets/X3dForAdvancedModeling/GeospatialComponentX3dEarth.pdf&#10;Warning: requires X3D profile='Full' or else include &lt;component name='Geospatial' level='1'/&gt;&#10;Warning: avoid having GeoLocation or GeoTransform as a parent or ancestor node of GeoElevationGrid, since multiple geospatial transformations then occur with unpredictable results." name="GeoElevationGrid">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[geoOrigin &initializeOnlyLabel; &SFNodeLabel;, NULL node] [GeoOrigin]&#10;Single contained GeoOrigin node that can specify a local coordinate frame for extended precision.&#10;Hint: X3D Architecture 25.2.5 Dealing with high-precision coordinates https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/geospatial.html#high-precisioncoords&#10;Warning: XML validation requires placement as first child node following contained metadata nodes (if any)." name="geoOrigin"/>
            <attribute tooltip="[color &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DColorNode]&#10;Single contained Color or ColorRGBA node that can specify color values applied to corresponding vertices according to colorPerVertex field." name="color"/>
            <attribute tooltip="[normal &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DNormalNode]&#10;Single contained Normal node that can specify perpendicular vectors for corresponding vertices to support rendering computations, applied according to the normalPerVertex field.&#10;Hint: useful for special effects. Normal vector computation by 3D graphics hardware is quite fast so adding normals to a scene is typically unnecessary.&#10;Warning: normal vectors increase file size, typically doubling geometry definitions." name="normal"/>
            <attribute tooltip="[texCoord &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DTextureCoordinateNode]&#10;Single contained TextureCoordinate, TextureCoordinateGenerator or MultiTextureCoordinate node that can specify coordinates for texture mapping onto corresponding geometry." name="texCoord"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[geoGridOrigin &initializeOnlyLabel; &SFVec3dLabel; &#34;0 0 0&#34;]&#10;Geographic coordinate for southwest (lower-left) corner of height dataset." name="geoGridOrigin"/>
            <attribute tooltip='[geoSystem &initializeOnlyLabel; &GeoSystemType;]&#10;Identifies spatial reference frame: Geodetic (GD), Geocentric (GC), Universal Transverse Mercator (UTM).&#10;Supported values: &quot;GD&quot; &quot;UTM&quot; or &quot;GC" followed by additional quoted string parameters as appropriate for the type.&#10;Hint: X3D Architecture 25.2.2 Spatial reference frames https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/geospatial.html#Spatialreferenceframes&#10;Hint: X3D Architecture 25.2.4 Specifying geospatial coordinates https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/geospatial.html#Specifyinggeospatialcoords&#10;Hint: UTM is Universal Transverse Mercator coordinate system https://en.wikipedia.org/wiki/Universal_Transverse_Mercator_coordinate_system&#10;Warning: deprecated values are GDC (replaced by GD) and GCC (replaced by GC).' name="geoSystem"/>
            <attribute tooltip="[xDimension &initializeOnlyLabel; &SFInt32Label; &#34;2&#34;] (0,+&#8734;)&#10;Number of elements in the height array along east-west X direction.&#10;Hint: total horizontal x-axis distance equals (xDimension-1) * xSpacing.&#10;Warning: xDimension &lt; 2 means that GeoElevationGrid contains no quadrilaterals." name="xDimension"/>
            <attribute tooltip="[zDimension &initializeOnlyLabel; &SFInt32Label; &#34;2&#34;] (0,+&#8734;)&#10;Number of elements in the height array along north-south Z direction.&#10;Hint: total lateral z-axis distance equals (zDimension-1) * zSpacing.&#10;Warning: zDimension &lt; 2 means that GeoElevationGrid contains no quadrilaterals." name="zDimension"/>
            <attribute tooltip="[xSpacing &initializeOnlyLabel; &SFDoubleLabel; &#34;1.0&#34;] (0,+&#8734;)&#10;Distance between grid-array vertices along east-west X direction.&#10;Hint: when geoSystem is GDC, xSpacing is number of degrees of longitude.&#10;Hint: when geoSystem is UTM, xSpacing is number of eastings (meters)." name="xSpacing"/>
            <attribute tooltip="[zSpacing &initializeOnlyLabel; &SFDoubleLabel; &#34;1.0&#34;] (0,+&#8734;)&#10;Distance between grid-array vertices along north-south Z direction.&#10;Hint: when geoSystem is GDC, zSpacing is number of degrees of latitude.&#10;Hint: when geoSystem is UTM, zSpacing is number of northings (meters)." name="zSpacing"/>
            <attribute tooltip="[yScale &inputOutputLabel; &SFFloatLabel; &#34;1.0&#34;] [0,+&#8734;)&#10;Vertical exaggeration of displayed data produced from the height array." name="yScale"/>
            <attribute tooltip="[height &initializeOnlyLabel; &MFDoubleLabel; &#34;0 0 0 0&#34;]&#10;Contains xDimension rows * zDimension columns floating-point values for elevation above ellipsoid.&#10;Hint: height array values are in row-major order from west to east, south to north.&#10;Hint: geoGridOrigin is in southwest (lower-left) corner of height dataset.&#10;Warning: height array values are not retained or available at run time since a browser is permitted to condense geometry." name="height"/>
            <attribute tooltip="[set_height &initializeOnlyLabel; &MFDoubleLabel; #FIXED &#34;&#34;]&#10;Contains xDimension rows * zDimension columns floating-point values for elevation above ellipsoid.&#10;Hint: height array values are in row-major order from west to east, south to north.&#10;Hint: geoGridOrigin is in southwest (lower-left) corner of height dataset.&#10;Warning: it is an error to define this transient inputOnly field in an X3D file, instead only use it a destination for ROUTE events." name="set_height"/>
            <attribute tooltip="[ccw &initializeOnlyLabel; &SFBoolLabel; &#34;true&#34;]&#10; ccw defines clockwise/counterclockwise ordering of vertex coordinates, which in turn defines front/back orientation of polygon normals according to Right-Hand Rule (RHR).&#10;Hint: a good debugging technique for problematic polygons is to try changing the value of ccw, which can reverse solid effects (single-sided backface culling) and normal-vector direction.&#10;Warning: consistent and correct ordering of left-handed or right-handed point sequences is important throughout the coord array of point values.&#10;Hint: clockwise https://en.wikipedia.org/wiki/Clockwise" name="ccw"/>
            <attribute tooltip="[solid &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Setting solid true means draw only one side of polygons (backface culling on), setting solid false means draw both sides of polygons (backface culling off).&#10;Hint: mnemonic &quot;this geometry is solid like a brick&quot; (you don't render the inside of a brick).&#10;Warning: default value true can completely hide geometry if viewed from wrong side!&#10;Hint: if in doubt, use solid='false' for maximum visibility.&#10;Hint: (X3D version 4.0 draft) accessType relaxed to inputOutput in order to support animation and visualization." name="solid"/>
            <attribute tooltip="[creaseAngle &initializeOnlyLabel; &SFDoubleLabel; &#34;0&#34;] (0,+&#8734;)&#10;creaseAngle defines angle (in radians) for determining whether adjacent polygons&#10;are drawn with sharp edges or smooth shading.&#10;If angle between normals of two adjacent polygons is less than creaseAngle,&#10;smooth shading is rendered across the shared line segment.&#10;Hint: creaseAngle=0 means render all edges sharply,&#10;  creaseAngle=3.14159 means render all edges smoothly.&#10;Warning: note type double, unlike ElevationGrid creaseAngle.&#10;Hint: radian units for angular measure https://en.wikipedia.org/wiki/Radian" name="creaseAngle"/>
            <attribute tooltip="[colorPerVertex &initializeOnlyLabel; &SFBoolLabel; &#34;true&#34;]&#10;Whether Color node color values are applied to each point vertex (true) or per quadrilateral (false).&#10;Hint: X3D Scene Authoring Hints, Color https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#Color" name="colorPerVertex"/>
            <attribute tooltip="[normalPerVertex &initializeOnlyLabel; &SFBoolLabel; &#34;true&#34;]&#10;Whether Normal node vector values are applied to each point vertex (true) or per quadrilateral (false).&#10;Hint: if no child Normal node is provided, the X3D browser shall automatically generate normals, using creaseAngle to determine smoothed shading across shared vertices." name="normalPerVertex"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;geometry&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/GeoLocation.gif" tooltip="[X3DGroupingNode,X3DVisibleObject] GeoLocation positions a regular X3D model onto earth's surface.&#10;GeoLocation can contain children and GeoOrigin nodes.&#10;Hint: X3D for Advanced Modeling (X3D4AM) slideset https://x3dgraphics.com/slidesets/X3dForAdvancedModeling/GeospatialComponentX3dEarth.pdf&#10;Warning: requires X3D profile='Full' or else include &lt;component name='Geospatial' level='1'/&gt;&#10;Warning: avoid having GeoLocation or GeoTransform as a parent or ancestor node of each other, since multiple geospatial transformations then occur with unpredictable results.&#10;Hint: GeoLocation adjusts orientation of children models appropriately: +Y axis is up direction for that local area (i.e. normal to tangent plane on the geospatial ellipsoid), -Z axis points towards north pole, and +X axis points east." name="GeoLocation">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[geoOrigin &initializeOnlyLabel; &SFNodeLabel;, NULL node] [GeoOrigin]&#10;Single contained GeoOrigin node that can specify a local coordinate frame for extended precision.&#10;Hint: X3D Architecture 25.2.5 Dealing with high-precision coordinates https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/geospatial.html#high-precisioncoords&#10;Warning: XML validation requires placement as first child node following contained metadata nodes (if any)." name="geoOrigin"/>
            <attribute tooltip="[children &inputOutputLabel; &MFNodeLabel;, empty list] [X3DChildNode]&#10;Grouping nodes contain an ordered list of children nodes.&#10;Hint: Each grouping node defines a coordinate space for its children, relative to the coordinate space of its parent node. Thus transformations accumulate down the scene graph hierarchy.&#10;Hint: inputOnly MFNode addChildren field can append new X3DChildNode nodes via a ROUTE connection, duplicate input nodes (i.e. matching DEF, USE values) are ignored.&#10;Hint: inputOnly MFNode removeChildren field can remove nodes from the children list, unrecognized input nodes (i.e. nonmatching DEF, USE values) are ignored.&#10;Hint: X3D Architecture 10.2.1 Grouping and children node types, https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#GroupingAndChildrenNodes" name="children"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[geoCoords &inputOutputLabel; &SFVec3dLabel; &#34;0 0 0&#34;]&#10;Geographic location (specified in current geoSystem coordinates)&#10;for children geometry (specified in relative coordinate system, in meters).&#10;Hint: X3D for Advanced Modeling (X3D4AM) slideset https://x3dgraphics.com/slidesets/X3dForAdvancedModeling/GeospatialComponentX3dEarth.pdf&#10;Warning: requires X3D profile='Full' or else include &lt;component name='Geospatial' level='1'/&gt;" name="geoCoords"/>
            <attribute tooltip='[geoSystem &initializeOnlyLabel; &GeoSystemType;]&#10;Identifies spatial reference frame: Geodetic (GD), Geocentric (GC), Universal Transverse Mercator (UTM).&#10;Supported values: &quot;GD&quot; &quot;UTM&quot; or &quot;GC" followed by additional quoted string parameters as appropriate for the type.&#10;Hint: X3D Architecture 25.2.2 Spatial reference frames https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/geospatial.html#Spatialreferenceframes&#10;Hint: X3D Architecture 25.2.4 Specifying geospatial coordinates https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/geospatial.html#Specifyinggeospatialcoords&#10;Hint: UTM is Universal Transverse Mercator coordinate system https://en.wikipedia.org/wiki/Universal_Transverse_Mercator_coordinate_system&#10;Warning: deprecated values are GDC (replaced by GD) and GCC (replaced by GC).' name="geoSystem"/>
            <attribute tooltip="[bboxCenter &initializeOnlyLabel; &SFVec3fLabel; &#34;0 0 0&#34;]&#10;Bounding box center accompanies bboxSize and provides an optional hint for bounding box position offset from origin of local coordinate system.&#10;Hint: precomputation and inclusion of bounding box information can speed up the initialization of large detailed models, with a corresponding cost of increased file size.&#10;Hint: X3D Architecture, 10.2.2 Bounding boxes https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#BoundingBoxes&#10;Hint:  X3D Architecture, 10.3.1 X3DBoundedObject https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#X3DBoundedObject" name="bboxCenter"/>
            <attribute tooltip="[bboxSize &initializeOnlyLabel; &SFVec3fLabel; &#34;-1 -1 -1&#34;] or [0,+&#8734;)&#10;Bounding box size is usually omitted, and can easily be calculated automatically by an X3D player at scene-loading time with minimal computational cost. Bounding box size can also be defined as an optional authoring hint that suggests an optimization or constraint.&#10;Hint: can be useful for collision computations or inverse-kinematics (IK) engines.&#10;Hint: precomputation and inclusion of bounding box information can speed up the initialization of large detailed models, with a corresponding cost of increased file size.&#10;Hint: X3D Architecture, 10.2.2 Bounding boxes https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#BoundingBoxes&#10;Hint:  X3D Architecture, 10.3.1 X3DBoundedObject https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#X3DBoundedObject" name="bboxSize"/>
            <attribute tooltip="(X3D version 4.0 draft) [bboxDisplay &inputOutputLabel; &SFBoolLabel; &#34;false&#34;]&#10;Whether to display bounding box for associated geometry, aligned with world coordinates.&#10;Hint: the bounding box is displayed regardless of whether contained content is visible." name="bboxDisplay"/>
            <attribute tooltip="(X3D version 4.0 draft) [visible &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Whether or not renderable content within this node is visually displayed.&#10;Hint: the visible field has no effect on animation behaviors, event passing or other non-visual characteristics.&#10;Hint: content must be visible to be collidable and to be pickable." name="visible"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/GeoLOD.gif" tooltip="[X3DChildNode,X3DBoundedObject,X3DVisibleObject] GeoLOD provides quadtree level-of-detail loading/unloading for multi-resolution terrains.&#10;GeoLOD can contain children and GeoOrigin nodes.&#10;Hint: children nodes expose the scene graph for the currently loaded set of nodes.&#10;Hint: rootNode specifies the geometry of the root tile.&#10;Warning: do not use rootUrl and rootNode simultaneously, since each specifies the root tile.&#10;Hint: X3D for Advanced Modeling (X3D4AM) slideset https://x3dgraphics.com/slidesets/X3dForAdvancedModeling/GeospatialComponentX3dEarth.pdf&#10;Warning: requires X3D profile='Full' or else include &lt;component name='Geospatial' level='1'/&gt;&#10;Warning: nested LOD (and/or GeoLOD) nodes with overlapping range intervals can lead to unexpected or undefined behavior." name="GeoLOD">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[geoOrigin &initializeOnlyLabel; &SFNodeLabel;, NULL node] [GeoOrigin]&#10;Single contained GeoOrigin node that can specify a local coordinate frame for extended precision.&#10;Hint: X3D Architecture 25.2.5 Dealing with high-precision coordinates https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/geospatial.html#high-precisioncoords&#10;Warning: XML validation requires placement as first child node following contained metadata nodes (if any)." name="geoOrigin"/>
            <attribute tooltip="[rootNode &initializeOnlyLabel; &MFNodeLabel; #IMPLIED]&#10;Geometry for the root tile.&#10;Warning: either rootNode or rootUrl can specify root tile, but specifying both is an error." name="rootNode"/>
            <attribute tooltip="[children &outputOnlyLabel; &MFNodeLabel;, empty list] [X3DChildNode]&#10;The outputOnly children field exposes a portion of the scene graph for the currently loaded set of nodes. The value returned as an event is an MFNode containing the currently selected tile. This will either be the node specified by the rootNode field or the nodes specified by the child1Url, child2Url, child3Url, and child4Url fields. The GeoLOD node shall generate a new children output event each time the scene graph is changed (EXAMPLE whenever nodes are loaded or unloaded).&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="children"/>
            <attribute tooltip="[level_changed &outputOnlyLabel; &SFInt32Label; #FIXED &#34;&#34;]&#10;Output event that reports when the new children outputOnly event is generated, with value 0 or 1, where 0 indicates the rootNode field and 1 indicates the nodes specified by the child1Url, child2Url, child3Url, and child4Url fields.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="level_changed"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip='[geoSystem &initializeOnlyLabel; &GeoSystemType;]&#10;Identifies spatial reference frame: Geodetic (GD), Geocentric (GC), Universal Transverse Mercator (UTM).&#10;Supported values: &quot;GD&quot; &quot;UTM&quot; or &quot;GC" followed by additional quoted string parameters as appropriate for the type.&#10;Hint: X3D Architecture 25.2.2 Spatial reference frames https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/geospatial.html#Spatialreferenceframes&#10;Hint: X3D Architecture 25.2.4 Specifying geospatial coordinates https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/geospatial.html#Specifyinggeospatialcoords&#10;Hint: UTM is Universal Transverse Mercator coordinate system https://en.wikipedia.org/wiki/Universal_Transverse_Mercator_coordinate_system&#10;Warning: deprecated values are GDC (replaced by GD) and GCC (replaced by GC).' name="geoSystem"/>
            <attribute tooltip="[rootUrl &initializeOnlyLabel; &MFStringLabel; #IMPLIED]&#10;url for scene providing geometry for the root tile.&#10;Warning: either rootNode or rootUrl can specify root tile, but specifying both is an error." name="rootUrl"/>
            <attribute tooltip="[child1Url &initializeOnlyLabel; &MFStringLabel; #IMPLIED]&#10;quadtree geometry loaded when viewer is within range." name="child1Url"/>
            <attribute tooltip="[child2Url &initializeOnlyLabel; &MFStringLabel; #IMPLIED]&#10;quadtree geometry loaded when viewer is within range." name="child2Url"/>
            <attribute tooltip="[child3Url &initializeOnlyLabel; &MFStringLabel; #IMPLIED]&#10;quadtree geometry loaded when viewer is within range." name="child3Url"/>
            <attribute tooltip="[child4Url &initializeOnlyLabel; &MFStringLabel; #IMPLIED]&#10;quadtree geometry loaded when viewer is within range." name="child4Url"/>
            <attribute tooltip="[range &initializeOnlyLabel; &SFFloatLabel; #IMPLIED] (0,+&#8734;)&#10;Viewer range from geographic-coordinates center triggers quadtree loading/unloading.&#10;Hint: not setting range values indicates that level switching can be optimized automatically based on performance." name="range"/>
            <attribute tooltip="[center &initializeOnlyLabel; &SFVec3dLabel; &#34;0 0 0&#34;]&#10;Viewer range from geographic-coordinates center triggers quadtree loading/unloading." name="center"/>
            <attribute tooltip="[bboxCenter &initializeOnlyLabel; &SFVec3fLabel; &#34;0 0 0&#34;]&#10;Bounding box center accompanies bboxSize and provides an optional hint for bounding box position offset from origin of local coordinate system.&#10;Hint: precomputation and inclusion of bounding box information can speed up the initialization of large detailed models, with a corresponding cost of increased file size.&#10;Hint: X3D Architecture, 10.2.2 Bounding boxes https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#BoundingBoxes&#10;Hint:  X3D Architecture, 10.3.1 X3DBoundedObject https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#X3DBoundedObject" name="bboxCenter"/>
            <attribute tooltip="[bboxSize &initializeOnlyLabel; &SFVec3fLabel; &#34;-1 -1 -1&#34;] or [0,+&#8734;)&#10;Bounding box size is usually omitted, and can easily be calculated automatically by an X3D player at scene-loading time with minimal computational cost. Bounding box size can also be defined as an optional authoring hint that suggests an optimization or constraint.&#10;Hint: can be useful for collision computations or inverse-kinematics (IK) engines.&#10;Hint: precomputation and inclusion of bounding box information can speed up the initialization of large detailed models, with a corresponding cost of increased file size.&#10;Hint: X3D Architecture, 10.2.2 Bounding boxes https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#BoundingBoxes&#10;Hint:  X3D Architecture, 10.3.1 X3DBoundedObject https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#X3DBoundedObject" name="bboxSize"/>
            <attribute tooltip="(X3D version 4.0 draft) [bboxDisplay &inputOutputLabel; &SFBoolLabel; &#34;false&#34;]&#10;Whether to display bounding box for associated geometry, aligned with world coordinates.&#10;Hint: the bounding box is displayed regardless of whether contained content is visible." name="bboxDisplay"/>
            <attribute tooltip="(X3D version 4.0 draft) [visible &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Whether or not renderable content within this node is visually displayed.&#10;Hint: the visible field has no effect on animation behaviors, event passing or other non-visual characteristics.&#10;Hint: content must be visible to be collidable and to be pickable." name="visible"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/GeoMetadata.gif" tooltip="[X3DInfoNode] GeoMetadata includes a generic subset of metadata about the geographic data.&#10;Hint: X3D for Advanced Modeling (X3D4AM) slideset https://x3dgraphics.com/slidesets/X3dForAdvancedModeling/GeospatialComponentX3dEarth.pdf&#10;Warning: requires X3D profile='Full' or else include &lt;component name='Geospatial' level='1'/&gt;&#10;Hint: when parent node is LoadSensor, apply containerField='children' (X3Dv4) or containerField='watchList' (X3Dv3). https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#fieldNameChanges" name="GeoMetadata">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <!-- TODO MetadataSet structure for GeoMetadata.summary -->
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="(X3D version 4.0 draft) [autoRefresh &inputOutputLabel; &SFTimeLabel; &#34;0.0&#34;]&#10;autoRefresh defines interval in seconds before automatic reload of current url asset is performed.&#10;Hint: if preceding file loading fails or load field is false, no refresh is performed.&#10;Hint: repeated refresh attempts to reload currently loaded entry of url list. If that fails, the browser retries other entries in the url list.&#10;Warning: automatically reloading content has security considerations and needs to be considered carefully." name="autoRefresh"/>
            <attribute tooltip="(X3D version 4.0 draft) [autoRefreshTimeLimit &inputOutputLabel; &SFTimeLabel; &#34;3600.0&#34;]&#10;autoRefreshTimeLimit defines maximum duration that automatic refresh activity can occur.&#10;Hint: Automatic refresh is different than query and response timeouts performed by a networking library while sequentially attempting to retrieve addressed content from a url list.&#10;Warning: automatically reloading content has security considerations and needs to be considered carefully." name="autoRefreshTimeLimit"/>
            <attribute tooltip="(X3D version 4.0 draft) [description &inputOutputLabel; &SFStringLabel; #IMPLIED]&#10;Author-provided prose that describes intended purpose of the url asset.&#10;Hint: many XML tools substitute XML character references for special characters automatically if needed within an attribute value (such as &amp;#38; for &#38; ampersand character, or &amp;#34; for &#34; quotation-mark character)." name="description"/>
            <attribute tooltip="(X3D version 4.0 draft) [load &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;load=true means load immediately,&#10;load=false means defer loading or else unload a previously loaded scene.&#10;Hint: allows author to design when Inline loading occurs via user interaction, event chains or scripting.&#10;Hint: use a separate LoadSensor node to detect when loading is complete." name="load"/>
            <attribute tooltip="[url &inputOutputLabel; &MFStringLabel; #IMPLIED]&#10;Hypertext link to an external, complete metadata description.&#10;Hint: MFString arrays can have multiple values, so separate each individual string by quote marks &quot;https://www.web3d.org&quot; &quot;https://www.web3d.org/about&quot; &quot;etc.&quot;&#10;Hint: alternative XML encoding for quotation mark &quot; is &#38;quot; (which is an example of a character entity).&#10;Warning: strictly match directory and filename capitalization for http links! This is important for portability. Some operating systems are forgiving of capitalization mismatches, but http/https url addresses and paths in Unix-based operating systems are all case sensitive and intolerant of uppercase/lowercase mismatches.&#10;Hint: can replace embedded blank(s) in url queries with %20 for each blank character.&#10;Hint: X3D Scene Authoring Hints, urls https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#urls" name="url"/>
            <attribute tooltip="[data &inputOutputLabel; IDREFS #IMPLIED]&#10;DEF list of all nodes that implement this data.&#10;If no specific geospatial nodes are identified, then this GeoMetadata node pertains to entire scene." name="data"/>
            <attribute tooltip="[summary &inputOutputLabel; &MFStringLabel; #IMPLIED]&#10;The summary string array contains a set of keyword/value pairs, with each keyword and its subsequent value contained in separate strings.&#10;Hint: example &lt;GeoMetadata summary=' &quot;title&quot; &quot;San Francisco, California USA&quot; '/&gt;.&#10;Hint: Table 25.5, GeoMetadata keywords and values https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/geospatial.html#t-keywordsandvaluesHint: there should always be an even (or zero) number of strings to match key-value paired strings." name="summary"/>
            <!-- * includes proposed itemization of specified 'summary' attributes in the X3D encoding -->
            <!--	<attribute tooltip='[description &SFStringLabel; #IMPLIED]&#10;A name to succinctly identify dataset to user, such as "San Francisco, CA".' name="description"/> -->
            <!--	<attribute tooltip='[title &SFStringLabel; #IMPLIED]&#10;Brief textual description or summary of dataset content, such as&#10;"LANDSAT 7 satellite imagery taken over northern Scotland"' name="title"/> -->
            <!--	<attribute tooltip='[coordinateSystem &SFStringLabel; #IMPLIED]&#10;Geographic coordinate system used to represent data, for example, GDC, UTM, LCC, etc.&#10;for UTM, also specify zone number in format "UTM Zx" (1 &lt;= x &lt;= 60)&#10;For example, "UTM Z11"' name="coordinateSystem"/> -->
            <!--	<attribute tooltip='[horizontalDatum &SFStringLabel; #IMPLIED]&#10;Name of geodetic datum, for example "W84"' name="horizontalDatum"/> -->
            <!--	<attribute tooltip='[verticalDatum &SFStringLabel; #IMPLIED]&#10;Name of geodetic datum, for example "W84"' name="verticalDatum"/> -->
            <!--	<attribute tooltip='[ellipsoid &SFStringLabel; #IMPLIED]&#10;Name of the geodetic ellipsoid, for example "WE"' name="ellipsoid"/> -->
            <!--	<attribute tooltip='[extent &SFStringLabel; #IMPLIED]&#10;Bounding coordinates for dataset given in specified coordinate system&#10;provided in order eastmost, southmost, westmost, northmost, minimum elevation, maximum elevation&#10;example for GDC: "-180.0 -90.0 180.0 90.0 0.0 2000.0"' name="extent"/> -->
            <!--	<attribute tooltip="[resolution &SFStringLabel; #IMPLIED]&#10;Resolution (ground-sample distance) in meters." name="resolution"/> -->
            <!--	<attribute tooltip='[originator &SFStringLabel; #IMPLIED]&#10;Author, agency, organization, publisher, etc. of data, for example&#10;"Martin Reddy, SRI International, Menlo Park, CA 94025"' name="originator"/> -->
            <!--	<attribute tooltip='[copyright &SFStringLabel; #IMPLIED]&#10;Appropriate copyright declaration pertaining to data, for example&#10;"(c) Copyright 2000, SRI International. All rights reserved. Freely distributable."' name="copyright"/> -->
            <!--	<attribute tooltip="[date &SFStringLabel; #IMPLIED]&#10;Date/time (or date/time range) defining valid time period for data&#10;use format YYYY MM DD [HH:MM]&#10;with 4-digit years and hyphen - for ranges&#10;times are in 24-hour format with respect to GMT&#10;example: 1999 01 01 00:00 - 1999 12 31 23:59." name="date"/> -->
            <!--	<attribute tooltip='[metadataFormat &SFStringLabel; #IMPLIED]&#10;Specifies format of external metadata description pointed to by the url field of GeoMetadata node&#10;examples: "FGDC", "ISO TC211", "CEN TC287", "OGS", etc.' name="metadataFormat"/> -->
            <!--	<attribute tooltip="[dataUrl &SFStringLabel; #IMPLIED]&#10;One or multiple url links to source data used for creating VRML node(s) these metadata pertain to." name="dataUrl"/> -->
            <!--	<attribute tooltip='[dataFormat &SFStringLabel; #IMPLIED]&#10;Free-text string describing format of source data, for example "USGS 7.5-min DEM"' name="dataFormat"/> -->
            <attribute tooltip="[containerField type NMTOKEN &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/GeoOrigin.gif" tooltip="[X3DNode] GeoOrigin specifies local geospatial coordinate system for parent node, enabling increased geographic precision during scene rendering (by mitigating potential floating-point roundoff errors). GeoOrigin can be contained by other Geospatial component nodes, typically via DEF/USE to ensure consistency.&#10;Hint: only one geospatial coordinate system is allowed per scene, thus DEF-ing and later USE-ing only one GeoOrigin node per scene is recommended.&#10;Hint: X3D for Advanced Modeling (X3D4AM) slideset https://x3dgraphics.com/slidesets/X3dForAdvancedModeling/GeospatialComponentX3dEarth.pdf&#10;Warning: requires X3D profile='Full' or else include &lt;component name='Geospatial' level='1'/&gt;&#10;Warning: GeoOrigin is deprecated, discouraged and not legal in X3D v3.3. GeoOrigin can be ignored in X3D v3.2 and below.&#10;Hint: GeoOrigin is likely to be restored in X3D v4.0 for special use on devices with limited floating-point resolution.&#10;Hint: X3D Architecture 25.2.5 Dealing with high-precision coordinates https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/geospatial.html#high-precisioncoords&#10;Warning: XML validation requires placement as first child node following contained metadata nodes (if any)." name="GeoOrigin">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[geoCoords &inputOutputLabel; &SFVec3dLabel; &#34;0 0 0&#34;]&#10;Defines absolute geographic location (and implicit local coordinate frame).&#10;Hint: X3D for Advanced Modeling (X3D4AM) slideset https://x3dgraphics.com/slidesets/X3dForAdvancedModeling/GeospatialComponentX3dEarth.pdf&#10;Warning: requires X3D profile='Full' or else include &lt;component name='Geospatial' level='1'/&gt;" name="geoCoords"/>
            <attribute tooltip='[geoSystem &initializeOnlyLabel; &GeoSystemType;]&#10;Identifies spatial reference frame: Geodetic (GD), Geocentric (GC), Universal Transverse Mercator (UTM).&#10;Supported values: &quot;GD&quot; &quot;UTM&quot; or &quot;GC" followed by additional quoted string parameters as appropriate for the type.&#10;Hint: X3D Architecture 25.2.2 Spatial reference frames https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/geospatial.html#Spatialreferenceframes&#10;Hint: X3D Architecture 25.2.4 Specifying geospatial coordinates https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/geospatial.html#Specifyinggeospatialcoords&#10;Hint: UTM is Universal Transverse Mercator coordinate system https://en.wikipedia.org/wiki/Universal_Transverse_Mercator_coordinate_system&#10;Warning: deprecated values are GDC (replaced by GD) and GCC (replaced by GC).' name="geoSystem"/>
            <attribute tooltip="[rotateYUp &initializeOnlyLabel; &SFBoolLabel; &#34;false&#34;]&#10;Whether to rotate coordinates of nodes using this GeoOrigin so that&#10;local-up direction aligns with VRML Y axis&#10;rotateYUp false means local up-direction is relative to planet surface&#10;rotateYUp true allows proper operation of NavigationInfo modes FLY, WALK." name="rotateYUp"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;geoOrigin&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/GeoPositionInterpolator.gif" tooltip="[X3DInterpolatorNode] GeoPositionInterpolator animates objects within a geographic coordinate system.&#10;GeoPositionInterpolator can contain a GeoOrigin node.&#10;Hint: typical input connection is ROUTE someTimeSensorDEF.fraction_changed TO thisInterpolatorDEF.set_fraction&#10;Hint: typical output connection is ROUTE thisInterpolatorDEF.value_changed TO someDestinationNodeDEF.set_someAttribute.&#10;Hint: X3D for Advanced Modeling (X3D4AM) slideset https://x3dgraphics.com/slidesets/X3dForAdvancedModeling/GeospatialComponentX3dEarth.pdf&#10;Warning: requires X3D profile='Full' or else include &lt;component name='Geospatial' level='1'/&gt;" name="GeoPositionInterpolator">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[geoOrigin &initializeOnlyLabel; &SFNodeLabel;, NULL node] [GeoOrigin]&#10;Single contained GeoOrigin node that can specify a local coordinate frame for extended precision.&#10;Hint: X3D Architecture 25.2.5 Dealing with high-precision coordinates https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/geospatial.html#high-precisioncoords&#10;Warning: XML validation requires placement as first child node following contained metadata nodes (if any)." name="geoOrigin"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip='[geoSystem &initializeOnlyLabel; &GeoSystemType;]&#10;Identifies spatial reference frame: Geodetic (GD), Geocentric (GC), Universal Transverse Mercator (UTM).&#10;Supported values: &quot;GD&quot; &quot;UTM&quot; or &quot;GC" followed by additional quoted string parameters as appropriate for the type.&#10;Hint: X3D Architecture 25.2.2 Spatial reference frames https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/geospatial.html#Spatialreferenceframes&#10;Hint: X3D Architecture 25.2.4 Specifying geospatial coordinates https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/geospatial.html#Specifyinggeospatialcoords&#10;Hint: UTM is Universal Transverse Mercator coordinate system https://en.wikipedia.org/wiki/Universal_Transverse_Mercator_coordinate_system&#10;Warning: deprecated values are GDC (replaced by GD) and GCC (replaced by GC).' name="geoSystem"/>
            <attribute tooltip="[key &inputOutputLabel; &MFFloatLabel; #IMPLIED]&#10;Definition values for linear-interpolation function input intervals, listed in non-decreasing order and corresponding to a value in the keyValue array.&#10;Warning: number of keys must match number of keyValues!&#10;Warning: values in key array shall be monotonically non-decreasing, meaning that each value is greater than or equal to the preceding value.&#10;Hint: typical interval for values in key array is within range of 0 to 1, but larger intervals can be defined with arbitrary bounds." name="key"/>
            <attribute tooltip="[keyValue &inputOutputLabel; &MFVec3dLabel; #IMPLIED]&#10;Output values for linear interpolation, each corresponding to an input-fraction value in the key array.&#10;Hint: identical adjacent entries in keyValue array have the effect of defining constant-value step functions. https://en.wikipedia.org/wiki/Step_function &#10;Warning: number of keys must match number of keyValues!" name="keyValue"/>
            <attribute tooltip="[set_fraction &inputOnlyLabel; &SFFloatLabel; #FIXED &#34;&#34;]&#10;set_fraction selects input key for corresponding keyValue output.&#10;Hint: set_fraction values are typically in same range interval as values in the key array. Response to an input set_fraction value less than minimum is equivalent to minimum key, and response to an input set_fraction value greater than maximum is equivalent to maximum key.&#10;Warning: it is an error to define this transient inputOnly field in an X3D file, instead only use it a destination for ROUTE events." name="set_fraction"/>
            <attribute tooltip="[value_changed &outputOnlyLabel; &SFVec3fLabel; #FIXED &#34;&#34;]&#10;Linearly interpolated output value determined by current key time and corresponding keyValue pair.&#10;Hint: X3D players might not send unchanging intermediate values, thus avoiding excessive superfluous events that have no effect.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="value_changed"/>
            <attribute tooltip="[geovalue_changed &outputOnlyLabel; &SFVec3dLabel; #FIXED &#34;&#34;]&#10;interpolated coordinate in the geographic coordinate system specified by geoSystem&#10;Hint: X3D for Advanced Modeling (X3D4AM) slideset https://x3dgraphics.com/slidesets/X3dForAdvancedModeling/GeospatialComponentX3dEarth.pdf&#10;Warning: requires X3D profile='Full' or else include &lt;component name='Geospatial' level='1'/&gt;&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="geovalue_changed"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/ProximitySensor.gif" tooltip="(X3D version 3.2 or later) [X3DEnvironmentalSensorNode] GeoProximitySensor generates events when the viewer enters,&#10;exits and moves within a region of space (defined by a box).&#10;Hint: multiple USEd instances are cumulative, but avoid overlaps.&#10;Hint: can first use GeoTransform to relocate/reorient box.&#10;Hint: surround entire world to start behaviors once scene is loaded.&#10;Hint: X3D for Advanced Modeling (X3D4AM) slideset https://x3dgraphics.com/slidesets/X3dForAdvancedModeling/GeospatialComponentX3dEarth.pdf&#10;Warning: requires X3D profile='Full' or else include &lt;component name='Geospatial' level='2'/&gt;" name="GeoProximitySensor">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[geoOrigin &initializeOnlyLabel; &SFNodeLabel;, NULL node] [GeoOrigin]&#10;Single contained GeoOrigin node that can specify a local coordinate frame for extended precision.&#10;Hint: X3D Architecture 25.2.5 Dealing with high-precision coordinates https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/geospatial.html#high-precisioncoords&#10;Warning: XML validation requires placement as first child node following contained metadata nodes (if any)." name="geoOrigin"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="(X3D version 4.0 draft) [description &inputOutputLabel; &SFStringLabel; #IMPLIED]&#10;Author-provided prose that describes intended purpose of the node.&#10;Hint: many XML tools substitute XML character references for special characters automatically if needed within an attribute value (such as &amp;#38; for &#38; ampersand character, or &amp;#34; for &#34; quotation-mark character)." name="description"/>
            <attribute tooltip="[enabled &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Enables/disables node operation." name="enabled"/>
            <attribute tooltip="[geoCenter &inputOutputLabel; &SFVec3fLabel; &#34;0 0 0&#34;]&#10;(deprecated as of v3.3) Position offset from origin of local coordinate system.&#10;Hint: X3D for Advanced Modeling (X3D4AM) slideset https://x3dgraphics.com/slidesets/X3dForAdvancedModeling/GeospatialComponentX3dEarth.pdf&#10;Warning: requires X3D profile='Full' or else include &lt;component name='Geospatial' level='1'/&gt;" name="geoCenter"/>
            <attribute tooltip='[geoSystem &initializeOnlyLabel; &GeoSystemType;]&#10;Identifies spatial reference frame: Geodetic (GD), Geocentric (GC), Universal Transverse Mercator (UTM).&#10;Supported values: &quot;GD&quot; &quot;UTM&quot; or &quot;GC" followed by additional quoted string parameters as appropriate for the type.&#10;Hint: X3D Architecture 25.2.2 Spatial reference frames https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/geospatial.html#Spatialreferenceframes&#10;Hint: X3D Architecture 25.2.4 Specifying geospatial coordinates https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/geospatial.html#Specifyinggeospatialcoords&#10;Hint: UTM is Universal Transverse Mercator coordinate system https://en.wikipedia.org/wiki/Universal_Transverse_Mercator_coordinate_system&#10;Warning: deprecated values are GDC (replaced by GD) and GCC (replaced by GC).' name="geoSystem"/>
            <attribute tooltip="[center &inputOutputLabel; &SFVec3fLabel; &#34;0 0 0&#34;]&#10;(starting with v3.3) Position offset from origin of local coordinate system." name="center"/>
            <attribute tooltip="[size &inputOutputLabel; &SFVec3fLabel; &#34;0 0 0&#34;] [0,+&#8734;)&#10;size of Proximity box.&#10;Hint: size 0 0 0 is same as enabled false." name="size"/>
            <attribute tooltip="[isActive &outputOnlyLabel; &SFBoolLabel; #FIXED &#34;&#34;]&#10;isActive true/false events are sent as viewer enters/exits Proximity box.&#10;isActive=true when viewer enters Proximity box, isActive=false when viewer exits Proximity box.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="isActive"/>
            <attribute tooltip="[geoCoord_changed &outputOnlyLabel; &SFVec3dLabel; #FIXED &#34;&#34;]&#10;Sends geospatial coordinates of viewer's position corresponding to world position returned by position_changed.&#10;Hint: X3D for Advanced Modeling (X3D4AM) slideset https://x3dgraphics.com/slidesets/X3dForAdvancedModeling/GeospatialComponentX3dEarth.pdf&#10;Warning: requires X3D profile='Full' or else include &lt;component name='Geospatial' level='1'/&gt;&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="geoCoord_changed"/>
            <attribute tooltip="[position_changed &outputOnlyLabel; &SFVec3fLabel; #FIXED &#34;&#34;]&#10;Sends translation event relative to center.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="position_changed"/>
            <attribute tooltip="[orientation_changed &outputOnlyLabel; &SFRotationLabel; #FIXED &#34;&#34;]&#10;Sends rotation event relative to center.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="orientation_changed"/>
            <attribute tooltip="[centerOfRotation_changed &outputOnlyLabel; &SFRotationLabel; #FIXED &#34;&#34;]&#10;Sends changed centerOfRotation values, likely caused by user interaction.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="centerOfRotation_changed"/>
            <attribute tooltip="[enterTime &outputOnlyLabel; &SFTimeLabel; #FIXED &#34;&#34;]&#10;Time event generated when user's camera enters the box.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="enterTime"/>
            <attribute tooltip="[exitTime &outputOnlyLabel; &SFTimeLabel; #FIXED &#34;&#34;]&#10;Time event generated when user's camera exits the box.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="exitTime"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/GeoTouchSensor.gif" tooltip="[X3DTouchSensorNode] GeoTouchSensor returns geographic coordinates for the object being selected.&#10;GeoTouchSensor can contain a GeoOrigin node.&#10;Hint: this sensor detects user interactions affecting peer nodes and their child geometry.&#10;Hint: X3D for Advanced Modeling (X3D4AM) slideset https://x3dgraphics.com/slidesets/X3dForAdvancedModeling/GeospatialComponentX3dEarth.pdf&#10;Warning: requires X3D profile='Full' or else include &lt;component name='Geospatial' level='1'/&gt;" name="GeoTouchSensor">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[geoOrigin &initializeOnlyLabel; &SFNodeLabel;, NULL node] [GeoOrigin]&#10;Single contained GeoOrigin node that can specify a local coordinate frame for extended precision.&#10;Hint: X3D Architecture 25.2.5 Dealing with high-precision coordinates https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/geospatial.html#high-precisioncoords&#10;Warning: XML validation requires placement as first child node following contained metadata nodes (if any)." name="geoOrigin"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip='[geoSystem &initializeOnlyLabel; &GeoSystemType;]&#10;Identifies spatial reference frame: Geodetic (G D), Geocentric (GC), Universal Transverse Mercator (UTM).&#10;Supported values: &quot;GD&quot; &quot;UTM&quot; or &quot;GC" followed by additional quoted string parameters as appropriate for the type.&#10;Hint: X3D Architecture 25.2.2 Spatial reference frames https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/geospatial.html#Spatialreferenceframes&#10;Hint: X3D Architecture 25.2.4 Specifying geospatial coordinates https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/geospatial.html#Specifyinggeospatialcoords&#10;Hint: UTM is Universal Transverse Mercator coordinate system https://en.wikipedia.org/wiki/Universal_Transverse_Mercator_coordinate_system&#10;Warning: deprecated values are GDC (replaced by GD) and GCC (replaced by GC).' name="geoSystem"/>
            <attribute tooltip="[enabled &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Enables/disables node operation." name="enabled"/>
            <attribute tooltip="[description &inputOutputLabel; &SFStringLabel; #IMPLIED]&#10;Author-provided prose that describes intended purpose of this node.&#10;Hint: include space characters since a description is not a DEF identifier. Write short phrases that make descriptions clear and readable.&#10;Hint: many XML tools substitute XML character references for special characters automatically if needed within an attribute value (such as &amp;#38; for &#38; ampersand character, or &amp;#34; for &#34; quotation-mark character)." name="description"/>
            <attribute tooltip="[isActive &inputOutputLabel; &SFBoolLabel; #FIXED &#34;&#34;]&#10;Select geometry by activating the pointing device (for example, clicking the mouse) to generate isActive events. Output event isActive=true is sent when geometry is selected (for example, when primary mouse button is pressed), output event isActive=false is sent when geometry is deselected (for example, when primary mouse button is released).&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="isActive"/>
            <attribute tooltip="[hitGeoCoord_changed &outputOnlyLabel; &SFVec3dLabel; #FIXED &#34;&#34;]&#10;Output event containing 3D point on surface of underlying geometry,&#10;given in GeoTouchSensor&apos;s local coordinate system.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="hitGeoCoord_changed"/>
            <attribute tooltip="[hitPoint_changed &outputOnlyLabel; &SFVec3fLabel; #FIXED &#34;&#34;]&#10;Output event containing 3D point on surface of underlying geometry,&#10;given in geometry coordinates (not geographic coordinates).&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="hitPoint_changed"/>
            <attribute tooltip="[hitNormal_changed &outputOnlyLabel; &SFVec3fLabel; #FIXED &#34;&#34;]&#10;Output event containing surface normal vector at the hitGeoCoordinate.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="hitNormal_changed"/>
            <attribute tooltip="[hitTexCoord_changed &outputOnlyLabel; &SFVec2fLabel; #FIXED &#34;&#34;]&#10;Output event containing texture coordinates of surface at the hitGeoCoordinate.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="hitTexCoord_changed"/>
            <attribute tooltip="[isOver &outputOnlyLabel; &SFBoolLabel; #FIXED &#34;&#34;]&#10;Is pointing device over sensor&apos;s geometry?.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="isOver"/>
            <attribute tooltip="[touchTime &outputOnlyLabel; &SFTimeLabel; #FIXED &#34;&#34;]&#10;Time event generated when touched.&#10;Hint: touchTime event is generated when following three conditions are all met: (a) pointing device was pointing towards geometry when initially activated (isActive=true), (b) pointing device is currently pointing towards the geometry (isOver=true), and (c) pointing device selection is deactivated/deselected by user (isActive=false event is also generated).&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="touchTime"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/Transform.gif" tooltip="[X3DGroupingNode,X3DVisibleObject] GeoTransform is a Grouping node that can contain most nodes. GeoTransform translates, orients and scales GeoCoordinate geometry within the local world coordinate system.&#10;GeoTransform coordinate system X-Z plane is tangent to ellipsoid of local spatial reference frame.&#10;Hint: +Y axis is up.&#10;Hint: insert a Shape node before adding geometry or Appearance.&#10;Hint: X3D for Advanced Modeling (X3D4AM) slideset https://x3dgraphics.com/slidesets/X3dForAdvancedModeling/GeospatialComponentX3dEarth.pdf&#10;Warning: requires X3D profile='Full' or else include &lt;component name='Geospatial' level='2'/&gt;&#10;Warning: avoid having GeoLocation or GeoTransform as a parent or ancestor node of each other, since multiple geospatial transformations then occur with unpredictable results." name="GeoTransform">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[geoOrigin &initializeOnlyLabel; &SFNodeLabel;, NULL node] [GeoOrigin]&#10;Single contained GeoOrigin node that can specify a local coordinate frame for extended precision.&#10;Hint: X3D Architecture 25.2.5 Dealing with high-precision coordinates https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/geospatial.html#high-precisioncoords&#10;Warning: XML validation requires placement as first child node following contained metadata nodes (if any)." name="geoOrigin"/>
            <attribute tooltip="[children &inputOutputLabel; &MFNodeLabel;, empty list] [X3DChildNode]&#10;Grouping nodes contain an ordered list of children nodes.&#10;Hint: Each grouping node defines a coordinate space for its children, relative to the coordinate space of its parent node. Thus transformations accumulate down the scene graph hierarchy.&#10;Hint: inputOnly MFNode addChildren field can append new X3DChildNode nodes via a ROUTE connection, duplicate input nodes (i.e. matching DEF, USE values) are ignored.&#10;Hint: inputOnly MFNode removeChildren field can remove nodes from the children list, unrecognized input nodes (i.e. nonmatching DEF, USE values) are ignored.&#10;Hint: X3D Architecture 10.2.1 Grouping and children node types, https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#GroupingAndChildrenNodes" name="children"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[geoCenter &inputOutputLabel; &SFVec3fLabel; &#34;0 0 0&#34;]&#10;Translation offset from origin of local coordinate system, applied prior to rotation or scaling.&#10;Hint: The order of operation is first apply the center offset, then scaleOrientation and scale, then rotation, then restore the center offset, then translation.&#10;Hint: X3D for Advanced Modeling (X3D4AM) slideset https://x3dgraphics.com/slidesets/X3dForAdvancedModeling/GeospatialComponentX3dEarth.pdf&#10;Warning: requires X3D profile='Full' or else include &lt;component name='Geospatial' level='1'/&gt;" name="geoCenter"/>
            <attribute tooltip='[geoSystem &initializeOnlyLabel; &GeoSystemType;]&#10;Identifies spatial reference frame: Geodetic (GD), Geocentric (GC), Universal Transverse Mercator (UTM).&#10;Supported values: &quot;GD&quot; &quot;UTM&quot; or &quot;GC" followed by additional quoted string parameters as appropriate for the type.&#10;Hint: X3D Architecture 25.2.2 Spatial reference frames https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/geospatial.html#Spatialreferenceframes&#10;Hint: X3D Architecture 25.2.4 Specifying geospatial coordinates https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/geospatial.html#Specifyinggeospatialcoords&#10;Hint: UTM is Universal Transverse Mercator coordinate system https://en.wikipedia.org/wiki/Universal_Transverse_Mercator_coordinate_system&#10;Warning: deprecated values are GDC (replaced by GD) and GCC (replaced by GC).' name="geoSystem"/>
            <attribute tooltip="[translation &inputOutputLabel; &SFVec3fLabel; &#34;0 0 0&#34;]&#10;Position (x, y, z in meters) of children relative to local coordinate system.&#10;Hint: The order of operation is first apply the center offset, then scaleOrientation and scale, then rotation, then restore the center offset, then translation." name="translation"/>
            <attribute tooltip="[rotation &inputOutputLabel; &SFRotationLabel; &#34;0 0 1 0&#34;]&#10;Orientation (axis, angle in radians) of children relative to local coordinate system.&#10;Hint: The order of operation is first apply the center offset, then scaleOrientation and scale, then rotation, then restore the center offset, then translation." name="rotation"/>
            <attribute tooltip="[scale &inputOutputLabel; &SFVec3fLabel; &#34;1 1 1&#34;]&#10;Non-uniform x-y-z scale of child coordinate system, adjusted by center and scaleOrientation.&#10;Hint: The order of operation is first apply the center offset, then scaleOrientation and scale, then rotation, then restore the center offset, then translation." name="scale"/>
            <attribute tooltip="[scaleOrientation &inputOutputLabel; &SFRotationLabel; &#34;0 0 1 0&#34;]&#10;Preliminary rotation of coordinate sys tem before scaling (to allow scaling around arbitrary orientations).&#10;Hint: The order of operation is first apply the center offset, then scaleOrientation and scale, then rotation, then restore the center offset, then translation." name="scaleOrientation"/>
            <attribute tooltip="[bboxCenter &initializeOnlyLabel; &SFVec3fLabel; &#34;0 0 0&#34;]&#10;Bounding box center accompanies bboxSize and provides an optional hint for bounding box position offset from origin of local coordinate system.&#10;Hint: precomputation and inclusion of bounding box information can speed up the initialization of large detailed models, with a corresponding cost of increased file size.&#10;Hint: X3D Architecture, 10.2.2 Bounding boxes https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#BoundingBoxes&#10;Hint:  X3D Architecture, 10.3.1 X3DBoundedObject https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#X3DBoundedObject" name="bboxCenter"/>
            <attribute tooltip="[bboxSize &initializeOnlyLabel; &SFVec3fLabel; &#34;-1 -1 -1&#34;] or [0,+&#8734;)&#10;Bounding box size is usually omitted, and can easily be calculated automatically by an X3D player at scene-loading time with minimal computational cost. Bounding box size can also be defined as an optional authoring hint that suggests an optimization or constraint.&#10;Hint: can be useful for collision computations or inverse-kinematics (IK) engines.&#10;Hint: precomputation and inclusion of bounding box information can speed up the initialization of large detailed models, with a corresponding cost of increased file size.&#10;Hint: X3D Architecture, 10.2.2 Bounding boxes https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#BoundingBoxes&#10;Hint:  X3D Architecture, 10.3.1 X3DBoundedObject https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#X3DBoundedObject" name="bboxSize"/>
            <attribute tooltip="(X3D version 4.0 draft) [bboxDisplay &inputOutputLabel; &SFBoolLabel; &#34;false&#34;]&#10;Whether to display bounding box for associated geometry, aligned with world coordinates.&#10;Hint: the bounding box is displayed regardless of whether contained content is visible." name="bboxDisplay"/>
            <attribute tooltip="(X3D version 4.0 draft) [visible &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Whether or not renderable content within this node is visually displayed.&#10;Hint: the visible field has no effect on animation behaviors, event passing or other non-visual characteristics.&#10;Hint: content must be visible to be collidable and to be pickable." name="visible"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/GeoViewpoint.gif" tooltip="[X3DViewpointNode] GeoViewpoint specifies viewpoints using geographic coordinates.&#10;GeoViewpoint can contain a GeoOrigin node.&#10;Since GeoViewpoint must navigate smoothly inside a curved geographic coordinate system, it includes both Viewpoint and NavigationInfo attributes.&#10;Hint: alternatively can use GeoLocation or GeoTransform as parent of a Viewpoint node to orient geospatial views.&#10;Hint: include &lt;component name='Geospatial' level='1'/&gt;&#10;Hint: when a GeoViewpoint node is bound, it also overrides the currently bound NavigationInfo node in the scene and controls user navigation for smoother geospatial interaction.&#10;Hint: Background, Fog, GeoViewpoint, NavigationInfo, OrthoViewpoint, TextureBackground and Viewpoint are bindable nodes, meaning that no more than one of each node type can be active at a given time.&#10;Hint: GeoViewpoint OrthoViewpoint and Viewpoint share the same binding stack, so no more than one of these nodes can be bound and active at a given time.&#10;Warning: results are undefined if a bindable node (Background, Fog, NavigationInfo, OrthoViewpoint, TextureBackground, Viewpoint) is a contained descendant node of either LOD or Switch. Avoid this authoring pattern.&#10;Warning: do not include GeoViewpoint OrthoViewpoint or Viewpoint as a child of LOD or Switch, instead use ViewpointGroup as parent to constrain location proximity where the viewpoint is available to user.&#10;Warning: GeoViewpoint navType and headlight fields were removed as part of X3D version 3.3, authors can instead use a NavigationInfo node for those fields in prior X3D versions 3.0, 3.1 or 3.2. Upgrading such legacy scenes to version 3.3 or greater is preferred and recommended.&#10;Hint: Regardless of viewpoint jump value at bind time, the relative viewing transformation between user's view and defined position/orientation is stored for later use when un-jumping (returning to the viewpoint when subsequent viewpoint is unbound).&#10;Hint: customizable design pattern for dedicated Viewpoint/NavigationInfo pair: &lt;Viewpoint DEF='SpecialView'/&gt; &lt;NavigationInfo DEF='SpecialNav'/&gt; &lt;ROUTE fromNode='SpecialView' fromField='isBound' toNode='SpecialNav' toField='set_bind'/&gt;&#10;Warning: avoid having GeoLocation or GeoTransform as a parent or ancestor node of GeoViewpoint, since multiple geospatial transformations then occur with unpredictable results.&#10;Hint: X3D Scene Authoring Hints, Viewpoints https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#Viewpoints" name="GeoViewpoint">
            <attribute tooltip="[geoOrigin &initializeOnlyLabel; &SFNodeLabel;, NULL node] [GeoOrigin]&#10;Single contained GeoOrigin node that can specify a local coordinate frame for extended precision.&#10;Hint: X3D Architecture 25.2.5 Dealing with high-precision coordinates https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/geospatial.html#high-precisioncoords&#10;Warning: XML validation requires placement as first child node following contained metadata nodes (if any)." name="geoOrigin"/>
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="(X3D version 4.0 draft) [navigationInfo &inputOutputLabel; &SFNodeLabel;, NULL node] [NavigationInfo]&#10;The navigationInfo field defines a dedicated NavigationInfo node for this X3DViewpointNode. The specified NavigationInfo node receives a set_bind TRUE event at the time when the parent node is bound and receives a set_bind FALSE at the time when the parent node is unbound.&#10;Hint: allows simple integration of custom navigation associated with each Viewpoint according to user needs at that location." name="navigationInfo"/>
            <attribute tooltip="(X3D version 4.0 draft) [viewAll &inputOutputLabel; &SFBoolLabel;, false]&#10;Viewpoint is automatically adjusted to view all visible geometry. Typically centerOfRotation is shifted to center of current bounding box and view is zoomed in or out until all visible objects are viewed.&#10;Hint: no collision detection or proximity sensing occurs when zooming.&#10;Warning: if needed, near and far clipping planes shall be adjusted to allow viewing the entire scene.&#10;Hint: when the value of the viewAll field is changed from TRUE to FALSE, no change in the current view occurs." name="viewAll"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip='[geoSystem &initializeOnlyLabel; &GeoSystemType;]&#10;Identifies spatial reference frame: Geodetic (GD), Geocentric (GC), Universal Transverse Mercator (UTM).&#10;Supported values: &quot;GD&quot; &quot;UTM&quot; or &quot;GC" followed by additional quoted string parameters as appropriate for the type.&#10;Hint: X3D Architecture 25.2.2 Spatial reference frames https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/geospatial.html#Spatialreferenceframes&#10;Hint: X3D Architecture 25.2.4 Specifying geospatial coordinates https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/geospatial.html#Specifyinggeospatialcoords&#10;Hint: UTM is Universal Transverse Mercator coordinate system https://en.wikipedia.org/wiki/Universal_Transverse_Mercator_coordinate_system&#10;Warning: deprecated values are GDC (replaced by GD) and GCC (replaced by GC).' name="geoSystem"/>
            <attribute tooltip="[description &inputOutputLabel; &SFStringLabel; #IMPLIED]&#10;Author-provided prose that describes intended purpose of this node.&#10;Hint: include space characters since a description is not a DEF identifier. Write short phrases that make descriptions clear and readable.&#10;Hint: many XML tools substitute XML character references for special characters automatically if needed within an attribute value (such as &amp;#38; for &#38; ampersand character, or &amp;#34; for &#34; quotation-mark character)." name="description"/>
            <attribute tooltip="(X3D version 4.0 draft) [farDistance &inputOutputLabel; &SFFloatLabel; &#34;-1&#34;] or (0,+&#8734;)&#10;farDistance defines maximum clipping plane distance allowed for object display.&#10;Hint: overrides bound NavigationInfo visibilityLimit value, if any.&#10;Hint: default value -1 means no effect on currently defined view frustum boundaries.&#10;Hint: Aliasing https://en.wikipedia.org/wiki/Aliasing and Clipping  https://en.wikipedia.org/wiki/Clipping_(computer_graphics)&#10;Warning: nearDistance must be less than farDistance." name="farDistance"/>
            <attribute tooltip="(X3D version 4.0 draft) [nearDistance &inputOutputLabel; &SFFloatLabel; &#34;-1&#34;] or (0,+&#8734;)&#10;nearDistance defines minimum clipping plane distance necessary for object display.&#10;Hint: overrides bound NavigationInfo avatarSize value, if any.&#10;Hint: default value -1 means no effect on currently defined view frustum boundaries.&#10;Hint: Aliasing https://en.wikipedia.org/wiki/Aliasing and Clipping  https://en.wikipedia.org/wiki/Clipping_(computer_graphics)&#10;Warning: nearDistance must be less than farDistance." name="nearDistance"/>
            <attribute name="position" tooltip="[position &initializeOnlyLabel; &SFVec3dLabel; &#34;0 0 100000&#34;]&#10;position relative to local georeferenced coordinate system, in proper format."/>
            <attribute name="orientation" tooltip="[orientation &inputOutputLabel; &SFRotationLabel; &#34;0 0 1 0&#34;]&#10;Rotation of Viewpoint, relative to default -Z axis direction in local coordinate system.&#10;Warning: for VR/AR/MAR users wearing a head-mounted display (HMD), animating this field may induce motion sickness.&#10;Hint: this is orientation _change_ from default direction (0 0 -1)&#10;+Y axis is the up vector for the local area (the normal to the tangent plane on the ellipsoid), -Z points towards the north pole, and +X is east&#10;1 0 0 -1.570796 always looks down."/>
            <attribute name="centerOfRotation" tooltip="(X3D version 3.3 or later) [centerOfRotation &inputOutputLabel; &SFVec3dLabel; &#34;0 0 0&#34;]&#10;centerOfRotation specifies center point about which to rotate user's eyepoint when in EXAMINE or LOOKAT mode."/>
            <attribute name="fieldOfView" tooltip="[fieldOfView &inputOutputLabel; &SFFloatLabel; &#34;0.7854&#34; (0,&#960;)]&#10;Preferred minimum viewing angle from this viewpoint in radians, providing minimum height or minimum width (whichever is smaller).&#10;Small field of view roughly corresponds to a telephoto lens,&#10;large field of view roughly corresponds to a wide-angle lens."/>
            <attribute name="jump" tooltip="[jump &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Whether to transition instantly by jumping, or else smoothly animate to this Viewpoint."/>
            <attribute tooltip="[retainUserOffsets &inputOutputLabel; &SFBoolLabel; &#34;false&#34;]&#10;Retain (true) or reset to zero (false) any prior user navigation offsets from defined viewpoint position, orientation." name="retainUserOffsets"/>
            <attribute name="speedFactor" tooltip="[speedFactor &initializeOnlyLabel; &SFFloatLabel; &#34;1&#34;] [0,+&#8734;)&#10;speedFactor is a multiplier to modify the original elevation-based speed that is set automatically by the browser.&#10;Hint: speedFactor is a relative value and not an absolute speed as defined by NavigationInfo."/>
            <attribute tooltip="[set_position &inputOnlyLabel; &SFVec3dLabel; #FIXED &#34;&#34;]&#10;position relative to local georeferenced coordinate system, in proper format.&#10;Warning: it is an error to define this transient inputOnly field in an X3D file, instead only use it a destination for ROUTE events." name="set_position"/>
            <attribute tooltip="[set_orientation &inputOnlyLabel; &SFRotationLabel; #FIXED &#34;&#34;]&#10;Rotation of Viewpoint, relative to default -Z axis direction in local coordinate system.&#10;Warning: for VR/AR/MAR users wearing a head-mounted display (HMD), animating this field may induce motion sickness.&#10;Hint: this is orientation _change_ from default direction (0 0 -1)&#10;+Y axis is the up vector for the local area (the normal to the tangent plane on the ellipsoid), -Z points towards the north pole, and +X is east&#10;1 0 0 -1.570796 always looks down.&#10;Warning: it is an error to define this transient inputOnly field in an X3D file, instead only use it a destination for ROUTE events." name="set_orientation"/>
            <attribute tooltip="[set_bind &inputOnlyLabel; &SFBoolLabel; #FIXED &#34;&#34;]&#10;set_bind true makes this node active,&#10;set_bind false makes this node inactive.&#10;Warning: it is an error to define this transient inputOnly field in an X3D file, instead only use it a destination for ROUTE events." name="set_bind"/>
            <attribute tooltip="[isBound &outputOnlyLabel; &SFBoolLabel; #FIXED &#34;&#34;]&#10;Output event true gets sent when node becomes bound and activated, otherwise output event false gets sent when node becomes unbound and deactivated.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="isBound"/>
            <attribute tooltip="[bindTime &outputOnlyLabel; &SFTimeLabel; #FIXED &#34;&#34;]&#10;Event sent reporting timestamp when node becomes active/inactive.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="bindTime"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>

        <!-- H-Anim: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->

        <element icon="icons/HAnimDisplacer.gif" tooltip="[X3DGeometricPropertyNode] HAnimDisplacer nodes alter the shape of coordinate-based geometry within parent HAnimJoint or HAnimSegment nodes. Displacer effects are scaled by the corresponding weight field.&#10;Hint:  HAnimDisplacer can be used in three different ways:&#10;(a) identify vertices corresponding to a particular feature in a parent HAnimSegment node,&#10;(b) represent a particular muscular action for a parent HAnimJoint node by displacing corresponding HAnimHumanoid skin vertices in various directions (linearly or radially), or (c) represent a complete configuration of coordinate vertices in parent HAnimSegment or HAnimJoint nodes. Example: in the case of a face, there might be a separate HAnimDisplacer node for each facial expression.&#10;Warning: allowed name suffixes include _feature, _action and _config.&#10;Hint: multiple HAnimDisplacer nodes must appear consecutively inside parent HAnimSegment for proper content validation in XML encoding.&#10;Warning: index values for HanimHumanoid skin IndexedFaceSet, skinCoord and skinNormal nodes must all be consistently defined together with HAnimJoint HAnimSegment and HAnimDisplacer nodes for proper skin animation.&#10;Hint: HAnim Specification https://www.web3d.org/documents/specifications/19774/V2.0&#10;Hint: HAnim Specification part 1, Displacer https://www.web3d.org/documents/specifications/19774/V2.0/Architecture/ObjectInterfaces.html#Displacer&#10;Hint: X3D for Advanced Modeling (X3D4AM) slideset https://x3dgraphics.com/slidesets/X3dForAdvancedModeling/HumanoidAnimation.pdf&#10;Warning: requires X3D profile='Full' or else include &lt;component name='HAnim' level='1'/&gt; &#10;Warning: for X3D3 HAnim1, spelling of component name is 'H-Anim' (including hyphen)" name="HAnimDisplacer">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute name="DEF" tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes."/>
            <attribute name="USE" tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene."/>
            <attribute tooltip="[name &inputOutputLabel; type NMTOKEN #REQUIRED]&#10;Unique name attribute must be defined so that HAnimDisplacer node can be identified at run time for animation purposes.&#10;Hint: HAnimDisplacer names are based on feature point names.&#10;Hint: https://www.web3d.org/documents/specifications/19774/V2.0/Architecture/FeaturePoints.html&#10;Warning: allowed name suffixes include _feature, _action and _config.&#10;Warning: name prefix must match ancestor HAnimHumanoid name followed by underscore character, if more than one humanoid appears within a scene file. For example,  'Nancy_' prepended before location name.&#10;Warning: name field is not included if this instance is a USE node, in order to avoid potential mismatches.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions&#10;Hint: HAnim2 Names HAnim1 Alias Tables https://www.web3d.org/x3d/content/examples/HumanoidAnimation/HAnim2NameHAnim1AliasTables.txt" name="name"/>
            <attribute tooltip="(X3D version 4.0 draft) [description &inputOutputLabel; &SFStringLabel; #IMPLIED]&#10;Author-provided prose that describes intended purpose of this node.&#10;Hint: many XML tools substitute XML character references for special characters automatically if needed within an attribute value (such as &amp;#38; for &#38; ampersand character, or &amp;#34; for &#34; quotation-mark character)." name="description"/>
            <attribute name="coordIndex" tooltip="[coordIndex &inputOutputLabel; &MFInt32Label; #IMPLIED] [0,+&#8734;)&#10;Defines index values into the parent HAnimSegment or HAnimBody/HAnimHumanoid coordinate array for the mesh of vertices affected by this HAnimDisplacer. Values start at index 0.&#10;Warning: -1 sentinel values are not allowed."/>
            <attribute name="displacements" tooltip="[displacements &inputOutputLabel; &MFVec3fLabel; #IMPLIED]&#10;displacements are a set of SFVec3f values added to neutral/resting position of each of the corresponding HAnimSegment vertices (or HAnimJoint/HAnimHumanoid vertices) referenced by coordIndex field.&#10;Hint: Individual displacement values are scaled by the weight factor, if present.&#10;Hint: since default pose faces along +Z axis, -x values are right side and +x values are left side within HAnimHumanoid."/>
            <attribute name="weight" tooltip="[weight &inputOutputLabel; &SFFloatLabel; 0.0]&#10;The weigh factor has typical range [0,1] and defines the scale factor applied to displacement values before adding them to neutral vertex positions.&#10;Hint: apply a non-zero weight factor to see the effect of HAnimDisplacer displacements."/>
            <attribute tooltip="[containerField type NMTOKEN &#34;displacers&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/HAnimHumanoid.gif" tooltip="[X3DChildNode,X3DBoundedObject,X3DVisibleObject] The HAnimHumanoid node is used to:&#10;(a) store references to the joints, segments, sites, skeleton, optional skin, and fixed viewpoints,&#10;(b) serve as a container for the entire humanoid,&#10;(c) provide a convenient way of moving the humanoid through its environment, and&#10;(d) store human-readable metadata such as name, version, author, copyright, age, gender and other information.&#10;HAnimHumanoid contains a skeleton consisting of HAnimJoint, HAnimSegment and HAnimSite nodes. HAnimHumanoid can also contain an optional skin consisting of an IndexedFaceSet mesh with corresponding skinCoord Coordinate|CoordinateDouble vertices and skinNormal Normal vectors. &#10;Hint: MFNode arrays for the joints, segments, sites, and viewpoints fields provide lists for all HAnim nodes found in the skeleton hierarchy and thus only contain USE node references.&#10;Hint: HAnim Specification https://www.web3d.org/documents/specifications/19774/V2.0&#10;Hint: HAnim Specification part 1, Humanoid https://www.web3d.org/documents/specifications/19774/V2.0/Architecture/ObjectInterfaces.html#Humanoid&#10;Hint: HAnim Specification part 2, clause 6.4 Extended definition of Humanoid object https://www.web3d.org/documents/specifications/19774/V2.0/MotionDataAnimation/MotionNodes.html#HumanoidObjectExtension&#10;Hint: X3D for Advanced Modeling (X3D4AM) slideset https://x3dgraphics.com/slidesets/X3dForAdvancedModeling/HumanoidAnimation.pdf&#10;Warning: requires X3D profile='Full' or else include &lt;component name='HAnim' level='1'/&gt; &#10;Warning: for X3D3 HAnim1, spelling of component name is 'H-Anim' (including hyphen)" name="HAnimHumanoid">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <!-- TODO MetadataSet structure for HAnimHumanoid.info -->
            <attribute tooltip="[skin &inputOutputLabel; &MFNodeLabel;, empty list] [IndexedFaceSet|Group|Transform|Shape]&#10;List of one or more indexed mesh definitions (such as IndexedFaceSet) that utilize skinCoord point and skinNormal normal data.&#10;Warning: index values for HanimHumanoid skin IndexedFaceSet, skinCoord and skinNormal nodes must all be consistently defined together with HAnimJoint HAnimSegment and HAnimDisplacer nodes for proper skin animation.&#10;Warning: top-level node must include containerField='skin' for proper validation and operation.&#10;Hint: put skin node first and provide DEF label to simplify USE node usage within the skeleton hierarchy.&#10;Warning: (X3D version 4.0 draft) requires X3D profile='Full' or else include &lt;component name='HAnim' level='2'/&gt; &#10;Warning: for X3D3 HAnim1, spelling of component name is 'H-Anim' (including hyphen)" name="skin"/>
            <attribute tooltip="[skinCoord &inputOutputLabel; &SFNodeLabel;, NULL node] [Coordinate|CoordinateDouble]&#10;Coordinate node utilized by indexed mesh definitions for skin. The skinCoord field contains a single sequence of points, used by internal HAnimHumanoid mechanisms to create appropriate surface deformations as well as by the indexed face set definitions within the skin field that perform the actual rendering of surface geometry.&#10;Warning: index values for HanimHumanoid skin IndexedFaceSet, skinCoord and skinNormal nodes must all be consistently defined together with HAnimJoint HAnimSegment and HAnimDisplacer nodes for proper skin animation.&#10;Warning: top-level Coordinate or CoordinateDouble node must include containerField='skinCoord' for proper validation and operation.&#10;Hint: a single node is used so that coordIndex references are consistent for all references to these coordinates.&#10;Warning: (X3D version 4.0 draft) requires X3D profile='Full' or else include &lt;component name='HAnim' level='2'/&gt; &#10;Warning: for X3D3 HAnim1, spelling of component name is 'H-Anim' (including hyphen)" name="skinCoord"/>
            <attribute tooltip="[skinNormal &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DNormalNode]&#10;Single Normal node utilized by indexed mesh definitions for skin. The skinNormal field contains a single sequence of normal values, used by internal HAnimHumanoid mechanisms to create appropriate surface deformations as well as by the indexed face set definitions within the skin field that perform the actual rendering of surface geometry.&#10;Warning: index values for HanimHumanoid skin IndexedFaceSet, skinCoord and skinNormal nodes must all be consistently defined together with HAnimJoint HAnimSegment and HAnimDisplacer nodes for proper skin animation.&#10;Warning: top-level Normal node must include containerField='skinNormal' for proper validation and operation.&#10;Warning: (X3D version 4.0 draft) requires X3D profile='Full' or else include &lt;component name='HAnim' level='2'/&gt; &#10;Warning: for X3D3 HAnim1, spelling of component name is 'H-Anim' (including hyphen)" name="skinNormal"/>
            <attribute tooltip="[skeleton &inputOutputLabel; &MFNodeLabel;, empty list] [HAnimJoint|HAnimSite]&#10;List of top-level HAnimJoint and HAnimSite nodes that create the skeleton model. The skeleton field contains the humanoid_root Joint object, and thus the entire hierarchy of HAnimJoint/HAnimSegment nodes making up the articulated skeleton model.&#10;Hint: typically contains HAnimJoint with name=&apos;humanoid_root&apos;.&#10;Hint: immediate children in the skeleton field can also include top-level HAnimSite node declarations, which are landmarks for the overall humanoid figure that are not affected by HAnimJoint movement.&#10;Warning: top-level HAnimJoint and HAnimSite nodes must include containerField='skeleton' for proper validation and operation." name="skeleton"/>
            <attribute tooltip="[joints &inputOutputLabel; &MFNodeLabel;, empty list] [HAnimJoint]&#10;The joints field contains a list of USE references for all HAnimJoint node instances found within the preceding skeleton hierarchy.&#10;Hint: order is irrelevant since names are contained in the original DEF objects.&#10;Hint: these USE nodes can be utilitized by inverse kinematics (IK) and animation engines.&#10;Warning: the number of contained &lt;HAnimJoint USE='*' containerField='joints'/&gt; nodes at top level of HAnimHumanoid needs to match the number of corresponding HAnimJoint node instances found within the preceding skeleton hierarchy.&#10;Warning: top-level HAnimJoint USE nodes must include containerField='joints' for proper validation and operation." name="joints"/>
            <attribute tooltip="[segments &inputOutputLabel; &MFNodeLabel;, empty list] [HAnimSegment]&#10;The segments field contains a list of USE references for all HAnimSegment node instances found within the preceding skeleton hierarchy.&#10;Hint: order is irrelevant since names are contained in the original DEF objects.&#10;Hint: these USE nodes can be utilitized by inverse kinematics (IK) and animation engines.&#10;Warning: the number of contained &lt;HAnimSegment USE='*' containerField='segments'/&gt; nodes at top level of HAnimHumanoid needs to match the number of corresponding HAnimSegment node instances found within the preceding skeleton hierarchy.&#10;Warning: top-level HAnimSegment USE nodes must include containerField='segments' for proper validation and operation." name="segments"/>
            <attribute tooltip="[sites &inputOutputLabel; &MFNodeLabel;, empty list] [HAnimSite]&#10;sites field contains a list of USE references for all HAnimSite node instances found within the preceding skeleton hierarchy.&#10;Hint: order is irrelevant since names are contained in the original DEF objects.&#10;Hint: these USE nodes can be utilitized by inverse kinematics (IK) and animation engines.&#10;Warning: the number of contained &lt;HAnimSite USE='*' containerField='sites, skeleton or viewpoints'/&gt; nodes at top level of HAnimHumanoid needs to match the number of corresponding HAnimSite node instances found within the preceding skeleton hierarchy.&#10;Warning: top-level HAnimSite USE nodes must include containerField='sites' for proper validation and operation." name="sites"/>
            <attribute tooltip="[viewpoints &inputOutputLabel; &MFNodeLabel;, empty list] [HAnimSite]&#10;List of HAnimSite nodes containing Viewpoint nodes that appear in the skeleton model, usually as USE node references. The viewpoints field contains zero or more special HAnimSite nodes that are only affected by HAnimHumanoid transformations (and no HAnimJoint transformations).  Each HAnimSite can contain a Viewpoint as virtual camera in the HAnimHumanoid reference frame (such as viewing the face or profile of the human figure).&#10;Warning: these are actual node declarations, not USE nodes.&#10;Hint: the viewpoint field has different functionality than the joints, segments and sites fields.&#10;Hint: the viewpoints field connects internal Site nodes that in turn hold relative Viewpoint nodes, such as &lt;HAnimSite USE='ObserveFaceSite_view' containerField='viewpoints'/&gt; which has corresponding counterpart nodes &lt;HAnimSite DEF='ObserveFaceSite_view' name='ObserveFaceSite_view' containerField='children'&gt; &lt;Viewpoint description='look at me!'/&gt; &lt;/HAnimSite&gt;.&#10;Warning: top-level HAnimSite nodes (in turn containing Viewpoint nodes) must include containerField='viewpoints' for proper validation and operation." name="viewpoints"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[name &inputOutputLabel; type NMTOKEN #REQUIRED]&#10;Unique name attribute must be defined so that each HAnimHumanoid node in a scene can be identified at run time for animation purposes.&#10;Hint: this same name is a required name prefix for all other HAnim nodes within the HAnimHumanoid, if more than one humanoid appears within a scene file.&#10;Warning: name field is not included if this instance is a USE node, in order to avoid potential mismatches.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions&#10;Hint: HAnim2 Names HAnim1 Alias Tables https://www.web3d.org/x3d/content/examples/HumanoidAnimation/HAnim2NameHAnim1AliasTables.txt" name="name"/>
            <attribute tooltip="[version &inputOutputLabel; &SFStringLabel; (2.0) &#34;2.0&#34;]&#10;HAnimHumanoid version, where allowed value is 2.0 for final ISO 19774 version 2019.&#10;Hint: default HAnimHumanoid version is 1.0 for X3D version 3, and HAnimHumanoid required version is 2.0 for X3D version 4.&#10;Warning: no other values are allowed for strict validation.&#10;Warning: prior developmental versions of HAnim nodes, such as version 1 of standardized ISO 19774 version 2006, might not validate correctly due to small changes in the contained-node content model, so conversion of such models is recommended." name="version"/>
            <attribute tooltip="(X3D version 4.0 draft) [description &inputOutputLabel; &SFStringLabel; #IMPLIED]&#10;Author-provided prose that describes intended purpose of this node.&#10;Hint: many XML tools substitute XML character references for special characters automatically if needed within an attribute value (such as &amp;#38; for &#38; ampersand character, or &amp;#34; for &#34; quotation-mark character)." name="description"/>
            <!--	<attribute tooltip="[humanoidVersion &SFStringLabel; #IMPLIED]&#10;Metadata keyword=value pair." name="humanoidVersion"/> -->
            <!--	<attribute tooltip="[authorName &SFStringLabel; #IMPLIED]&#10;Author name.&#10;Hint: can be encoded as info attribute keyword=value pair." name="authorName"/> -->
            <!--	<attribute tooltip="[authorEmail &SFStringLabel; #IMPLIED]&#10;Author Email address.&#10;Hint: can be encoded as info attribute keyword=value pair." name="authorEmail"/> -->
            <!--	<attribute tooltip="[copyright &SFStringLabel; #IMPLIED]&#10;Copyright information.&#10;Hint: can be encoded as info attribute keyword=value pair." name="copyright"/> -->
            <!--	<attribute tooltip="[creationDate &SFStringLabel; #IMPLIED]&#10;Humanoid model creation date.&#10;Hint: can be encoded as info attribute keyword=value pair." name="creationDate"/> -->
            <!--	<attribute tooltip="[usageRestrictions &SFStringLabel; #IMPLIED]&#10;Author/owner-specified usage restrictions.&#10;Hint: can be encoded as info attribute keyword=value pair." name="usageRestrictions"/> -->
            <!--	<attribute tooltip="[age &SFStringLabel; #IMPLIED]&#10;Humanoid model age in human years.&#10;Hint: can be encoded as info attribute keyword=value pair." name="age"/> -->
            <!--	<attribute tooltip="[gender &SFStringLabel; #IMPLIED]&#10;Humanoid model gender (typically male or female)." name="gender"/> -->
            <!--	<attribute tooltip="[height &SFStringLabel; #IMPLIED]&#10;Humanoid model height (meters).&#10;Hint: can be encoded as info attribute keyword=value pair." name="height"/> -->
            <!--	<attribute tooltip="[weight &SFStringLabel; #IMPLIED]&#10;Humanoid model weight (kilograms).&#10;Hint: can be encoded as info attribute keyword=value pair." name="weight"/> -->
            <attribute tooltip="[info &inputOutputLabel; &MFStringLabel; #IMPLIED]&#10;Contains metadata keyword=value pairs, where approved keyword terms are humanoidVersion authorName authorEmail copyright creationDate usageRestrictions age gender height and weight.&#10;Hint: height and weight are in base units (typically meters), hanimVersion is for author use and separate from HAnimHumanoid version field.&#10;Hint: alternate metadata keywords are also allowed." name="info"/>
            <attribute tooltip="[translation &inputOutputLabel; &SFVec3fLabel; &#34;0 0 0&#34;]&#10;Position of children relative to local coordinate system.&#10;Hint: since default pose faces along +Z axis, -x values are right side and +x values are left side within HAnimHumanoid." name="translation"/>
            <attribute tooltip="[rotation &inputOutputLabel; &SFRotationLabel; &#34;0 0 1 0&#34;]&#10;Orientation of children relative to local coordinate system.&#10;Warning: default pose is typically empty (or an identity rotation) to avoid distorted body animations." name="rotation"/>
            <attribute tooltip="[scale &inputOutputLabel; &SFVec3fLabel; &#34;1 1 1&#34;]&#10;Non-uniform x-y-z scale of child coordinate system, adjusted by center and scaleOrientation." name="scale"/>
            <attribute tooltip="[scaleOrientation &inputOutputLabel; &SFRotationLabel; &#34;0 0 1 0&#34;]&#10;Preliminary rotation of coordinate system before scaling (to allow scaling around arbitrary orientations)." name="scaleOrientation"/>
            <attribute tooltip="[center &inputOutputLabel; &SFVec3fLabel; &#34;0 0 0&#34;]&#10;Translation offset from origin of local coordinate system." name="center"/>
            <attribute tooltip="[bboxCenter &initializeOnlyLabel; &SFVec3fLabel; &#34;0 0 0&#34;]&#10;Bounding box center accompanies bboxSize and provides an optional hint for bounding box position offset from origin of local coordinate system.&#10;Hint: precomputation and inclusion of bounding box information can speed up the initialization of large detailed models, with a corresponding cost of increased file size.&#10;Hint: X3D Architecture, 10.2.2 Bounding boxes https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#BoundingBoxes&#10;Hint:  X3D Architecture, 10.3.1 X3DBoundedObject https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#X3DBoundedObject" name="bboxCenter"/>
            <attribute tooltip="[bboxSize &initializeOnlyLabel; &SFVec3fLabel; &#34;-1 -1 -1&#34;] or [0,+&#8734;)&#10;Bounding box size is usually omitted, and can easily be calculated automatically by an X3D player at scene-loading time with minimal computational cost. Bounding box size can also be defined as an optional authoring hint that suggests an optimization or constraint.&#10;Hint: can be useful for collision computations or inverse-kinematics (IK) engines.&#10;Hint: precomputation and inclusion of bounding box information can speed up the initialization of large detailed models, with a corresponding cost of increased file size.&#10;Hint: X3D Architecture, 10.2.2 Bounding boxes https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#BoundingBoxes&#10;Hint:  X3D Architecture, 10.3.1 X3DBoundedObject https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#X3DBoundedObject" name="bboxSize"/>
            <attribute tooltip="(X3D version 4.0 draft) [bboxDisplay &inputOutputLabel; &SFBoolLabel; &#34;false&#34;]&#10;Whether to display bounding box for associated geometry, aligned with world coordinates.&#10;Hint: the bounding box is displayed regardless of whether contained content is visible." name="bboxDisplay"/>
            <attribute tooltip="(X3D version 4.0 draft) [visible &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Whether or not renderable content within this node is visually displayed.&#10;Hint: the visible field has no effect on animation behaviors, event passing or other non-visual characteristics.&#10;Hint: content must be visible to be collidable and to be pickable." name="visible"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
	
            <attribute tooltip="(X3D version 4.0 draft) [loa &inputOutputLabel; &SFInt32Label; -1] [-1,4]&#10;Level Of Articulation 0..4 indicates complexity and detail of joints for given humanoid skeletal hierarchy.&#10;Hint: loa value of -1 indicates that no LOA conformance is provided.&#10;Hint: Humanoid Animation (HAnim) Specification, Part 1 Architecture, 4.8.4 Levels of articulation, https://www.web3d.org/documents/specifications/19774/V2.0/Architecture/concepts.html#LevelsOfArticulation" name="loa"/>
            <attribute tooltip="(X3D version 4.0 draft) [motions &inputOutputLabel; &MFNodeLabel;, empty list] [HAnimMotion]&#10;Contains any HAnimMotion nodes that can animate the HAnimHumanoid." name="motions"/>
            <attribute tooltip="(X3D version 4.0 draft) [motionsEnabled &inputOutputLabel; &MFBoolLabel; empty list]&#10;Array of boolean values corresponding to HAnimMotion nodes indicating which can animate the HAnimHumanoid." name="motionsEnabled"/>
            <attribute tooltip="(X3D version 4.0 draft) [skeletalConfiguration &inputOutputLabel; &SFStringLabel; &apos;BASIC&apos;]&#10;Models sharing a common skeletal configuration can share animations and binding poses.&#10;Hint: a value of &apos;BASIC&apos; conforms to restrictive skeletal model in X3D Humanoid Animation (HAnim) Specification, Part 1 Architecture, 4.8 Modelling of humanoids, https://www.web3d.org/documents/specifications/19774/V2.0/Architecture/concepts.html#ModellingOfHumanoids" name="skeletalConfiguration"/>
            <attribute tooltip="(X3D version 4.0 draft) [jointBindingPositions &inputOutputLabel; &MFVec3fLabel; #IMPLIED]&#10;Specifies an array of position values for each HAnimJoint node in the joints field, in order, corresponding to each binding pose.&#10;Hint: if only one value is provided, it is provided to each Joint equivalently.&#10;Warning: not used when skeletalConfiguration=&apos;BASIC&apos;." name="jointBindingPositions"/>
            <attribute tooltip="(X3D version 4.0 draft) [jointBindingRotations &inputOutputLabel; &MFRotationLabel; #IMPLIED]&#10;Specifies an array of rotation values for each HAnimJoint node in the joints field, in order, corresponding to each binding pose.&#10;Hint: if only one value is provided, it is provided to each Joint equivalently.&#10;Warning: not used when skeletalConfiguration=&apos;BASIC&apos;." name="jointBindingRotations"/>
            <attribute tooltip="(X3D version 4.0 draft) [jointBindingScales &inputOutputLabel; &MFVec3fLabel; #IMPLIED]&#10;Specifies an array of scale values for each HAnimJoint node in the joints field, in order, corresponding to each binding pose.&#10;Hint: if only one value is provided, it is provided to each Joint equivalently.&#10;Warning: not used when skeletalConfiguration=&apos;BASIC&apos;." name="jointBindingScales"/>
            <attribute tooltip="(X3D version 4.0 draft) [skinBindingCoords &inputOutputLabel; &SFNodeLabel;, NULL node] [Coordinate|CoordinateDouble]&#10;Array of Coordinate nodes to handle non-default source pose so that both skin and skeleton can be in same binding pose.&#10;Warning: index values for HanimHumanoid skin IndexedFaceSet, skinCoord and skinNormal nodes must all be consistently defined together with HAnimJoint HAnimSegment and HAnimDisplacer nodes for proper skin animation.&#10;Warning: top-level Coordinate or CoordinateDouble nodes must include containerField='skinBindingCoords' for proper validation and operation.&#10;Hint: a single node is used so that coordIndex references are consistent for all references to these coordinates.&#10;Warning: (X3D version 4.0 draft) requires X3D profile='Full' or else include &lt;component name='HAnim' level='2'/&gt; &#10;Warning: for X3D3 HAnim1, spelling of component name is 'H-Anim' (including hyphen)&#10;Warning: not used when skeletalConfiguration=&apos;BASIC&apos;." name="skinBindingCoords"/>
            <attribute tooltip="(X3D version 4.0 draft) [skinBindingNormals &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DNormalNode]&#10;Array of Normal nodes to handle non-default source pose so that both skin and skeleton can be in same binding pose.&#10;Warning: index values for HanimHumanoid skin IndexedFaceSet, skinCoord and skinNormal nodes must all be consistently defined together with HAnimJoint HAnimSegment and HAnimDisplacer nodes for proper skin animation.&#10;Warning: top-level Normal nodes must include containerField='skinBindingNormals' for proper validation and operation.&#10;Warning: (X3D version 4.0 draft) requires X3D profile='Full' or else include &lt;component name='HAnim' level='2'/&gt; &#10;Warning: for X3D3 HAnim1, spelling of component name is 'H-Anim' (including hyphen)&#10;Warning: not used when skeletalConfiguration=&apos;BASIC&apos;." name="skinBindingNormals"/>
        </element>
        <element icon="icons/HAnimJoint.gif" tooltip="[X3DGroupingNode,X3DVisibleObject] HAnimJoint node can represent each joint in a body. The child HAnimSegment node provides a visual representation of the skeleton segment.&#10;Hint: HAnimJoint may only get inserted as one (or more) root nodes of HAnimHumanoid skeleton field, as a child of another HAnimJoint node, or as a USE node in the HAnimHumanoid joints field.&#10;Warning: HAnimJoint can only contain certain nodes: HAnimJoint, HAnimSegment, HAnimSite (with containerField='children') and also HAnimDisplacer nodes (with containerField='displacers').&#10;Hint:  visualization shapes for HAnimJoint nodes can be placed in child HAnimSegment or HAnimSite nodes.&#10;Warning: an HAnimJoint may not be a child of an HAnimSegment.&#10;Hint: HAnim Specification https://www.web3d.org/documents/specifications/19774/V2.0&#10;Hint: HAnim Specification part 1, Joint https://www.web3d.org/documents/specifications/19774/V2.0/Architecture/ObjectInterfaces.html#Joint&#10;Hint: X3D for Advanced Modeling (X3D4AM) slideset https://x3dgraphics.com/slidesets/X3dForAdvancedModeling/HumanoidAnimation.pdf&#10;Warning: requires X3D profile='Full' or else include &lt;component name='HAnim' level='1'/&gt; &#10;Warning: for X3D3 HAnim1, spelling of component name is 'H-Anim' (including hyphen) &#10;Warning: for X3D3 HAnim1, spelling of component name is 'H-Anim' (including hyphen)&#10;Warning: the number of contained &lt;HAnimJoint USE='*' containerField='joints'/&gt; nodes at top level of HAnimHumanoid needs to match the number of corresponding HAnimJoint node instances found within the preceding skeleton hierarchy.&#10;Hint:  HAnim2 default values for Joint and Site (feature point) nodes https://www.web3d.org/x3d/content/examples/HumanoidAnimation/HAnim2DefaultValuesJointsFeaturePoints.txt" name="HAnimJoint">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[children &inputOutputLabel; &MFNodeLabel;, empty list] [HAnimJoint|HAnimSegment]&#10;Grouping nodes contain an ordered list of children nodes.&#10;Hint: Each grouping node defines a coordinate space for its children, relative to the coordinate space of its parent node. Thus transformations accumulate down the scene graph hierarchy.&#10;Warning: HAnimJoint can only contain HAnimJoint|HAnimSegment nodes (each having default containerField='children').&#10;Hint: place any geometry for this HAnimJoint in the child HAnimSegment, wrapped within a Transform having the same translation value as the current HAnimJoint center value.&#10;Hint: inputOnly MFNode addChildren field can append new X3DChildNode nodes via a ROUTE connection, duplicate input nodes (i.e. matching DEF, USE values) are ignored.&#10;Hint: inputOnly MFNode removeChildren field can remove nodes from the children list, unrecognized input nodes (i.e. nonmatching DEF, USE values) are ignored.&#10;Hint: X3D Architecture 10.2.1 Grouping and children node types, https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#GroupingAndChildrenNodes" name="children"/>
            <attribute tooltip="[displacers &inputOutputLabel; &MFNodeLabel;, empty list] [HAnimDisplacer]&#10;the displacers field stores HAnimDisplacer objects for a particular HAnimJoint object.&#10;Warning: index values for HanimHumanoid skin IndexedFaceSet, skinCoord and skinNormal nodes must all be consistently defined together with HAnimJoint HAnimSegment and HAnimDisplacer nodes for proper skin animation." name="displacers"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[name &inputOutputLabel; type NMTOKEN #REQUIRED]&#10;Unique name attribute must be defined so that HAnimJoint node can be identified at run time for animation purposes.&#10;Warning: name prefix must match ancestor HAnimHumanoid name followed by underscore character, if more than one humanoid appears within a scene file. For example,  'Nancy_' prepended before location name.&#10;Warning: name field is not included if this instance is a USE node, in order to avoid potential mismatches.&#10;Examples: humanoid_root sacroiliac l_hip l_knee l_ankle etc. as listed in HAnim Specification.&#10;Hint: HAnim Specification part 1, Humanoid Joint-Segment Hierarchy https://www.web3d.org/documents/specifications/19774/V2.0/Architecture/concepts.html#Hierarchy&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions&#10;Hint: HAnim2 Names HAnim1 Alias Tables https://www.web3d.org/x3d/content/examples/HumanoidAnimation/HAnim2NameHAnim1AliasTables.txt&#10;Warning: note precise spelling of special HAnimJoint name='humanoid_root' according to https://www.web3d.org/documents/specifications/19774/V2.0/Architecture/concepts.html#TheBody" name="name"/>
            <attribute tooltip="(X3D version 4.0 draft) [description &inputOutputLabel; &SFStringLabel; #IMPLIED]&#10;Author-provided prose that describes intended purpose of this node.&#10;Hint: many XML tools substitute XML character references for special characters automatically if needed within an attribute value (such as &amp;#38; for &#38; ampersand character, or &amp;#34; for &#34; quotation-mark character)." name="description"/>
            <attribute tooltip="[center &inputOutputLabel; &SFVec3fLabel; &#34;0 0 0&#34;]&#10;Translation offset from origin of local coordinate system.&#10;Hint: usually HAnimJoint position is controlled by the center field, not the translation field." name="center"/>
            <attribute tooltip="[translation &inputOutputLabel; &SFVec3fLabel; &#34;0 0 0&#34;]&#10;Position of children relative to local coordinate system.&#10;Warning: usually HAnimJoint position is controlled by the center field, not the translation field.&#10;Hint: since default pose faces along +Z axis, -x values are right side and +x values are left side within HAnimHumanoid." name="translation"/>
            <attribute tooltip="[rotation &inputOutputLabel; &SFRotationLabel; &#34;0 0 1 0&#34;]&#10;Orientation of children relative to local coordinate system.&#10;Warning: default pose is typically empty (or an identity rotation) to avoid distorted body animations." name="rotation"/>
            <attribute tooltip="[scale &inputOutputLabel; &SFVec3fLabel; &#34;1 1 1&#34;]&#10;Non-uniform x-y-z scale of child coordinate system, adjusted by center and scaleOrientation." name="scale"/>
            <attribute tooltip="[scaleOrientation &inputOutputLabel; &SFRotationLabel; &#34;0 0 1 0&#34;]&#10;Preliminary rotation of coordinate system before scaling (to allow scaling around arbitrary orientations)." name="scaleOrientation"/>
            <attribute tooltip="[ulimit &inputOutputLabel; &MFFloatLabel; &#34;0 0 0&#34;]&#10;Upper limit for maximum joint rotation in radians.&#10;Hint: always contains 3 values, one for each local axis.&#10;Warning: field shall contain three values or else be an empty array. Behavior is undefined when array length is 1, 2, or greater than 3.&#10;Hint: an empty array is equivalent to 0 0 0." name="ulimit"/>
            <attribute tooltip="[llimit &inputOutputLabel; &MFFloatLabel; &#34;0 0 0&#34;]&#10;Lower limit for minimum joint rotation in radians.&#10;Hint: always contains 3 values, one for each local axis.&#10;Warning: field shall contain three values or else be an empty array. Behavior is undefined when array length is 1, 2, or greater than 3.&#10;Hint: an empty array is equivalent to 0 0 0." name="llimit"/>
            <attribute tooltip="[limitOrientation &inputOutputLabel; &SFRotationLabel; &#34;0 0 1 0&#34;]&#10;Orientation of upper/lower rotation limits, relative to HAnimJoint center." name="limitOrientation"/>
            <attribute tooltip="[skinCoordIndex &inputOutputLabel; &MFInt32Label; #IMPLIED] [0,+&#8734;)&#10;Coordinate index values referencing which vertices are influenced by the HAnimJoint.&#10;Warning: -1 sentinel values are not allowed.&#10;Hint: corresponding skinCoord Coordinate and skinNormal Normal nodes are directly contained within the ancestor HAnimHumanoid node for this HAnimJoint.&#10;Warning: index values for HanimHumanoid skin IndexedFaceSet, skinCoord and skinNormal nodes must all be consistently defined together with HAnimJoint HAnimSegment and HAnimDisplacer nodes for proper skin animation." name="skinCoordIndex"/>
            <attribute tooltip="[skinCoordWeight &inputOutputLabel; &MFFloatLabel; #IMPLIED]&#10;Weight deformation values for the corresponding values in the skinCoordIndex field.&#10;Warning: index values for HanimHumanoid skin IndexedFaceSet, skinCoord and skinNormal nodes must all be consistently defined together with HAnimJoint HAnimSegment and HAnimDisplacer nodes for proper skin animation." name="skinCoordWeight"/>
            <attribute tooltip="[stiffness &inputOutputLabel; &MFFloatLabel; &#34;0 0 0&#34;] [0,1]&#10;A scale factor of (1 - stiffness) is applied around the corresponding axis (X, Y, or Z for entries 0, 1 and 2 of the stiffness field). Thus a stiffness value of zero means that no rotation scaling occurs, while a stiffness value of one means that no rotation occurs regardless of any provided rotation.&#10;Warning: field shall contain three values or else be an empty array. Behavior is undefined when array length is 1, 2, or greater than 3.&#10;Hint: an empty array is equivalent to 0 0 0.&#10;Hint: used by inverse kinematics (IK) systems." name="stiffness"/>
            <attribute tooltip="[bboxCenter &initializeOnlyLabel; &SFVec3fLabel; &#34;0 0 0&#34;]&#10;Bounding box center accompanies bboxSize and provides an optional hint for bounding box position offset from origin of local coordinate system.&#10;Hint: precomputation and inclusion of bounding box information can speed up the initialization of large detailed models, with a corresponding cost of increased file size.&#10;Hint: X3D Architecture, 10.2.2 Bounding boxes https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#BoundingBoxes&#10;Hint:  X3D Architecture, 10.3.1 X3DBoundedObject https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#X3DBoundedObject" name="bboxCenter"/>
            <attribute tooltip="[bboxSize &initializeOnlyLabel; &SFVec3fLabel; &#34;-1 -1 -1&#34;] or [0,+&#8734;)&#10;Bounding box size is usually omitted, and can easily be calculated automatically by an X3D player at scene-loading time with minimal computational cost. Bounding box size can also be defined as an optional authoring hint that suggests an optimization or constraint.&#10;Hint: can be useful for collision computations or inverse-kinematics (IK) engines.&#10;Hint: precomputation and inclusion of bounding box information can speed up the initialization of large detailed models, with a corresponding cost of increased file size.&#10;Hint: X3D Architecture, 10.2.2 Bounding boxes https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#BoundingBoxes&#10;Hint:  X3D Architecture, 10.3.1 X3DBoundedObject https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#X3DBoundedObject" name="bboxSize"/>
            <attribute tooltip="(X3D version 4.0 draft) [bboxDisplay &inputOutputLabel; &SFBoolLabel; &#34;false&#34;]&#10;Whether to display bounding box for associated geometry, aligned with world coordinates.&#10;Hint: the bounding box is displayed regardless of whether contained content is visible." name="bboxDisplay"/>
            <attribute tooltip="(X3D version 4.0 draft) [visible &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Whether or not renderable content within this node is visually displayed.&#10;Hint: the visible field has no effect on animation behaviors, event passing or other non-visual characteristics.&#10;Hint: content must be visible to be collidable and to be pickable." name="visible"/>
            <attribute tooltip="[containerField type NMTOKEN (children|skeleton|joints) &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/HAnimSegment.gif" tooltip="[X3DGroupingNode,X3DVisibleObject] HAnimSegment node contains Shape geometry for each body segment, providing a visual representation of the skeleton segment. Parent/child translation and rotation relationships are defined in ancestor/descendant HAnimSegment nodes.&#10;HAnimSegment contains Coordinate|CoordinateDouble with containerField='coord', HAnimDisplacer with containerField='displacers' and Shape or grouping nodes with containerField='children'. Hint: HAnimSegment displays geometry between parent HAnimJoint and sibling HAnimJoint nodes.&#10;Hint: HAnim Specification https://www.web3d.org/documents/specifications/19774/V2.0&#10;Hint: HAnim Specification part 1, Segment https://www.web3d.org/documents/specifications/19774/V2.0/Architecture/ObjectInterfaces.html#Segment&#10;Hint: X3D for Advanced Modeling (X3D4AM) slideset https://x3dgraphics.com/slidesets/X3dForAdvancedModeling/HumanoidAnimation.pdf&#10;Warning: requires X3D profile='Full' or else include &lt;component name='HAnim' level='1'/&gt; &#10;Warning: for X3D3 HAnim1, spelling of component name is 'H-Anim' (including hyphen)&#10;Warning: the number of contained &lt;HAnimSegment USE='*' containerField='segments'/&gt; nodes at top level of HAnimHumanoid needs to match the number of corresponding HAnimJoint node instances found within the preceding skeleton hierarchy." name="HAnimSegment">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[children &inputOutputLabel; &MFNodeLabel;, empty list] [X3DChildNode]&#10;Grouping nodes contain an ordered list of children nodes.&#10;Hint: Each grouping node defines a coordinate space for its children, relative to the coordinate space of its parent node. Thus transformations accumulate down the scene graph hierarchy.&#10;Hint: place any geometry for parent HAnimJoint within a child Transform having the same translation value as the parent HAnimJoint center value.&#10;Hint: inputOnly MFNode addChildren field can append new X3DChildNode nodes via a ROUTE connection, duplicate input nodes (i.e. matching DEF, USE values) are ignored.&#10;Hint: inputOnly MFNode removeChildren field can remove nodes from the children list, unrecognized input nodes (i.e. nonmatching DEF, USE values) are ignored.&#10;Hint: X3D Architecture 10.2.1 Grouping and children node types, https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#GroupingAndChildrenNodes" name="children"/>
            <attribute tooltip="[coord &inputOutputLabel; &SFNodeLabel;, NULL node] [Coordinate|CoordinateDouble]&#10;the coord field is used for HAnimSegment objects that have deformable meshes and shall contain coordinates referenced from the IndexedFaceSet for the paarent HAnimSegment object. The coordinates are given the same name as the HAnim Segment object, but with &quot;_coords&quot; appended to the name (for example, &quot;skull_coords&quot;).&#10;Warning: index values for HanimHumanoid skin IndexedFaceSet, skinCoord and skinNormal nodes must all be consistently defined together with HAnimJoint HAnimSegment and HAnimDisplacer nodes for proper skin animation." name="coord"/>
            <attribute tooltip="(X3D version 4.0 draft) [description &inputOutputLabel; &SFStringLabel; #IMPLIED]&#10;Author-provided prose that describes intended purpose of this node.&#10;Hint: many XML tools substitute XML character references for special characters automatically if needed within an attribute value (such as &amp;#38; for &#38; ampersand character, or &amp;#34; for &#34; quotation-mark character)." name="description"/>
            <attribute tooltip="[displacers &inputOutputLabel; &MFNodeLabel;, empty list] [HAnimDisplacer]&#10;the displacers field stores HAnimDisplacer objects for a particular HAnimSegment object.&#10;Warning: index values for HanimHumanoid skin IndexedFaceSet, skinCoord and skinNormal nodes must all be consistently defined together with HAnimJoint HAnimSegment and HAnimDisplacer nodes for proper skin animation." name="displacers"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[name &inputOutputLabel; type NMTOKEN #REQUIRED]&#10;Unique name attribute must be defined so that HAnimSegment node can be identified at run time for animation purposes.&#10;Warning: name prefix must match ancestor HAnimHumanoid name followed by underscore character, if more than one humanoid appears within a scene file. For example,  'Nancy_' prepended before location name.&#10;Warning: name field is not included if this instance is a USE node, in order to avoid potential mismatches.&#10;Examples: sacrum pelvis l_thigh l_calf etc. as listed in HAnim Specification. Hint: for abitrary humanoids, HAnimSegment name can describe geometry between parent HAnimJoint and sibling HAnimJoint nodes (for example LeftHip_to_LeftKnee).&#10;Hint: HAnim Specification part 1, Humanoid Joint-Segment Hierarchy https://www.web3d.org/documents/specifications/19774/V2.0/Architecture/concepts.html#Hierarchy&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions&#10;Hint: HAnim2 Names HAnim1 Alias Tables https://www.web3d.org/x3d/content/examples/HumanoidAnimation/HAnim2NameHAnim1AliasTables.txt" name="name"/>
            <attribute tooltip="[mass &inputOutputLabel; &SFFloatLabel; &#34;0&#34;]&#10;Total mass of the segment, 0 if not available, defined in mass base units (default is kilograms).&#10;Hint: https://en.wikipedia.org/wiki/Kilogram&#10;Hint: X3D Architecture 4.3.6 Standard units and coordinate system https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/concepts.html#Standardunitscoordinates" name="mass"/>
            <attribute tooltip="[centerOfMass &inputOutputLabel; &SFVec3fLabel; &#34;0 0 0&#34;]&#10;Location within segment of center of mass." name="centerOfMass"/>
            <attribute tooltip="[momentsOfInertia &inputOutputLabel; &MFFloatLabel; &#34;0 0 0 0 0 0 0 0 0&#34;]&#10;3x3 moments of inertia matrix. default:&#10;0 0 0&#10;0 0 0&#10;0 0 0." name="momentsOfInertia"/>
            <attribute tooltip="[bboxCenter &initializeOnlyLabel; &SFVec3fLabel; &#34;0 0 0&#34;]&#10;Bounding box center accompanies bboxSize and provides an optional hint for bounding box position offset from origin of local coordinate system.&#10;Hint: precomputation and inclusion of bounding box information can speed up the initialization of large detailed models, with a corresponding cost of increased file size.&#10;Hint: X3D Architecture, 10.2.2 Bounding boxes https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#BoundingBoxes&#10;Hint:  X3D Architecture, 10.3.1 X3DBoundedObject https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#X3DBoundedObject" name="bboxCenter"/>
            <attribute tooltip="[bboxSize &initializeOnlyLabel; &SFVec3fLabel; &#34;-1 -1 -1&#34;] or [0,+&#8734;)&#10;Bounding box size is usually omitted, and can easily be calculated automatically by an X3D player at scene-loading time with minimal computational cost. Bounding box size can also be defined as an optional authoring hint that suggests an optimization or constraint.&#10;Hint: can be useful for collision computations or inverse-kinematics (IK) engines.&#10;Hint: precomputation and inclusion of bounding box information can speed up the initialization of large detailed models, with a corresponding cost of increased file size.&#10;Hint: X3D Architecture, 10.2.2 Bounding boxes https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#BoundingBoxes&#10;Hint:  X3D Architecture, 10.3.1 X3DBoundedObject https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#X3DBoundedObject" name="bboxSize"/>
            <attribute tooltip="(X3D version 4.0 draft) [bboxDisplay &inputOutputLabel; &SFBoolLabel; &#34;false&#34;]&#10;Whether to display bounding box for associated geometry, aligned with world coordinates.&#10;Hint: the bounding box is displayed regardless of whether contained content is visible." name="bboxDisplay"/>
            <attribute tooltip="(X3D version 4.0 draft) [visible &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Whether or not renderable content within this node is visually displayed.&#10;Hint: the visible field has no effect on animation behaviors, event passing or other non-visual characteristics.&#10;Hint: content must be visible to be collidable and to be pickable." name="visible"/>
            <attribute tooltip="[containerField type NMTOKEN (children|segments) &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/HAnimSite.gif" tooltip="[X3DGroupingNode,X3DVisibleObject] An HAnimSite node serves three purposes:&#10;(a) define an &quot;end effector&quot; location which can be used by an inverse kinematics system,&#10;(b) define an attachment point for accessories such as jewelry and clothing, and&#10;(c) define a location for a Viewpoint virtual camera in the reference frame of an HAnimSegment&#10;(such as a view &quot;through the eyes&quot; of the humanoid for use in multi-user worlds).&#10;Hint: HAnimSite nodes are stored as children of an HAnimSegment node.&#10;Warning: ensure that visible HAnimSite locations are not inadvertently obscured by skin animation.&#10;Hint: HAnim Specification https://www.web3d.org/documents/specifications/19774/V2.0&#10;Hint: HAnim Specification part 1, Site https://www.web3d.org/documents/specifications/19774/V2.0/Architecture/ObjectInterfaces.html#Site&#10;Hint: HAnim Specification part 1, Annex B, Feature points for the human body https://www.web3d.org/documents/specifications/19774/V2.0/Architecture/FeaturePoints.html&#10;Hint: X3D for Advanced Modeling (X3D4AM) slideset https://x3dgraphics.com/slidesets/X3dForAdvancedModeling/HumanoidAnimation.pdf&#10;Warning: requires X3D profile='Full' or else include &lt;component name='HAnim' level='1'/&gt; &#10;Warning: for X3D3 HAnim1, spelling of component name is 'H-Anim' (including hyphen)&#10;Warning: the number of contained &lt;HAnimSite USE='*' containerField='sites, skeleton or viewpoints'/&gt; nodes at top level of HAnimHumanoid needs to match the number of corresponding HAnimSite node instances found within the preceding skeleton hierarchy.&#10;Hint:  HAnim2 default values for Joint and Site (feature point) nodes https://www.web3d.org/x3d/content/examples/HumanoidAnimation/HAnim2DefaultValuesJointsFeaturePoints.txt" name="HAnimSite">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[children &inputOutputLabel; &MFNodeLabel;, empty list] [X3DChildNode]&#10;Grouping nodes contain an ordered list of children nodes.&#10;Hint: Each grouping node defines a coordinate space for its children, relative to the coordinate space of its parent node. Thus transformations accumulate down the scene graph hierarchy.&#10;Hint: inputOnly MFNode addChildren field can append new X3DChildNode nodes via a ROUTE connection, duplicate input nodes (i.e. matching DEF, USE values) are ignored.&#10;Hint: inputOnly MFNode removeChildren field can remove nodes from the children list, unrecognized input nodes (i.e. nonmatching DEF, USE values) are ignored.&#10;Hint: X3D Architecture 10.2.1 Grouping and children node types, https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#GroupingAndChildrenNodes" name="children"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[name &inputOutputLabel; type NMTOKEN #REQUIRED]&#10;Unique name attribute must be defined so that HAnimSite node can be identified at run time for animation purposes.&#10;Hint: HAnimSite names are typically  based on feature point names, though other author-defined names are also allowed.&#10;Hint: https://www.web3d.org/documents/specifications/19774/V2.0/Architecture/FeaturePoints.html&#10;Warning: name prefix must match ancestor HAnimHumanoid name followed by underscore character, if more than one humanoid appears within a scene file. For example,  'Nancy_' prepended before location name.&#10;Warning: name field is not included if this instance is a USE node, in order to avoid potential mismatches.&#10;Hint: HAnimSite nodes used as end effectors have '_tip' suffix appended to the name.&#10;Hint: HAnimSite nodes containing a Viewpoint location have '_view' suffix appended to the name.&#10;Hint: HAnimSite nodes serving other purposes have '_pt' suffix appended to the name.&#10;Warning: HAnimSite name must end in '_tip' or '_view' or '_pt' suffix.&#10;Hint: additional example name bases (such as cervicale l_infraorbitale supramenton etc.) are listed in HAnim Specification.&#10;Hint: HAnim Specification part 1, LOA-3 default Site object translations https://www.web3d.org/documents/specifications/19774/V2.0/Architecture/BodyDimensionsAndLOAs.html#LOA3DefaultSiteTranslations&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions&#10;Hint: HAnim2 Names HAnim1 Alias Tables https://www.web3d.org/x3d/content/examples/HumanoidAnimation/HAnim2NameHAnim1AliasTables.txt" name="name"/>
            <attribute tooltip="(X3D version 4.0 draft) [description &inputOutputLabel; &SFStringLabel; #IMPLIED]&#10;Author-provided prose that describes intended purpose of this node.&#10;Hint: many XML tools substitute XML character references for special characters automatically if needed within an attribute value (such as &amp;#38; for &#38; ampersand character, or &amp;#34; for &#34; quotation-mark character)." name="description"/>
            <attribute tooltip="[center &inputOutputLabel; &SFVec3fLabel; &#34;0 0 0&#34;]&#10;Default location of this HAnimSite, i.e. offset of center from origin of local coordinate system.&#10;Hint: center field indicates default origin relative to overall humanoid body and is rarely modified. For HAnimSite animation, ROUTE position-change events to translation field instead." name="center"/>
            <attribute tooltip="[translation &inputOutputLabel; &SFVec3fLabel; &#34;0 0 0&#34;]&#10;Position of children relative to local coordinate system.&#10;Hint: since default pose faces along +Z axis, -x values are right side and +x values are left side within HAnimHumanoid.&#10;Hint: center field indicates default origin relative to overall humanoid body and is rarely modified. For HAnimSite animation, ROUTE position-change events to translation field instead." name="translation"/>
            <attribute tooltip="[rotation &inputOutputLabel; &SFRotationLabel; &#34;0 0 1 0&#34;]&#10;Orientation of children relative to local coordinate system." name="rotation"/>
            <attribute tooltip="[scale &inputOutputLabel; &SFVec3fLabel; &#34;1 1 1&#34;]&#10;Non-uniform x-y-z scale of child coordinate system, adjusted by center and scaleOrientation." name="scale"/>
            <attribute tooltip="[scaleOrientation &inputOutputLabel; &SFRotationLabel; &#34;0 0 1 0&#34;]&#10;Preliminary rotation of coordinate system before scaling (to allow scaling around arbitrary orientations)." name="scaleOrientation"/>
            <attribute tooltip="[bboxCenter &initializeOnlyLabel; &SFVec3fLabel; &#34;0 0 0&#34;]&#10;Bounding box center accompanies bboxSize and provides an optional hint for bounding box position offset from origin of local coordinate system.&#10;Hint: precomputation and inclusion of bounding box information can speed up the initialization of large detailed models, with a corresponding cost of increased file size.&#10;Hint: X3D Architecture, 10.2.2 Bounding boxes https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#BoundingBoxes&#10;Hint:  X3D Architecture, 10.3.1 X3DBoundedObject https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#X3DBoundedObject" name="bboxCenter"/>
            <attribute tooltip="[bboxSize &initializeOnlyLabel; &SFVec3fLabel; &#34;-1 -1 -1&#34;] or [0,+&#8734;)&#10;Bounding box size is usually omitted, and can easily be calculated automatically by an X3D player at scene-loading time with minimal computational cost. Bounding box size can also be defined as an optional authoring hint that suggests an optimization or constraint.&#10;Hint: can be useful for collision computations or inverse-kinematics (IK) engines.&#10;Hint: precomputation and inclusion of bounding box information can speed up the initialization of large detailed models, with a corresponding cost of increased file size.&#10;Hint: X3D Architecture, 10.2.2 Bounding boxes https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#BoundingBoxes&#10;Hint:  X3D Architecture, 10.3.1 X3DBoundedObject https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#X3DBoundedObject" name="bboxSize"/>
            <attribute tooltip="(X3D version 4.0 draft) [bboxDisplay &inputOutputLabel; &SFBoolLabel; &#34;false&#34;]&#10;Whether to display bounding box for associated geometry, aligned with world coordinates.&#10;Hint: the bounding box is displayed regardless of whether contained content is visible." name="bboxDisplay"/>
            <attribute tooltip="(X3D version 4.0 draft) [visible &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Whether or not renderable content within this node is visually displayed.&#10;Hint: the visible field has no effect on animation behaviors, event passing or other non-visual characteristics.&#10;Hint: content must be visible to be collidable and to be pickable." name="visible"/>
            <attribute tooltip="[containerField type NMTOKEN (children|sites|skeleton|viewpoints) &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/HAnimSite.gif" tooltip="(X3D version 4.0 draft) [X3DChildNode] An HAnimMotion node supports discrete frame-by-frame playback for H-Anim motion data animation. Design characteristics include integration with HAnim figure data and HAnimJoint nodes, animation control, and playback of raw motion data.&#10;Hint: HAnim Specification https://www.web3d.org/documents/specifications/19774/V2.0&#10;Hint: HAnim Specification, clause 6.2 Introduction to Motion objectshttps://www.web3d.org/documents/specifications/19774/V2.0/MotionDataAnimation/MotionNodes.html#IntroductionToMotionNodes&#10;Hint: HAnim Specification part 2, clause 6.6 Example Usage of Motion object https://www.web3d.org/documents/specifications/19774/V2.0/MotionDataAnimation/MotionNodes.html#MotionObjectExample" name="HAnimMotion">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[name &inputOutputLabel; type NMTOKEN #REQUIRED]&#10;Unique name attribute must be defined so that HAnimMotion node can be identified at run time for animation purposes." name="name"/>
            <attribute tooltip="[channels &inputOutputLabel; &SFStringLabel; #IMPLIED]&#10;list of number of channels for transformation, followed by transformation type of each channel of data. Each value is space or comma separated.&#10;Hint: channels are enabled by default, unless otherwise indicated by channelsEnabled field." name="channels"/>
            <attribute tooltip="[channelsEnabled &inputOutputLabel; &MFBoolLabel; #IMPLIED]&#10;boolean values for each channel indicating whether enabled." name="channelsEnabled"/>
            <attribute tooltip="[joints &inputOutputLabel; &SFStringLabel; #IMPLIED]&#10;joints field lists names of joints that raw motion data is to be applied to. The number and order of the names in the joints field shall match the number and order of the channels field information, and the number and order of the sets of values in the values field for each frame of the animation.&#10;Hint: values are space or comma separated.&#10;Hint: The joint name IGNORED shall be used for channel of motion data that is not used for any joint." name="joints"/>
            <attribute tooltip="(X3D version 4.0 draft) [loa &inputOutputLabel; &SFInt32Label; -1] [-1,4]&#10;Level Of Articulation 0..4 indicates complexity and detail of joints for given humanoid skeletal hierarchy.&#10;Hint: loa value of -1 indicates that no LOA conformance is provided.&#10;Hint: Humanoid Animation (HAnim) Specification, Part 1 Architecture, 4.8.4 Levels of articulation, https://www.web3d.org/documents/specifications/19774/V2.0/Architecture/concepts.html#LevelsOfArticulation" name="loa"/>
            <attribute tooltip="[cycleTime &outputOnlyLabel; &SFTimeLabel; #FIXED &#34;&#34;]&#10;cycleTime sends a time event at initial starting time and at beginning of each new cycle.&#10;Hint: this event is useful for synchronization with other time-based animation objects.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="cycleTime"/>
            <attribute tooltip="[description &inputOutputLabel; &SFStringLabel; #IMPLIED]&#10;Author-provided prose that describes intended purpose of this node.&#10;Hint: many XML tools substitute XML character references for special characters automatically if needed within an attribute value (such as &amp;#38; for &#38; ampersand character, or &amp;#34; for &#34; quotation-mark character)." name="description"/>
            <attribute tooltip="[enabled &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Enables/disables node operation." name="enabled"/>
            <attribute tooltip="[frameDuration &inputOutputLabel; &SFTimeLabel; &#34;0.1&#34;] (0,+&#8734;)&#10;frameDuration specifies the duration of each frame in seconds." name="frameDuration"/>
            <attribute tooltip="[frameIncrement &inputOutputLabel; &SFInt32Label; &#34;1&#34;] [-&#8734;,+&#8734;)&#10;frameIncrement field controls whether playback direction is forwards or backwards, and also whether frames are skipped (for example, subsampled replay). For a single animation step, the next frameIndex value equals (frameIndex + frameIncrement) modulo frameCount.&#10;Hint: note that setting frameIncrement to 0 prevents automatic advancement of frameIndex and pauses animation of HAnimMotion node." name="frameIncrement"/>
            <attribute tooltip="[frameIndex &inputOutputLabel; &SFInt32Label; &#34;0&#34;] [0,+&#8734;)&#10;frameIndex indicates index of current frame. Note that frameIndex can be modified whether the Motion node is enabled or not, and becomes effective when the next animation cycle occurs. Thus the frameIndex value indicates the frame currently (or next) being processed.&#10;Hint: frameIndex starts at 0 and is no greater than (frameCount - 1). Values less than 0 are reset as 0. Values greater or equal to frameCount are stored as (frameCount - 1). Thus the value of frameIndex shall be greater than or equal to zero, and less than frameCount." name="frameIndex"/>
            <attribute tooltip="[loop &inputOutputLabel; &SFBoolLabel; &#34;false&#34;]&#10;Repeat indefinitely when loop=true, repeat only once when loop=false." name="loop"/>
            <attribute tooltip="(X3D version 4.1 draft) [skeletalConfiguration &inputOutputLabel; &SFStringLabel; &apos;BASIC&apos;]&#10;Models sharing a common skeletal configuration can share animations and binding poses.&#10;Hint: a value of &apos;BASIC&apos; conforms to restrictive skeletal model in X3D Humanoid Animation (HAnim) Specification, Part 1 Architecture, 4.8 Modelling of humanoids, https://www.web3d.org/documents/specifications/19774/V2.0/Architecture/concepts.html#ModellingOfHumanoids" name="skeletalConfiguration"/>
            <attribute tooltip="[startFrame  &inputOutputLabel; &SFInt32Label; &#34;0&#34;] [0,+&#8734;)&#10;startFrame indicates initial index of animated frame.  Note that startFrame can precede, equal or follow endFrame.&#10;Hint: startFrame starts at 0 and is no greater than (frameCount - 1)." name="startFrame "/>
            <attribute tooltip="[endFrame &inputOutputLabel; &SFInt32Label; &#34;0&#34;] [0,+&#8734;)&#10;endFrame indicates final index of animated frame.  Note that endFrame can precede, equal or follow endFrame. The default endFrame value is reset to (frameCount - 1) whenever frameCount is changed.&#10;Hint: endFrame starts at 0 and is no greater than (frameCount - 1)." name="endFrame"/>
            <attribute tooltip="[totalFrameCount &inputOutputLabel; &SFInt32Label; &#34;0&#34;] [0,+&#8734;)&#10;totalFrameCount indicates the total number of frames present in the animation, equaling the number of sets of channel data rows present in the values array." name="totalFrameCount"/>
            <attribute tooltip="[values &inputOutputLabel; &MFFloatLabel; #IMPLIED]&#10;values field contains all transformation values, ordered first by frame, then by joint, and then by transformation&#10;Sets of floats in the values array matching the order listed in joints and channels fields." name="values"/>
            <attribute tooltip="[next &inputOnlyLabel; &SFBoolLabel; &#34;&#34;]&#10;Send next output value in keyValue array, and reset internal fraction field to match corresponding value in key array.&#10;Hint: this input event will &quot;wrap around&quot; boundary of frame array, i.e. continue from endFrame next to startFrame if necessary.&#10;Warning: it is an error to define this transient inputOnly field in an X3D file, instead only use it a destination for ROUTE events." name="next"/>
            <attribute tooltip="[previous &inputOnlyLabel; &SFBoolLabel; &#34;&#34;]&#10;Send previous output value in keyValue array, and reset internal fraction field to match corresponding value in key array.&#10;Hint: this input event will &quot;wrap around&quot; boundary of frame array, i.e. continue from startFrame next to endFrame if necessary.&#10;Warning: it is an error to define this transient inputOnly field in an X3D file, instead only use it a destination for ROUTE events." name="previous"/>
            <attribute tooltip="[elapsedTime &outputOnlyLabel; &SFTimeLabel; #FIXED &#34;&#34;] [0,+&#8734;)&#10;elapsedTime is computed elapsed time since the Motion object was activated and running, counting all traversed frames (as if frameIndex equaled 1) and multiplied by frameDuration, cumulative in seconds.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events.&#10;Hint: elapsedTime is a nonnegative SFTime duration interval, not an absolute clock time." name="elapsedTime"/>
            <attribute tooltip="[containerField type NMTOKEN (motions|children)&#34;motions&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>

        <!-- LatticeXvl: DTD extension example from X3D 3.0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
        <element icon="icons/XvlShell.gif" tooltip="XvlShell represents a LatticeXVL shell, which is a smooth surface defined by a mesh.&#10;The mesh consists of faces, edges and vertexes, as well as specifications of how strongly each component attracts the underlying surface.&#10;Hint: use a 3D authoring tool for XvlShell.&#10;Warning: XvlShell is a commercial extension to X3D." name="XvlShell">
        <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
        <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
        <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
        <attribute tooltip="[shellType &XvlShell.shellTypes; #REQUIRED]&#10;shellType indicates the overall geometry of the shell.&#10;POLYGON_MESH is a set of polygons similar to IndexedFaceSet.&#10;LATTICE_MESH is a smooth surface described by a mesh with rounding weights." name="shellType"/>
        <attribute tooltip="[numberOfDivisions &SFInt32Label; #IMPLIED]&#10;numberOfDivisions indicates the number of subdivisions of each face of the shell.&#10;It should be a positive even number." name="numberOfDivisions"/>
        <attribute tooltip="[vertexRound &MFFloatLabel; #IMPLIED]&#10;vertexRound specifies how strongly each vertex attracts the shell.&#10;Range is [0,2.0]&#10;where 0.0 is maximum attraction (shape must touch these vertices) and&#10;2.0 is maximum repulsion (shape is pushed as far from these vertices as possible)." name="vertexRound"/>
        <attribute tooltip="[edgeBeginCoordIndex &MFInt32Label; #IMPLIED]&#10;edgeBeginCoordIndex indices specify the start point of each edge." name="edgeBeginCoordIndex"/>
        <attribute tooltip="[edgeEndCoordIndex &MFInt32Label; #IMPLIED]&#10;edgeEndCoordIndex indices specify the end point of each edge." name="edgeEndCoordIndex"/>
        <attribute tooltip="[edgeRound &MFFloatLabel; #IMPLIED]&#10;edgeRound specifies how strongly each edge attracts the shell.&#10;Range is [0,2.0]&#10;where 0.0 is maximum attraction (shape must follow these edges) and&#10;2.0 is maximum repulsion (shape is pushed as far from these edges as possible)." name="edgeRound"/>
        <attribute tooltip="[edgeBeginVector &MFVec3fLabel; #IMPLIED]&#10;edgeBeginVector specifies the tangent vectors at the start points of each edge." name="edgeBeginVector"/>
        <attribute tooltip="[edgeEndVector &MFVec3fLabel; #IMPLIED]&#10;edgeEndVector specifies the tangent vectors at the end points of each edge." name="edgeEndVector"/>
        <attribute tooltip="[faceCoordIndex &MFInt32Label; #IMPLIED]&#10;faceCoordIndex is exactly like IndexedFaceSet:coordIndex.&#10;Its indices specify coordinates of each face.&#10;Order starts at index 0, commas are optional between sets, use -1 to separate indices for each face." name="faceCoordIndex"/>
        <attribute tooltip="[faceTexCoordIndex &MFInt32Label; #IMPLIED]&#10;faceTexCoordIndex is exactly like IndexedFaceSet:texCoordIndex.&#10;Its indices specify texture coordinates of each face.&#10;Hint: use a 3D authoring tool!" name="faceTexCoordIndex"/>
        <attribute tooltip="[faceEmpty &MFBoolLabel; #IMPLIED]&#10;faceEmpty specifies whether or not each face exists on the surface.&#10;False indicates that the face exists.&#10;True indicates that the face does not exist - i.e. that it is a hole in the surface." name="faceEmpty"/>
        <attribute tooltip="[faceHidden &MFBoolLabel; #IMPLIED]&#10;faceHidden specifies whether or not each face is visible.&#10;False indicates that the face is visible.&#10;True indicates that the face is not visible." name="faceHidden"/>
        <attribute tooltip="[containerField type NMTOKEN &#34;geometry&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        
        </element>
        -->

        <!-- Nurbs: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->

        <element icon="icons/NurbsCurve.gif" tooltip="[X3DNode] Contour2D groups a set of curve segments into a composite contour.&#10;The children segments form a closed loop, with first point of first child repeated as last point of last child, and last point of each segment repeated as the first point of the next consecutive segment.&#10;The children segments are type NurbsCurve2D or ContourPolyline2D, enumerated in the consecutive order of contour topology. Warning: Contour2D is not a renderable geometry node. Hint: Contour2D is used as the trimmingContour field of the NurbsTrimmedSurface node." name="Contour2D">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[children &inputOutputLabel; &MFNodeLabel;, empty list] [NurbsCurve2D|ContourPolyline2D]&#10;The children form a closed loop with first point of first child repeated as last point of last child, and the last point of a segment repeated as first point of the consecutive one.&#10;Hint: children nodes are listed in consecutive order according to topology of the contour." name="children"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;trimmingContour&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/NurbsCurve.gif" tooltip="[X3DNurbsControlCurveNode] ContourPolyline2D defines a linear curve segment as part of a trimming contour in the u-v domain of a NURBS surface. NurbsCurve2D and ContourPolyline2D nodes that together form a closed contour, defined in the u-v parametric space of a NURBS surface, may be used as children in a Contour2D node. Warning: ContourPolyline2D is not a renderable geometry node." name="ContourPolyline2D">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[controlPoint &inputOutputLabel; &MFVec2dLabel; #IMPLIED] controlPoint specifies the end points of each segment of the piecewise linear curve." name="controlPoint"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/NurbsCurve.gif" tooltip="[X3DParametricGeometryNode] NurbsCurve is a 3D curve analogous to NurbsPatchSurface. Hint: the contained controlPoint field can hold a Coordinate or CoordinateDouble node." name="NurbsCurve">
            <attribute tooltip="[controlPoint &inputOutputLabel; &SFNodeLabel;, NULL node] [Coordinate|CoordinateDouble|GeoCoordinate]&#10;Single contained Coordinate or CoordinateDouble node that can specify control points for NURBS geometry definitions." name="controlPoint"/>
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[knot &initializeOnlyLabel; &MFDoubleLabel; #IMPLIED]&#10;knot vector, where size = number of control points + order of curve." name="knot"/>
            <attribute tooltip="[order &initializeOnlyLabel; &SFInt32Label; &#34;3&#34;]&#10;define order of surface by polynomials of degree = order-1." name="order"/>
            <attribute tooltip="[weight &inputOutputLabel; &MFDoubleLabel; #IMPLIED]&#10;Vector assigning relative weight value to each control point." name="weight"/>
            <attribute tooltip="[tessellation &inputOutputLabel; &SFInt32Label; #IMPLIED]&#10;hint for surface tessellation." name="tessellation"/>
            <attribute tooltip="[closed &initializeOnlyLabel; &SFBoolLabel; &#34;false&#34;]&#10;Whether or not the curve is closed (i.e. matching end values)." name="closed"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;geometry&#34;]&#10;geometry is the field-label prefix indicating relationship to parent node.&#10;Example values: containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/NurbsCurve.gif" tooltip="[X3DNurbsControlCurveNode] NurbsCurve2D defines a trimming segment that is part of a trimming contour in the u-v domain of a surface. NurbsCurve2D and ContourPolyline2D nodes that together form a closed contour, defined in the u-v parametric space of a NURBS surface, may be used as children in a Contour2D node. Warning: NurbsCurve2D is not a renderable geometry node." name="NurbsCurve2D">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[controlPoint &inputOutputLabel; &MFVec2fLabel; #IMPLIED]&#10;controlPoint defines a set of control points of dimension uDimension by vDimension,&#10;and defines a mesh where the points do not have uniform spacing." name="controlPoint"/>
            <attribute tooltip="[knot &initializeOnlyLabel; &MFDoubleLabel; #IMPLIED]&#10;knot vector, where size = number of control points + order of curve." name="knot"/>
            <attribute tooltip="[order &initializeOnlyLabel; &SFInt32Label; &#34;2&#34;]&#10;define order of surface by polynomials of degree = order-1." name="order"/>
            <attribute tooltip="[weight &inputOutputLabel; &MFDoubleLabel; #IMPLIED]&#10;Vector assigning relative weight value to each control point." name="weight"/>
            <attribute tooltip="[tessellation &inputOutputLabel; &SFInt32Label; &#34;0&#34;]&#10;hint for surface tessellation." name="tessellation"/>
            <attribute tooltip="[closed &initializeOnlyLabel; &SFBoolLabel; &#34;false&#34;]&#10;Whether or not the curve is closed (i.e. matching end values)." name="closed"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/NurbsCurve.gif" tooltip="[X3DChildNode] NurbsOrientationInterpolator describes a 3D NURBS curve and outputs interpolated orientation values.&#10;Hint: the SFNode controlPoint field can contain a single Coordinate or CoordinateDouble node." name="NurbsOrientationInterpolator">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[controlPoint &inputOutputLabel; &SFNodeLabel;, NULL node] [Coordinate|CoordinateDouble|GeoCoordinate]&#10;Single contained Coordinate or CoordinateDouble node that can specify control points for NURBS geometry definitions." name="controlPoint"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[knot &inputOutputLabel; &MFDoubleLabel; #IMPLIED]&#10;knot vector, where size = number of control points + order of curve." name="knot"/>
            <attribute tooltip="[order &inputOutputLabel; &SFInt32Label; &#34;3&#34;]&#10;define order of surface by polynomials of degree = order-1." name="order"/>
            <attribute tooltip="[weight &inputOutputLabel; &MFDoubleLabel; #IMPLIED]&#10;Output values for computational interpolation, each corresponding to knots.&#10;Hint: number of weights must match number of knots!" name="weight"/>
            <attribute tooltip="[set_fraction &inputOnlyLabel; &SFFloatLabel; #FIXED &#34;&#34;]&#10;setting fraction in range [0,1] selects input key for corresponding keyValue output, computing a 3D position on the curve.&#10;Hint: set_fraction values are typically in same range interval as values in the key array. Response to an input set_fraction value less than minimum is equivalent to minimum key, and response to an input set_fraction value greater than maximum is equivalent to maximum key.&#10;Warning: it is an error to define this transient inputOnly field in an X3D file, instead only use it a destination for ROUTE events." name="set_fraction"/>
            <attribute tooltip="[value_changed &outputOnlyLabel; &SFRotationLabel; #FIXED &#34;&#34;]&#10;Computationaly interpolated output value determined by current key time and corresponding keyValue pair.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="value_changed"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/NurbsCurve.gif" tooltip="[X3DChildNode] NurbsPositionInterpolator describes a 3D NURBS curve and outputs interpolated position values.&#10;Hint: the SFNode controlPoint field can contain a single Coordinate or CoordinateDouble node." name="NurbsPositionInterpolator">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[controlPoint &inputOutputLabel; &SFNodeLabel;, NULL node] [Coordinate|CoordinateDouble|GeoCoordinate]&#10;Single contained Coordinate or CoordinateDouble node that can specify control points for NURBS geometry definitions." name="controlPoint"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[knot &inputOutputLabel; &MFDoubleLabel; #IMPLIED]&#10;knot vector, where size = number of control points + order of curve." name="knot"/>
            <attribute tooltip="[order &inputOutputLabel; &SFInt32Label; &#34;3&#34;]&#10;define order of surface by polynomials of degree = order-1." name="order"/>
            <attribute tooltip="[weight &inputOutputLabel; &MFDoubleLabel; #IMPLIED]&#10;Output values for linear interpolation, each corresponding to knots.&#10;Hint: number of weights must match number of knots!" name="weight"/>
            <attribute tooltip="[set_fraction &inputOnlyLabel; &SFFloatLabel; #FIXED &#34;&#34;]&#10;setting fraction in range [0,1] selects input key for corresponding keyValue output, computing a 3D position on the curve.&#10;Hint: set_fraction values are typically in same range interval as values in the key array. Response to an input set_fraction value less than minimum is equivalent to minimum key, and response to an input set_fraction value greater than maximum is equivalent to maximum key.&#10;Warning: it is an error to define this transient inputOnly field in an X3D file, instead only use it a destination for ROUTE events." name="set_fraction"/>
            <attribute tooltip="[value_changed &outputOnlyLabel; &SFVec3fLabel; #FIXED &#34;&#34;]&#10;Computationaly interpolated output value determined by current key time and corresponding keyValue pair.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="value_changed"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/NurbsCurve.gif" tooltip="[X3DChildNode] NurbsSurfaceInterpolator describes a 3D NURBS curve and outputs interpolated position and normal values.&#10;Hint: the SFNode controlPoint field can contain a single Coordinate or CoordinateDouble node." name="NurbsSurfaceInterpolator">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[controlPoint &inputOutputLabel; &SFNodeLabel;, NULL node] [Coordinate|CoordinateDouble|GeoCoordinate]&#10;Single contained Coordinate or CoordinateDouble node that can specify control points for NURBS geometry definitions." name="controlPoint"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[uDimension &initializeOnlyLabel; &SFInt32Label; &#34;0&#34;]&#10;Number of control points in u dimension." name="uDimension"/>
            <attribute tooltip="[vDimension &initializeOnlyLabel; &SFInt32Label; &#34;0&#34;]&#10;Number of control points in v dimension." name="vDimension"/>
            <attribute tooltip="[uKnot &initializeOnlyLabel; &MFDoubleLabel; #IMPLIED]&#10;Knot vector, where size = number of control points + order of curve." name="uKnot"/>
            <attribute tooltip="[vKnot &initializeOnlyLabel; &MFDoubleLabel; #IMPLIED]&#10;Knot vector, where size = number of control points + order of curve." name="vKnot"/>
            <attribute tooltip="[uOrder &initializeOnlyLabel; &SFInt32Label; &#34;3&#34;]&#10;Define order of surface by polynomials of degree = order-1." name="uOrder"/>
            <attribute tooltip="[vOrder &initializeOnlyLabel; &SFInt32Label; &#34;3&#34;]&#10;Define order of surface by polynomials of degree = order-1." name="vOrder"/>
            <attribute tooltip="[weight &inputOutputLabel; &MFDoubleLabel; #IMPLIED]&#10;Output values for linear interpolation, each corresponding to knots.&#10;Hint: number of weights must match number of knots!" name="weight"/>
            <attribute tooltip="[set_fraction &inputOnlyLabel; &SFFloatLabel; #FIXED &#34;&#34;]&#10;setting fraction in range [0,1] selects input key for corresponding keyValue output, computing a 3D position on the curve.&#10;Hint: set_fraction values are typically in same range interval as values in the key array. Response to an input set_fraction value less than minimum is equivalent to minimum key, and response to an input set_fraction value greater than maximum is equivalent to maximum key.&#10;Warning: it is an error to define this transient inputOnly field in an X3D file, instead only use it a destination for ROUTE events." name="set_fraction"/>
            <attribute tooltip="[normal_changed &outputOnlyLabel; &SFVec3fLabel; #FIXED &#34;&#34;]&#10;Computationaly interpolated output value determined by current key time and corresponding keyValue pair.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="normal_changed"/>
            <attribute tooltip="[position_changed &outputOnlyLabel; &SFVec3fLabel; #FIXED &#34;&#34;]&#10;Computationaly interpolated output value determined by current key time and corresponding keyValue pair.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="position_changed"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/NurbsCurve.gif" tooltip="[X3DNode] NurbsTextureCoordinate describes a 3D NURBS surface&#10;in the parametric domain of its surface host, specifying mapping of texture onto the surface.&#10;Hint: the SFNode controlPoint field can contain a single Coordinate or CoordinateDouble node." name="NurbsTextureCoordinate">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[uDimension &initializeOnlyLabel; &SFInt32Label; &#34;0&#34;]&#10;Number of control points in u dimension." name="uDimension"/>
            <attribute tooltip="[vDimension &initializeOnlyLabel; &SFInt32Label; &#34;0&#34;]&#10;Number of control points in v dimension." name="vDimension"/>
            <attribute tooltip="[uKnot &initializeOnlyLabel; &MFDoubleLabel; #IMPLIED]&#10;Knot vector, where size = number of control points + order of curve." name="uKnot"/>
            <attribute tooltip="[vKnot &initializeOnlyLabel; &MFDoubleLabel; #IMPLIED]&#10;Knot vector, where size = number of control points + order of curve." name="vKnot"/>
            <attribute tooltip="[uOrder &initializeOnlyLabel; &SFInt32Label; &#34;3&#34;]&#10;Define order of surface by polynomials of degree = order-1." name="uOrder"/>
            <attribute tooltip="[vOrder &initializeOnlyLabel; &SFInt32Label; &#34;3&#34;]&#10;Define order of surface by polynomials of degree = order-1." name="vOrder"/>
            <attribute tooltip="[controlPoint &inputOutputLabel; &MFVec2fLabel; #IMPLIED]&#10;controlPoint defines a set of control points of dimension uDimension by vDimension,&#10;and defines a mesh where the points do not have uniform spacing." name="controlPoint"/>
            <attribute tooltip="[weight &inputOutputLabel; &MFFloatLabel; #IMPLIED]&#10;Output values for linear interpolation, each corresponding to knots.&#10;Hint: number of weights must match number of knots!" name="weight"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;texCoord&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/Group.gif" tooltip="[X3DChildNode,X3DBoundedObject] NurbsSet collects a set of NurbsSurface nodes into a common group and treats NurbsSurface set as a unit during tessellation, thereby enforcing tessellation continuity along borders.&#10;Warning: geometry represented in children of this node shall not be directly rendered. It is an informational node only.&#10;Warning: Surfaces not represented elsewhere in transformation hierarchy shall not be rendered.&#10;Hint: USE nodes for geometry ensure renderable versions occur elsewhere in the model.&#10;The bounds information is provided for optimization purposes only. A browser may choose to use this information about when to apply trimming or smooth tessellation between patches based on the bounds information." name="NurbsSet">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[geometry &inputOutputLabel; &MFNodeLabel;, empty list] [NurbsPatchSurface|NurbsTrimmedSurface]&#10;The children form a closed loop with first point of first child repeated as last point of last child, and the last point of a segment repeated as first point of the consecutive one.&#10;Hint: children nodes are listed in consecutive order according to topology of the contour.&#10;Warning: geometry represented in children of this node shall not be directly rendered. It is an informational node only.&#10;Warning: Surfaces not represented elsewhere in transformation hierarchy shall not be rendered.&#10;Hint: utilizing USE nodes for geometry can ensure that rendered geometry occurs elsewhere in the model." name="geometry"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[tessellationScale &inputOutputLabel; &SFFloatLabel; &#34;1&#34;]&#10;scale for surface tessellation in children NurbsSurface nodes." name="tessellationScale"/>
            <attribute tooltip="[bboxCenter &initializeOnlyLabel; &SFVec3fLabel; &#34;0 0 0&#34;]&#10;Bounding box center accompanies bboxSize and provides an optional hint for bounding box position offset from origin of local coordinate system.&#10;Hint: precomputation and inclusion of bounding box information can speed up the initialization of large detailed models, with a corresponding cost of increased file size.&#10;Hint: X3D Architecture, 10.2.2 Bounding boxes https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#BoundingBoxes&#10;Hint:  X3D Architecture, 10.3.1 X3DBoundedObject https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#X3DBoundedObject" name="bboxCenter"/>
            <attribute tooltip="[bboxSize &initializeOnlyLabel; &SFVec3fLabel; &#34;-1 -1 -1&#34;] or [0,+&#8734;)&#10;Bounding box size is usually omitted, and can easily be calculated automatically by an X3D player at scene-loading time with minimal computational cost. Bounding box size can also be defined as an optional authoring hint that suggests an optimization or constraint.&#10;Hint: can be useful for collision computations or inverse-kinematics (IK) engines.&#10;Hint: precomputation and inclusion of bounding box information can speed up the initialization of large detailed models, with a corresponding cost of increased file size.&#10;Hint: X3D Architecture, 10.2.2 Bounding boxes https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#BoundingBoxes&#10;Hint:  X3D Architecture, 10.3.1 X3DBoundedObject https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#X3DBoundedObject" name="bboxSize"/>
            <attribute tooltip="(X3D version 4.0 draft) [bboxDisplay &inputOutputLabel; &SFBoolLabel; &#34;false&#34;]&#10;Whether to display bounding box for associated geometry, aligned with world coordinates.&#10;Hint: the bounding box is displayed regardless of whether contained content is visible." name="bboxDisplay"/>
            <attribute tooltip="(X3D version 4.0 draft) [visible &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Whether or not renderable content within this node is visually displayed.&#10;Hint: the visible field has no effect on animation behaviors, event passing or other non-visual characteristics.&#10;Hint: content must be visible to be collidable and to be pickable." name="visible"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/NurbsSurface.gif" tooltip="[X3DNurbsSurfaceGeometryNode] NurbsPatchSurface defines a contiguous 3D Non-Uniform Rational B-Spline (NURBS) surface." name="NurbsPatchSurface">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[controlPoint &inputOutputLabel; &SFNodeLabel;, NULL node] [Coordinate|CoordinateDouble|GeoCoordinate]&#10;Single contained Coordinate or CoordinateDouble node that can specify control points for NURBS geometry definitions." name="controlPoint"/>
            <attribute tooltip="[texCoord &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DTextureCoordinateNode|NurbsTextureCoordinate]&#10;Single contained NurbsTextureCoordinate, TextureCoordinate, TextureCoordinateGenerator or MultiTextureCoordinate node that can specify coordinates for texture mapping onto corresponding geometry." name="texCoord"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[uClosed &initializeOnlyLabel; &SFBoolLabel; &#34;false&#34;]&#10;Whether opposite surface sides are closed (seamless) across u dimension." name="uClosed"/>
            <attribute tooltip="[vClosed &initializeOnlyLabel; &SFBoolLabel; &#34;false&#34;]&#10;Whether opposite surface sides are closed (seamless) across u dimension." name="vClosed"/>
            <attribute tooltip="[uDimension &initializeOnlyLabel; &SFInt32Label; &#34;0&#34;]&#10;Number of control points in u dimension." name="uDimension"/>
            <attribute tooltip="[vDimension &initializeOnlyLabel; &SFInt32Label; &#34;0&#34;]&#10;Number of control points in v dimension." name="vDimension"/>
            <attribute tooltip="[uKnot &initializeOnlyLabel; &MFDoubleLabel; #IMPLIED]&#10;knot vector, where size = number of control points + order of curve." name="uKnot"/>
            <attribute tooltip="[vKnot &initializeOnlyLabel; &MFDoubleLabel; #IMPLIED]&#10;knot vector, where size = number of control points + order of curve." name="vKnot"/>
            <attribute tooltip="[uOrder &initializeOnlyLabel; &SFInt32Label; &#34;3&#34;]&#10;define order of surface by polynomials of degree = order-1." name="uOrder"/>
            <attribute tooltip="[vOrder &initializeOnlyLabel; &SFInt32Label; &#34;3&#34;]&#10;define order of surface by polynomials of degree = order-1." name="vOrder"/>
            <attribute tooltip="[uTessellation &inputOutputLabel; &SFInt32Label; &#34;0&#34;]&#10;hint for surface tessellation." name="uTessellation"/>
            <attribute tooltip="[vTessellation &inputOutputLabel; &SFInt32Label; &#34;0&#34;]&#10;hint for surface tessellation." name="vTessellation"/>
            <attribute tooltip="[weight &inputOutputLabel; &MFDoubleLabel; #IMPLIED]&#10;Vector assigning relative weight value to each control point." name="weight"/>
            <attribute tooltip="[solid &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Setting solid true means draw only one side of polygons (backface culling on), setting solid false means draw both sides of polygons (backface culling off).&#10;Hint: mnemonic &quot;this geometry is solid like a brick&quot; (you don't render the inside of a brick).&#10;Warning: default value true can completely hide geometry if viewed from wrong side!&#10;Hint: if in doubt, use solid='false' for maximum visibility.&#10;Hint: (X3D version 4.0 draft) accessType relaxed to inputOutput in order to support animation and visualization." name="solid"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;surface&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/NurbsSurface.gif" tooltip="[X3DNurbsSurfaceGeometryNode] NurbsTrimmedSurface generates texture coordinates from a Non-Uniform Rational B-Spline (NURBS) surface." name="NurbsTrimmedSurface">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[controlPoint &inputOutputLabel; &SFNodeLabel;, NULL node] [Coordinate|CoordinateDouble|GeoCoordinate]&#10;Single contained Coordinate or CoordinateDouble node that can specify control points for NURBS geometry definitions." name="controlPoint"/>
            <attribute tooltip="[texCoord &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DTextureCoordinateNode|NurbsTextureCoordinate]&#10;Single contained NurbsTextureCoordinate, TextureCoordinate, TextureCoordinateGenerator or MultiTextureCoordinate node that can specify coordinates for texture mapping onto corresponding geometry." name="texCoord"/>
            <attribute tooltip="[trimmingContour &inputOutputLabel; &MFNodeLabel;, empty list] [Contour2D]&#10; A set of Contour2D nodes are used as trimming loops.&#10;Hint: if no trimming contours are defined, NurbsTrimmedSurface has same semantics as NurbsPatchSurface node." name="trimmingContour"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[uClosed &initializeOnlyLabel; &SFBoolLabel; &#34;false&#34;]&#10;Whether opposite surface sides are closed (seamless) across u dimension." name="uClosed"/>
            <attribute tooltip="[vClosed &initializeOnlyLabel; &SFBoolLabel; &#34;false&#34;]&#10;Whether opposite surface sides are closed (seamless) across u dimension." name="vClosed"/>
            <attribute tooltip="[uDimension &initializeOnlyLabel; &SFInt32Label; &#34;0&#34;]&#10;Number of control points in u dimension." name="uDimension"/>
            <attribute tooltip="[vDimension &initializeOnlyLabel; &SFInt32Label; &#34;0&#34;]&#10;Number of control points in v dimension." name="vDimension"/>
            <attribute tooltip="[uKnot &initializeOnlyLabel; &MFDoubleLabel; #IMPLIED]&#10;Knot vector, where size = number of control points + order of curve." name="uKnot"/>
            <attribute tooltip="[vKnot &initializeOnlyLabel; &MFDoubleLabel; #IMPLIED]&#10;Knot vector, where size = number of control points + order of curve." name="vKnot"/>
            <attribute tooltip="[uOrder &initializeOnlyLabel; &SFInt32Label; &#34;3&#34;]&#10;Define order of surface by polynomials of degree = order-1." name="uOrder"/>
            <attribute tooltip="[vOrder &initializeOnlyLabel; &SFInt32Label; &#34;3&#34;]&#10;Define order of surface by polynomials of degree = order-1." name="vOrder"/>
            <attribute tooltip="[uTessellation &inputOutputLabel; &SFInt32Label; &#34;0&#34;]&#10;hint for surface tessellation." name="uTessellation"/>
            <attribute tooltip="[vTessellation &inputOutputLabel; &SFInt32Label; &#34;0&#34;]&#10;hint for surface tessellation." name="vTessellation"/>
            <attribute tooltip="[weight &inputOutputLabel; &MFDoubleLabel; #IMPLIED]&#10;Vector assigning relative weight value to each control point." name="weight"/>
            <attribute tooltip="[solid &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Setting solid true means draw only one side of polygons (backface culling on), setting solid false means draw both sides of polygons (backface culling off).&#10;Hint: mnemonic &quot;this geometry is solid like a brick&quot; (you don't render the inside of a brick).&#10;Warning: default value true can completely hide geometry if viewed from wrong side!&#10;Hint: if in doubt, use solid='false' for maximum visibility.&#10;Hint: (X3D version 4.0 draft) accessType relaxed to inputOutput in order to support animation and visualization." name="solid"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;texCoord&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element tooltip="[X3DParametricGeometryNode] NurbsSweptSurface uses a trajectoryCurve path to describe a generalized surface that is swept by a crossSectionCurve.&#10;Hint: conceptually it is the NURBS equivalent of Extrusion but permits the use of non-closed cross sections." name="NurbsSweptSurface">
            <attribute tooltip="[crossSectionCurve &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DNurbsControlCurveNode]&#10; defines cross-section of the surface traced about the trajectoryCurve axis." name="crossSectionCurve"/>
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[trajectoryCurve &inputOutputLabel; &SFNodeLabel;, NULL node] [NurbsCurve]&#10; describes the center-line path using a NurbsCurve node, oriented so that it is defined counterclockwise when looking down the −Y axis, thus defining a concept of inside and outside." name="trajectoryCurve"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[ccw &initializeOnlyLabel; &SFBoolLabel; &#34;true&#34;]&#10; ccw defines clockwise/counterclockwise ordering of vertex coordinates, which in turn defines front/back orientation of polygon normals according to Right-Hand Rule (RHR).&#10;Hint: a good debugging technique for problematic polygons is to try changing the value of ccw, which can reverse solid effects (single-sided backface culling) and normal-vector direction.&#10;Warning: consistent and correct ordering of left-handed or right-handed point sequences is important throughout the coord array of point values.&#10;Hint: clockwise https://en.wikipedia.org/wiki/Clockwise" name="ccw"/>
            <attribute tooltip="[solid &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Setting solid true means draw only one side of polygons (backface culling on), setting solid false means draw both sides of polygons (backface culling off).&#10;Hint: mnemonic &quot;this geometry is solid like a brick&quot; (you don't render the inside of a brick).&#10;Warning: default value true can completely hide geometry if viewed from wrong side!&#10;Hint: if in doubt, use solid='false' for maximum visibility.&#10;Hint: (X3D version 4.0 draft) accessType relaxed to inputOutput in order to support animation and visualization." name="solid"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;geometry&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element tooltip="[X3DNurbsControlCurveNode] NurbsSwungSurface contains a profileCurve and a trajectoryCurve [X3DNurbsControlCurveNode]." name="NurbsSwungSurface">
            <attribute tooltip="[profileCurve &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DNurbsControlCurveNode]&#10; 2D curve in the yz-plane that describes the cross-sectional shape of the object." name="profileCurve"/>
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[trajectoryCurve &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DNurbsControlCurveNode]&#10; 2D curve in the xz-plane that describes  path over which to trace the cross-section." name="trajectoryCurve"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[ccw &initializeOnlyLabel; &SFBoolLabel; &#34;true&#34;]&#10; ccw defines clockwise/counterclockwise ordering of vertex coordinates, which in turn defines front/back orientation of polygon normals according to Right-Hand Rule (RHR).&#10;Hint: a good debugging technique for problematic polygons is to try changing the value of ccw, which can reverse solid effects (single-sided backface culling) and normal-vector direction.&#10;Warning: consistent and correct ordering of left-handed or right-handed point sequences is important throughout the coord array of point values.&#10;Hint: clockwise https://en.wikipedia.org/wiki/Clockwise" name="ccw"/>
            <attribute tooltip="[solid &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Setting solid true means draw only one side of polygons (backface culling on), setting solid false means draw both sides of polygons (backface culling off).&#10;Hint: mnemonic &quot;this geometry is solid like a brick&quot; (you don't render the inside of a brick).&#10;Warning: default value true can completely hide geometry if viewed from wrong side!&#10;Hint: if in doubt, use solid='false' for maximum visibility.&#10;Hint: (X3D version 4.0 draft) accessType relaxed to inputOutput in order to support animation and visualization." name="solid"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;geometry&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/Script2.gif" tooltip="(X3D version 3.1 or later) [X3DShaderNode,X3DProgrammableShaderObject] ComposedShader defines a shader where the individual source files are assembled from contained ShaderPart program sections. All access to shading capabilities is defined through a single interface that applies to all parts.&#10;Hint: ComposedShader contains field declarations and then corresponding IS/connect statements (if any), followed by &lt;ShaderPart containerField='parts'/&gt; nodes.&#10;Warning: ComposedShader does not contain CDATA section of plain-text source code. All source programs are contained in child ShaderPart nodes.&#10;Hint: apply default containerField='shaders' when parent node is Appearance." name="ComposedShader">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[X3D statement #field] Include a field statement for each field declaration in the ComposedShader node." name="field"/>
            <attribute tooltip="[parts &inputOutputLabel; &MFNodeLabel;, empty list] [ShaderPart]&#10;ComposedShader can contain multiple ShaderPart nodes in the parts field." name="parts"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[activate &inputOnlyLabel; &SFBoolLabel;]&#10;activate forces the shader to activate the contained objects.&#10;Warning: it is an error to define this transient inputOnly field in an X3D file, instead only use it a destination for ROUTE events." name="activate"/>
            <attribute tooltip="[isSelected &outputOnlyLabel; &SFBoolLabel;]&#10;isSelected indicates this shader instance is selected for use by browser&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="isSelected"/>
            <attribute tooltip="[isValid &outputOnlyLabel; &SFBoolLabel;]&#10;isValid indicates whether current shader objects can be run as a shader program.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="isValid"/>
            <attribute tooltip="[language &initializeOnlyLabel; &SFStringLabel; #IMPLIED]&#10;The language field indicates to the X3D player which shading language is used.&#10;The language field may be used to optionally determine the language type if no MIME-type information is available.&#10;Hint: recognized values include &quot;Cg&quot; &quot;GLSL&quot; &quot;HLSL&quot;." name="language"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;shaders&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element tooltip="(X3D version 3.1 or later) [X3DVertexAttributeNode] FloatVertexAttribute defines a set of per-vertex single-precision floating-point attributes." name="FloatVertexAttribute">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[name &inputOutputLabel;, type NMTOKEN #REQUIRED]&#10;Required name for this particular VertexAttribute instance.&#10;Warning: name is not specified if this instance is a USE node.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="name"/>
            <attribute tooltip="[value &inputOutputLabel; &MFFloatLabel; &#34;&#34;]&#10;value specifies an arbitrary collection of floating-point values that will be passed to the shader as per-vertex information.&#10;Hint: the length of the value field shall be a multiple of numComponents." name="value"/>
            <attribute tooltip="[numComponents &initializeOnlyLabel; &SFFloatLabel; (1,4) &#34;4&#34;]&#10;numComponents pecifies how many consecutive floating-point values should be grouped together per vertex.&#10;Hint: the length of the value field shall be a multiple of numComponents." name="numComponents"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;attrib&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element tooltip="(X3D version 3.1 or later) [X3DVertexAttributeNode] Matrix3VertexAttribute defines a set of per-vertex 3x3 matrix attributes." name="Matrix3VertexAttribute">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[name &inputOutputLabel;, type NMTOKEN #REQUIRED]&#10;Required name for this particular VertexAttribute instance.&#10;Warning: name is not specified if this instance is a USE node.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="name"/>
            <attribute tooltip="[value &inputOutputLabel; &MFMatrix3fLabel; &#34;&#34;]&#10;value specifies an arbitrary collection of matrix values that will be passed to the shader as per-vertex information.&#10;Hint: the length of the value field shall be a multiple of numComponents." name="value"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;attrib&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element tooltip="(X3D version 3.1 or later) [X3DVertexAttributeNode] Matrix4VertexAttribute defines a set of per-vertex 4x4 matrix attributes." name="Matrix4VertexAttribute">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[name &inputOutputLabel;, type NMTOKEN #REQUIRED]&#10;Required name for this particular VertexAttribute instance.&#10;Warning: name is not specified if this instance is a USE node.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="name"/>
            <attribute tooltip="[value &inputOutputLabel; &MFMatrix4fLabel; &#34;&#34;]&#10;value specifies an arbitrary collection of matrix values that will be passed to the shader as per-vertex information.&#10;Hint: the length of the value field shall be a multiple of numComponents." name="value"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;attrib&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/Script2.gif" tooltip="(X3D version 3.1 or later) [X3DShaderNode,X3DUrlObject,X3DProgrammableShaderObject] PackagedShader contains a url for a single file that may contain a number of shaders and combined effects.&#10;Hint: PackagedShader contains field declarations and then corresponding IS/connect statements (if any).&#10;Warning: PackagedShader does not contain CDATA section of plain-text source code.&#10;Hint: apply default containerField='shaders' when parent node is Appearance.&#10;Hint: when parent node is LoadSensor, apply containerField='children' (X3Dv4) or containerField='watchList' (X3Dv3). https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#fieldNameChanges" name="PackagedShader">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[X3D statement #field] Include a field statement for each field declaration in the PackagedShader node." name="field"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[activate &inputOnlyLabel; &SFBoolLabel;]&#10;activate forces the shader to activate the contained objects.&#10;Warning: it is an error to define this transient inputOnly field in an X3D file, instead only use it a destination for ROUTE events." name="activate"/>
            <attribute tooltip="[isSelected &outputOnlyLabel; &SFBoolLabel;]&#10;isSelected indicates this shader instance is selected for use by browser&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="isSelected"/>
            <attribute tooltip="[isValid &outputOnlyLabel; &SFBoolLabel;]&#10;isValid indicates whether current shader objects can be run as a shader program.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="isValid"/>
            <attribute tooltip="[language &initializeOnlyLabel; &SFStringLabel; #IMPLIED]&#10;The language field indicates to the X3D player which shading language is used.&#10;The language field may be used to optionally determine the language type if no MIME-type information is available.&#10;Hint: recognized values include &quot;Cg&quot; &quot;GLSL&quot; &quot;HLSL&quot;." name="language"/>
            <attribute tooltip="(X3D version 4.0 draft) [autoRefresh &inputOutputLabel; &SFTimeLabel; &#34;0.0&#34;]&#10;autoRefresh defines interval in seconds before automatic reload of current url asset is performed.&#10;Hint: if preceding file loading fails or load field is false, no refresh is performed.&#10;Hint: repeated refresh attempts to reload currently loaded entry of url list. If that fails, the browser retries other entries in the url list.&#10;Warning: automatically reloading content has security considerations and needs to be considered carefully." name="autoRefresh"/>
            <attribute tooltip="(X3D version 4.0 draft) [autoRefreshTimeLimit &inputOutputLabel; &SFTimeLabel; &#34;3600.0&#34;]&#10;autoRefreshTimeLimit defines maximum duration that automatic refresh activity can occur.&#10;Hint: Automatic refresh is different than query and response timeouts performed by a networking library while sequentially attempting to retrieve addressed content from a url list.&#10;Warning: automatically reloading content has security considerations and needs to be considered carefully." name="autoRefreshTimeLimit"/>
            <attribute tooltip="(X3D version 4.0 draft) [description &inputOutputLabel; &SFStringLabel; #IMPLIED]&#10;Author-provided prose that describes intended purpose of the url asset.&#10;Hint: many XML tools substitute XML character references for special characters automatically if needed within an attribute value (such as &amp;#38; for &#38; ampersand character, or &amp;#34; for &#34; quotation-mark character)." name="description"/>
            <attribute tooltip="(X3D version 4.0 draft) [load &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;load=true means load immediately,&#10;load=false means defer loading or else unload a previously loaded scene.&#10;Hint: allows author to design when Inline loading occurs via user interaction, event chains or scripting.&#10;Hint: use a separate LoadSensor node to detect when loading is complete." name="load"/>
            <attribute tooltip="[url &inputOutputLabel; &MFStringLabel; #IMPLIED]&#10;url points to a shader source-code file that may contain a number of shaders and combined effects.&#10;Hint: X3D Scene Authoring Hints, urls https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#urls" name="url"/>
            <attribute tooltip="[containerField type NMTOKEN (shaders|watchList) &#34;shaders&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/Script2.gif" tooltip="(X3D version 3.1 or later) [X3DShaderNode] ProgramShader defines a shader that consists of one or more individually programmable, self-contained pieces.&#10;ProgramShader contains IS/connect and programs [ShaderProgram] nodes.&#10;Warning: ProgramShader contains no field declarations and no plain-text CDATA block source code.&#10;Hint: apply default containerField='shaders' when parent node is Appearance." name="ProgramShader">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[programs &inputOutputLabel; &MFNodeLabel;, empty list] [ShaderProgram]&#10;ProgramShader contains zero or more ShaderProgram node instances. In general, only two ShaderProgram instances are needed: one each for vertex and fragment processing.&#10;Hint: each shader language defines required behavior for processing this field." name="programs"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[activate &inputOnlyLabel; &SFBoolLabel;]&#10;activate forces the shader to activate the contained objects.&#10;Warning: it is an error to define this transient inputOnly field in an X3D file, instead only use it a destination for ROUTE events." name="activate"/>
            <attribute tooltip="[isSelected &outputOnlyLabel; &SFBoolLabel;]&#10;isSelected indicates this shader instance is selected for use by browser&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="isSelected"/>
            <attribute tooltip="[isValid &outputOnlyLabel; &SFBoolLabel;]&#10;isValid indicates whether current shader objects can be run as a shader program.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="isValid"/>
            <attribute tooltip="[language &initializeOnlyLabel; &SFStringLabel; #IMPLIED]&#10;The language field indicates to the X3D player which shading language is used.&#10;The language field may be used to optionally determine the language type if no MIME-type information is available.&#10;Hint: recognized values include &quot;Cg&quot; &quot;GLSL&quot; &quot;HLSL&quot;." name="language"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;shaders&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/Script2.gif" tooltip="(X3D version 3.1 or later) [X3DNode,X3DUrlObject] ShaderPart defines the source for a portion of source code used by a ComposedShader node.&#10;The source is not required to be a complete shader for all of the vertex/fragment processing.&#10; Hint: ShaderPart can contain a CDATA block of plain-text source code.&#10;Hint: embedded ecmascript: source can also be contained in the sourceCode pseudo-field without escape characters, equivalent to last entry in the url list, when using other API codebases and file encodings.&#10;Warning: ShaderPart contains no field declarations.&#10;Hint: insert an XML Character Data (CDATA) block within the Script node to contain source code embedded within an X3D scene, avoiding the need for escape characters.&#10;Hint: a contained XML Character Data (CDATA) block for source code  protects whitespace, line breaks, and literal characters (such as &amp; for ampersand character, &lt; for less-than-sign character, and &gt; for greater-than-sign character) from unintended escape-character modifications by XML parsers.&#10;Warning: strict order is required for contained constructs: first field declarations (if any), then IS/connect statements (if any), and finally CDATA source-code block.&#10;Hint: ShaderPart subprograms are written in the same language, which is specified in the parent ComposedShader node.&#10;Hint: when parent node is LoadSensor, apply containerField='children' (X3Dv4) or containerField='watchList' (X3Dv3). https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#fieldNameChanges" name="ShaderPart">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="(X3D version 4.0 draft) [autoRefresh &inputOutputLabel; &SFTimeLabel; &#34;0.0&#34;]&#10;autoRefresh defines interval in seconds before automatic reload of current url asset is performed.&#10;Hint: if preceding file loading fails or load field is false, no refresh is performed.&#10;Hint: repeated refresh attempts to reload currently loaded entry of url list. If that fails, the browser retries other entries in the url list.&#10;Warning: automatically reloading content has security considerations and needs to be considered carefully." name="autoRefresh"/>
            <attribute tooltip="(X3D version 4.0 draft) [autoRefreshTimeLimit &inputOutputLabel; &SFTimeLabel; &#34;3600.0&#34;]&#10;autoRefreshTimeLimit defines maximum duration that automatic refresh activity can occur.&#10;Hint: Automatic refresh is different than query and response timeouts performed by a networking library while sequentially attempting to retrieve addressed content from a url list.&#10;Warning: automatically reloading content has security considerations and needs to be considered carefully." name="autoRefreshTimeLimit"/>
            <attribute tooltip="(X3D version 4.0 draft) [description &inputOutputLabel; &SFStringLabel; #IMPLIED]&#10;Author-provided prose that describes intended purpose of the url asset.&#10;Hint: many XML tools substitute XML character references for special characters automatically if needed within an attribute value (such as &amp;#38; for &#38; ampersand character, or &amp;#34; for &#34; quotation-mark character)." name="description"/>
            <attribute tooltip="(X3D version 4.0 draft) [load &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;load=true means load immediately,&#10;load=false means defer loading or else unload a previously loaded scene.&#10;Hint: allows author to design when Inline loading occurs via user interaction, event chains or scripting.&#10;Hint: use a separate LoadSensor node to detect when loading is complete." name="load"/>
            <attribute tooltip="[url &inputOutputLabel; &MFStringLabel; #IMPLIED]&#10;Location and filename of shader.&#10;Multiple locations are more reliable, and including a Web address lets e-mail attachments work.&#10;Hint: MFString arrays can have multiple values, so separate each individual string by quote marks &quot;https://www.web3d.org&quot; &quot;https://www.web3d.org/about&quot; &quot;etc.&quot;&#10;Hint: alternative XML encoding for quotation mark &quot; is &#38;quot; (which is an example of a character entity).&#10;Warning: strictly match directory and filename capitalization for http links! This is important for portability. Some operating systems are forgiving of capitalization mismatches, but http/https url addresses and paths in Unix-based operating systems are all case sensitive and intolerant of uppercase/lowercase mismatches.&#10;Hint: can replace embedded blank(s) in url queries with %20 for each blank character.&#10;Hint: X3D Scene Authoring Hints, urls https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#urls&#10;Hint: embedded ecmascript: source can also be contained in the sourceCode pseudo-field without escape characters, equivalent to last entry in the url list, when using other API codebases and file encodings." name="url"/>
            <attribute tooltip="[type &initializeOnlyLabel; &SFStringLabel; (VERTEX|FRAGMENT) VERTEX]&#10;type indicates whether this ShaderProgram is a vertex or fragment (pixel) shader.&#10;Warning: do not wrap extra quotation marks  around these SFString enumeration values, since &#34;quotation&#34; &#34;marks&#34; are only used for MFString values." name="type"/>
            <attribute tooltip="[containerField type NMTOKEN (parts|watchList) &#34;parts&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/Script2.gif" tooltip="(X3D version 3.1 or later) [X3DNode,X3DUrlObject,X3DProgrammableShaderObject] ShaderProgram is contained by ProgramShader and provides the source and interface to a self-contained program that occupies one part of the rendering process:&#10;either a vertex or fragment shader.&#10;Hint: ShaderProgram contains field declarations and then corresponding IS/connect statements (if any).&#10;Hint: insert an XML Character Data (CDATA) block within the Script node to contain source code embedded within an X3D scene, avoiding the need for escape characters.&#10;Hint: a contained XML Character Data (CDATA) block for source code  protects whitespace, line breaks, and literal characters (such as &amp; for ampersand character, &lt; for less-than-sign character, and &gt; for greater-than-sign character) from unintended escape-character modifications by XML parsers.&#10;Warning: strict order is required for contained constructs: first field declarations (if any), then IS/connect statements (if any), and finally CDATA source-code block.&#10;Hint: when parent node is LoadSensor, apply containerField='children' (X3Dv4) or containerField='watchList' (X3Dv3). https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#fieldNameChanges&#10;Hint: embedded ecmascript: source can also be contained in the sourceCode pseudo-field without escape characters, equivalent to last entry in the url list, when using other API codebases and file encodings." name="ShaderProgram">
            <attribute tooltip="[X3D statement #field] Include a field statement for each field declaration in the ShaderProgram node." name="field"/>
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="(X3D version 4.0 draft) [autoRefresh &inputOutputLabel; &SFTimeLabel; &#34;0.0&#34;]&#10;autoRefresh defines interval in seconds before automatic reload of current url asset is performed.&#10;Hint: if preceding file loading fails or load field is false, no refresh is performed.&#10;Hint: repeated refresh attempts to reload currently loaded entry of url list. If that fails, the browser retries other entries in the url list.&#10;Warning: automatically reloading content has security considerations and needs to be considered carefully." name="autoRefresh"/>
            <attribute tooltip="(X3D version 4.0 draft) [autoRefreshTimeLimit &inputOutputLabel; &SFTimeLabel; &#34;3600.0&#34;]&#10;autoRefreshTimeLimit defines maximum duration that automatic refresh activity can occur.&#10;Hint: Automatic refresh is different than query and response timeouts performed by a networking library while sequentially attempting to retrieve addressed content from a url list.&#10;Warning: automatically reloading content has security considerations and needs to be considered carefully." name="autoRefreshTimeLimit"/>
            <attribute tooltip="(X3D version 4.0 draft) [description &inputOutputLabel; &SFStringLabel; #IMPLIED]&#10;Author-provided prose that describes intended purpose of the url asset.&#10;Hint: many XML tools substitute XML character references for special characters automatically if needed within an attribute value (such as &amp;#38; for &#38; ampersand character, or &amp;#34; for &#34; quotation-mark character)." name="description"/>
            <attribute tooltip="(X3D version 4.0 draft) [load &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;load=true means load immediately,&#10;load=false means defer loading or else unload a previously loaded scene.&#10;Hint: allows author to design when Inline loading occurs via user interaction, event chains or scripting.&#10;Hint: use a separate LoadSensor node to detect when loading is complete." name="load"/>
            <attribute tooltip="[url &inputOutputLabel; &MFStringLabel; #IMPLIED]&#10;Location and filename of shader.&#10;Multiple locations are more reliable, and including a Web address lets e-mail attachments work.&#10;Hint: embedded ecmascript: source can also be contained in the sourceCode pseudo-field without escape characters, equivalent to last entry in the url list, when using other API codebases and file encodings.&#10;Hint: MFString arrays can have multiple values, so separate each individual string by quote marks &quot;https://www.web3d.org&quot; &quot;https://www.web3d.org/about&quot; &quot;etc.&quot;&#10;Hint: alternative XML encoding for quotation mark &quot; is &#38;quot; (which is an example of a character entity).&#10;Warning: strictly match directory and filename capitalization for http links! This is important for portability. Some operating systems are forgiving of capitalization mismatches, but http/https url addresses and paths in Unix-based operating systems are all case sensitive and intolerant of uppercase/lowercase mismatches.&#10;Hint: can replace embedded blank(s) in url queries with %20 for each blank character.&#10;Hint: X3D Scene Authoring Hints, urls https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#urls" name="url"/>
            <attribute tooltip="[type &initializeOnlyLabel; &SFStringLabel; (VERTEX|FRAGMENT) VERTEX]&#10;type indicates whether this ShaderProgram is a vertex or fragment (pixel) shader.&#10;Warning: do not wrap extra quotation marks  around these SFString enumeration values, since &#34;quotation&#34; &#34;marks&#34; are only used for MFString values." name="type"/>
            <attribute tooltip="[containerField type NMTOKEN (programs|watchList) &#34;programs&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <!-- Cube map environmental texturing component -->
        <element icon="icons/ImageTexture.gif" tooltip="(X3D version 3.1 or later) [X3DEnvironmentTextureNode] ComposedCubeMapTexture is a texture node that defines a cubic environment map source&#10;as an explicit set of images drawn from individual 2D texture nodes.&#10;Hint: 0..6 child image nodes are allowed (ImageTexture MovieTexture PixelTexture) with corresponding containerField values: front back left right top bottom.&#10;Warning: each of the child ImageTexture or PixelTexture nodes must have unique containerField values for backTexture, bottomTexture, frontTexture, leftTexture, rightTexture, or topTexture.&#10;Warning: fields originally named back, bottom, front, left, right, or top in X3Dv3." name="ComposedCubeMapTexture">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[textureProperties &initializeOnlyLabel; &SFNodeLabel;, NULL node] [TextureProperties]&#10;Single contained TextureProperties node that can specify additional visual attributes applied to corresponding texture images." name="textureProperties"/>
            <attribute tooltip="(X3D version 4.0 draft) [backTexture &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DTexture2DNode] Parent ComposedCubeMapTexture element can contain up to six image nodes (ImageTexture PixelTexture MovieTexture, other texture nodes).&#10;Warning: each child image node must have a different containerField value.&#10;Warning: field originally named 'back' in X3Dv3. https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#fieldNameChanges" name="backTexture"/>
            <attribute tooltip="(X3D version 4.0 draft) [bottomTexture &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DTexture2DNode] Parent ComposedCubeMapTexture element can contain up to six image nodes (ImageTexture PixelTexture, other texture nodes).&#10;Warning: each child image node must have a different containerField value.&#10;Warning: field originally named 'bottom' in X3Dv3. https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#fieldNameChanges" name="bottomTexture"/>
            <attribute tooltip="(X3D version 4.0 draft) [frontTexture &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DTexture2DNode] Parent ComposedCubeMapTexture element can contain up to six image nodes (ImageTexture PixelTexture MovieTexture, other texture nodes).&#10;Warning: each child image node must have a different containerField value.&#10;Warning: field originally named 'front' in X3Dv3. https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#fieldNameChanges" name="frontTexture"/>
            <attribute tooltip="(X3D version 4.0 draft) [leftTexture &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DTexture2DNode] Parent ComposedCubeMapTexture element can contain up to six image nodes (ImageTexture PixelTexture MovieTexture, other texture nodese).&#10;Warning: each child image node must have a different containerField value.&#10;Warning: field originally named 'left' in X3Dv3. https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#fieldNameChanges" name="leftTexture"/>
            <attribute tooltip="(X3D version 4.0 draft) [rightTexture &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DTexture2DNode] Parent ComposedCubeMapTexture element can contain up to six image nodes (ImageTexture PixelTexture MovieTexture, other texture nodes).&#10;Warning: each child image node must have a different containerField value.&#10;Warning: field originally named 'right' in X3Dv3. https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#fieldNameChanges" name="rightTexture"/>
            <attribute tooltip="(X3D version 4.0 draft) [topTexture &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DTexture2DNode] Parent ComposedCubeMapTexture element can contain up to six image nodes (ImageTexture PixelTexture MovieTexture, other texture nodes).&#10;Warning: each child image node must have a different containerField value.&#10;Warning: field originally named 'top' in X3Dv3. https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#fieldNameChanges" name="topTexture"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="(X3D version 4.0 draft) [description &inputOutputLabel; &SFStringLabel; #IMPLIED]&#10;Author-provided prose that describes intended purpose of the url asset.&#10;Hint: many XML tools substitute XML character references for special characters automatically if needed within an attribute value (such as &amp;#38; for &#38; ampersand character, or &amp;#34; for &#34; quotation-mark character)." name="description"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;texture&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/ImageTexture.gif" tooltip="(X3D version 3.1 or later) [X3DEnvironmentTextureNode] GeneratedCubeMapTexture is a texture node that defines a cubic environment map that sources its data from internally generated images.&#10;The viewpoint of the generated texture is the location and orientation of the associated geometry in world space.&#10;Hint: can contain a single TextureProperties node.&#10;Hint: typically a Box is used for applying the GeneratedCubeMapTexture.Warning: requires X3D profile='Full' or else include &lt;component name='CubeMapTexturing' level='3'/&gt;" name="GeneratedCubeMapTexture">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[textureProperties &initializeOnlyLabel; &SFNodeLabel;, NULL node] [TextureProperties]&#10;Single contained TextureProperties node that can specify additional visual attributes applied to corresponding texture images." name="textureProperties"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="(X3D version 4.0 draft) [description &inputOutputLabel; &SFStringLabel; #IMPLIED]&#10;Author-provided prose that describes intended purpose of the url asset.&#10;Hint: many XML tools substitute XML character references for special characters automatically if needed within an attribute value (such as &amp;#38; for &#38; ampersand character, or &amp;#34; for &#34; quotation-mark character)." name="description"/>
            <attribute tooltip="[update &inputOutputLabel; &SFStringLabel; (NONE|NEXT_FRAME_ONLY|ALWAYS) NONE]&#10;update controls regeneration of the texture.&#10;Warning: An object trying to render itself in the scene graph can cause infinite loops.&#10;Warning: do not wrap extra quotation marks  around these SFString enumeration values, since &#34;quotation&#34; &#34;marks&#34; are only used for MFString values." name="update"/>
            <attribute tooltip="[size &initializeOnlyLabel; &SFInt32Label; &#34;128&#34;] (0,+&#8734;)&#10;size indicates the resolution of the generated images in number of pixels per side." name="size"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;texture&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/ImageTexture.gif" tooltip="(X3D version 4.0 draft) [X3DTextureProjectorNode] TextureProjectorParallel is similar to a light that projects a texture into the scene, illuminating geometry that intersects the parallel projection volume.&#10;Hint: https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Images/ptmparallel.png&#10;Warning: add textureTransform field?" name="TextureProjectorParallel">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[texture &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DTextureNode]&#10;Single contained texture node (ImageTexture, MovieTexture, PixelTexture, MultiTexture) that maps image(s) to surface geometry.&#10;Hint: if texture node is NULL or unspecified, corresponding Shape geometry for this Appearance is not textured.&#10;Hint: X3D Scene Authoring Hints, Images https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#Images&#10;Hint: X3D Architecture 18 Texturing component https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/texturing.html&#10;Hint: X3D Architecture 33 Texturing3D component https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/texture3D.html" name="texture"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[ambientIntensity &inputOutputLabel; &SFFloatLabel; &#34;0&#34;] [0,1]&#10;Brightness of ambient (nondirectional background) emission from the light.&#10;Interchange profile hint: this field may be ignored, applying the default value regardless." name="ambientIntensity"/>
            <attribute tooltip="[color &inputOutputLabel; &SFColorLabel; &#34;1 1 1&#34;] [0,1]&#10;color of light, applied to colors of objects.&#10;Hint: X3D Scene Authoring Hints, Color https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#Color" name="color"/>
            <attribute tooltip="[description &inputOutputLabel; &SFStringLabel; #IMPLIED]&#10;Author-provided prose that describes intended purpose of the url asset.&#10;Hint: many XML tools substitute XML character references for special characters automatically if needed within an attribute value (such as &amp;#38; for &#38; ampersand character, or &amp;#34; for &#34; quotation-mark character)." name="description"/>
            <attribute tooltip="[direction &inputOutputLabel; &SFVec3fLabel; &#34;0 1 0&#34;]&#10;Direction for projection." name="direction"/>
            <attribute tooltip="[farDistance &inputOutputLabel; &SFFloatLabel; &#34;-1&#34;] or (0,+&#8734;)&#10;maximum distance necessary for texture display." name="farDistance"/>
            <attribute tooltip="[fieldOfView &inputOutputLabel; &SFVec4fLabel; &#34;-1 -1, 1 1&#34;]&#10;Minimum and maximum extents of projection texture in units of local coordinate system. Small field of view roughly corresponds to a telephoto lens, large field of view roughly corresponds to a wide-angle lens.&#10;Warning: minimum corner values must remain less than maximum corner values.&#10;Hint: rectangular display width/height = (maxX-minX) / (maxY-minY).&#10;Warning: this field differs for TextureProjectorParallel and TextureProjector." name="fieldOfView"/>
            <attribute tooltip="[global &inputOutputLabel; &SFBoolLabel; &#34;false&#34;]&#10;Global texture projection illuminates all objects within their volume of influence.&#10;Scoped texture projection (global false) only illuminates objects within the same transformation hierarchy." name="global"/>
            <attribute tooltip="[intensity &inputOutputLabel; &SFFloatLabel; &#34;1&#34;] [0,1]&#10;Brightness of direct emission from the light." name="intensity"/>
            <attribute tooltip="[on &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Enables/disables this texture projection source." name="on"/>
            <attribute tooltip="[location &inputOutputLabel; &SFVec3fLabel; &#34;0 0 0&#34;]&#10;Position of center of texture projection relative to local coordinate system." name="location"/>
            <attribute tooltip="[nearDistance &inputOutputLabel; &SFFloatLabel; &#34;-1&#34;] or (0,+&#8734;)&#10;minimum distance necessary for texture display." name="nearDistance"/>
            <attribute tooltip="[shadowIntensity &inputOutputLabel; &SFFloatLabel; &#34;0&#34;] [0,1]&#10; shadowIntensity field defines how much light is obscured by shapes that cast shadows, ranging from 0 (light not obscured, no visible shadows) to 1 (light completely obscured, full-intensity shadows)." name="shadowIntensity"/>
            <attribute tooltip="[shadows &inputOutputLabel; &SFBoolLabel; &#34;false&#34;]&#10;shadows field indicates whether or not this light casts a shadow behind illuminated X3DShapeNode geometry." name="shadows"/>
            <attribute tooltip="[upVector &inputOutputLabel; &SFVec3fLabel; &#34;0 1 0&#34;]&#10;upVector describes the roll of the camera by saying which direction is up for the camera's orientation." name="upVector"/>
            <attribute tooltip="[aspectRatio &outputOnlyLabel; &SFFloatLabel;]&#10;aspectRatio is the ratio of width and height that is projected." name="aspectRatio"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;texture&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/ImageTexture.gif" tooltip="(X3D version 4.0 draft) [X3DTextureProjectorNode] TextureProjector is similar to a light that projects a texture into the scene, illuminating geometry that intersects the perspective projection volume.&#10;Hint: https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Images/ptmperspective.png&#10;Warning: add textureTransform field?" name="TextureProjector">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[texture &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DTextureNode]&#10;Single contained texture node (ImageTexture, MovieTexture, PixelTexture, MultiTexture) that maps image(s) to surface geometry.&#10;Hint: if texture node is NULL or unspecified, corresponding Shape geometry for this Appearance is not textured.&#10;Hint: X3D Scene Authoring Hints, Images https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#Images&#10;Hint: X3D Architecture 18 Texturing component https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/texturing.html&#10;Hint: X3D Architecture 33 Texturing3D component https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/texture3D.html" name="texture"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[ambientIntensity &inputOutputLabel; &SFFloatLabel; &#34;0&#34;] [0,1]&#10;Brightness of ambient (nondirectional background) emission from the light.&#10;Interchange profile hint: this field may be ignored, applying the default value regardless." name="ambientIntensity"/>
            <attribute tooltip="[color &inputOutputLabel; &SFColorLabel; &#34;1 1 1&#34;] [0,1]&#10;color of light, applied to colors of objects.&#10;Hint: X3D Scene Authoring Hints, Color https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#Color" name="color"/>
            <attribute tooltip="[description &inputOutputLabel; &SFStringLabel; #IMPLIED]&#10;Author-provided prose that describes intended purpose of the url asset.&#10;Hint: many XML tools substitute XML character references for special characters automatically if needed within an attribute value (such as &amp;#38; for &#38; ampersand character, or &amp;#34; for &#34; quotation-mark character)." name="description"/>
            <attribute tooltip="[direction &inputOutputLabel; &SFVec3fLabel; &#34;0 1 0&#34;]&#10;Direction for projection." name="direction"/>
            <attribute tooltip="[farDistance &inputOutputLabel; &SFFloatLabel; &#34;-1&#34;] or (0,+&#8734;)&#10;maximum distance necessary for texture display." name="farDistance"/>
            <attribute tooltip="[fieldOfView &inputOutputLabel; &SFFloatLabel; &#34;0.7854&#34; (0,&#960;)]&#10;Preferred minimum viewing angle for this projection in radians, providing minimum height or minimum width (whichever is smaller).&#10;Small field of view roughly corresponds to a telephoto lens,&#10;large field of view roughly corresponds to a wide-angle lens.&#10;Warning: this field differs for TextureProjectorParallel and TextureProjector." name="fieldOfView"/>
            <attribute tooltip="[global &inputOutputLabel; &SFBoolLabel; &#34;false&#34;]&#10;Global texture projection illuminates all objects within their volume of influence.&#10;Scoped texture projection (global false) only illuminates objects within the same transformation hierarchy." name="global"/>
            <attribute tooltip="[intensity &inputOutputLabel; &SFFloatLabel; &#34;1&#34;] [0,1]&#10;Brightness of direct emission from the light." name="intensity"/>
            <attribute tooltip="[on &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Enables/disables this texture projection source." name="on"/>
            <attribute tooltip="[location &inputOutputLabel; &SFVec3fLabel; &#34;0 0 0&#34;]&#10;Position of center of texture projection relative to local coordinate system." name="location"/>
            <attribute tooltip="[nearDistance &inputOutputLabel; &SFFloatLabel; &#34;-1&#34;] or (0,+&#8734;)&#10;minimum distance necessary for texture display." name="nearDistance"/>
            <attribute tooltip="[shadowIntensity &inputOutputLabel; &SFFloatLabel; &#34;0&#34;] [0,1]&#10; shadowIntensity field defines how much light is obscured by shapes that cast shadows, ranging from 0 (light not obscured, no visible shadows) to 1 (light completely obscured, full-intensity shadows)." name="shadowIntensity"/>
            <attribute tooltip="[shadows &inputOutputLabel; &SFBoolLabel; &#34;false&#34;]&#10;shadows field indicates whether or not this light casts a shadow behind illuminated X3DShapeNode geometry." name="shadows"/>
            <attribute tooltip="[upVector &inputOutputLabel; &SFVec3fLabel; &#34;0 1 0&#34;]&#10;upVector describes the roll of the camera by saying which direction is up for the camera's orientation." name="upVector"/>
            <attribute tooltip="[aspectRatio &outputOnlyLabel; &SFFloatLabel;]&#10;aspectRatio is the ratio of width and height that is projected." name="aspectRatio"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;texture&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/ImageTexture.gif" tooltip="(X3D version 3.1 or later) [X3DEnvironmentTextureNode,X3DUrlObject] ImageCubeMapTexture is a texture node that defines a cubic environment map source as a single file format that contains multiple images, one for each side.&#10;Hint: can contain a single TextureProperties node.&#10;Hint: when parent node is LoadSensor, apply containerField='children' (X3Dv4) or containerField='watchList' (X3Dv3). https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#fieldNameChanges" name="ImageCubeMapTexture">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[textureProperties &initializeOnlyLabel; &SFNodeLabel;, NULL node] [TextureProperties]&#10;Single contained TextureProperties node that can specify additional visual attributes applied to corresponding texture images." name="textureProperties"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="(X3D version 4.0 draft) [autoRefresh &inputOutputLabel; &SFTimeLabel; &#34;0.0&#34;]&#10;autoRefresh defines interval in seconds before automatic reload of current url asset is performed.&#10;Hint: if preceding file loading fails or load field is false, no refresh is performed.&#10;Hint: repeated refresh attempts to reload currently loaded entry of url list. If that fails, the browser retries other entries in the url list.&#10;Warning: automatically reloading content has security considerations and needs to be considered carefully." name="autoRefresh"/>
            <attribute tooltip="(X3D version 4.0 draft) [autoRefreshTimeLimit &inputOutputLabel; &SFTimeLabel; &#34;3600.0&#34;]&#10;autoRefreshTimeLimit defines maximum duration that automatic refresh activity can occur.&#10;Hint: Automatic refresh is different than query and response timeouts performed by a networking library while sequentially attempting to retrieve addressed content from a url list.&#10;Warning: automatically reloading content has security considerations and needs to be considered carefully." name="autoRefreshTimeLimit"/>
            <attribute tooltip="(X3D version 4.0 draft) [description &inputOutputLabel; &SFStringLabel; #IMPLIED]&#10;Author-provided prose that describes intended purpose of the url asset.&#10;Hint: many XML tools substitute XML character references for special characters automatically if needed within an attribute value (such as &amp;#38; for &#38; ampersand character, or &amp;#34; for &#34; quotation-mark character)." name="description"/>
            <attribute tooltip="(X3D version 4.0 draft) [load &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;load=true means load immediately,&#10;load=false means defer loading or else unload a previously loaded scene.&#10;Hint: allows author to design when Inline loading occurs via user interaction, event chains or scripting.&#10;Hint: use a separate LoadSensor node to detect when loading is complete." name="load"/>
            <attribute tooltip="[url &inputOutputLabel; &MFStringLabel; #IMPLIED]&#10;Location and filename of image.&#10;Multiple locations are more reliable, and including a Web address lets e-mail attachments work.&#10;Hint: MFString arrays can have multiple values, so separate each individual string by quote marks &quot;https://www.web3d.org&quot; &quot;https://www.web3d.org/about&quot; &quot;etc.&quot;&#10;Hint: alternative XML encoding for quotation mark &quot; is &#38;quot; (which is an example of a character entity).&#10;Warning: strictly match directory and filename capitalization for http links! This is important for portability. Some operating systems are forgiving of capitalization mismatches, but http/https url addresses and paths in Unix-based operating systems are all case sensitive and intolerant of uppercase/lowercase mismatches.&#10;Hint: can replace embedded blank(s) in url queries with %20 for each blank character.&#10;Hint: X3D Scene Authoring Hints, urls https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#urls" name="url"/>
            <attribute tooltip="[containerField type NMTOKEN (texture|watchList) &#34;texture&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <!-- Texturing3D Component -->
        <element icon="icons/ImageTexture.gif" tooltip="(X3D version 3.1 or later) [X3DTexture3DNode] ComposedTexture3D defines a 3D image-based texture map as a collection of 2D texture sources at various depths.&#10;Hint: insert 2^n ImageTexture, PixelTexture or MovieTexture child nodes.&#10;The first image is at depth 0 and each following image is at an increasing depth value in the R direction.&#10;Hint: can contain a single TextureProperties node.&#10;Hint: insert Shape and Appearance nodes before adding texture.&#10;Hint: X3D Architecture 33.2.2 3D texturing concepts https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/texture3D.html#3DTextureconcepts&#10;Warning: requires X3D profile='Full' or else include &lt;component name='Texturing3D' level='1'/&gt;" name="ComposedTexture3D">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[texture &inputOutputLabel; &MFNodeLabel;, empty list] [X3DTexture2DNode]&#10;collection of 2D texture sources." name="texture"/>
            <attribute tooltip="[textureProperties &initializeOnlyLabel; &SFNodeLabel;, NULL node] [TextureProperties]&#10;Single contained TextureProperties node that can specify additional visual attributes applied to corresponding texture images." name="textureProperties"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geoto repeat texture along T axis vertically from top to bottom.metry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="(X3D version 4.0 draft) [description &inputOutputLabel; &SFStringLabel; #IMPLIED]&#10;Author-provided prose that describes intended purpose of the url asset.&#10;Hint: many XML tools substitute XML character references for special characters automatically if needed within an attribute value (such as &amp;#38; for &#38; ampersand character, or &amp;#34; for &#34; quotation-mark character)." name="description"/>
            <attribute tooltip="[repeatR &initializeOnlyLabel; &SFBoolLabel; &#34;false&#34;]&#10;Whether to repeat texture along R axis from front to back." name="repeatR"/>
            <attribute tooltip="[repeatS &initializeOnlyLabel; &SFBoolLabel; &#34;false&#34;]&#10;Whether to repeat texture along S axis horizontally from left to right." name="repeatS"/>
            <attribute tooltip="[repeatT &initializeOnlyLabel; &SFBoolLabel; &#34;false&#34;]&#10;Whether to repeat texture along T axis vertically from top to bottom." name="repeatT"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;texture&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/ImageTexture.gif" tooltip="(X3D version 3.1 or later) [X3DTexture3DNode,X3DUrlObject] ImageTexture3D defines a 3D image-based texture map by specifying a single image file that contains complete 3D data.&#10;Warning: there are no required file formats, but at least one of the following formats is recommended for volume support in an X3D browser.&#10;Hint: Microsoft DirectDraw Surface (DDS) https://docs.microsoft.com/en-us/windows/win32/direct3ddds/dx-graphics-dds&#10;Hint: Digital Imaging and Communications in Medicine (DICOM) https://www.dicomstandard.org&#10;Nevertheless DDS, DICOM, NRRD and/or .vol formats are recommended.&#10;Hint: Nearly Raw Raster Data (NRRD) http://teem.sourceforge.net/nrrd&#10;Hint: Volume data format (VOL) http://paulbourke.net/dataformats/volumetric&#10;Hint: X3D Scene Authoring Hints, Volume Tools and Volumes Visualization https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#Volumes&#10;Hint: can contain a single TextureProperties node.&#10;Hint: insert Shape and Appearance nodes before adding texture.&#10;Hint: X3D Architecture 33.2.2 3D texturing concepts https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/texture3D.html#3DTextureconcepts&#10;Hint: when parent node is LoadSensor, apply containerField='children' (X3Dv4) or containerField='watchList' (X3Dv3). https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#fieldNameChanges&#10;Warning: requires X3D profile='Full' or else include &lt;component name='Texturing3D' level='2'/&gt;" name="ImageTexture3D">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[textureProperties &initializeOnlyLabel; &SFNodeLabel;, NULL node] [TextureProperties]&#10;Single contained TextureProperties node that can specify additional visual attributes applied to corresponding texture images." name="textureProperties"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="(X3D version 4.0 draft) [autoRefresh &inputOutputLabel; &SFTimeLabel; &#34;0.0&#34;]&#10;autoRefresh defines interval in seconds before automatic reload of current url asset is performed.&#10;Hint: if preceding file loading fails or load field is false, no refresh is performed.&#10;Hint: repeated refresh attempts to reload currently loaded entry of url list. If that fails, the browser retries other entries in the url list.&#10;Warning: automatically reloading content has security considerations and needs to be considered carefully." name="autoRefresh"/>
            <attribute tooltip="(X3D version 4.0 draft) [autoRefreshTimeLimit &inputOutputLabel; &SFTimeLabel; &#34;3600.0&#34;]&#10;autoRefreshTimeLimit defines maximum duration that automatic refresh activity can occur.&#10;Hint: Automatic refresh is different than query and response timeouts performed by a networking library while sequentially attempting to retrieve addressed content from a url list.&#10;Warning: automatically reloading content has security considerations and needs to be considered carefully." name="autoRefreshTimeLimit"/>
            <attribute tooltip="(X3D version 4.0 draft) [description &inputOutputLabel; &SFStringLabel; #IMPLIED]&#10;Author-provided prose that describes intended purpose of the url asset.&#10;Hint: many XML tools substitute XML character references for special characters automatically if needed within an attribute value (such as &amp;#38; for &#38; ampersand character, or &amp;#34; for &#34; quotation-mark character)." name="description"/>
            <attribute tooltip="(X3D version 4.0 draft) [load &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;load=true means load immediately,&#10;load=false means defer loading or else unload a previously loaded scene.&#10;Hint: allows author to design when Inline loading occurs via user interaction, event chains or scripting.&#10;Hint: use a separate LoadSensor node to detect when loading is complete." name="load"/>
            <attribute tooltip="[url &inputOutputLabel; &MFStringLabel; #IMPLIED]&#10;Location and filename of image.&#10;Multiple locations are more reliable, and including a Web address lets e-mail attachments work.&#10;Hint: MFString arrays can have multiple values, so separate each individual string by quote marks &quot;https://www.web3d.org&quot; &quot;https://www.web3d.org/about&quot; &quot;etc.&quot;&#10;Hint: alternative XML encoding for quotation mark &quot; is &#38;quot; (which is an example of a character entity).&#10;Warning: strictly match directory and filename capitalization for http links! This is important for portability. Some operating systems are forgiving of capitalization mismatches, but http/https url addresses and paths in Unix-based operating systems are all case sensitive and intolerant of uppercase/lowercase mismatches.&#10;Hint: can replace embedded blank(s) in url queries with %20 for each blank character.&#10;Hint: X3D Scene Authoring Hints, urls https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#urls" name="url"/>
            <attribute tooltip="[repeatR &initializeOnlyLabel; &SFBoolLabel; &#34;false&#34;]&#10;Whether to  repeat texture along R axis from front to back." name="repeatR"/>
            <attribute tooltip="[repeatS &initializeOnlyLabel; &SFBoolLabel; &#34;false&#34;]&#10;Whether to repeat texture along S axis horizontally from left to right." name="repeatS"/>
            <attribute tooltip="[repeatT &initializeOnlyLabel; &SFBoolLabel; &#34;false&#34;]&#10;Whether to repeat texture along T axis vertically from top to bottom." name="repeatT"/>
            <attribute tooltip="[containerField type NMTOKEN (texture|watchList) &#34;texture&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/ImageTexture.gif" tooltip="(X3D version 3.1 or later) [X3DTexture3DNode] PixelTexture3D defines a 3D image-based texture map as an explicit array of pixel values (image field).&#10;Hint: can contain a single TextureProperties node.&#10;Hint: insert Shape and Appearance nodes before adding texture.&#10;Hint: X3D Architecture 33.2.2 3D texturing concepts https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/texture3D.html#3DTextureconcepts&#10;Warning: requires X3D profile='Full' or else include &lt;component name='Texturing3D' level='1'/&gt;" name="PixelTexture3D">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[textureProperties &initializeOnlyLabel; &SFNodeLabel;, NULL node] [TextureProperties]&#10;Single contained TextureProperties node that can specify additional visual attributes applied to corresponding texture images." name="textureProperties"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="(X3D version 4.0 draft) [description &inputOutputLabel; &SFStringLabel; #IMPLIED]&#10;Author-provided prose that describes intended purpose of the url asset.&#10;Hint: many XML tools substitute XML character references for special characters automatically if needed within an attribute value (such as &amp;#38; for &#38; ampersand character, or &amp;#34; for &#34; quotation-mark character)." name="description"/>
            <attribute tooltip="[image &inputOutputLabel; &MFInt32Label; &#34;0 0 0 0&#34;]&#10;image describes raw data for this 3D texture:&#10;number of components to the image [0,4],&#10;width, height and depth of the texture,&#10;followed by (width x height x depth) pixel values.&#10;Warning: the order of initial values in PixelTexture and PixelTexture3D image arrays are different." name="image"/>
            <attribute tooltip="[repeatR &initializeOnlyLabel; &SFBoolLabel; &#34;false&#34;]&#10;Whether to repeat texture along R axis from front to back." name="repeatR"/>
            <attribute tooltip="[repeatS &initializeOnlyLabel; &SFBoolLabel; &#34;false&#34;]&#10;Whether to repeat texture along S axis horizontally from left to right." name="repeatS"/>
            <attribute tooltip="[repeatT &initializeOnlyLabel; &SFBoolLabel; &#34;false&#34;]&#10;Whether to repeat texture along T axis vertically from top to bottom." name="repeatT"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;texture&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/TextureCoordinate.gif" tooltip="(X3D version 3.1 or later) [X3DTextureCoordinateNode] TextureCoordinate3D specifies a set of 3D texture coordinates used by vertex-based geometry nodes (such as IndexedFaceSet or ElevationGrid) to map 3D textures to vertices.&#10;Hint: add Shape and then polgyonal/planar geometry before adding texture coordinates.&#10;Hint: X3D Architecture 33.2.2 3D texturing concepts https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/texture3D.html#3DTextureconcepts&#10;Warning: requires X3D profile='Full' or else include &lt;component name='Texturing3D' level='1'/&gt;" name="TextureCoordinate3D">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="(X3D version 4.0 draft) [mapping &inputOutputLabel; type NMTOKEN #IMPLIED]&#10;The mapping label identifies which texture coordinates and transformations are used to compute texture effects from corresponding geometry on a given material.&#10;Hint: TODO support planned to perform multiple-node mapping validation checks using X3D Schematron or X3D Validator https://savage.nps.edu/X3dValidator" name="mapping"/>
            <attribute tooltip="[point &inputOutputLabel; &MFVec3fLabel; #IMPLIED]&#10;triplets of 3D (s,t,r) texture coordinates, either in range [0,1] or higher if repeating." name="point"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;texCoord&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/TextureCoordinate.gif" tooltip="(X3D version 3.1 or later) [X3DTextureCoordinateNode] TextureCoordinate4D specifies a set of 4D (homogeneous 3D) texture coordinates used by vertex-based geometry nodes (such as IndexedFaceSet or ElevationGrid) to map 3D textures to vertices.&#10;Hint: add Shape and then polgyonal/planar geometry before adding texture coordinates.&#10;Warning: requires X3D profile='Full' or else include &lt;component name='Texturing3D' level='1'/&gt;" name="TextureCoordinate4D">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="(X3D version 4.0 draft) [mapping &inputOutputLabel; type NMTOKEN #IMPLIED]&#10;The mapping label identifies which texture coordinates and transformations are used to compute texture effects from corresponding geometry on a given material.&#10;Hint: TODO support planned to perform multiple-node mapping validation checks using X3D Schematron or X3D Validator https://savage.nps.edu/X3dValidator" name="mapping"/>
            <attribute tooltip="[point &inputOutputLabel; &MFVec4fLabel; #IMPLIED]&#10;4-tuple values of 4D texture coordinates, either in range [0,1] or higher if repeating." name="point"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;texCoord&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/TextureTransform.gif" tooltip="(X3D version 3.1 or later) [X3DTextureTransformNode] TextureTransformMatrix3D applies a 3D transformation to texture coordinates.&#10;Warning: resulting visible effects appear reversed because image changes occur before mapping to geometry.&#10;Hint: order of operations is translation, rotation about center, non-uniform scale about center.&#10;Hint: insert Shape and Appearance nodes before adding TextureTransformMatrix3D.&#10;Hint: Texture mapping https://en.wikipedia.org/wiki/Texture_mapping&#10;Warning: requires X3D profile='Full' or else include &lt;component name='Texturing3D' level='1'/&gt;" name="TextureTransformMatrix3D">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="(X3D version 4.0 draft) [mapping &inputOutputLabel; type NMTOKEN #IMPLIED]&#10;The mapping label identifies which texture coordinates and transformations are used to compute texture effects from corresponding geometry on a given material.&#10;Hint: TODO support planned to perform multiple-node mapping validation checks using X3D Schematron or X3D Validator https://savage.nps.edu/X3dValidator" name="mapping"/>
            <attribute tooltip="[matrix &inputOutputLabel; &SFMatrix4fLabel; &#34;1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1&#34;]&#10;matrix is a generalized, unfiltered 4x4 transformation matrix to modify texture (opposite effect appears on geometry)." name="matrix"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;textureTransform&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/TextureTransform.gif" tooltip="(X3D version 3.1 or later) [X3DTextureTransformNode] TextureTransform3D applies a 3D transformation to texture coordinates.&#10;Warning: resulting visible effects appear reversed because image changes occur before mapping to geometry.&#10;Hint: order of operations is translation, rotation about center, non-uniform scale about center.&#10;Hint: insert Shape and Appearance nodes before adding TextureTransform3D.&#10;Hint: Texture mapping https://en.wikipedia.org/wiki/Texture_mapping" name="TextureTransform3D">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[center &inputOutputLabel; &SFVec3fLabel; &#34;0 0 0&#34;]&#10;center point in 2D (s,t) texture coordinates for rotation and scaling." name="center"/>
            <attribute tooltip="(X3D version 4.0 draft) [mapping &inputOutputLabel; type NMTOKEN #IMPLIED]&#10;The mapping label identifies which texture coordinates and transformations are used to compute texture effects from corresponding geometry on a given material.&#10;Hint: TODO support planned to perform multiple-node mapping validation checks using X3D Schematron or X3D Validator https://savage.nps.edu/X3dValidator" name="mapping"/>
            <attribute tooltip="[rotation &inputOutputLabel; &SFRotationLabel; &#34;0 0 1 0&#34;]&#10;rotation angle of texture about center (opposite effect appears on geometry)." name="rotation"/>
            <attribute tooltip="[scale &inputOutputLabel; &SFVec3fLabel; &#34;1 1 1&#34;]&#10;Non-uniform planar scaling of texture about center (opposite effect appears on geometry)." name="scale"/>
            <attribute tooltip="[translation &inputOutputLabel; &SFVec3fLabel; &#34;0 0 0&#34;]&#10;Lateral/vertical shift in 2D (s,t) texture coordinates (opposite effect appears on geometry)." name="translation"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;textureTransform&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <!-- X3D version 3.2 -->
        <element icon="icons/SHAPE16.png" tooltip="(X3D version 3.2 or later) [X3DChildNode] ClipPlane specifies a single plane equation used to clip (i.e. cull or hide) displayed geometry. The plane field specifies a four-component plane equation that describes both inside and outside half space.&#10;Hint: ClipPlane nodes only affect peer and descendant nodes, thus a parent grouping node can limit its effect.&#10;Warning: requires X3D profile='Full' or else include &lt;component name='Rendering' level='5'/&gt;&#10;Examples: X3D Example Archives, Basic, CAD, Clip Plane Example https://www.web3d.org/x3d/content/examples/Basic/CAD/ClipPlaneExampleIndex.html" name="ClipPlane">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[enabled &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Enables/disables node operation." name="enabled"/>
            <attribute tooltip="[plane &inputOutputLabel; &SFVec4fLabel; &#34;0 1 0 0&#34;] [0,1]&#10;If (a,b,c,d) is the plane, with the first three components being a normalized vector describing the plane's normal direction (and thus the fourth component d being distance from the origin), a point (x,y,z) is visible to the user, with regards to the clipping plane, if a*x+b*y+c*z+d is greater than 0.&#10;Warning: (a, b, c) value of (0, 0, 0) is forbidden since the zero vector has ambiguous direction and is thus degenerate, not defining a plane.&#10;Hint: negate all plane values to reverse which side of plane has visibility clipped.&#10;Hint: plane-geometry equations https://en.wikipedia.org/wiki/Plane_(geometry)#Point-normal_form_and_general_form_of_the_equation_of_a_plane&#10;Hint: plane-geometry distance to point https://en.wikipedia.org/wiki/Plane_(geometry)#Distance_from_a_point_to_a_plane" name="plane"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/ScalarInterpolator.gif" tooltip="(X3D version 3.2 or later) [X3DNode] EaseInEaseOut enables gradual animation transitions by modifying TimeSensor fraction outputs.&#10;Output values are modified fractions. Authors can ROUTE value_changed output events to an interpolator, a sequencer, or another SFFloat attribute.&#10;Hint: typical input connection is ROUTE someTimeSensorDEF.fraction_changed TO thisEaseInEaseOutDEF.set_fraction&#10;Hint: typical output connection is ROUTE thisEaseInEaseOutDEF.modifiedFraction_changed TO someDestinationNodeDEF.set_fraction.&#10;Warning: requires X3D profile='Full' or else include &lt;component name='Interpolation' level='3'/&gt;" name="EaseInEaseOut">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[key &inputOutputLabel; &MFFloatLabel; #IMPLIED]&#10;Definition values for linear-interpolation function input intervals, listed in non-decreasing order and corresponding to easeInEaseOut array.&#10;Hint: number of keys must be one more than the number of easeInEaseOut values!&#10;Warning: values in key array shall be monotonically non-decreasing, meaning that each value is greater than or equal to the preceding value.&#10;Hint: typical interval for values in key array is within range of 0 to 1, but larger intervals can be defined with arbitrary bounds." name="key"/>
            <attribute tooltip="[easeInEaseOut &inputOutputLabel; &MFVec2fLabel; #IMPLIED]&#10;Array of paired values for easeOut fraction and easeIn fraction within each key interval.&#10;Hint: number of easeInEaseOut values must be one less than the number of keys." name="easeInEaseOut"/>
            <attribute tooltip="[set_fraction &inputOnlyLabel; &SFFloatLabel; #FIXED &#34;&#34;]&#10;set_fraction selects input fraction for computation of corresponding easeInEaseOut output value, modifiedFraction_changed.&#10;Hint: set_fraction values are typically in same range interval as values in the key array. Response to an input set_fraction value less than minimum is equivalent to minimum key, and response to an input set_fraction value greater than maximum is equivalent to maximum key.&#10;Warning: it is an error to define this transient inputOnly field in an X3D file, instead only use it a destination for ROUTE events." name="set_fraction"/>
            <attribute tooltip="[modifiedFraction_changed &outputOnlyLabel; &SFFloatLabel; #FIXED &#34;&#34;]&#10;Interpolated output value determined by current key time, corresponding easeInEaseOut smoothing intervals, and corresponding key pair.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="modifiedFraction_changed"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/ProximitySensor.gif" tooltip="(X3D version 3.2 or later) [X3DEnvironmentalSensorNode] TransformSensor generates output events when its targetObject enters, exits, and moves within a region in space (defined by a box).&#10;Hint: Each TransformSensor node behaves independently of all other TransformSensor nodes, so that every enabled TransformSensor node affected by targetObject motion sends output events.&#10;Hint: multiply instanced (DEF/USE) TransformSensor nodes in different locations use the union of all boxes to check for enter and exit, detecting enter and exit for all instances of the box, and sending enter/exit events appropriately. For non-overlapping bounding boxes, position_changed and orientation_changed events are calculated relative to the coordinate system associated with the bounding box in which the proximity was detected.&#10;Warning: results are undefined if boxes  overlap for multiply instanced TransformSensor nodes.&#10;Warning: a TransformSensor node with a zero-volume box (i.e. any size dimension equal to 0.0) cannot generate events, equivalent to enabled=false.&#10;Warning: unlike TouchSensor nodes, there is no notion of a TransformSensor node lower in the scene graph grabbing events." name="TransformSensor">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[targetObject &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DGroupingNode|X3DShapeNode]&#10;targetObject is the movable geometry represented by any valid X3DGroupingNode or X3DShapeNode which may enter or exit the box." name="targetObject"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="(X3D version 4.0 draft) [description &inputOutputLabel; &SFStringLabel; #IMPLIED]&#10;Author-provided prose that describes intended purpose of the node.&#10;Hint: many XML tools substitute XML character references for special characters automatically if needed within an attribute value (such as &amp;#38; for &#38; ampersand character, or &amp;#34; for &#34; quotation-mark character)." name="description"/>
            <attribute tooltip="[enabled &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Enables/disables node operation." name="enabled"/>
            <attribute tooltip="[center &inputOutputLabel; &SFVec3fLabel; &#34;0 0 0&#34;]&#10;Translation offset from origin of local coordinate system." name="center"/>
            <attribute tooltip="[size &inputOutputLabel; &SFVec3fLabel; &#34;0 0 0&#34;] [0,+&#8734;)&#10;size of intersection box, measured from center in meters." name="size"/>
            <attribute tooltip="[isActive &outputOnlyLabel; &SFBoolLabel; #FIXED &#34;&#34;]&#10;isActive true/false events are sent when triggering the sensor.&#10;isActive=true when targetObject enters the box region, isActive=false when targetObject exits the box region.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="isActive"/>
            <attribute tooltip="[enterTime &outputOnlyLabel; &SFTimeLabel; #FIXED &#34;&#34;]&#10;Time event generated when targetObject enters the box region for sensor.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="enterTime"/>
            <attribute tooltip="[exitTime &outputOnlyLabel; &SFTimeLabel; #FIXED &#34;&#34;]&#10;Time event generated when targetObject exits the box region for sensor.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="exitTime"/>
            <attribute tooltip="[position_changed &outputOnlyLabel; &SFVec3fLabel; #FIXED &#34;&#34;]&#10;Sends translation event relative to center whenever the target object is contained within the box region and results change.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="position_changed"/>
            <attribute tooltip="[orientation_changed &outputOnlyLabel; &SFRotationLabel; #FIXED &#34;&#34;]&#10;Sends rotation event relative to center whenever the target object is contained within the box region and results change.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="orientation_changed"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <!-- X3D version 3.2 Interpolation component -->
        <element icon="icons/PositionInterpolator.gif" tooltip="(X3D version 3.2 or later) [X3DInterpolatorNode] SplinePositionInterpolator performs non-linear interpolation among paired lists of 3-tuple values and velocities to produce an SFVec3f value_changed output event.&#10;Hint: typical input connection is ROUTE someTimeSensorDEF.fraction_changed TO thisInterpolatorDEF.set_fraction&#10;Hint: typical output connection is ROUTE thisInterpolatorDEF.value_changed TO someDestinationNodeDEF.set_someAttribute.&#10;Warning: requires X3D profile='Full' or else include &lt;component name='Interpolation' level='4'/&gt;" name="SplinePositionInterpolator">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[closed &inputOutputLabel; &SFBoolLabel; &#34;false&#34;]&#10;Whether or not the curve is closed (i.e. matching end values), with continuous velocity vectors as the interpolator transitions from the last key to the first key.&#10;Warning: if velocity vectors at first and last keys are specified, the closed field is ignored.&#10;Warning: if keyValues at first and last key are not identical, the closed field is ignored." name="closed"/>
            <attribute tooltip="[key &inputOutputLabel; &MFFloatLabel; #IMPLIED]&#10;Definition parameters for nonlinear-interpolation function time intervals, listed in non-decreasing order and corresponding to keyValue, keyVelocity array values.&#10;Warning: number of keys must match number of keyValues!&#10;Warning: values in key array shall be monotonically non-decreasing, meaning that each value is greater than or equal to the preceding value.&#10;Hint: typical interval for values in key array is within range of 0 to 1, but larger intervals can be defined with arbitrary bounds." name="key"/>
            <attribute tooltip="[keyValue &inputOutputLabel; &MFVec3fLabel; #IMPLIED]&#10;Output values for nonlinear interpolation, each corresponding to an input-fraction value in the key array.&#10;Warning: number of keys must match number of keyValues!" name="keyValue"/>
            <attribute tooltip="[keyVelocity &inputOutputLabel; &MFVec3fLabel; #IMPLIED]&#10;Output values for nonlinear interpolation, each corresponding to an input-fraction value in the key array.&#10;Warning: number of keys must match number of keyVelocity values!" name="keyVelocity"/>
            <attribute tooltip="[normalizeVelocity &inputOutputLabel; &SFBoolLabel; &#34;false&#34;]&#10;normalizeVelocity field specifies whether the velocity vectors are normalized to produce smooth speed transitions, or  transformed into tangency vectors.&#10;Hint: X3D 19.2.3 Non-linear interpolation https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/interpolators.html#NonlinearInterpolation" name="normalizeVelocity"/>
            <attribute tooltip="[set_fraction &inputOnlyLabel; &SFFloatLabel; #FIXED &#34;&#34;]&#10;set_fraction selects input key for corresponding use of keyValue, keyVelocity values for output computation.&#10;Hint: set_fraction values are typically in same range interval as values in the key array. Response to an input set_fraction value less than minimum is equivalent to minimum key, and response to an input set_fraction value greater than maximum is equivalent to maximum key.&#10;Warning: it is an error to define this transient inputOnly field in an X3D file, instead only use it a destination for ROUTE events." name="set_fraction"/>
            <attribute tooltip="[value_changed &outputOnlyLabel; &SFVec3fLabel; #FIXED &#34;&#34;]&#10;Nonlinearly interpolated output value computed by using current time fraction along with corresponding key, keyValue and keyVelocity values.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="value_changed"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/PositionInterpolator2D.gif" tooltip="(X3D version 3.2 or later) [X3DInterpolatorNode] SplinePositionInterpolator2D performs non-linear interpolation among paired lists of 2-tuple values and velocities to produce an SFVec2f value_changed output event.&#10;Hint: typical input connection is ROUTE someTimeSensorDEF.fraction_changed TO thisInterpolatorDEF.set_fraction&#10;Hint: typical output connection is ROUTE thisInterpolatorDEF.value_changed TO someDestinationNodeDEF.set_someAttribute.&#10;Warning: requires X3D profile='Full' or else include &lt;component name='Interpolation' level='4'/&gt;" name="SplinePositionInterpolator2D">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[closed &inputOutputLabel; &SFBoolLabel; &#34;false&#34;]&#10;Whether or not the curve is closed (i.e. matching end values), with continuous velocity vectors as the interpolator transitions from the last key to the first key.&#10;Warning: if velocity vectors at first and last keys are specified, the closed field is ignored.&#10;Warning: if keyValues at first and last key are not identical, the closed field is ignored." name="closed"/>
            <attribute tooltip="[key &inputOutputLabel; &MFFloatLabel; #IMPLIED]&#10;Definition parameters for nonlinear-interpolation function time intervals, listed in non-decreasing order and corresponding to keyValue, keyVelocity array values.&#10;Warning: number of keys must match number of keyValues!&#10;Warning: values in key array shall be monotonically non-decreasing, meaning that each value is greater than or equal to the preceding value.&#10;Hint: typical interval for values in key array is within range of 0 to 1, but larger intervals can be defined with arbitrary bounds." name="key"/>
            <attribute tooltip="[keyValue &inputOutputLabel; &MFVec2fLabel; #IMPLIED]&#10;Output values for nonlinear interpolation, each corresponding to an input-fraction value in the key array.&#10;Warning: number of keys must match number of keyValues!" name="keyValue"/>
            <attribute tooltip="[keyVelocity &inputOutputLabel; &MFVec2fLabel; #IMPLIED]&#10;Output values for nonlinear interpolation, each corresponding to an input-fraction value in the key array.&#10;Warning: number of keys must match number of keyVelocity values!" name="keyVelocity"/>
            <attribute tooltip="[normalizeVelocity &inputOutputLabel; &SFBoolLabel; &#34;false&#34;]&#10;normalizeVelocity field specifies whether the velocity vectors are normalized to produce smooth speed transitions, or  transformed into tangency vectors.&#10;Hint: X3D 19.2.3 Non-linear interpolation https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/interpolators.html#NonlinearInterpolation" name="normalizeVelocity"/>
            <attribute tooltip="[set_fraction &inputOnlyLabel; &SFFloatLabel; #FIXED &#34;&#34;]&#10;set_fraction selects input key for corresponding use of keyValue, keyVelocity values for output computation.&#10;Hint: set_fraction values are typically in same range interval as values in the key array. Response to an input set_fraction value less than minimum is equivalent to minimum key, and response to an input set_fraction value greater than maximum is equivalent to maximum key.&#10;Warning: it is an error to define this transient inputOnly field in an X3D file, instead only use it a destination for ROUTE events." name="set_fraction"/>
            <attribute tooltip="[value_changed &outputOnlyLabel; &SFVec2fLabel; #FIXED &#34;&#34;]&#10;Nonlinearly interpolated output value computed by using current time fraction along with corresponding key, keyValue and keyVelocity values.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="value_changed"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/ScalarInterpolator.gif" tooltip="(X3D version 3.2 or later) [X3DInterpolatorNode] SplineScalarInterpolator performs non-linear interpolation among paired lists of float values and velocities to produce an SFFloat value_changed output event.&#10;Hint: typical input connection is ROUTE someTimeSensorDEF.fraction_changed TO thisInterpolatorDEF.set_fraction&#10;Hint: typical output connection is ROUTE thisInterpolatorDEF.value_changed TO someDestinationNodeDEF.set_someAttribute.&#10;Warning: requires X3D profile='Full' or else include &lt;component name='Interpolation' level='4'/&gt;" name="SplineScalarInterpolator">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[closed &inputOutputLabel; &SFBoolLabel; &#34;false&#34;]&#10;Whether or not the curve is closed (i.e. matching end values), with continuous velocity vectors as the interpolator transitions from the last key to the first key.&#10;Warning: if velocity vectors at first and last keys are specified, the closed field is ignored.&#10;Warning: if keyValues at first and last key are not identical, the closed field is ignored." name="closed"/>
            <attribute tooltip="[key &inputOutputLabel; &MFFloatLabel; #IMPLIED]&#10;Definition parameters for nonlinear-interpolation function time intervals, listed in non-decreasing order and corresponding to keyValue, keyVelocity array values.&#10;Warning: number of keys must match number of keyValues!&#10;Warning: values in key array shall be monotonically non-decreasing, meaning that each value is greater than or equal to the preceding value.&#10;Hint: typical interval for values in key array is within range of 0 to 1, but larger intervals can be defined with arbitrary bounds." name="key"/>
            <attribute tooltip="[keyValue &inputOutputLabel; &MFFloatLabel; #IMPLIED]&#10;Output values for nonlinear interpolation, each corresponding to an input-fraction value in the key array.&#10;Warning: number of keys must match number of keyValues!" name="keyValue"/>
            <attribute tooltip="[keyVelocity &inputOutputLabel; &MFFloatLabel; #IMPLIED]&#10;Output values for nonlinear interpolation, each corresponding to an input-fraction value in the key array.&#10;Warning: number of keys must match number of keyVelocity values!" name="keyVelocity"/>
            <attribute tooltip="[normalizeVelocity &inputOutputLabel; &SFBoolLabel; &#34;false&#34;]&#10;normalizeVelocity field specifies whether the velocity vectors are normalized to produce smooth speed transitions, or  transformed into tangency vectors.&#10;Hint: X3D 19.2.3 Non-linear interpolation https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/interpolators.html#NonlinearInterpolation" name="normalizeVelocity"/>
            <attribute tooltip="[set_fraction &inputOnlyLabel; &SFFloatLabel; #FIXED &#34;&#34;]&#10;set_fraction selects input key for corresponding use of keyValue, keyVelocity values for output computation.&#10;Hint: set_fraction values are typically in same range interval as values in the key array. Response to an input set_fraction value less than minimum is equivalent to minimum key, and response to an input set_fraction value greater than maximum is equivalent to maximum key.&#10;Warning: it is an error to define this transient inputOnly field in an X3D file, instead only use it a destination for ROUTE events." name="set_fraction"/>
            <attribute tooltip="[value_changed &outputOnlyLabel; &SFFloatLabel; #FIXED &#34;&#34;]&#10;Nonlinearly interpolated output value computed by using current time fraction along with corresponding key, keyValue and keyVelocity values.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="value_changed"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/OrientationInterpolator.gif" tooltip="(X3D version 3.2 or later) [X3DInterpolatorNode] SquadOrientationInterpolator performs non-linear interpolation among paired lists of rotation values to produce an SFRotation value_changed output event.&#10;Hint: Squad is an acronym for Spherical Cubic Interpolation.&#10;Hint: typical input connection is ROUTE someTimeSensorDEF.fraction_changed TO thisInterpolatorDEF.set_fraction&#10;Hint: typical output connection is ROUTE thisInterpolatorDEF.value_changed TO someDestinationNodeDEF.set_someAttribute.&#10;Warning: requires X3D profile='Full' or else include &lt;component name='Interpolation' level='5'/&gt;" name="SquadOrientationInterpolator">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[normalizeVelocity &inputOutputLabel; &SFBoolLabel; &#34;false&#34;]&#10;normalizeVelocity field specifies whether the velocity vectors are normalized to produce smooth speed transitions, or  transformed into tangency vectors.&#10;Hint: X3D 19.2.3 Non-linear interpolation https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/interpolators.html#NonlinearInterpolation" name="normalizeVelocity"/>
            <attribute tooltip="[key &inputOutputLabel; &MFFloatLabel; #IMPLIED]&#10;Definition parameters for nonlinear-interpolation function time intervals, listed in non-decreasing order and corresponding to keyValue, keyVelocity array values.&#10;Warning: number of keys must match number of keyValues!&#10;Warning: values in key array shall be monotonically non-decreasing, meaning that each value is greater than or equal to the preceding value.&#10;Hint: typical interval for values in key array is within range of 0 to 1, but larger intervals can be defined with arbitrary bounds." name="key"/>
            <attribute tooltip="[keyValue &inputOutputLabel; &MFRotationLabel; #IMPLIED]&#10;Output values for nonlinear interpolation, each corresponding to an input-fraction value in the key array.&#10;Warning: number of keys must match number of keyValues!" name="keyValue"/>
            <attribute tooltip="[set_fraction &inputOnlyLabel; &SFFloatLabel; #FIXED &#34;&#34;]&#10;set_fraction selects input key for corresponding use of keyValue, keyVelocity values for output computation.&#10;Hint: set_fraction values are typically in same range interval as values in the key array. Response to an input set_fraction value less than minimum is equivalent to minimum key, and response to an input set_fraction value greater than maximum is equivalent to maximum key.&#10;Warning: it is an error to define this transient inputOnly field in an X3D file, instead only use it a destination for ROUTE events." name="set_fraction"/>
            <attribute tooltip="[value_changed &outputOnlyLabel; &SFRotationLabel; #FIXED &#34;&#34;]&#10;Nonlinearly interpolated output value computed by using current time fraction along with corresponding key, keyValue and keyVelocity values.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="value_changed"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <!-- Layering component -->
        <element icon="icons/Group.gif" tooltip="(X3D version 3.2 or later) [X3DLayerNode] Layer contains a list of children nodes that define the contents of the layer.&#10;Hint: no transformations are possible above each LayerSet/Layer combination in the scene graph hierarchy.&#10;Hint: each Layer node contains its own binding stacks and thus has its own viewpoints and navigation." name="Layer">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[children &inputOutputLabel; &MFNodeLabel;, empty list] [X3DChildNode]&#10;Nodes making up this layer.&#10;Hint: no transformations are possible above each LayerSet/Layer combination in the scene graph hierarchy.&#10;Hint: inputOnly MFNode addChildren field can append new X3DChildNode nodes via a ROUTE connection, duplicate input nodes (i.e. matching DEF, USE values) are ignored.&#10;Hint: inputOnly MFNode removeChildren field can remove nodes from the children list, unrecognized input nodes (i.e. nonmatching DEF, USE values) are ignored.&#10;Hint: X3D Architecture 10.2.1 Grouping and children node types, https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#GroupingAndChildrenNodes" name="children"/>
            <attribute tooltip="[viewport &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DViewportNode]&#10;The viewport field is a single Viewport node that constrains layer output to a sub-region of the render surface." name="viewport"/>
            <attribute tooltip="(X3D version 4.0 draft) [objectType &inputOutputLabel; &MFStringLabel; &PickableGroupObjectTypeValues; &#34;ALL&#34;]&#10;The objectType field specifies a set of labels used in the picking process. Each string specified is treated as an independent label that needs to be matched against the same type in one of the pick sensor instances.&#10;Example: labeling a PickableGroup with the objectType value &#34;WATER&#34; and then attempting to intersect a pick sensor with objectType value &#34;GROUND&#34; fails since the objectType values do not match.&#10;Example: the special value &#34;ALL&#34; means that each node is available for picking regardless of the type specified by the pick sensor.&#10;Example: the special value &#34;NONE&#34; effectively disables all picking for this node and is the equivalent of setting the pickable field to false.&#10;Hint: authors may define any value for objectType.&#10;Hint: MFString arrays can have multiple values, so &quot;separate each individual string&quot; &quot;by using quote marks&quot;." name="objectType"/>
            <attribute tooltip="(X3D version 4.0 draft) [pickable &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;pickable determines whether pick traversal is performed for this layer." name="pickable"/>
            <attribute tooltip="(X3D version 4.0 draft) [visible &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Whether or not renderable content within this node is visually displayed.&#10;Hint: the visible field has no effect on animation behaviors, event passing or other non-visual characteristics.&#10;Hint: content must be visible to be collidable and to be pickable." name="visible"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/Group.gif" tooltip="(X3D version 3.2 or later) [X3DNode] LayerSet defines a list of layers and a rendering order. The rendering order is specified by the order field.&#10;Hint: the layer first specified in the order field is the first layer rendered and appears below any other layers. The layer last specified in the order field is the last layer rendered and correspondingly appears on top of all other layers.&#10;Warning: only one LayerSet node is allowed in a scene, and it shall be a root node at the top of the scene graph.&#10;Hint: X3D Architecture 35.2.1 Overview of layering https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/layering.html#OverviewOfLayering" name="LayerSet">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[layers &inputOutputLabel; &MFNodeLabel;, empty list] [X3DLayerNode]&#10;The layers list defines a list of Layer nodes that contain the constituent parts of the scene. Each layer is assigned an ordinal number depending on its position in this contained list of nodes.&#10;Hint: Ordinal values start with the numeral 1 representing the first item in the list.&#10;Hint: nodes that are not part of a layer are considered to be in layer 0." name="layers"/>
            <attribute tooltip="[activeLayer &inputOutputLabel; &SFInt32Label; &#34;0&#34;] [0,+&#8734;)&#10;activeLayer field specifies the layer in which navigation takes place.&#10;Hint: nodes that are not part of a layer are considered to be in layer 0." name="activeLayer"/>
            <attribute tooltip="[order &inputOutputLabel; &MFInt32Label; &#34;0&#34;] [0,+&#8734;)&#10;The order list defines the order in which layers are rendered. Each value corresponds to the ordinals of the layers.&#10;Hint: the order list may contain repetitions of ordinal values, in which case the layer is rendered again.&#10;Warning: if order contains number values that are not ordinals assigned to layers, such numbers are ignored.&#10;Warning: layers that are not included in the order list are not rendered." name="order"/>
            <attribute tooltip="[bboxCenter &initializeOnlyLabel; &SFVec3fLabel; &#34;0 0 0&#34;]&#10;Bounding box center accompanies bboxSize and provides an optional hint for bounding box position offset from origin of local coordinate system.&#10;Hint: precomputation and inclusion of bounding box information can speed up the initialization of large detailed models, with a corresponding cost of increased file size.&#10;Hint: X3D Architecture, 10.2.2 Bounding boxes https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#BoundingBoxes&#10;Hint:  X3D Architecture, 10.3.1 X3DBoundedObject https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#X3DBoundedObject" name="bboxCenter"/>
            <attribute tooltip="[bboxSize &initializeOnlyLabel; &SFVec3fLabel; &#34;-1 -1 -1&#34;] or [0,+&#8734;)&#10;Bounding box size is usually omitted, and can easily be calculated automatically by an X3D player at scene-loading time with minimal computational cost. Bounding box size can also be defined as an optional authoring hint that suggests an optimization or constraint.&#10;Hint: can be useful for collision computations or inverse-kinematics (IK) engines.&#10;Hint: precomputation and inclusion of bounding box information can speed up the initialization of large detailed models, with a corresponding cost of increased file size.&#10;Hint: X3D Architecture, 10.2.2 Bounding boxes https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#BoundingBoxes&#10;Hint:  X3D Architecture, 10.3.1 X3DBoundedObject https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#X3DBoundedObject" name="bboxSize"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/Viewpoint.gif" tooltip="(X3D version 3.2 or later) [X3DViewportNode, X3DBoundedObject,X3DVisibleObject] Viewport is a Grouping node that can contain most nodes. Viewport specifies a set of rectangular clip boundaries against which the children nodes are clipped as they are rendered." name="Viewport">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[children &inputOutputLabel; &MFNodeLabel;, empty list] [X3DChildNode]&#10;Grouping nodes contain an ordered list of children nodes.&#10;Hint: Each grouping node defines a coordinate space for its children, relative to the coordinate space of its parent node. Thus transformations accumulate down the scene graph hierarchy.&#10;Hint: inputOnly MFNode addChildren field can append new X3DChildNode nodes via a ROUTE connection, duplicate input nodes (i.e. matching DEF, USE values) are ignored.&#10;Hint: inputOnly MFNode removeChildren field can remove nodes from the children list, unrecognized input nodes (i.e. nonmatching DEF, USE values) are ignored.&#10;Hint: X3D Architecture 10.2.1 Grouping and children node types, https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#GroupingAndChildrenNodes" name="children"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[clipBoundary &inputOutputLabel; &SFVec4fLabel; &#34;0 1 0 1&#34;] [0,1]&#10;clipBoundary is specified in fractions of the normal render surface in the sequence left/right/bottom/top. When children are rendered, the output will only appear in the specified subset of the render surface.&#10;Hint: default value 0 1 0 1 indicates 0-1 left-to-right and 0-1 bottom-to-top, meaning full view." name="clipBoundary"/>
            <attribute tooltip="[bboxCenter &initializeOnlyLabel; &SFVec3fLabel; &#34;0 0 0&#34;]&#10;Bounding box center accompanies bboxSize and provides an optional hint for bounding box position offset from origin of local coordinate system.&#10;Hint: precomputation and inclusion of bounding box information can speed up the initialization of large detailed models, with a corresponding cost of increased file size.&#10;Hint: X3D Architecture, 10.2.2 Bounding boxes https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#BoundingBoxes&#10;Hint:  X3D Architecture, 10.3.1 X3DBoundedObject https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#X3DBoundedObject" name="bboxCenter"/>
            <attribute tooltip="[bboxSize &initializeOnlyLabel; &SFVec3fLabel; &#34;-1 -1 -1&#34;] or [0,+&#8734;)&#10;Bounding box size is usually omitted, and can easily be calculated automatically by an X3D player at scene-loading time with minimal computational cost. Bounding box size can also be defined as an optional authoring hint that suggests an optimization or constraint.&#10;Hint: can be useful for collision computations or inverse-kinematics (IK) engines.&#10;Hint: precomputation and inclusion of bounding box information can speed up the initialization of large detailed models, with a corresponding cost of increased file size.&#10;Hint: X3D Architecture, 10.2.2 Bounding boxes https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#BoundingBoxes&#10;Hint:  X3D Architecture, 10.3.1 X3DBoundedObject https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#X3DBoundedObject" name="bboxSize"/>
            <attribute tooltip="(X3D version 4.0 draft) [bboxDisplay &inputOutputLabel; &SFBoolLabel; &#34;false&#34;]&#10;Whether to display bounding box for associated geometry, aligned with world coordinates.&#10;Hint: the bounding box is displayed regardless of whether contained content is visible." name="bboxDisplay"/>
            <attribute tooltip="(X3D version 4.0 draft) [visible &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Whether or not renderable content within this node is visually displayed.&#10;Hint: the visible field has no effect on animation behaviors, event passing or other non-visual characteristics.&#10;Hint: content must be visible to be collidable and to be pickable." name="visible"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;viewport&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Warning: X3D Schema has incorrect default value for containerField.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <!-- Layout component -->
        <element icon="icons/Group.gif" tooltip="(X3D version 3.2 or later) [X3DLayoutNode] Layout node is used as layout field of LayoutLayer and LayoutGroup nodes. Layout provides all parameters required to define the size, location and scale of a 2D rectangular region.&#10;Hint: the align, offset, and offsetUnits fields are used to determine the location of the layout region." name="Layout">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[align &inputOutputLabel; &MFStringLabel; &LayoutAlignHorizontalValues; &LayoutAlignVerticalValues; &quot;CENTER&quot; &quot;CENTER&quot;]&#10;The align field values align the sized rectangle to an edge or center of the parent rectangle. Two quoted string values are provided. The first value is for horizontal direction (LEFT|CENTER|RIGHT) and the second value is for vertical direction (BOTTOM|CENTER|TOP).&#10;Examples: &#34;CENTER&#34; &#34;CENTER&#34; (default value), &#34;LEFT&#34; &#34;TOP&#34; or &#34;RIGHT&#34; &#34;BOTTOM&#34;.&#10;Warning: two values (or possibly one value) only.&#10;Warning: if the align field has only one value, that value shall be &quot;CENTER&quot; and apply both horizontally and vertically.&#10;Hint: MFString arrays can have multiple values, so &quot;separate each individual string&quot; &quot;by using quote marks&quot;." name="align"/>
            <attribute tooltip="[offset &initializeOnlyLabel; &MFFloatLabel; 0 0] (-&#8734;,+&#8734;)&#10;The values of the offset field are used to translate the location of this rectangle after the initial alignment. The offsetUnits field specifies how to interpret the offset field.&#10;Warning: if only one value is provided, it applies equally to horizontal and vertical directions (width and height).  More than two values are not allowed." name="offset"/>
            <attribute tooltip="[offsetUnits &inputOutputLabel; &MFStringLabel; &LayoutOffsetUnitsValues; &quot;WORLD&quot; &quot;WORLD&quot;]&#10;The offsetUnits field values are used to interprete the offset values. Two quoted string values are provided. The first value is for horizontal offset, and the second value is for vertical offset.&#10;Examples: &#34;WORLD&#34; &#34;WORLD&#34; (default value), &#34;FRACTION&#34; &#34;FRACTION&#34; or &#34;PIXEL&#34; &#34;PIXEL&#34;.&#10;Hint: If the value of the offsetUnits field is FRACTION, the size of the corresponding dimension is interpreted as a fraction of the corresponding parent’s dimension.&#10;Warning: if only one value is provided, it applies equally to horizontal and vertical directions (width and height).  More than two values are not allowed.&#10;Hint: MFString arrays can have multiple values, so &quot;separate each individual string&quot; &quot;by using quote marks&quot;." name="offsetUnits"/>
            <attribute tooltip="[scaleMode &inputOutputLabel; &MFStringLabel; &LayoutScaleModeValues; &quot;NONE&quot; &quot;NONE&quot;]&#10;The scaleMode field specifies how the scale of the parent is modified. Two quoted string values are provided. The first value is for horizontal scale and the second value is for vertical scale.&#10;Examples: &#34;NONE&#34; &#34;NONE&#34; (default value), &#34;FRACTION&#34; &#34;FRACTION&#34;, &#34;STRETCH&#34; &#34;STRETCH&#34; or &#34;PIXEL&#34; &#34;PIXEL&#34;.&#10;Hint: A scaleMode field value of NONE specifies that the corresponding scale value is not modified. Instead, the scale is inherited from its parent. Since a LayoutLayer node does not have a parent, the value of NONE reverts to FRACTION.&#10;Hint: A scaleMode value of FRACTION specifies a scale in the corresponding direction so that one unit is equal to the dimension (width or height) of this rectangle.&#10;Hint: a scaleMode value of STRETCH specifies a scale in the corresponding direction such that the resulting scale in the horizontal direction is equal to the scale in the vertical direction, thus producing a uniform scale.&#10;Hint: a value of PIXEL specifies a scale in the corresponding direction such that one unit is equal to one pixel.&#10;Warning: if only one value is provided, it applies equally to horizontal and vertical directions (width and height).  More than two values are not allowed.&#10;Hint: MFString arrays can have multiple values, so &quot;separate each individual string&quot; &quot;by using quote marks&quot;." name="scaleMode"/>
            <attribute tooltip="[size &initializeOnlyLabel; &MFFloatLabel; 1 1] (0,+&#8734;)&#10;The two values in the size field define the width and height of the layout rectangle. The sizeUnits field specifies how to interpret the size values.&#10;Warning: if only one value is provided, it applies equally to horizontal and vertical directions (width and height).  More than two values are not allowed." name="size"/>
            <attribute tooltip="[sizeUnits &inputOutputLabel; &MFStringLabel; &LayoutOffsetUnitsValues; &quot;WORLD&quot; &quot;WORLD&quot;]&#10;The sizeUnits field values are used to interprete the offset values. Two quoted string values are provided. The first value is for horizontal size, and the second value is for vertical size.&#10;Examples: &#34;WORLD&#34; &#34;WORLD&#34; (default value), &#34;FRACTION&#34; &#34;FRACTION&#34; or &#34;PIXEL&#34; &#34;PIXEL&#34;.&#10;Hint: If the value of the sizeUnits field is FRACTION, the size of the corresponding dimension is interpreted as a fraction of the corresponding parent’s dimension.&#10;Warning: if only one value is provided, it applies equally to horizontal and vertical directions (width and height).  More than two values are not allowed.&#10;Hint: MFString arrays can have multiple values, so &quot;separate each individual string&quot; &quot;by using quote marks&quot;." name="sizeUnits"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/Group.gif" tooltip="(X3D version 3.2 or later) [X3DGroupingNode,X3DVisibleObject] LayoutGroup is a Grouping node that can contain most nodes, whose children are related by a common layout within a parent layout.&#10;The layout field contains an X3DLayoutNode node that provides the information required to locate and size the layout region of the LayoutGroup node relative to its parent’s layout region. LayoutGroup content is clipped by the specified viewport node.&#10;Hint: The origin of the node is always in the center of its layout region. Thus, children (with the exception of LayoutGroup) are specified in a coordinate system whose origin is located at the center of the rectangle and can be transformed from that location.&#10;Warning: a LayoutGroup can only be a child of a LayoutLayer node or another LayoutGroup node.&#10;Hint: insert a Shape node before adding geometry or Appearance.&#10;Hint: LayoutGroup does not directly have any pixel-dependent concepts. However, it can contain a Layout node that does have pixel-specific options." name="LayoutGroup">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[children &inputOutputLabel; &MFNodeLabel;, empty list] [X3DChildNode]&#10;Grouping nodes contain an ordered list of children nodes.&#10;Hint: Each grouping node defines a coordinate space for its children, relative to the coordinate space of its parent node. Thus transformations accumulate down the scene graph hierarchy.&#10;Hint: inputOnly MFNode addChildren field can append new X3DChildNode nodes via a ROUTE connection, duplicate input nodes (i.e. matching DEF, USE values) are ignored.&#10;Hint: inputOnly MFNode removeChildren field can remove nodes from the children list, unrecognized input nodes (i.e. nonmatching DEF, USE values) are ignored.&#10;Hint: X3D Architecture 10.2.1 Grouping and children node types, https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#GroupingAndChildrenNodes" name="children"/>
            <attribute tooltip="[layout &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DLayoutNode]&#10;The layout field contains an X3DLayoutNode node that provides the information required to locate and size the layout region of the LayoutGroup node relative to its parent’s layout region, and also to scale the contents of the LayoutGroup." name="layout"/>
            <attribute tooltip="[viewport &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DViewportNode]&#10;The content of the LayoutGroup is clipped by the specified viewport." name="viewport"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[bboxCenter &initializeOnlyLabel; &SFVec3fLabel; &#34;0 0 0&#34;]&#10;Bounding box center accompanies bboxSize and provides an optional hint for bounding box position offset from origin of local coordinate system.&#10;Hint: precomputation and inclusion of bounding box information can speed up the initialization of large detailed models, with a corresponding cost of increased file size.&#10;Hint: X3D Architecture, 10.2.2 Bounding boxes https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#BoundingBoxes&#10;Hint:  X3D Architecture, 10.3.1 X3DBoundedObject https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#X3DBoundedObject" name="bboxCenter"/>
            <attribute tooltip="[bboxSize &initializeOnlyLabel; &SFVec3fLabel; &#34;-1 -1 -1&#34;] or [0,+&#8734;)&#10;Bounding box size is usually omitted, and can easily be calculated automatically by an X3D player at scene-loading time with minimal computational cost. Bounding box size can also be defined as an optional authoring hint that suggests an optimization or constraint.&#10;Hint: can be useful for collision computations or inverse-kinematics (IK) engines.&#10;Hint: precomputation and inclusion of bounding box information can speed up the initialization of large detailed models, with a corresponding cost of increased file size.&#10;Hint: X3D Architecture, 10.2.2 Bounding boxes https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#BoundingBoxes&#10;Hint:  X3D Architecture, 10.3.1 X3DBoundedObject https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#X3DBoundedObject" name="bboxSize"/>
            <attribute tooltip="(X3D version 4.0 draft) [bboxDisplay &inputOutputLabel; &SFBoolLabel; &#34;false&#34;]&#10;Whether to display bounding box for associated geometry, aligned with world coordinates.&#10;Hint: the bounding box is displayed regardless of whether contained content is visible." name="bboxDisplay"/>
            <attribute tooltip="(X3D version 4.0 draft) [visible &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Whether or not renderable content within this node is visually displayed.&#10;Hint: the visible field has no effect on animation behaviors, event passing or other non-visual characteristics.&#10;Hint: content must be visible to be collidable and to be pickable." name="visible"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/Group.gif" tooltip="(X3D version 3.2 or later) [X3DLayerNode] LayoutLayer is a Grouping node that can contain most nodes. LayoutLayer content is clipped by the specified viewport node.&#10;Hint: insert a Shape node before adding geometry or Appearance.&#10;Warning: better functional description needed in X3D specification." name="LayoutLayer">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[children &inputOutputLabel; &MFNodeLabel;, empty list] [X3DChildNode]&#10;Grouping nodes contain an ordered list of children nodes.&#10;Hint: Each grouping node defines a coordinate space for its children, relative to the coordinate space of its parent node. Thus transformations accumulate down the scene graph hierarchy.&#10;Hint: inputOnly MFNode addChildren field can append new X3DChildNode nodes via a ROUTE connection, duplicate input nodes (i.e. matching DEF, USE values) are ignored.&#10;Hint: inputOnly MFNode removeChildren field can remove nodes from the children list, unrecognized input nodes (i.e. nonmatching DEF, USE values) are ignored.&#10;Hint: X3D Architecture 10.2.1 Grouping and children node types, https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#GroupingAndChildrenNodes" name="children"/>
            <attribute tooltip="[layout &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DLayoutNode]&#10;The layout field contains an X3DLayoutNode node that provides the information required to locate and size the layout region of the LayoutGroup node relative to its parent’s layout region, and also to scale the contents of the LayoutGroup." name="layout"/>
            <attribute tooltip="[viewport &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DViewportNode]&#10;The content of the LayoutGroup is clipped by the specified viewport." name="viewport"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="(X3D version 4.0 draft) [objectType &inputOutputLabel; &MFStringLabel; &PickableGroupObjectTypeValues; &#34;ALL&#34;]&#10;The objectType field specifies a set of labels used in the picking process. Each string specified is treated as an independent label that needs to be matched against the same type in one of the pick sensor instances.&#10;Example: labeling a PickableGroup with the objectType value &#34;WATER&#34; and then attempting to intersect a pick sensor with objectType value &#34;GROUND&#34; fails since the objectType values do not match.&#10;Example: the special value &#34;ALL&#34; means that each node is available for picking regardless of the type specified by the pick sensor.&#10;Example: the special value &#34;NONE&#34; effectively disables all picking for this node and is the equivalent of setting the pickable field to false.&#10;Hint: authors may define any value for objectType.&#10;Hint: MFString arrays can have multiple values, so &quot;separate each individual string&quot; &quot;by using quote marks&quot;." name="objectType"/>
            <attribute tooltip="(X3D version 4.0 draft) [pickable &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;pickable determines whether pick traversal is performed for this layer." name="pickable"/>
            <attribute tooltip="(X3D version 4.0 draft) [visible &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Whether or not renderable content within this node is visually displayed.&#10;Hint: the visible field has no effect on animation behaviors, event passing or other non-visual characteristics.&#10;Hint: content must be visible to be collidable and to be pickable." name="visible"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/FontStyle.gif" tooltip="(X3D version 3.2 or later) [X3DFontStyleNode] ScreenFontStyle is an X3DFontStyleNode defines the size, family, justification, and other styles used within a screen layout. ScreenFontStyle renders text so that it appears identical to typical 2D applications by specifying pointSize in points (as in 2D document layout) rather than size in meters. Each glyph of text is rendered as a quadrilateral with a texture applied.&#10;Hint: first add a Text node as a parent.&#10;Hint: Wikipedia https://en.wikipedia.org/wiki/Font" name="ScreenFontStyle">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[family &inputOutputLabel; &MFStringLabel; &FontStyleFamilyValues; &#34;SERIF&#34;]&#10;Array of quoted font family names in preference order, browsers use the first supported family.&#10;Hint: example family array might be &#34;Times&#34; &#34;SERIF&#34;&#10;Warning: font family support often varies.&#10;Hint: values with guaranteed support include &#34;SERIF&#34; &#34;SANS&#34; &#34;TYPEWRITER&#34;.&#10;Hint: SERIF and SANS are variable-width fonts (for example, Times Roman and Arial).&#10;Hint: TYPEWRITER is a fixed-width font (for example, Courier).&#10;Hint: MFString arrays can have multiple values, so &quot;separate each individual string&quot; &quot;by using quote marks&quot;.&#10;Hint: see 15.2.2.2 Font family and style https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/text.html#Fontfamilyandstyle for details.&#10;Hint: relates to Internationalization (i18n) http://www.w3.org/standards/webdesign/i18n&#10;Hint: (X3D version 4.0 draft) accessType relaxed to inputOutput in order to support animation and user accessibility." name="family"/>
            <attribute tooltip="[style &inputOutputLabel; &SFStringLabel; &FontStyleStyleValues; PLAIN]&#10;Pick one of four values for text style (PLAIN|BOLD|ITALIC|BOLDITALIC).&#10;Warning: overloaded name for CSS style attribute.&#10;Warning: do not wrap extra quotation marks  around these SFString enumeration values, since &#34;quotation&#34; &#34;marks&#34; are only used for MFString values.&#10;Hint: see 15.2.2.2 Font family and style https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/text.html#Fontfamilyandstyle for details.&#10;Hint: overlapping functionality with CSS style attribute provides a &quot;best of both worlds&quot; approach.&#10;The style attribute provides an inline block of CSS source for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets.&#10;Hint: X3D Architecture Annex L, HTML authoring guidelines, CSS considerations https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/htmlGuidelines.html#CSS&#10;Hint: W3C Cascading Style Sheets https://www.w3.org/Style/CSS&#10;Hint: CSS Snapshot https://www.w3.org/TR/css-2018&#10;Hint: https://www.w3.org/TR/css-style-attr&#10;Hint: Wikibooks, XML - Managing Data Exchange/XSLT and Style Sheets https://en.wikibooks.org/wiki/XML_-_Managing_Data_Exchange/XSLT_and_Style_Sheets" name="style"/>
            <attribute tooltip="[justify &inputOutputLabel; &MFStringLabel; &FontStyleJustifyValues; &quot;BEGIN&quot; or &quot;BEGIN&quot; &quot;END&quot;]The justify field determines horizontal and vertical alignment of text layout, relative to the origin of the object coordinate system.&#10;Hint: preferred value is usually justify=' &quot;MIDDLE&quot; &quot;MIDDLE&quot; ' for centered justification horizontally and vertically.&#10;Warning: exactly two string values are provided for major and minor axis alignment.&#10;Warning: do not use illegal values such as LEFT RIGHT TOP BOTTOM or CENTER.&#10;Hint: MFString arrays can have multiple values, so &quot;separate each individual string&quot; &quot;by using quote marks&quot;.&#10;Hint: see 15.2.2.3 Direction and justification https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/text.html#Directionandjustification for details.&#10;Hint: (X3D version 4.0 draft) accessType relaxed to inputOutput in order to support animation and user accessibility." name="justify"/>
            <attribute tooltip="[pointSize &inputOutputLabel; &SFFloatLabel; &#34;12.0&#34;] (0,+&#8734;)&#10;pointSize field specifies the size of text in points. Nominal height (in local coordinate system) of text glyphs, also sets default spacing between adjacent lines of text.&#10;Hint: pointSize replaces the size field of the FontStyle node.&#10;Hint: (X3D version 4.0 draft) accessType relaxed to inputOutput in order to support animation and user accessibility." name="pointSize"/>
            <attribute tooltip="[spacing &inputOutputLabel; &SFFloatLabel; &#34;1.0&#34;] [0,+&#8734;)&#10;Adjustment factor for line spacing between adjacent lines of text.&#10;Hint: (X3D version 4.0 draft) accessType relaxed to inputOutput in order to support animation and user accessibility." name="spacing"/>
            <attribute tooltip="[language &inputOutputLabel; &SFStringLabel; #IMPLIED]&#10;Language codes consist of a primary code and a (possibly empty) series of subcodes.&#10;[ language-code = primary-code ( &quot;-&quot; subcode )* ]&#10;Two-letter primary codes are reserved for language abbreviations.&#10;Two-letter primary codes include en (English), fr (French), de (German), it (Italian), nl (Dutch),  el (Greek), es (Spanish), pt (Portuguese),  ar (Arabic), he (Hebrew), ru (Russian), zh (Chinese), ja (Japanese), hi (Hindi), ur (Urdu), and sa (Sanskrit).&#10;Any two-letter subcode is understood to be a country code.&#10;Warning: do not wrap extra quotation marks  around these SFString enumeration values, since &#34;quotation&#34; &#34;marks&#34; are only used for MFString values.&#10;Hint: see ISO639.2 Codes for the Representation of Names of Languages http://www.loc.gov/standards/iso639-2/php/code_list.php&#10;Hint: see RFC3066 Tags for the Identification of Languages https://tools.ietf.org/html/rfc3066&#10;Hint: see ISO3166 or http://xml.coverpages.org/languageIdentifiers.html&#10;Hint: relates to Internationalization (i18n) http://www.w3.org/standards/webdesign/i18n&#10;Hint: (X3D version 4.0 draft) accessType relaxed to inputOutput in order to support animation and user accessibility." name="language"/>
            <attribute tooltip="[horizontal &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Whether text direction is horizontal (true) or vertical (false).&#10;Hint: see 15.2.2.3 Direction and justification https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/text.html#Directionandjustification for details.&#10;Hint: relates to Internationalization (i18n) http://www.w3.org/standards/webdesign/i18n&#10;Hint: (X3D version 4.0 draft) accessType relaxed to inputOutput in order to support animation and user accessibility." name="horizontal"/>
            <attribute tooltip="[leftToRight &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Whether text direction is left-to-right (true) or right-to-left (false).&#10;Hint: see 15.2.2.3 Direction and justification https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/text.html#Directionandjustification for details.&#10;Hint: relates to Internationalization (i18n) http://www.w3.org/standards/webdesign/i18n&#10;Hint: (X3D version 4.0 draft) accessType relaxed to inputOutput in order to support animation and user accessibility." name="leftToRight"/>
            <attribute tooltip="[topToBottom &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Whether text direction is top-to-bottom (true) or bottom-to-top (false).&#10;Hint: see 15.2.2.3 Direction and justification https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/text.html#Directionandjustification for details.&#10;Hint: relates to Internationalization (i18n) http://www.w3.org/standards/webdesign/i18n&#10;Hint: (X3D version 4.0 draft) accessType relaxed to inputOutput in order to support animation and user accessibility." name="topToBottom"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;fontStyle&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/Group.gif" tooltip="(X3D version 3.2 or later) [X3DGroupingNode,X3DVisibleObject] ScreenGroup is a Grouping node that can contain most nodes. ScreenGroup modifies the screen scale in such a way that one unit is equal to one pixel in both the horizontal and vertical directions.&#10;Hint: insert a Shape node before adding geometry or Appearance." name="ScreenGroup">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[children &inputOutputLabel; &MFNodeLabel;, empty list] [X3DChildNode]&#10;Grouping nodes contain an ordered list of children nodes.&#10;Hint: Each grouping node defines a coordinate space for its children, relative to the coordinate space of its parent node. Thus transformations accumulate down the scene graph hierarchy.&#10;Hint: inputOnly MFNode addChildren field can append new X3DChildNode nodes via a ROUTE connection, duplicate input nodes (i.e. matching DEF, USE values) are ignored.&#10;Hint: inputOnly MFNode removeChildren field can remove nodes from the children list, unrecognized input nodes (i.e. nonmatching DEF, USE values) are ignored.&#10;Hint: X3D Architecture 10.2.1 Grouping and children node types, https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#GroupingAndChildrenNodes" name="children"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[bboxCenter &initializeOnlyLabel; &SFVec3fLabel; &#34;0 0 0&#34;]&#10;Bounding box center accompanies bboxSize and provides an optional hint for bounding box position offset from origin of local coordinate system.&#10;Hint: precomputation and inclusion of bounding box information can speed up the initialization of large detailed models, with a corresponding cost of increased file size.&#10;Hint: X3D Architecture, 10.2.2 Bounding boxes https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#BoundingBoxes&#10;Hint:  X3D Architecture, 10.3.1 X3DBoundedObject https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#X3DBoundedObject" name="bboxCenter"/>
            <attribute tooltip="[bboxSize &initializeOnlyLabel; &SFVec3fLabel; &#34;-1 -1 -1&#34;] or [0,+&#8734;)&#10;Bounding box size is usually omitted, and can easily be calculated automatically by an X3D player at scene-loading time with minimal computational cost. Bounding box size can also be defined as an optional authoring hint that suggests an optimization or constraint.&#10;Hint: can be useful for collision computations or inverse-kinematics (IK) engines.&#10;Hint: precomputation and inclusion of bounding box information can speed up the initialization of large detailed models, with a corresponding cost of increased file size.&#10;Hint: X3D Architecture, 10.2.2 Bounding boxes https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#BoundingBoxes&#10;Hint:  X3D Architecture, 10.3.1 X3DBoundedObject https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#X3DBoundedObject" name="bboxSize"/>
            <attribute tooltip="(X3D version 4.0 draft) [bboxDisplay &inputOutputLabel; &SFBoolLabel; &#34;false&#34;]&#10;Whether to display bounding box for associated geometry, aligned with world coordinates.&#10;Hint: the bounding box is displayed regardless of whether contained content is visible." name="bboxDisplay"/>
            <attribute tooltip="(X3D version 4.0 draft) [visible &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Whether or not renderable content within this node is visually displayed.&#10;Hint: the visible field has no effect on animation behaviors, event passing or other non-visual characteristics.&#10;Hint: content must be visible to be collidable and to be pickable." name="visible"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <!-- Rigid body physics component -->
        <element icon="icons/Sphere.gif" tooltip="(X3D version 3.2 or later) [X3DRigidJointNode] BallJoint represents an unconstrained joint between two bodies that pivot about a common anchor point.&#10;Contains two RigidBody nodes (containerField values body1, body2).&#10;Hint: RigidBodyPhysics component, level 2." name="BallJoint">
            <attribute tooltip="[body1 &inputOutputLabel; &SFNodeLabel;, NULL node] [RigidBody]&#10;The body1 and body2 fields indicate the two RigidBody nodes connected by this joint." name="body1"/>
            <attribute tooltip="[body2 &inputOutputLabel; &SFNodeLabel;, NULL node] [RigidBody]&#10;The body1 and body2 fields indicate the two RigidBody nodes connected by this joint." name="body2"/>
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[anchorPoint &inputOutputLabel; &SFVec3fLabel; &#34;0 0 0&#34;]&#10;anchorPoint is joint center, specified in world coordinates." name="anchorPoint"/>
            <attribute tooltip="[forceOutput &inputOutputLabel; &MFStringLabel; &#34;NONE&#34;]&#10;forceOutput controls which output fields are generated for the next frame.&#10;Values are ALL, NONE, or exact names of output fields updated at start of next frame." name="forceOutput"/>
            <attribute tooltip="[body1AnchorPoint &outputOnlyLabel; &SFVec3fLabel;]&#10;body1AnchorPoint describes anchorPoint position relative to local coordinate reference frame.&#10;Hint: can detect separation if body1AnchorPoint!=body2AnchorPoint.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="body1AnchorPoint"/>
            <attribute tooltip="[body2AnchorPoint &outputOnlyLabel; &SFVec3fLabel;]&#10;body2AnchorPoint describes anchorPoint position relative to local coordinate reference frame.&#10;Hint: can detect separation if body1AnchorPoint!=body2AnchorPoint.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="body2AnchorPoint"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;joints&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/Transform.gif" tooltip="(X3D version 3.2 or later) [X3DNBodyCollidableNode] CollidableOffset repositions geometry relative to center of owning body.&#10;Contains a single CollidableShape or CollidableOffset node (containerField='collidable').&#10;Hint: content must be visible to be collidable and to be pickable." name="CollidableOffset">
            <attribute tooltip="[collidable &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DNBodyCollidableNode]&#10;The collidable field holds a reference to a single nested item of a collidable scene graph.&#10;Warning: if there are multiple transformation paths to this reference, the results are undefined." name="collidable"/>
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[enabled &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Enables/disables node operation." name="enabled"/>
            <attribute tooltip="[translation &inputOutputLabel; &SFVec3fLabel; &#34;0 0 0&#34;]&#10;Position (x, y, z in meters) of children relative to local coordinate system.&#10;Hint: The order of operation is first apply the center offset, then scaleOrientation and scale, then rotation, then restore the center offset, then translation." name="translation"/>
            <attribute tooltip="[rotation &inputOutputLabel; &SFRotationLabel; &#34;0 0 1 0&#34;]&#10;Orientation (axis, angle in radians) of children relative to local coordinate system.&#10;Hint: The order of operation is first apply the center offset, then scaleOrientation and scale, then rotation, then restore the center offset, then translation." name="rotation"/>
            <attribute tooltip="[bboxCenter &initializeOnlyLabel; &SFVec3fLabel; &#34;0 0 0&#34;]&#10;Bounding box center accompanies bboxSize and provides an optional hint for bounding box position offset from origin of local coordinate system.&#10;Hint: precomputation and inclusion of bounding box information can speed up the initialization of large detailed models, with a corresponding cost of increased file size.&#10;Hint: X3D Architecture, 10.2.2 Bounding boxes https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#BoundingBoxes&#10;Hint:  X3D Architecture, 10.3.1 X3DBoundedObject https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#X3DBoundedObject" name="bboxCenter"/>
            <attribute tooltip="[bboxSize &initializeOnlyLabel; &SFVec3fLabel; &#34;-1 -1 -1&#34;] or [0,+&#8734;)&#10;Bounding box size is usually omitted, and can easily be calculated automatically by an X3D player at scene-loading time with minimal computational cost. Bounding box size can also be defined as an optional authoring hint that suggests an optimization or constraint.&#10;Hint: can be useful for collision computations or inverse-kinematics (IK) engines.&#10;Hint: precomputation and inclusion of bounding box information can speed up the initialization of large detailed models, with a corresponding cost of increased file size.&#10;Hint: X3D Architecture, 10.2.2 Bounding boxes https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#BoundingBoxes&#10;Hint:  X3D Architecture, 10.3.1 X3DBoundedObject https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#X3DBoundedObject" name="bboxSize"/>
            <attribute tooltip="(X3D version 4.0 draft) [bboxDisplay &inputOutputLabel; &SFBoolLabel; &#34;false&#34;]&#10;Whether to display bounding box for associated geometry, aligned with world coordinates.&#10;Hint: the bounding box is displayed regardless of whether contained content is visible." name="bboxDisplay"/>
            <attribute tooltip="(X3D version 4.0 draft) [visible &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Whether or not renderable content within this node is visually displayed.&#10;Hint: the visible field has no effect on animation behaviors, event passing or other non-visual characteristics.&#10;Hint: content must be visible to be collidable and to be pickable." name="visible"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/SHAPE32.png" tooltip="(X3D version 3.2 or later) [X3DNBodyCollidableNode] CollidableShape connects the collision detection system, the rigid body model, and the renderable scene graph.&#10;Contains a single Shape node (containerField='shape') for animating collidable geometry.&#10;Warning: avoid changing Shape geometry at run time to prevent performance problems.&#10;Warning: apply containerField='shape' to single Shape child node, not containerField='children' default.&#10;Hint: content must be visible to be collidable and to be pickable." name="CollidableShape">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[shape &initializeOnlyLabel; &SFNodeLabel;, NULL node] [Shape]&#10;The shape field provides a geometry proxy for specifying which geometry best represents the collidable object." name="shape"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[enabled &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Enables/disables node operation." name="enabled"/>
            <attribute tooltip="[translation &inputOutputLabel; &SFVec3fLabel; &#34;0 0 0&#34;]&#10;Position (x, y, z in meters) of children relative to local coordinate system.&#10;Hint: The order of operation is first apply the center offset, then scaleOrientation and scale, then rotation, then restore the center offset, then translation." name="translation"/>
            <attribute tooltip="[rotation &inputOutputLabel; &SFRotationLabel; &#34;0 0 1 0&#34;]&#10;Orientation (axis, angle in radians) of children relative to local coordinate system.&#10;Hint: The order of operation is first apply the center offset, then scaleOrientation and scale, then rotation, then restore the center offset, then translation." name="rotation"/>
            <attribute tooltip="[bboxCenter &initializeOnlyLabel; &SFVec3fLabel; &#34;0 0 0&#34;]&#10;Bounding box center accompanies bboxSize and provides an optional hint for bounding box position offset from origin of local coordinate system.&#10;Hint: precomputation and inclusion of bounding box information can speed up the initialization of large detailed models, with a corresponding cost of increased file size.&#10;Hint: X3D Architecture, 10.2.2 Bounding boxes https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#BoundingBoxes&#10;Hint:  X3D Architecture, 10.3.1 X3DBoundedObject https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#X3DBoundedObject" name="bboxCenter"/>
            <attribute tooltip="[bboxSize &initializeOnlyLabel; &SFVec3fLabel; &#34;-1 -1 -1&#34;] or [0,+&#8734;)&#10;Bounding box size is usually omitted, and can easily be calculated automatically by an X3D player at scene-loading time with minimal computational cost. Bounding box size can also be defined as an optional authoring hint that suggests an optimization or constraint.&#10;Hint: can be useful for collision computations or inverse-kinematics (IK) engines.&#10;Hint: precomputation and inclusion of bounding box information can speed up the initialization of large detailed models, with a corresponding cost of increased file size.&#10;Hint: X3D Architecture, 10.2.2 Bounding boxes https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#BoundingBoxes&#10;Hint:  X3D Architecture, 10.3.1 X3DBoundedObject https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#X3DBoundedObject" name="bboxSize"/>
            <attribute tooltip="(X3D version 4.0 draft) [bboxDisplay &inputOutputLabel; &SFBoolLabel; &#34;false&#34;]&#10;Whether to display bounding box for associated geometry, aligned with world coordinates.&#10;Hint: the bounding box is displayed regardless of whether contained content is visible." name="bboxDisplay"/>
            <attribute tooltip="(X3D version 4.0 draft) [visible &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Whether or not renderable content within this node is visually displayed.&#10;Hint: the visible field has no effect on animation behaviors, event passing or other non-visual characteristics.&#10;Hint: content must be visible to be collidable and to be pickable." name="visible"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/Group.gif" tooltip="(X3D version 3.2 or later) [X3DChildNode,X3DBoundedObject] CollisionCollection holds a collection of objects that can be managed as a single entity for resolution of inter-object collisions.&#10;Hint: contains an array of CollisionSpace, CollidableShape or CollidableOffset nodes (containerField='collidables').&#10;Hint: content must be visible to be collidable and to be pickable." name="CollisionCollection">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[collidables &inputOutputLabel; &MFNodeLabel;, empty list] [CollisionSpace|CollidableShape|CollidableOffset]&#10;CollisionCollection node holds a collection of objects in the collidables field that can be managed as a single entity for resolution of inter-object collisions with other groups of collidable objects. A group consists of both collidable objects as well as spaces that may be collided against each other." name="collidables"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[appliedParameters &inputOutputLabel; &MFStringLabel; &#34;BOUNCE&#34;]&#10;Default global parameters for collision outputs of rigid body physics system. Contact node can override parent CollisionCollection node.&#10;Selectable values for array: &#34;BOUNCE&#34; &#34;USER_FRICTION&#34; &#34;FRICTION_COEFFICIENT_2&#34; &#34;ERROR_REDUCTION&#34; &#34;CONSTANT_FORCE&#34; &#34;SPEED_1&#34; &#34;SPEED_2&#34; &#34;SLIP_1&#34; &#34;SLIP_2&#34;.&#10;Hint: BOUNCE: bounce value is used; USER_FRICTION: apply user-supplied value; FRICTION_COEFFICIENT_2: apply frictionCoefficients values; ERROR_REDUCTION: apply softnessErrorCorrection value; CONSTANT_FORCE: apply softnessConstantForceMix value; SPEED_1: apply first component of surfaceSpeed array; SPEED_2: apply second component of surfaceSpeed array; SLIP_1: apply first component of slipFactors array; SLIP_2: apply second component of slipFactors array." name="appliedParameters"/>
            <attribute tooltip="[bounce &inputOutputLabel; &SFFloatLabel; &#34;0&#34;] [0,1]&#10;bounce indicates bounciness (0 = no bounce at all, 1 = maximum bounce)." name="bounce"/>
            <attribute tooltip="(X3D version 4.0 draft) [description &inputOutputLabel; &SFStringLabel; #IMPLIED]&#10;Author-provided prose that describes intended purpose of the node.&#10;Hint: many XML tools substitute XML character references for special characters automatically if needed within an attribute value (such as &amp;#38; for &#38; ampersand character, or &amp;#34; for &#34; quotation-mark character)." name="description"/>
            <attribute tooltip="[enabled &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Enables/disables node operation." name="enabled"/>
            <attribute tooltip="[frictionCoefficients &inputOutputLabel; &SFVec2fLabel; &#34;0 0&#34;]&#10;frictionCoefficients used for computing surface drag." name="frictionCoefficients"/>
            <attribute tooltip="[minBounceSpeed &inputOutputLabel; &SFFloatLabel; &#34;0&#34;] [0,+&#8734;)&#10;minBounceSpeed m/s needed to bounce." name="minBounceSpeed"/>
            <attribute tooltip="[slipFactors &inputOutputLabel; &SFVec2fLabel; &#34;0 0&#34;]&#10;slipFactors used for computing surface drag." name="slipFactors"/>
            <attribute tooltip="[softnessConstantForceMix &inputOutputLabel; &SFFloatLabel; &#34;0&#34;] [0,1]&#10;softnessConstantForceMix value applies a constant force value to make colliding surfaces appear to be somewhat soft." name="softnessConstantForceMix"/>
            <attribute tooltip="[softnessErrorCorrection &inputOutputLabel; &SFFloatLabel; &#34;0&#34;] [0,1]&#10;softnessErrorCorrection indicates fraction of collision error fixed in a set of evaluations (0 = no error correction, 1 = all errors corrected in single step)." name="softnessErrorCorrection"/>
            <attribute tooltip="[surfaceSpeed &inputOutputLabel; &SFVec2fLabel; &#34;0 0&#34;]&#10;surfaceSpeed defines speed vectors for computing surface drag, if contact surfaces move independently of bodies." name="surfaceSpeed"/>
            <attribute tooltip="[bboxCenter &initializeOnlyLabel; &SFVec3fLabel; &#34;0 0 0&#34;]&#10;Bounding box center accompanies bboxSize and provides an optional hint for bounding box position offset from origin of local coordinate system.&#10;Hint: precomputation and inclusion of bounding box information can speed up the initialization of large detailed models, with a corresponding cost of increased file size.&#10;Hint: X3D Architecture, 10.2.2 Bounding boxes https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#BoundingBoxes&#10;Hint:  X3D Architecture, 10.3.1 X3DBoundedObject https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#X3DBoundedObject" name="bboxCenter"/>
            <attribute tooltip="[bboxSize &initializeOnlyLabel; &SFVec3fLabel; &#34;-1 -1 -1&#34;] or [0,+&#8734;)&#10;Bounding box size is usually omitted, and can easily be calculated automatically by an X3D player at scene-loading time with minimal computational cost. Bounding box size can also be defined as an optional authoring hint that suggests an optimization or constraint.&#10;Hint: can be useful for collision computations or inverse-kinematics (IK) engines.&#10;Hint: precomputation and inclusion of bounding box information can speed up the initialization of large detailed models, with a corresponding cost of increased file size.&#10;Hint: X3D Architecture, 10.2.2 Bounding boxes https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#BoundingBoxes&#10;Hint:  X3D Architecture, 10.3.1 X3DBoundedObject https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#X3DBoundedObject" name="bboxSize"/>
            <attribute tooltip="(X3D version 4.0 draft) [bboxDisplay &inputOutputLabel; &SFBoolLabel; &#34;false&#34;]&#10;Whether to display bounding box for associated geometry, aligned with world coordinates.&#10;Hint: the bounding box is displayed regardless of whether contained content is visible." name="bboxDisplay"/>
            <attribute tooltip="(X3D version 4.0 draft) [visible &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Whether or not renderable content within this node is visually displayed.&#10;Hint: the visible field has no effect on animation behaviors, event passing or other non-visual characteristics.&#10;Hint: content must be visible to be collidable and to be pickable." name="visible"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;collider&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/Collision.gif" tooltip="(X3D version 3.2 or later) [X3DSensorNode] CollisionSensor generates collision-detection events.&#10;Hint: contains CollisionCollection node (containerField='collider').&#10;Hint: CollisionSensor also has output events: CollidableOffset and CollidableShape nodes (containerField='intersections'), Contact nodes (containerField='contacts').&#10;Hint: event timing details are explained in X3D Specification 4.4.8.3 Execution model https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/concepts.html#ExecutionModel&#10;Hint: content must be visible to be collidable and to be pickable." name="CollisionSensor">
            <attribute tooltip="[collider &inputOutputLabel; &SFNodeLabel;, NULL node] [CollisionCollection]&#10;The collider field specifies a CollisionCollection node that holds a collidables field of nodes and spaces that are to be included in collision-detection computations." name="collider"/>
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="(X3D version 4.0 draft) [description &inputOutputLabel; &SFStringLabel; #IMPLIED]&#10;Author-provided prose that describes intended purpose of the node.&#10;Hint: many XML tools substitute XML character references for special characters automatically if needed within an attribute value (such as &amp;#38; for &#38; ampersand character, or &amp;#34; for &#34; quotation-mark character)." name="description"/>
            <attribute tooltip="[enabled &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Enables/disables node operation." name="enabled"/>
            <attribute tooltip="[isActive &outputOnlyLabel; &SFBoolLabel; #FIXED &#34;&#34;]&#10;isActive true/false events are sent when sensing starts/stops.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="isActive"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/Collision.gif" tooltip="(X3D version 3.2 or later) [X3DNBodyCollisionSpaceNode] CollisionSpace holds collection of objects considered together for resolution of inter-object collisions.&#10;Contains multiple CollidableShape, CollidableOffset, or CollisionSpace nodes (containerField='collidables').&#10;Hint: content must be visible to be collidable and to be pickable." name="CollisionSpace">
            <attribute tooltip="[collidables &inputOutputLabel; &MFNodeLabel;, empty list] [X3DNBodyCollisionSpaceNode,X3DNBodyCollidableNode]&#10;Collection of collidable objects as well as nested CollisionSpace collections" name="collidables"/>
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[enabled &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Enables/disables node operation." name="enabled"/>
            <attribute tooltip="[useGeometry &inputOutputLabel; &SFBoolLabel; &#34;false&#34;]&#10;useGeometry indicates whether collision-detection code checks down to level of geometry,&#10;or only make approximations using geometry bounds.&#10;Hint: testing against object bounds is usually sufficient.&#10;Warning: using geometry is more accurate but slower." name="useGeometry"/>
            <attribute tooltip="[bboxCenter &initializeOnlyLabel; &SFVec3fLabel; &#34;0 0 0&#34;]&#10;Bounding box center accompanies bboxSize and provides an optional hint for bounding box position offset from origin of local coordinate system.&#10;Hint: precomputation and inclusion of bounding box information can speed up the initialization of large detailed models, with a corresponding cost of increased file size.&#10;Hint: X3D Architecture, 10.2.2 Bounding boxes https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#BoundingBoxes&#10;Hint:  X3D Architecture, 10.3.1 X3DBoundedObject https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#X3DBoundedObject" name="bboxCenter"/>
            <attribute tooltip="[bboxSize &initializeOnlyLabel; &SFVec3fLabel; &#34;-1 -1 -1&#34;] or [0,+&#8734;)&#10;Bounding box size is usually omitted, and can easily be calculated automatically by an X3D player at scene-loading time with minimal computational cost. Bounding box size can also be defined as an optional authoring hint that suggests an optimization or constraint.&#10;Hint: can be useful for collision computations or inverse-kinematics (IK) engines.&#10;Hint: precomputation and inclusion of bounding box information can speed up the initialization of large detailed models, with a corresponding cost of increased file size.&#10;Hint: X3D Architecture, 10.2.2 Bounding boxes https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#BoundingBoxes&#10;Hint:  X3D Architecture, 10.3.1 X3DBoundedObject https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#X3DBoundedObject" name="bboxSize"/>
            <attribute tooltip="(X3D version 4.0 draft) [bboxDisplay &inputOutputLabel; &SFBoolLabel; &#34;false&#34;]&#10;Whether to display bounding box for associated geometry, aligned with world coordinates.&#10;Hint: the bounding box is displayed regardless of whether contained content is visible." name="bboxDisplay"/>
            <attribute tooltip="(X3D version 4.0 draft) [visible &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Whether or not renderable content within this node is visually displayed.&#10;Hint: the visible field has no effect on animation behaviors, event passing or other non-visual characteristics.&#10;Hint: content must be visible to be collidable and to be pickable." name="visible"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/Transform.gif" tooltip="(X3D version 3.2 or later) [X3DNode] Contact nodes are produced as output events when two collidable objects or spaces make contact.&#10;Hint: each Contact node contains two RigidBody nodes (containerField='body1' and containerField='body2') as well as two CollidableShape or CollidableOffset nodes (containerField='geometry1' and containerField='geometry2').&#10;Warning: Contact nodes are transient and can only occur at run time. It is an error to define this transient node in an X3D file. " name="Contact">
            <attribute tooltip="[body1 &inputOutputLabel; &SFNodeLabel;, NULL node] [RigidBody]&#10;The body1 and body2 fields specify two top-level nodes that should be evaluated in the physics model as a single set of interactions with respect to each other." name="body1"/>
            <attribute tooltip="[body2 &inputOutputLabel; &SFNodeLabel;, NULL node] [RigidBody]&#10;The body1 and body2 fields specify two top-level nodes that should be evaluated in the physics model as a single set of interactions with respect to each other." name="body2"/>
            <attribute tooltip="[geometry1 &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DNBodyCollidableNode]&#10;The geometry1 and geometry2 fields specify collision-related information about body1 and body2." name="geometry1"/>
            <attribute tooltip="[geometry2 &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DNBodyCollidableNode]&#10;The geometry1 and geometry2 fields specify collision-related information about body1 and body2." name="geometry2"/>
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[appliedParameters &inputOutputLabel; &MFStringLabel; &#34;BOUNCE&#34;]&#10;Default global parameters for collision outputs of rigid body physics system. Contact node can override parent CollisionCollection node.&#10;Selectable values for array: &#34;BOUNCE&#34; &#34;USER_FRICTION&#34; &#34;FRICTION_COEFFICIENT_2&#34; &#34;ERROR_REDUCTION&#34; &#34;CONSTANT_FORCE&#34; &#34;SPEED_1&#34; &#34;SPEED_2&#34; &#34;SLIP_1&#34; &#34;SLIP_2&#34;.&#10;Hint: BOUNCE: bounce value is used; USER_FRICTION: apply user-supplied value; FRICTION_COEFFICIENT_2: apply frictionCoefficients values; ERROR_REDUCTION: apply softnessErrorCorrection value; CONSTANT_FORCE: apply softnessConstantForceMix value; SPEED_1: apply first component of surfaceSpeed array; SPEED_2: apply second component of surfaceSpeed array; SLIP_1: apply first component of slipFactors array; SLIP_2: apply second component of slipFactors array." name="appliedParameters"/>
            <attribute tooltip="[bounce &inputOutputLabel; &SFFloatLabel; &#34;0&#34;] [0,1]&#10;bounce indicates bounciness (0 = no bounce at all, 1 = maximum bounce)." name="bounce"/>
            <attribute tooltip="[contactNormal &inputOutputLabel; &SFVec3fLabel; &#34;0 1 0&#34;]&#10;contactNormal is unit vector describing normal between two colliding bodies." name="contactNormal"/>
            <attribute tooltip="[depth &inputOutputLabel; &SFFloatLabel; &#34;0&#34;] [0,1]&#10;depth indicates how deep the current intersection is along normal vector." name="depth"/>
            <attribute tooltip="[frictionCoefficients &inputOutputLabel; &SFVec2fLabel; &#34;0 0&#34;]&#10;frictionCoefficients used for computing surface drag." name="frictionCoefficients"/>
            <attribute tooltip="[frictionDirection &inputOutputLabel; &SFVec3fLabel; &#34;0 1 0&#34;]&#10;frictionDirection controls friction vector.&#10;Hint: value of (0 0 0) indicates no friction." name="frictionDirection"/>
            <attribute tooltip="[minBounceSpeed &inputOutputLabel; &SFFloatLabel; &#34;0&#34;] [0,+&#8734;)&#10;minBounceSpeed m/s needed to bounce." name="minBounceSpeed"/>
            <attribute tooltip="[position &inputOutputLabel; &SFVec3fLabel; &#34;0 0 10&#34;]&#10;position (x, y, z in meters) of exact location of collision." name="position"/>
            <attribute tooltip="[slipCoefficients &inputOutputLabel; &SFVec2fLabel; &#34;0 0&#34;]&#10;slipCoefficients used for computing surface drag." name="slipCoefficients"/>
            <attribute tooltip="[softnessConstantForceMix &inputOutputLabel; &SFFloatLabel; &#34;0&#34;] [0,1]&#10;softnessConstantForceMix value applies a constant force value to make colliding surfaces appear to be somewhat soft." name="softnessConstantForceMix"/>
            <attribute tooltip="[softnessErrorCorrection &inputOutputLabel; &SFFloatLabel; &#34;0&#34;] [0,1]&#10;softnessErrorCorrection indicates fraction of collision error fixed in a set of evaluations (0 = no error correction, 1 = all errors corrected in single step)." name="softnessErrorCorrection"/>
            <attribute tooltip="[surfaceSpeed &inputOutputLabel; &SFVec2fLabel; &#34;0 0&#34;]&#10;surfaceSpeed defines speed vectors for computing surface drag, if contact surfaces move independently of bodies." name="surfaceSpeed"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;contacts&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/Transform.gif" tooltip="(X3D version 3.2 or later) [X3DChildNode] RigidBody describes a collection of shapes with a mass distribution that is affected by the physics model.&#10;Contains a Sphere, Box, or Cone (containerField='massDensityModel') and multiple CollidableOffset or CollidableShape nodes (containerField='geometry') for animating collidable geometry." name="RigidBody">
            <attribute tooltip="[geometry &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DNBodyCollidableNode]&#10;The geometry field is used to connect the body modelled by the physics engine implementation to the real geometry of the scene through the use of collidable nodes. This allows the geometry to be connected directly to the physics model as well as collision detection. Collidable nodes have their location set to the same location as the body instance in which they are located." name="geometry"/>
            <attribute tooltip="[massDensityModel &inputOutputLabel; &SFNodeLabel;, NULL node] [Sphere,Box,Cone]&#10;The massDensityModel field is used to describe the geometry type and dimensions used to calculate the mass density in the physics model. It is not rendered, nor modified by the physics model." name="massDensityModel"/>
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[angularDampingFactor &inputOutputLabel; &SFFloatLabel; &#34;0.001&#34;] [0,1]&#10;angularDampingFactor automatically damps a portion of body motion over time." name="angularDampingFactor"/>
            <attribute tooltip="[angularVelocity &inputOutputLabel; &SFVec3fLabel; &#34;0 0 0&#34;]&#10;angularVelocity sets constant velocity value to object every frame, and reports updates by physics model.&#10;Hint: initial value only applied during first frame if forces applied.&#10;Warning: instantaneous velocity changes may lead to numerical instability." name="angularVelocity"/>
            <attribute tooltip="[autoDamp &inputOutputLabel; &SFBoolLabel; &#34;false&#34;]&#10;autoDamp enables/disables angularDampingFactor and linearDampingFactor." name="autoDamp"/>
            <attribute tooltip="[autoDisable &inputOutputLabel; &SFBoolLabel; &#34;false&#34;]&#10;autoDisable toggles operation of disableAngularSpeed, disableLinearSpeed, disableTime." name="autoDisable"/>
            <attribute tooltip="[centerOfMass &inputOutputLabel; &SFFloatLabel; &#34;0 0 0&#34;]&#10;centerOfMass defines local center of mass for physics calculations." name="centerOfMass"/>
            <attribute tooltip="[disableAngularSpeed &inputOutputLabel; &SFFloatLabel; &#34;0&#34;] [0,+&#8734;)&#10;disableAngularSpeed defines lower-limit tolerance value when body is considered at rest and not part of rigid body calculations, reducing numeric instabilities.&#10;Hint: only activated if autoDisable='true'" name="disableAngularSpeed"/>
            <attribute tooltip="[disableLinearSpeed &inputOutputLabel; &SFFloatLabel; &#34;0&#34;] [0,+&#8734;)&#10;disableLinearSpeed defines lower-limit tolerance value when body is considered at rest and not part of rigid body calculation, reducing numeric instabilitiess.&#10;Hint: only activated if autoDisable='true'" name="disableLinearSpeed"/>
            <attribute tooltip="[disableTime &inputOutputLabel; &SFTimeLabel; &#34;0&#34;] [0,+&#8734;)&#10;disableTime defines interval when body becomes at rest and not part of rigid body calculations, reducing numeric instabilities.&#10;Hint: only activated if autoDisable='true'&#10;Hint: disableTime is an SFTime duration interval, not an absolute clock time." name="disableTime"/>
            <attribute tooltip="[enabled &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Enables/disables node operation." name="enabled"/>
            <attribute tooltip="[finiteRotationAxis &inputOutputLabel; &SFVec3fLabel; &#34;0 1 0&#34;]&#10;finiteRotationAxis specifies vector around which the object rotates." name="finiteRotationAxis "/>
            <attribute tooltip="[fixed &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;fixed indicates whether body is able to move.&#10;Hint: fixed is useful for indicating objects that do not move: walls, ground, etc." name="fixed"/>
            <attribute tooltip="[forces &inputOutputLabel; &MFVec3fLabel; &#34;&#34;]&#10;forces defines linear force values applied to the object every frame." name="forces"/>
            <attribute tooltip="[inertia &inputOutputLabel; &SFMatrix3fLabel; &#34;1 0 0, 0 1 0, 0 0 1&#34;]&#10;inertia matrix defines a 3x2 inertia tensor matrix.&#10;Warning: only the first 6 values are used." name="inertia"/>
            <attribute tooltip="[linearDampingFactor &inputOutputLabel; &SFFloatLabel; &#34;0.001&#34;] [0,1]&#10;linearDampingFactor automatically damps a portion of body motion over time." name="linearDampingFactor"/>
            <attribute tooltip="[linearVelocity &inputOutputLabel; &SFVec3fLabel; &#34;0 0 0&#34;]&#10;linearVelocity sets constant velocity value to object every frame, and reports updates by physics model.&#10;Hint: initial value only applied during first frame if forces applied.&#10;Warning: instantaneous velocity changes may lead to numerical instability." name="linearVelocity"/>
            <attribute tooltip="[mass &inputOutputLabel; &SFFloatLabel; &#34;1&#34;]&#10;(0,1] mass of the body in kilograms.&#10;Warning: mass must be greater than 0.&#10;Hint: https://en.wikipedia.org/wiki/Kilogram&#10;Hint: X3D Architecture 4.3.6 Standard units and coordinate system https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/concepts.html#Standardunitscoordinates" name="mass"/>
            <attribute tooltip="[orientation &inputOutputLabel; &SFRotationLabel; &#34;0 0 1 0&#34;]&#10;orientation sets body direction in world space, then reports physics updates." name="orientation"/>
            <attribute tooltip="[position &inputOutputLabel; &SFVec3fLabel; &#34;0 0 0&#34;]&#10;position sets body location in world space, then reports physics updates." name="position"/>
            <attribute tooltip="[torques &inputOutputLabel; &MFVec3fLabel; &#34;&#34;]&#10;torques defines rotational force values applied to the object every frame." name="torques"/>
            <attribute tooltip="[useFiniteRotation &inputOutputLabel; &SFBoolLabel; &#34;false&#34;]&#10;useFiniteRotation enables/disables higher-resolution, higher-cost computational method for calculating rotations." name="useFiniteRotation"/>
            <attribute tooltip="[useGlobalGravity &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;useGlobalGravity indicates whether this particular body is influenced by parent RigidBodyCollection's gravity setting.&#10;Hint: contained sub-bodies are not affected by this setting." name="useGlobalGravity"/>
            <attribute tooltip="[bboxCenter &initializeOnlyLabel; &SFVec3fLabel; &#34;0 0 0&#34;]&#10;Bounding box center accompanies bboxSize and provides an optional hint for bounding box position offset from origin of local coordinate system.&#10;Hint: precomputation and inclusion of bounding box information can speed up the initialization of large detailed models, with a corresponding cost of increased file size.&#10;Hint: X3D Architecture, 10.2.2 Bounding boxes https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#BoundingBoxes&#10;Hint:  X3D Architecture, 10.3.1 X3DBoundedObject https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#X3DBoundedObject" name="bboxCenter"/>
            <attribute tooltip="[bboxSize &initializeOnlyLabel; &SFVec3fLabel; &#34;-1 -1 -1&#34;] or [0,+&#8734;)&#10;Bounding box size is usually omitted, and can easily be calculated automatically by an X3D player at scene-loading time with minimal computational cost. Bounding box size can also be defined as an optional authoring hint that suggests an optimization or constraint.&#10;Hint: can be useful for collision computations or inverse-kinematics (IK) engines.&#10;Hint: precomputation and inclusion of bounding box information can speed up the initialization of large detailed models, with a corresponding cost of increased file size.&#10;Hint: X3D Architecture, 10.2.2 Bounding boxes https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#BoundingBoxes&#10;Hint:  X3D Architecture, 10.3.1 X3DBoundedObject https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#X3DBoundedObject" name="bboxSize"/>
            <attribute tooltip="(X3D version 4.0 draft) [bboxDisplay &inputOutputLabel; &SFBoolLabel; &#34;false&#34;]&#10;Whether to display bounding box for associated geometry, aligned with world coordinates.&#10;Hint: the bounding box is displayed regardless of whether contained content is visible." name="bboxDisplay"/>
            <attribute tooltip="(X3D version 4.0 draft) [visible &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Whether or not renderable content within this node is visually displayed.&#10;Hint: the visible field has no effect on animation behaviors, event passing or other non-visual characteristics.&#10;Hint: content must be visible to be collidable and to be pickable." name="visible"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/Transform.gif" tooltip="(X3D version 3.2 or later) [X3DChildNode] RigidBodyCollection represents a system of bodies that interact within a single physics model." name="RigidBodyCollection">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/> 
            <attribute tooltip="[bodies &inputOutputLabel; &MFNodeLabel;, empty list] [RigidBody]&#10;Collection of top-level nodes that comprise a set of bodies evaluated as a single set of interactions." name="bodies"/>
            <attribute tooltip="[collider &inputOutputLabel; &SFNodeLabel;, NULL] [CollisionCollection]&#10;The collider field associates a collision collection with this rigid body collection allowing seamless updates and integration without the need to use the X3D event model." name="collider"/>
            <attribute tooltip="[joints &inputOutputLabel; &MFNodeLabel;, empty list] [X3DRigidJointNode]&#10;The joints field is used to register all joints between bodies contained in this collection.&#10;Warning: If a joint is connected between bodies in two different collections, the result is implementation-dependent.&#10;Warning: If a joint instance is registered with more than one collection, the results are implementation dependent.&#10;Warning: Joints not registered with any collection are not evaluated." name="joints"/>
            <attribute tooltip="[set_contacts &inputOnlyLabel; &SFNodeLabel;] [Contact]&#10;set_contacts input field for Contact nodes provides per-frame information about contacts between bodies.&#10;Warning: it is an error to define this transient inputOnly field in an X3D file, instead only use it a destination for ROUTE events." name="set_contacts"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[autoDisable &inputOutputLabel; &SFBoolLabel; &#34;false&#34;]&#10;autoDisable toggles operation of disableAngularSpeed, disableLinearSpeed, disableTime." name="autoDisable"/>
            <attribute tooltip="[constantForceMix &inputOutputLabel; &SFFloatLabel; &#34;0.0001&#34;] [0,+&#8734;)&#10;constantForceMix modifies damping calculations by violating normal constraints while applying small, constant forces in those calculations.&#10;Hint: this allows joints and bodies to be a fraction springy, and helps to eliminate numerical instability.&#10;Hint: spring-driven or spongy connections can be emulated by combined use of errorCorrection and constantForceMix." name="constantForceMix"/>
            <attribute tooltip="[contactSurfaceThickness &inputOutputLabel; &SFFloatLabel; &#34;0&#34;] [0,+&#8734;)&#10;contactSurfaceThickness defines how far bodies may interpenetrate after a collision, allowing simulation of softer bodies that deform somewhat during collision." name="contactSurfaceThickness"/>
            <attribute tooltip="[disableAngularSpeed &inputOutputLabel; &SFFloatLabel; &#34;0&#34;] [0,+&#8734;)&#10;disableAngularSpeed defines lower-limit tolerance value when body is considered at rest and not part of rigid body calculations, reducing numeric instabilities.&#10;Hint: only activated if autoDisable='true'" name="disableAngularSpeed"/>
            <attribute tooltip="[disableLinearSpeed &inputOutputLabel; &SFFloatLabel; &#34;0&#34;] [0,+&#8734;)&#10;disableLinearSpeed defines lower-limit tolerance value when body is considered at rest and not part of rigid body calculation, reducing numeric instabilitiess.&#10;Hint: only activated if autoDisable='true'" name="disableLinearSpeed"/>
            <attribute tooltip="[disableTime &inputOutputLabel; &SFTimeLabel; &#34;0&#34;] [0,+&#8734;)&#10;disableTime defines interval when body becomes at rest and not part of rigid body calculations, reducing numeric instabilities.&#10;Hint: only activated if autoDisable='true'&#10;Hint: disableTime is an SFTime duration interval, not an absolute clock time." name="disableTime"/>
            <attribute tooltip="[enabled &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Enables/disables node operation." name="enabled"/>
            <attribute tooltip="[errorCorrection &inputOutputLabel; &SFFloatLabel; &#34;0.8&#34;] [0,1]&#10;errorCorrection describes how quickly intersection errors due to floating-point inaccuracies are resolved (0=no correction, 1=all corrected in single step)." name="errorCorrection"/>
            <attribute tooltip="[gravity &inputOutputLabel; &SFVec3fLabel; &#34;0 -9.8 0&#34;]&#10;gravity indicates direction and strength of local gravity vector for this collection of bodies (units m/sec^2)." name="gravity"/>
            <attribute tooltip="[iterations &inputOutputLabel; &SFInt32Label; &#34;10&#34;] [0,+&#8734;)&#10;iterations controls number of iterations performed over collectioned joints and bodies during each evaluation." name="iterations"/>
            <attribute tooltip="[maxCorrectionSpeed &inputOutputLabel; &SFFloatLabel; &#34;-1&#34;] [0,+&#8734;)&#10;or -1, maxCorrectionSpeed ." name="maxCorrectionSpeed"/>
            <attribute tooltip="[preferAccuracy &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;preferAccuracy provides hint for performance preference: higher accuracy or faster computational speed." name="preferAccuracy"/>
            <attribute tooltip="[bboxCenter &initializeOnlyLabel; &SFVec3fLabel; &#34;0 0 0&#34;]&#10;Bounding box center accompanies bboxSize and provides an optional hint for bounding box position offset from origin of local coordinate system.&#10;Hint: precomputation and inclusion of bounding box information can speed up the initialization of large detailed models, with a corresponding cost of increased file size.&#10;Hint: X3D Architecture, 10.2.2 Bounding boxes https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#BoundingBoxes&#10;Hint:  X3D Architecture, 10.3.1 X3DBoundedObject https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#X3DBoundedObject" name="bboxCenter"/>
            <attribute tooltip="[bboxSize &initializeOnlyLabel; &SFVec3fLabel; &#34;-1 -1 -1&#34;] or [0,+&#8734;)&#10;Bounding box size is usually omitted, and can easily be calculated automatically by an X3D player at scene-loading time with minimal computational cost. Bounding box size can also be defined as an optional authoring hint that suggests an optimization or constraint.&#10;Hint: can be useful for collision computations or inverse-kinematics (IK) engines.&#10;Hint: precomputation and inclusion of bounding box information can speed up the initialization of large detailed models, with a corresponding cost of increased file size.&#10;Hint: X3D Architecture, 10.2.2 Bounding boxes https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#BoundingBoxes&#10;Hint:  X3D Architecture, 10.3.1 X3DBoundedObject https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#X3DBoundedObject" name="bboxSize"/>
            <attribute tooltip="(X3D version 4.0 draft) [bboxDisplay &inputOutputLabel; &SFBoolLabel; &#34;false&#34;]&#10;Whether to display bounding box for associated geometry, aligned with world coordinates.&#10;Hint: the bounding box is displayed regardless of whether contained content is visible." name="bboxDisplay"/>
            <attribute tooltip="(X3D version 4.0 draft) [visible &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Whether or not renderable content within this node is visually displayed.&#10;Hint: the visible field has no effect on animation behaviors, event passing or other non-visual characteristics.&#10;Hint: content must be visible to be collidable and to be pickable." name="visible"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/Box.gif" tooltip="(X3D version 3.2 or later) [X3DRigidJointNode] MotorJoint drives relative angular velocities between body1 and body2 within a common reference frame.&#10;Contains two RigidBody nodes (containerField values body1, body2).&#10;Hint: useful in combination with BallJoint.&#10;Hint: RigidBodyPhysics component, level 2." name="MotorJoint">
            <attribute tooltip="[body1 &inputOutputLabel; &SFNodeLabel;, NULL node] [RigidBody]&#10;The body1 and body2 fields indicate the two RigidBody nodes connected by this joint." name="body1"/>
            <attribute tooltip="[body2 &inputOutputLabel; &SFNodeLabel;, NULL node] [RigidBody]&#10;The body1 and body2 fields indicate the two RigidBody nodes connected by this joint." name="body2"/>
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[autoCalc &initializeOnlyLabel; &SFBoolLabel; &#34;false&#34;]&#10;autoCalc controls whether user manually provides individual angle rotations each frame (false) or if angle values are automatically calculated by motor implementations (true)." name="autoCalc"/>
            <attribute tooltip="[axis1Angle &inputOutputLabel; &SFFloatLabel; &#34;0&#34;]&#10;axis1Angle (radians) is rotation angle for corresponding motor axis when in user-calculated mode.&#10;Hint: radian units for angular measure https://en.wikipedia.org/wiki/Radian" name="axis1Angle"/>
            <attribute tooltip="[axis2Angle &inputOutputLabel; &SFFloatLabel; &#34;0&#34;]&#10;axis2Angle (radians) is rotation angle for corresponding motor axis when in user-calculated mode.&#10;Hint: radian units for angular measure https://en.wikipedia.org/wiki/Radian" name="axis2Angle"/>
            <attribute tooltip="[axis3Angle &inputOutputLabel; &SFFloatLabel; &#34;0&#34;]&#10;axis3Angle (radians) is rotation angle for corresponding motor axis when in user-calculated mode.&#10;Hint: radian units for angular measure https://en.wikipedia.org/wiki/Radian" name="axis3Angle"/>
            <attribute tooltip="[axis1Torque &inputOutputLabel; &SFFloatLabel; &#34;0&#34;]&#10;axis1Torque is rotational torque applied by corresponding motor axis when in user-calculated mode." name="axis1Torque"/>
            <attribute tooltip="[axis2Torque &inputOutputLabel; &SFFloatLabel; &#34;0&#34;]&#10;axis2Torque is rotational torque applied by corresponding motor axis when in user-calculated mode." name="axis2Torque"/>
            <attribute tooltip="[axis3Torque &inputOutputLabel; &SFFloatLabel; &#34;0&#34;]&#10;axis3Torque is rotational torque applied by corresponding motor axis when in user-calculated mode." name="axis3Torque"/>
            <attribute tooltip="[enabledAxes &inputOutputLabel; &SFInt32Label; &#34;0&#34;]&#10;[0,3] enabledAxes indicates which motor axes are active.&#10;(0) none, (1) axis 1, (2) axes 1 and 2, (3) all three axes." name="enabledAxes"/>
            <attribute tooltip="[forceOutput &inputOutputLabel; &MFStringLabel; &#34;NONE&#34;]&#10;forceOutput controls which output fields are generated for the next frame.&#10;Values are ALL, NONE, or exact names of output fields updated at start of next frame." name="forceOutput"/>
            <attribute tooltip="[motor1Axis &inputOutputLabel; &SFVec3fLabel; &#34;1 0 0&#34;]&#10;motor1Axis defines axis vector of corresponding motor axis.&#10;Hint: 0 0 0 means motor disabled about this axis." name="motor1Axis"/>
            <attribute tooltip="[motor2Axis &inputOutputLabel; &SFVec3fLabel; &#34;0 1 0&#34;]&#10;motor2Axis defines axis vector of corresponding motor axis.&#10;Hint: 0 0 0 means motor disabled about this axis." name="motor2Axis"/>
            <attribute tooltip="[motor3Axis &inputOutputLabel; &SFVec3fLabel; &#34;0 0 1&#34;]&#10;motor3Axis defines axis vector of corresponding motor axis.&#10;Hint: 0 0 0 means motor disabled about this axis." name="motor3Axis"/>
            <attribute tooltip="[stop1Bounce &inputOutputLabel; &SFFloatLabel; &#34;1&#34;] [0,1]&#10;stop1Bounce is velocity factor for bounce back once stop point is reached.&#10;Hint: 0 means no bounce, 1 means return velocity matches." name="stop1Bounce"/>
            <attribute tooltip="[stop2Bounce &inputOutputLabel; &SFFloatLabel; &#34;1&#34;] [0,1]&#10;stop2Bounce is velocity factor for bounce back once stop point is reached.&#10;Hint: 0 means no bounce, 1 means return velocity matches." name="stop2Bounce"/>
            <attribute tooltip="[stop3Bounce &inputOutputLabel; &SFFloatLabel; &#34;1&#34;] [0,1]&#10;stop3Bounce is velocity factor for bounce back once stop point is reached.&#10;Hint: 0 means no bounce, 1 means return velocity matches." name="stop3Bounce"/>
            <attribute tooltip="[stop1ErrorCorrection &inputOutputLabel; &SFFloatLabel; &#34;1&#34;] [0,1]&#10;stop1ErrorCorrection is fraction of error correction performed during time step once stop point is reached.&#10;Hint: 0 means no error correction, 1 means all error corrected in single step." name="stop1ErrorCorrection"/>
            <attribute tooltip="[stop2ErrorCorrection &inputOutputLabel; &SFFloatLabel; &#34;1&#34;] [0,1]&#10;stop2ErrorCorrection is fraction of error correction performed during time step once stop point is reached.&#10;Hint: 0 means no error correction, 1 means all error corrected in single step." name="stop2ErrorCorrection"/>
            <attribute tooltip="[stop3ErrorCorrection &inputOutputLabel; &SFFloatLabel; &#34;1&#34;] [0,1]&#10;stop3ErrorCorrection is fraction of error correction performed during time step once stop point is reached.&#10;Hint: 0 means no error correction, 1 means all error corrected in single step." name="stop3ErrorCorrection"/>
            <attribute tooltip="[motor1Angle &outputOnlyLabel; &SFFloatLabel;]&#10;motor1Angle provides calculated angle of rotation (radians) for this motor joint from last frame.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events.&#10;Hint: radian units for angular measure https://en.wikipedia.org/wiki/Radian" name="motor1Angle"/>
            <attribute tooltip="[motor2Angle &outputOnlyLabel; &SFFloatLabel;]&#10;motor2Angle provides calculated angle of rotation (radians) for this motor joint from last frame.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events.&#10;Hint: radian units for angular measure https://en.wikipedia.org/wiki/Radian" name="motor2Angle"/>
            <attribute tooltip="[motor3Angle &outputOnlyLabel; &SFFloatLabel;]&#10;motor3Angle provides calculated angle of rotation (radians) for this motor joint from last frame.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events.&#10;Hint: radian units for angular measure https://en.wikipedia.org/wiki/Radian" name="motor3Angle"/>
            <attribute tooltip="[motor1AngleRate &outputOnlyLabel; &SFFloatLabel;]&#10;motor1AngleRate provides calculated anglular rotation rate (radians/second) for this motor joint from last frame.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="motor1AngleRate"/>
            <attribute tooltip="[motor2AngleRate &outputOnlyLabel; &SFFloatLabel;]&#10;motor2AngleRate provides calculated anglular rotation rate (radians/second) for this motor joint from last frame.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="motor2AngleRate"/>
            <attribute tooltip="[motor3AngleRate &outputOnlyLabel; &SFFloatLabel;]&#10;motor3AngleRate provides calculated anglular rotation rate (radians/second) for this motor joint from last frame.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="motor3AngleRate"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;joints&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/Cylinder.gif" tooltip="(X3D version 3.2 or later) [X3DRigidJointNode] SliderJoint constrains all movement between body1 and body2 along a single axis.&#10;Contains two RigidBody nodes (containerField values body1, body2).&#10;Hint: RigidBodyPhysics component, level 2." name="SliderJoint">
            <attribute tooltip="[body1 &inputOutputLabel; &SFNodeLabel;, NULL node] [RigidBody]&#10;The body1 and body2 fields indicate the two RigidBody nodes connected by this joint." name="body1"/>
            <attribute tooltip="[body2 &inputOutputLabel; &SFNodeLabel;, NULL node] [RigidBody]&#10;The body1 and body2 fields indicate the two RigidBody nodes connected by this joint." name="body2"/>
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.do NOT include DEF (or any other attribute values) when using a USE attribute!" name="USE"/>
            <attribute tooltip="[axis &inputOutputLabel; &SFVec3fLabel; &#34;0 1 0&#34;] [0,1]&#10;axis is normalized vector specifying direction of motion." name="axis"/>
            <attribute tooltip="[forceOutput &inputOutputLabel; &MFStringLabel; &#34;NONE&#34;]&#10;forceOutput controls which output fields are generated for the next frame.&#10;Values are ALL, NONE, or exact names of output fields updated at start of next frame." name="forceOutput"/>
            <attribute tooltip="[minSeparation &inputOutputLabel; &SFFloatLabel; &#34;0&#34;]&#10;minSeparation is minimum separation distance between the two bodies.&#10;Hint: if (minSeparation is less than maxSeparation) then no stop is effective." name="minSeparation"/>
            <attribute tooltip="[maxSeparation &inputOutputLabel; &SFFloatLabel; &#34;1&#34;]&#10;maxSeparation is maximum separation distance between the two bodies.&#10;Hint: if (minSeparation is less than maxSeparation) then no stop is effective." name="maxSeparation"/>
            <attribute tooltip="[sliderForce &inputOutputLabel; &SFFloatLabel; &#34;0&#34;] [-&#8734;,&#8734;]&#10;sliderForce value is used to apply a force (specified in force base units) along the axis of the slider in equal and opposite directions to the two bodies. A positive value applies a force such that the two bodies accelerate away from each other, while a negative value applies a force such that the two bodies accelerate toward each other." name="sliderForce"/>
            <attribute tooltip="[stopBounce &inputOutputLabel; &SFFloatLabel; &#34;1&#34;] [0,1]&#10;stopBounce is velocity factor for bounce back once stop point is reached.&#10;Hint: 0 means no bounce, 1 means return velocity matches." name="stopBounce"/>
            <attribute tooltip="[stopErrorCorrection &inputOutputLabel; &SFFloatLabel; &#34;1&#34;] [0,1]&#10;stopErrorCorrection is fraction of error correction performed during time step once stop point is reached.&#10;Hint: 0 means no error correction, 1 means all error corrected in single step." name="stopErrorCorrection"/>
            <attribute tooltip="[separation &outputOnlyLabel; &SFFloatLabel;]&#10;separation indicates final separation distance between the two bodies.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="separation"/>
            <attribute tooltip="[separationRate &outputOnlyLabel; &SFFloatLabel;]&#10;separationRate indicates change in separation distance over time between the two bodies.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="separationRate"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;joints&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/Sphere.gif" tooltip="(X3D version 3.2 or later) [X3DRigidJointNode] UniversalJoint is like a BallJoint that constrains an extra degree of rotational freedom.&#10;Contains two RigidBody nodes (containerField values body1, body2).&#10;Hint: useful in combination with BallJoint.&#10;Hint: RigidBodyPhysics component, level 2." name="UniversalJoint">
            <attribute tooltip="[body1 &inputOutputLabel; &SFNodeLabel;, NULL node] [RigidBody]&#10;The body1 and body2 fields indicate the two RigidBody nodes connected by this joint." name="body1"/>
            <attribute tooltip="[body2 &inputOutputLabel; &SFNodeLabel;, NULL node] [RigidBody]&#10;The body1 and body2 fields indicate the two RigidBody nodes connected by this joint." name="body2"/>
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[anchorPoint &inputOutputLabel; &SFVec3fLabel; &#34;0 0 0&#34;]&#10;anchorPoint is joint center, specified in world coordinates." name="anchorPoint"/>
            <attribute tooltip="[axis1 &inputOutputLabel; &SFVec3fLabel; &#34;1 0 0&#34;]&#10;axis1 defines axis vector of joint connection to body1.&#10;Hint: 0 0 0 means motor disabled about this axis." name="axis1"/>
            <attribute tooltip="[axis2 &inputOutputLabel; &SFVec3fLabel; &#34;0 1 0&#34;]&#10;axis2 defines axis vector of joint connection to body2.&#10;Hint: 0 0 0 means motor disabled about this axis." name="axis2"/>
            <attribute tooltip="[forceOutput &inputOutputLabel; &MFStringLabel; &#34;NONE&#34;]&#10;forceOutput controls which output fields are generated for the next frame.&#10;Values are ALL, NONE, or exact names of output fields updated at start of next frame." name="forceOutput"/>
            <attribute tooltip="[stop1Bounce &inputOutputLabel; &SFFloatLabel; &#34;1&#34;] [0,1]&#10;stop1Bounce is velocity factor for bounce back once stop point is reached.&#10;Hint: 0 means no bounce, 1 means return velocity matches." name="stop1Bounce"/>
            <attribute tooltip="[stop2Bounce &inputOutputLabel; &SFFloatLabel; &#34;1&#34;] [0,1]&#10;stop2Bounce is velocity factor for bounce back once stop point is reached.&#10;Hint: 0 means no bounce, 1 means return velocity matches." name="stop2Bounce"/>
            <attribute tooltip="[stop1ErrorCorrection &inputOutputLabel; &SFFloatLabel; &#34;1&#34;] [0,1]&#10;stop1ErrorCorrection is fraction of error correction performed during time step once stop point is reached.&#10;Hint: 0 means no error correction, 1 means all error corrected in single step." name="stop1ErrorCorrection"/>
            <attribute tooltip="[stop2ErrorCorrection &inputOutputLabel; &SFFloatLabel; &#34;1&#34;] [0,1]&#10;stop2ErrorCorrection is fraction of error correction performed during time step once stop point is reached.&#10;Hint: 0 means no error correction, 1 means all error corrected in single step." name="stop2ErrorCorrection"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;joints&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/Sphere.gif" tooltip="(X3D version 3.2 or later) [X3DRigidJointNode] SingleAxisHingeJoint has single axis about which to rotate, similar to a traditional door hinge.&#10;Contains two RigidBody nodes (containerField values body1, body2).&#10;Hint: RigidBodyPhysics component, level 2." name="SingleAxisHingeJoint">
            <attribute tooltip="[body1 &inputOutputLabel; &SFNodeLabel;, NULL node] [RigidBody]&#10;The body1 and body2 fields indicate the two RigidBody nodes connected by this joint." name="body1"/>
            <attribute tooltip="[body2 &inputOutputLabel; &SFNodeLabel;, NULL node] [RigidBody]&#10;The body1 and body2 fields indicate the two RigidBody nodes connected by this joint." name="body2"/>
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[anchorPoint &inputOutputLabel; &SFVec3fLabel; &#34;0 0 0&#34;]&#10;anchorPoint is joint center, specified in world coordinates." name="anchorPoint"/>
            <attribute tooltip="[axis &inputOutputLabel; &SFVec3fLabel; &#34;0 1 0&#34;]&#10;axis defines vector of joint connection between body1 and body2." name="axis"/>
            <attribute tooltip="[forceOutput &inputOutputLabel; &MFStringLabel; &#34;NONE&#34;]&#10;forceOutput controls which output fields are generated for the next frame.&#10;Values are ALL, NONE, or exact names of output fields updated at start of next frame." name="forceOutput"/>
            <attribute tooltip="[minAngle &inputOutputLabel; &SFFloatLabel; &#34;-3.1416&#34;] [-&#960;,&#960;]&#10;minAngle is minimum rotation angle for hinge.&#10;Hint: radian units for angular measure https://en.wikipedia.org/wiki/Radian" name="minAngle"/>
            <attribute tooltip="[maxAngle &inputOutputLabel; &SFFloatLabel; &#34;3.1416&#34;] [-&#960;,&#960;]&#10;maxAngle is maximum rotation angle for hinge.&#10;Hint: radian units for angular measure https://en.wikipedia.org/wiki/Radian" name="maxAngle"/>
            <attribute tooltip="[stopBounce &inputOutputLabel; &SFFloatLabel; &#34;0&#34;] [0,1]&#10;stopBounce is velocity factor for bounce back once stop point is reached.&#10;Hint: 0 means no bounce, 1 means return velocity matches." name="stopBounce"/>
            <attribute tooltip="[stopErrorCorrection &inputOutputLabel; &SFFloatLabel; &#34;0.8&#34;] [0,1]&#10;stopErrorCorrection is fraction of error correction performed during time step once stop point is reached.&#10;Hint: 0 means no error correction, 1 means all error corrected in single step." name="stopErrorCorrection"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;joints&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/Sphere.gif" tooltip="(X3D version 3.2 or later) [X3DRigidJointNode] DoubleAxisHingeJoint has two independent axes located around a common anchor point. axis1 has limits and a motor, axis 2 only has a motor&#10;Contains two RigidBody nodes (containerField values body1, body2).&#10;Hint: RigidBodyPhysics component, level 2." name="DoubleAxisHingeJoint">
            <attribute tooltip="[body1 &inputOutputLabel; &SFNodeLabel;, NULL node] [RigidBody]&#10;The body1 and body2 fields indicate the two RigidBody nodes connected by this joint." name="body1"/>
            <attribute tooltip="[body2 &inputOutputLabel; &SFNodeLabel;, NULL node] [RigidBody]&#10;The body1 and body2 fields indicate the two RigidBody nodes connected by this joint." name="body2"/>
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[anchorPoint &inputOutputLabel; &SFVec3fLabel; &#34;0 0 0&#34;]&#10;anchorPoint is joint center, specified in world coordinates." name="anchorPoint"/>
            <attribute tooltip="[axis1 &inputOutputLabel; &SFVec3fLabel; &#34;1 0 0&#34;]&#10;axis1 defines axis vector of joint connection to body1.&#10;Hint: 0 0 0 means motor disabled about this axis." name="axis1"/>
            <attribute tooltip="[axis2 &inputOutputLabel; &SFVec3fLabel; &#34;0 1 0&#34;]&#10;axis2 defines axis vector of joint connection to body2.&#10;Hint: 0 0 0 means motor disabled about this axis." name="axis2"/>
            <attribute tooltip="[desiredAngularVelocity1 &inputOutputLabel; &SFFloatLabel; &#34;0&#34;]&#10;desiredAngularVelocity1 is goal rotation rate for hinge connection to body1." name="desiredAngularVelocity1"/>
            <attribute tooltip="[desiredAngularVelocity2 &inputOutputLabel; &SFFloatLabel; &#34;0&#34;]&#10;desiredAngularVelocity2 is goal rotation rate for hinge connection to body2." name="desiredAngularVelocity2"/>
            <attribute tooltip="[forceOutput &inputOutputLabel; &MFStringLabel; &#34;NONE&#34;]&#10;forceOutput controls which output fields are generated for the next frame.&#10;Values are ALL, NONE, or exact names of output fields updated at start of next frame." name="forceOutput"/>
            <attribute tooltip="[minAngle1 &inputOutputLabel; &SFFloatLabel; &#34;-3.1416&#34;] [-&#960;,&#960;]&#10;minAngle1 is minimum rotation angle for hinge." name="minAngle1"/>
            <attribute tooltip="[maxAngle1 &inputOutputLabel; &SFFloatLabel; &#34;3.1416&#34;] [-&#960;,&#960;]&#10;maxAngle1 is maximum rotation angle for hinge." name="maxAngle1"/>
            <attribute tooltip="[maxTorque1 &inputOutputLabel; &SFFloatLabel; &#34;0&#34;]&#10;maxTorque1 is maximum rotational torque applied by corresponding motor axis to achieve desiredAngularVelocity1." name="maxTorque1"/>
            <attribute tooltip="[maxTorque2 &inputOutputLabel; &SFFloatLabel; &#34;0&#34;]&#10;maxTorque2 is maximum rotational torque applied by corresponding motor axis to achieve desiredAngularVelocity2." name="maxTorque2"/>
            <attribute tooltip="[stop1Bounce &inputOutputLabel; &SFFloatLabel; &#34;0&#34;] [0,1]&#10;stop1Bounce is velocity factor for bounce back once stop point is reached.&#10;Hint: 0 means no bounce, 1 means return velocity matches." name="stop1Bounce"/>
            <attribute tooltip="[stop1ErrorCorrection &inputOutputLabel; &SFFloatLabel; &#34;0.8&#34;] [0,1]&#10;stop1ErrorCorrection is fraction of error correction performed during time step once stop point is reached.&#10;Hint: 0 means no error correction, 1 means all error corrected in single step." name="stop1ErrorCorrection"/>
            <attribute tooltip="[stop1ConstantForceMix &inputOutputLabel; &SFFloatLabel; &#34;0.001&#34;] [0,1]&#10;stop1ConstantForceMix value applies a constant force value to make colliding surfaces appear to be somewhat soft.&#10;Hint: use with suspensionForce to improve softness and numerical stability.&#10;Hint: 0 means no stop adjustment, 1 means springier stop response." name="stop1ConstantForceMix"/>
            <attribute tooltip="[suspensionErrorCorrection &inputOutputLabel; &SFFloatLabel; &#34;0.8&#34;] [0,1]&#10;suspensionErrorCorrection describes how quickly the system resolves intersection errors due to floating-point inaccuracies.&#10;Hint: use with stop1ConstantForceMix to improve softness and numerical stability.&#10;Hint: 0 means no stop adjustment, 1 means springier stop response." name="suspensionErrorCorrection"/>
            <attribute tooltip="[suspensionForce &inputOutputLabel; &SFFloatLabel; &#34;0.8&#34;] [0,1]&#10;suspensionForce describes how quickly the system resolves intersection errors due to floating-point inaccuracies.&#10;Hint: use with stop1ConstantForceMix to improve softness and numerical stability.&#10;Hint: 0 means no stop adjustment, 1 means springier stop response." name="suspensionForce"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;joints&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <!-- Picking sensor component -->
        <element icon="icons/Group.gif" tooltip="(X3D version 3.2 or later) [X3DGroupingNode,X3DPickableObject,X3DVisibleObject] PickableGroup is a Grouping node that can contain most nodes. PickableGroup contains children that are marked as having a given classification of picking types, and can also enable or disable picking of the children.&#10;Hint: insert a Shape node before adding geometry or Appearance.&#10;Hint: content must be visible to be collidable and to be pickable." name="PickableGroup">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[children &inputOutputLabel; &MFNodeLabel;, empty list] [X3DChildNode]&#10;Grouping nodes contain an ordered list of children nodes.&#10;Hint: Each grouping node defines a coordinate space for its children, relative to the coordinate space of its parent node. Thus transformations accumulate down the scene graph hierarchy.&#10;Hint: inputOnly MFNode addChildren field can append new X3DChildNode nodes via a ROUTE connection, duplicate input nodes (i.e. matching DEF, USE values) are ignored.&#10;Hint: inputOnly MFNode removeChildren field can remove nodes from the children list, unrecognized input nodes (i.e. nonmatching DEF, USE values) are ignored.&#10;Hint: X3D Architecture 10.2.1 Grouping and children node types, https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#GroupingAndChildrenNodes" name="children"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="(X3D version 4.0 draft) [description &inputOutputLabel; &SFStringLabel; #IMPLIED]&#10;Author-provided prose that describes intended purpose of the node.&#10;Hint: many XML tools substitute XML character references for special characters automatically if needed within an attribute value (such as &amp;#38; for &#38; ampersand character, or &amp;#34; for &#34; quotation-mark character)." name="description"/>
            <attribute tooltip="[objectType &inputOutputLabel; &MFStringLabel; &PickableGroupObjectTypeValues; &#34;ALL&#34;]&#10;The objectType field specifies a set of labels used in the picking process. Each string specified is treated as an independent label that needs to be matched against the same type in one of the pick sensor instances.&#10;Example: labeling a PickableGroup with the objectType value &#34;WATER&#34; and then attempting to intersect a pick sensor with objectType value &#34;GROUND&#34; fails since the objectType values do not match.&#10;Example: the special value &#34;ALL&#34; means that each node is available for picking regardless of the type specified by the pick sensor.&#10;Example: the special value &#34;NONE&#34; effectively disables all picking for this node and is the equivalent of setting the pickable field to false.&#10;Hint: authors may define any value for objectType.&#10;Hint: MFString arrays can have multiple values, so &quot;separate each individual string&quot; &quot;by using quote marks&quot;." name="objectType"/>
            <attribute tooltip="[pickable &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;The pickable field determines whether pick traversal is performed on this node or its children.&#10;Hint: pickable only affects children accessed through the transformation hierarchy of the parent.&#10;Warning: if one or more of the children of this instance is accessible through another transformation hierarchy through DEF/USE that still has picking enabled, they are still pickable through that path only." name="pickable"/>
            <attribute tooltip="[bboxCenter &initializeOnlyLabel; &SFVec3fLabel; &#34;0 0 0&#34;]&#10;Bounding box center accompanies bboxSize and provides an optional hint for bounding box position offset from origin of local coordinate system.&#10;Hint: precomputation and inclusion of bounding box information can speed up the initialization of large detailed models, with a corresponding cost of increased file size.&#10;Hint: X3D Architecture, 10.2.2 Bounding boxes https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#BoundingBoxes&#10;Hint:  X3D Architecture, 10.3.1 X3DBoundedObject https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#X3DBoundedObject" name="bboxCenter"/>
            <attribute tooltip="[bboxSize &initializeOnlyLabel; &SFVec3fLabel; &#34;-1 -1 -1&#34;] or [0,+&#8734;)&#10;Bounding box size is usually omitted, and can easily be calculated automatically by an X3D player at scene-loading time with minimal computational cost. Bounding box size can also be defined as an optional authoring hint that suggests an optimization or constraint.&#10;Hint: can be useful for collision computations or inverse-kinematics (IK) engines.&#10;Hint: precomputation and inclusion of bounding box information can speed up the initialization of large detailed models, with a corresponding cost of increased file size.&#10;Hint: X3D Architecture, 10.2.2 Bounding boxes https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#BoundingBoxes&#10;Hint:  X3D Architecture, 10.3.1 X3DBoundedObject https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#X3DBoundedObject" name="bboxSize"/>
            <attribute tooltip="(X3D version 4.0 draft) [bboxDisplay &inputOutputLabel; &SFBoolLabel; &#34;false&#34;]&#10;Whether to display bounding box for associated geometry, aligned with world coordinates.&#10;Hint: the bounding box is displayed regardless of whether contained content is visible." name="bboxDisplay"/>
            <attribute tooltip="(X3D version 4.0 draft) [visible &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Whether or not renderable content within this node is visually displayed.&#10;Hint: the visible field has no effect on animation behaviors, event passing or other non-visual characteristics.&#10;Hint: content must be visible to be collidable and to be pickable." name="visible"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/TouchSensor.gif" tooltip="(X3D version 3.2 or later) [X3DPickSensorNode] LinePickSensor uses one or more pickingGeometry line segments to compute intersections with pickTarget shapes. As each line intersection generates a known point in space, useful event information is returned including normal, geometry and texCoord values.&#10;Hint: sort order for line picking is based on each pair of coordinates that defining a line segment, with first declared vertex of the segment defined to be the start of the line to which the intersection points are closest.&#10;Hint: when the picking line segment intersects a coplanar polygon, computed intersection point(s) are illustrated in Figure 38.1 https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/picking.html#f-LineIntersection&#10;Hint: picking is performed between rendered frames of the event model. An author sets up the picking request in one frame by placing a LinePickSensor in the desired location. At the start of the next frame, any picking intersections are reported by the pick sensor.&#10;Hint: picking notification is performed at the start of the frame for all enabled pick sensors once all other sensors are processed.&#10;Hint: event timing details are explained in X3D Specification 4.4.8.3 Execution model https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/concepts.html#ExecutionModelWarning: order of contained nodes is significant, single pickingGeometry node must precede pickTarget node array. Hint: IndexedLineSet or Lineset can be used for pickingGeometry node." name="LinePickSensor">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[pickingGeometry &inputOutputLabel; &SFNodeLabel;, NULL node] [IndexedLineSet|LineSet]&#10;pickingGeometry specifies the exact geometry coordinates that are used to perform the intersection testing of the picking operation." name="pickingGeometry"/>
            <attribute tooltip="[pickTarget &inputOutputLabel; &MFNodeLabel;, empty list] [X3DGroupingNode|X3DShapeNode|Inline]&#10;pickTarget specifies the list of nodes against which picking operations are performed. All nodes declared in this field and their descendents are evaluated for intersections." name="pickTarget"/>
            <attribute tooltip="[pickedGeometry &outputOnlyLabel; &MFNodeLabel; #FIXED &#34;&#34;]&#10;Output event containing the node or nodes that have been found to intersect with the picking geometry from the last time this node performed a picking operation, given in the local coordinate system.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="pickedGeometry"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="(X3D version 4.0 draft) [description &inputOutputLabel; &SFStringLabel; #IMPLIED]&#10;Author-provided prose that describes intended purpose of the node.&#10;Hint: many XML tools substitute XML character references for special characters automatically if needed within an attribute value (such as &amp;#38; for &#38; ampersand character, or &amp;#34; for &#34; quotation-mark character)." name="description"/>
            <attribute tooltip="[enabled &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Enables/disables node operation." name="enabled"/>
            <attribute tooltip="[isActive &outputOnlyLabel; &SFBoolLabel; #FIXED &#34;&#34;]&#10;isActive indicates when the intersecting object is picked by the picking geometry.&#10;Output event isActive=true gets sent once a picked item is found.&#10;Output event isActive=false gets sent once no picked item is found.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="isActive"/>
            <attribute tooltip="[intersectionType &initializeOnlyLabel; &SFStringLabel; &PickSensorIntersectionTypeValues; &#34;BOUNDS&#34;]&#10;intersectionType specifies precision of the collision computation.&#10;Hint: intersectionType constants may be extended by the browser to provide additional options.&#10;Warning: do not wrap extra quotation marks  around these SFString enumeration values, since &#34;quotation&#34; &#34;marks&#34; are only used for MFString values." name="intersectionType"/>
            <attribute tooltip="[matchCriterion &inputOutputLabel; &SFStringLabel; &MatchCriterionTypeValues; &#34;MATCH_ANY&#34;]&#10;defines whether the intersection test (i.e. pick) by this X3DPickSensorNode must match one or more objectType. Specifically MATCH_ANY means any match of objectType values is acceptable, MATCH_EVERY means that every objectType value in this node shall match an objectType value in the X3DPickableObject, and MATCH_ONLY_ONE means that one and only one objectType value can match." name="matchCriterion"/>
            <attribute tooltip="[objectType &inputOutputLabel; &MFStringLabel; &PickableGroupObjectTypeValues; &#34;ALL&#34;]&#10;The objectType field specifies a set of labels used in the picking process. Each string specified is treated as an independent label that needs to be matched against the same type in one of the pick sensor instances.&#10;Example: labeling a PickableGroup with the objectType value &#34;WATER&#34; and then attempting to intersect a pick sensor with objectType value &#34;GROUND&#34; fails since the objectType values do not match.&#10;Example: the special value &#34;ALL&#34; means that each node is available for picking regardless of the type specified by the pick sensor.&#10;Example: the special value &#34;NONE&#34; effectively disables all picking for this node and is the equivalent of setting the pickable field of the corresponding PickableGroup to false.&#10;Hint: authors may define any value for objectType.&#10;Hint: MFString arrays can have multiple values, so &quot;separate each individual string&quot; &quot;by using quote marks&quot;." name="objectType"/>
            <attribute tooltip="[sortOrder &initializeOnlyLabel; &SFStringLabel; &PickSensorSortOrderValues; &#34;CLOSEST&#34;]&#10;The sortOrder field determines the order provided for picked output events.&#10;Example: ANY means any single object that can satisfy picking conditions for this pick sensor. Consistency of results is not guaranteed.&#10;Example: ALL means that every object that satisfies the picking conditions for this pick sensor shall be returned.&#10;Example: ALL_SORTED means that every object that satisfies the picking conditions for this pick sensor shall be returned with the order of the output fields provided in a distance-sorted order from closest to farthest away. The exact algorithm for sorting is defined by the individual node definitions.&#10;Example: CLOSEST means that the closest object by distance that satisfies the conditions of this pick sensor. *The exact algorithm for distance determination shall be defined by individual node definitions*.&#10;Hint: browser implementations may define additional values and algorithms beyond these four required values.&#10;Warning: do not wrap extra quotation marks  around these SFString enumeration values, since &#34;quotation&#34; &#34;marks&#34; are only used for MFString values." name="sortOrder"/>
            <attribute tooltip="[pickedPoint &outputOnlyLabel; &MFVec3fLabel; #FIXED &#34;&#34;]&#10;Output event containing 3D points on surface of underlying pickingGeometry computed by the picking intersection computations, given in the local coordinate system.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="pickedPoint"/>
            <attribute tooltip="[pickedNormal &outputOnlyLabel; &MFVec3fLabel; #FIXED &#34;&#34;]&#10;Output event containing surface normal vectors computed by the picking intersection computations.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="pickedNormal"/>
            <attribute tooltip="[pickedTextureCoordinate &outputOnlyLabel; &MFVec3fLabel; #FIXED &#34;&#34;]&#10;Output event containing 3D texture coordinates of surfaces computed by the picking intersection computations. Picked texture coordinates are in three dimensions. If the target texture coordinate has two dimensions, the third coordinate (z component of an SFVec3f) shall be zero.&#10;Warning: if the target object has multiple textures defined, only texture coordinates for the first texture are returned and all other textures are ignored.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="pickedTextureCoordinate"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/TouchSensor.gif" tooltip="(X3D version 3.2 or later) [X3DPickSensorNode] PointPickSensor tests one or more pickingGeometry points in space as lying inside the provided pickTarget geometry. For each pickingGeometry PointSet coordinate point that lies inside the pickTarget geometry, a pickedPoint coordinate is returned along with a corresponding pickedGeometry node inside which the point lies.&#10;Hint: because points represent an infinitely small location in space, sortOrder values CLOSEST and ALL_SORTED are defined to mean ANY and ALL respectively.&#10;Hint: picking is performed between rendered frames of the event model. An author sets up the picking request in one frame by placing a LinePickSensor in the desired location. At the start of the next frame, any picking intersections are reported by the pick sensor.&#10;Hint: picking notification is performed at the start of the frame for all enabled pick sensors once all other sensors are processed.&#10;Hint: event timing details are explained in X3D Specification 4.4.8.3 Execution model https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/concepts.html#ExecutionModelWarning: order of contained nodes is significant, single pickingGeometry node must precede pickTarget node array. Hint: PointSet can be used for pickingGeometry node." name="PointPickSensor">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[pickingGeometry &inputOutputLabel; &SFNodeLabel;, NULL node] [PointSet]&#10;pickingGeometry specifies the exact geometry coordinates that are used to perform the intersection testing of the picking operation." name="pickingGeometry"/>
            <attribute tooltip="[pickTarget &inputOutputLabel; &MFNodeLabel;, empty list] [X3DGroupingNode|X3DShapeNode|Inline]&#10;pickTarget specifies the list of nodes against which picking operations are performed. All nodes declared in this field and their descendents are evaluated for intersections." name="pickTarget"/>
            <attribute tooltip="[pickedGeometry &outputOnlyLabel; &MFNodeLabel; #FIXED &#34;&#34;]&#10;Output event containing the node or nodes that have been found to intersect with the picking geometry from the last time this node performed a picking operation, given in the local coordinate system.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="pickedGeometry"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="(X3D version 4.0 draft) [description &inputOutputLabel; &SFStringLabel; #IMPLIED]&#10;Author-provided prose that describes intended purpose of the node.&#10;Hint: many XML tools substitute XML character references for special characters automatically if needed within an attribute value (such as &amp;#38; for &#38; ampersand character, or &amp;#34; for &#34; quotation-mark character)." name="description"/>
            <attribute tooltip="[enabled &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Enables/disables node operation." name="enabled"/>
            <attribute tooltip="[isActive &outputOnlyLabel; &SFBoolLabel; #FIXED &#34;&#34;]&#10;isActive indicates when the intersecting object is picked by the picking geometry.&#10;Output event isActive=true gets sent once a picked item is found.&#10;Output event isActive=false gets sent once no picked item is found.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="isActive"/>
            <attribute tooltip="[intersectionType &initializeOnlyLabel; &SFStringLabel; &PickSensorIntersectionTypeValues; &#34;BOUNDS&#34;]&#10;intersectionType specifies precision of the collision computation.&#10;Hint: intersectionType constants may be extended by the browser to provide additional options.&#10;Warning: do not wrap extra quotation marks  around these SFString enumeration values, since &#34;quotation&#34; &#34;marks&#34; are only used for MFString values." name="intersectionType"/>
            <attribute tooltip="[matchCriterion &inputOutputLabel; &SFStringLabel; &MatchCriterionTypeValues; &#34;MATCH_ANY&#34;]&#10;defines whether the intersection test (i.e. pick) by this X3DPickSensorNode must match one or more objectType. Specifically MATCH_ANY means any match of objectType values is acceptable, MATCH_EVERY means that every objectType value in this node shall match an objectType value in the X3DPickableObject, and MATCH_ONLY_ONE means that one and only one objectType value can match." name="matchCriterion"/>
            <attribute tooltip="[objectType &inputOutputLabel; &MFStringLabel; &PickableGroupObjectTypeValues; &#34;ALL&#34;]&#10;The objectType field specifies a set of labels used in the picking process. Each string specified is treated as an independent label that needs to be matched against the same type in one of the pick sensor instances.&#10;Example: labeling a PickableGroup with the objectType value &#34;WATER&#34; and then attempting to intersect a pick sensor with objectType value &#34;GROUND&#34; fails since the objectType values do not match.&#10;Example: the special value &#34;ALL&#34; means that each node is available for picking regardless of the type specified by the pick sensor.&#10;Example: the special value &#34;NONE&#34; effectively disables all picking for this node and is the equivalent of setting the pickable field of the corresponding PickableGroup to false.&#10;Hint: authors may define any value for objectType.&#10;Hint: MFString arrays can have multiple values, so &quot;separate each individual string&quot; &quot;by using quote marks&quot;." name="objectType"/>
            <attribute tooltip="[sortOrder &initializeOnlyLabel; &SFStringLabel; &PickSensorSortOrderValues; &#34;CLOSEST&#34;]&#10;The sortOrder field determines the order provided for picked output events.&#10;Example: ANY means any single object that can satisfy picking conditions for this pick sensor. Consistency of results is not guaranteed.&#10;Example: ALL means that every object that satisfies the picking conditions for this pick sensor shall be returned.&#10;Example: ALL_SORTED means that every object that satisfies the picking conditions for this pick sensor shall be returned with the order of the output fields provided in a distance-sorted order from closest to farthest away. The exact algorithm for sorting is defined by the individual node definitions.&#10;Example: CLOSEST means that the closest object by distance that satisfies the conditions of this pick sensor. *The exact algorithm for distance determination shall be defined by individual node definitions*.&#10;Hint: browser implementations may define additional values and algorithms beyond these four required values.&#10;Warning: do not wrap extra quotation marks  around these SFString enumeration values, since &#34;quotation&#34; &#34;marks&#34; are only used for MFString values." name="sortOrder"/>
            <attribute tooltip="[pickedPoint &outputOnlyLabel; &MFVec3fLabel; #FIXED &#34;&#34;]&#10;Output event containing 3D points on surface of underlying pickingGeometry computed by the picking intersection computations, given in the local coordinate system.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="pickedPoint"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/TouchSensor.gif" tooltip="(X3D version 3.2 or later) [X3DPickSensorNode] PrimitivePickSensor tests picking intersections using one of the basic primitive shapes specified in the pickingGeometry field [Cone|Cylinder|Sphere|Box] against the pickTarget geometry.&#10;Warning: boolean fields used to control visibility of primitive pickingGeometry subsections are ignored when evaluating picking intersections.&#10;Example: a Cylinder without end caps is still treated as an enclosed Cylinder.&#10;Hint: Sorting is defined based on the primitive type as follows. For Cone, the closest picked primitive is defined to be that closest to the vertex point. For Cylinder, Box, and Sphere, the closest picked primitive is defined to be that closest to the center.&#10;Hint: picking is performed between rendered frames of the event model. An author sets up the picking request in one frame by placing a LinePickSensor in the desired location. At the start of the next frame, any picking intersections are reported by the pick sensor.&#10;Hint: picking notification is performed at the start of the frame for all enabled pick sensors once all other sensors are processed.&#10;Hint: event timing details are explained in X3D Specification 4.4.8.3 Execution model https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/concepts.html#ExecutionModelWarning: order of contained nodes is significant, single pickingGeometry node must precede pickTarget node array. Hint: Box, Cone, Cylinder or Sphere can be used for pickingGeometry node." name="PrimitivePickSensor">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[pickingGeometry &inputOutputLabel; &SFNodeLabel;, NULL node] [Cone|Cylinder|Sphere|Box]&#10;pickingGeometry specifies the exact geometry coordinates that are used to perform the intersection testing of the picking operation." name="pickingGeometry"/>
            <attribute tooltip="[pickTarget &inputOutputLabel; &MFNodeLabel;, empty list] [X3DGroupingNode|X3DShapeNode|Inline]&#10;pickTarget specifies the list of nodes against which picking operations are performed. All nodes declared in this field and their descendents are evaluated for intersections." name="pickTarget"/>
            <attribute tooltip="[pickedGeometry &outputOnlyLabel; &MFNodeLabel; #FIXED &#34;&#34;]&#10;Output event containing the node or nodes that have been found to intersect with the picking geometry from the last time this node performed a picking operation, given in the local coordinate system.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="pickedGeometry"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="(X3D version 4.0 draft) [description &inputOutputLabel; &SFStringLabel; #IMPLIED]&#10;Author-provided prose that describes intended purpose of the node.&#10;Hint: many XML tools substitute XML character references for special characters automatically if needed within an attribute value (such as &amp;#38; for &#38; ampersand character, or &amp;#34; for &#34; quotation-mark character)." name="description"/>
            <attribute tooltip="[enabled &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Enables/disables node operation." name="enabled"/>
            <attribute tooltip="[isActive &outputOnlyLabel; &SFBoolLabel; #FIXED &#34;&#34;]&#10;isActive indicates when the intersecting object is picked by the picking geometry.&#10;Output event isActive=true gets sent once a picked item is found.&#10;Output event isActive=false gets sent once no picked item is found.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="isActive"/>
            <attribute tooltip="[intersectionType &initializeOnlyLabel; &SFStringLabel; &PickSensorIntersectionTypeValues; &#34;BOUNDS&#34;]&#10;intersectionType specifies precision of the collision computation.&#10;Hint: intersectionType constants may be extended by the browser to provide additional options.&#10;Warning: do not wrap extra quotation marks  around these SFString enumeration values, since &#34;quotation&#34; &#34;marks&#34; are only used for MFString values." name="intersectionType"/>
            <attribute tooltip="[matchCriterion &inputOutputLabel; &SFStringLabel; &MatchCriterionTypeValues; &#34;MATCH_ANY&#34;]&#10;defines whether the intersection test (i.e. pick) by this X3DPickSensorNode must match one or more objectType. Specifically MATCH_ANY means any match of objectType values is acceptable, MATCH_EVERY means that every objectType value in this node shall match an objectType value in the X3DPickableObject, and MATCH_ONLY_ONE means that one and only one objectType value can match." name="matchCriterion"/>
            <attribute tooltip="[objectType &inputOutputLabel; &MFStringLabel; &PickableGroupObjectTypeValues; &#34;ALL&#34;]&#10;The objectType field specifies a set of labels used in the picking process. Each string specified is treated as an independent label that needs to be matched against the same type in one of the pick sensor instances.&#10;Example: labeling a PickableGroup with the objectType value &#34;WATER&#34; and then attempting to intersect a pick sensor with objectType value &#34;GROUND&#34; fails since the objectType values do not match.&#10;Example: the special value &#34;ALL&#34; means that each node is available for picking regardless of the type specified by the pick sensor.&#10;Example: the special value &#34;NONE&#34; effectively disables all picking for this node and is the equivalent of setting the pickable field of the corresponding PickableGroup to false.&#10;Hint: authors may define any value for objectType.&#10;Hint: MFString arrays can have multiple values, so &quot;separate each individual string&quot; &quot;by using quote marks&quot;." name="objectType"/>
            <attribute tooltip="[sortOrder &initializeOnlyLabel; &SFStringLabel; &PickSensorSortOrderValues; &#34;CLOSEST&#34;]&#10;The sortOrder field determines the order provided for picked output events.&#10;Example: ANY means any single object that can satisfy picking conditions for this pick sensor. Consistency of results is not guaranteed.&#10;Example: ALL means that every object that satisfies the picking conditions for this pick sensor shall be returned.&#10;Example: ALL_SORTED means that every object that satisfies the picking conditions for this pick sensor shall be returned with the order of the output fields provided in a distance-sorted order from closest to farthest away. The exact algorithm for sorting is defined by the individual node definitions.&#10;Example: CLOSEST means that the closest object by distance that satisfies the conditions of this pick sensor. *The exact algorithm for distance determination shall be defined by individual node definitions*.&#10;Hint: browser implementations may define additional values and algorithms beyond these four required values.&#10;Warning: do not wrap extra quotation marks  around these SFString enumeration values, since &#34;quotation&#34; &#34;marks&#34; are only used for MFString values." name="sortOrder"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/TouchSensor.gif" tooltip="(X3D version 3.2 or later) [X3DPickSensorNode] VolumePickSensor tests picking intersections using the pickingGeometry against the pickTarget geometry volume.&#10;Hint: sort order is based on distance between centers of the bounds of the picking geometry and the picked geometry.&#10;Warning: pickingGeometry volume is defined by the convex hull of the enclosing planes of the provided X3DGeometryNode. If the provided volume is not manifold, pick results are undefined.&#10;Hint: a pick is successful if any vertex of the pickTarget geometry intersects the volume defined by the pickingGeometry.&#10;Hint: Sorting is defined based on distance between the centers of the bounds of the picking geometry and the picked geometry.&#10;Hint: picking is performed between rendered frames of the event model. An author sets up the picking request in one frame by placing a LinePickSensor in the desired location. At the start of the next frame, any picking intersections are reported by the pick sensor.&#10;Hint: picking notification is performed at the start of the frame for all enabled pick sensors once all other sensors are processed.&#10;Hint: event timing details are explained in X3D Specification 4.4.8.3 Execution model https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/concepts.html#ExecutionModelWarning: order of contained nodes is significant, single pickingGeometry node must precede pickTarget node array. Hint: any geometry can be used for pickingGeometry node." name="VolumePickSensor">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[pickingGeometry &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DGeometryNode]&#10;pickingGeometry specifies the exact geometry coordinates that are used to perform the intersection testing of the picking operation." name="pickingGeometry"/>
            <attribute tooltip="[pickTarget &inputOutputLabel; &MFNodeLabel;, empty list] [X3DGroupingNode|X3DShapeNode|Inline]&#10;pickTarget specifies the list of nodes against which picking operations are performed. All nodes declared in this field and their descendents are evaluated for intersections." name="pickTarget"/>
            <attribute tooltip="[pickedGeometry &outputOnlyLabel; &MFNodeLabel; #FIXED &#34;&#34;]&#10;Output event containing the node or nodes that have been found to intersect with the picking geometry from the last time this node performed a picking operation, given in the local coordinate system.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="pickedGeometry"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="(X3D version 4.0 draft) [description &inputOutputLabel; &SFStringLabel; #IMPLIED]&#10;Author-provided prose that describes intended purpose of the node.&#10;Hint: many XML tools substitute XML character references for special characters automatically if needed within an attribute value (such as &amp;#38; for &#38; ampersand character, or &amp;#34; for &#34; quotation-mark character)." name="description"/>
            <attribute tooltip="[enabled &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Enables/disables node operation." name="enabled"/>
            <attribute tooltip="[isActive &outputOnlyLabel; &SFBoolLabel; #FIXED &#34;&#34;]&#10;isActive indicates when the intersecting object is picked by the picking geometry.&#10;Output event isActive=true gets sent once a picked item is found.&#10;Output event isActive=false gets sent once no picked item is found.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="isActive"/>
            <attribute tooltip="[intersectionType &initializeOnlyLabel; &SFStringLabel; &PickSensorIntersectionTypeValues; &#34;BOUNDS&#34;]&#10;intersectionType specifies precision of the collision computation.&#10;Hint: intersectionType constants may be extended by the browser to provide additional options.&#10;Warning: do not wrap extra quotation marks  around these SFString enumeration values, since &#34;quotation&#34; &#34;marks&#34; are only used for MFString values." name="intersectionType"/>
            <attribute tooltip="[matchCriterion &inputOutputLabel; &SFStringLabel; &MatchCriterionTypeValues; &#34;MATCH_ANY&#34;]&#10;defines whether the intersection test (i.e. pick) by this X3DPickSensorNode must match one or more objectType. Specifically MATCH_ANY means any match of objectType values is acceptable, MATCH_EVERY means that every objectType value in this node shall match an objectType value in the X3DPickableObject, and MATCH_ONLY_ONE means that one and only one objectType value can match." name="matchCriterion"/>
            <attribute tooltip="[objectType &inputOutputLabel; &MFStringLabel; &PickableGroupObjectTypeValues; &#34;ALL&#34;]&#10;The objectType field specifies a set of labels used in the picking process. Each string specified is treated as an independent label that needs to be matched against the same type in one of the pick sensor instances.&#10;Example: labeling a PickableGroup with the objectType value &#34;WATER&#34; and then attempting to intersect a pick sensor with objectType value &#34;GROUND&#34; fails since the objectType values do not match.&#10;Example: the special value &#34;ALL&#34; means that each node is available for picking regardless of the type specified by the pick sensor.&#10;Example: the special value &#34;NONE&#34; effectively disables all picking for this node and is the equivalent of setting the pickable field of the corresponding PickableGroup to false.&#10;Hint: authors may define any value for objectType.&#10;Hint: MFString arrays can have multiple values, so &quot;separate each individual string&quot; &quot;by using quote marks&quot;." name="objectType"/>
            <attribute tooltip="[sortOrder &initializeOnlyLabel; &SFStringLabel; &PickSensorSortOrderValues; &#34;CLOSEST&#34;]&#10;The sortOrder field determines the order provided for picked output events.&#10;Example: ANY means any single object that can satisfy picking conditions for this pick sensor. Consistency of results is not guaranteed.&#10;Example: ALL means that every object that satisfies the picking conditions for this pick sensor shall be returned.&#10;Example: ALL_SORTED means that every object that satisfies the picking conditions for this pick sensor shall be returned with the order of the output fields provided in a distance-sorted order from closest to farthest away. The exact algorithm for sorting is defined by the individual node definitions.&#10;Example: CLOSEST means that the closest object by distance that satisfies the conditions of this pick sensor. *The exact algorithm for distance determination shall be defined by individual node definitions*.&#10;Hint: browser implementations may define additional values and algorithms beyond these four required values.&#10;Warning: do not wrap extra quotation marks  around these SFString enumeration values, since &#34;quotation&#34; &#34;marks&#34; are only used for MFString values." name="sortOrder"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <!-- Followers component: Chasers and Dampers -->
        <element icon="icons/ColorInterpolator.gif" tooltip="(X3D version 3.2 or later) [X3DDamperNode] ColorDamper generates a series of RGB color values that progressively change from initial value to destination value.&#10;Hint: ROUTE value_changed output events to one of a &lt;Material&gt; node's color fields, for example.&#10;Hint: X3D Scene Authoring Hints, Color https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#Color" name="ColorDamper">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[order &initializeOnlyLabel; &SFInt32Label; &#34;3&#34;] [0,5]&#10;order defines the number of internal filters (larger means smoother response, longer delay)." name="order"/>
            <attribute tooltip="[tau &inputOutputLabel; &SFTimeLabel; &#34;0.3&#34;] [0,+&#8734;)&#10;tau is the exponential-decay time constant for filter response in seconds." name="tau"/>
            <attribute tooltip="[tolerance &inputOutputLabel; &SFFloatLabel; #IMPLIED] [0,+&#8734;) or -1.&#10;Absolute value for satisfactory completion proximity (-1 lets browser choose)." name="tolerance"/>
            <attribute tooltip="[initialValue &initializeOnlyLabel; &SFColorLabel; &#34;0.8 0.8 0.8&#34;]&#10;Initial starting value for this node." name="initialValue"/>
            <attribute tooltip="[initialDestination &initializeOnlyLabel; &SFColorLabel; &#34;0.8 0.8 0.8&#34;]&#10;Initial destination value for this node." name="initialDestination"/>
            <attribute tooltip="[set_value &inputOnlyLabel; &SFColorLabel; #FIXED &#34;&#34;]&#10;set_value resets current value of this node.&#10;Warning: it is an error to define this transient inputOnly field in an X3D file, instead only use it a destination for ROUTE events." name="set_value"/>
            <attribute tooltip="[set_destination &inputOnlyLabel; &SFColorLabel; #FIXED &#34;&#34;]&#10;set_destination resets destination value of this node.&#10;Warning: it is an error to define this transient inputOnly field in an X3D file, instead only use it a destination for ROUTE events." name="set_destination"/>
            <attribute tooltip="[isActive &outputOnlyLabel; &SFBoolLabel; #FIXED &#34;&#34;]&#10;isActive true/false events are sent when follower-node computation starts/stops.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="isActive"/>
            <attribute tooltip="[value_changed &outputOnlyLabel; &SFColorLabel; #FIXED &#34;&#34;]&#10;Computed output value that approaches within tolerance of destination value, as determined by elapsed time, order and tau.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="value_changed"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/CoordinateInterpolator.gif" tooltip="(X3D version 3.2 or later) [X3DDamperNode] CoordinateDamper generates a series of coordinate arrays that progressively change from initial value to destination value.&#10;Hint: ROUTE value_changed output events to a &lt;Coordinate&gt; node's point field, for example." name="CoordinateDamper">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[order &initializeOnlyLabel; &SFInt32Label; &#34;3&#34;] [0,5]&#10;order defines the number of internal filters (larger means smoother response, longer delay)." name="order"/>
            <attribute tooltip="[tau &inputOutputLabel; &SFTimeLabel; &#34;0.3&#34;] [0,+&#8734;)&#10;tau is the exponential-decay time constant for filter response in seconds." name="tau"/>
            <attribute tooltip="[tolerance &inputOutputLabel; &SFFloatLabel; #IMPLIED] [0,+&#8734;) or -1.&#10;Absolute value for satisfactory completion proximity (-1 lets browser choose)." name="tolerance"/>
            <attribute tooltip="[initialValue &initializeOnlyLabel; &MFVec3fLabel; &#34;0 0 0&#34;]&#10;Initial starting value for this node." name="initialValue"/>
            <attribute tooltip="[initialDestination &initializeOnlyLabel; &MFVec3fLabel; &#34;0 0 0&#34;]&#10;Initial destination value for this node." name="initialDestination"/>
            <attribute tooltip="[set_value &inputOnlyLabel; &MFVec3fLabel; #FIXED &#34;&#34;]&#10;set_value resets current value of this node.&#10;Warning: it is an error to define this transient inputOnly field in an X3D file, instead only use it a destination for ROUTE events." name="set_value"/>
            <attribute tooltip="[set_destination &inputOnlyLabel; &MFVec3fLabel; #FIXED &#34;&#34;]&#10;set_destination resets destination value of this node.&#10;Warning: it is an error to define this transient inputOnly field in an X3D file, instead only use it a destination for ROUTE events." name="set_destination"/>
            <attribute tooltip="[isActive &outputOnlyLabel; &SFBoolLabel; #FIXED &#34;&#34;]&#10;isActive true/false events are sent when follower-node computation starts/stops.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="isActive"/>
            <attribute tooltip="[value_changed &outputOnlyLabel; &MFVec3fLabel; #FIXED &#34;&#34;]&#10;Computed output value that approaches within tolerance of destination value, as determined by elapsed time, order and tau.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="value_changed"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/OrientationInterpolator.gif" tooltip="(X3D version 3.2 or later) [X3DDamperNode] OrientationDamper generates a series of 4-tuple axis-angle SFRotation values that progressively change from initial value to destination value.&#10;Hint: ROUTE value_changed output events to a &lt;Transform&gt; node's rotation field, for example." name="OrientationDamper">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[order &initializeOnlyLabel; &SFInt32Label; &#34;3&#34;] [0,5]&#10;order defines the number of internal filters (larger means smoother response, longer delay)." name="order"/>
            <attribute tooltip="[tau &inputOutputLabel; &SFTimeLabel; &#34;0.3&#34;] [0,+&#8734;)&#10;tau is the exponential-decay time constant for filter response in seconds." name="tau"/>
            <attribute tooltip="[tolerance &inputOutputLabel; &SFFloatLabel; #IMPLIED] [0,+&#8734;) or -1.&#10;Absolute value for satisfactory completion proximity (-1 lets browser choose)." name="tolerance"/>
            <attribute tooltip="[initialValue &initializeOnlyLabel; &SFRotationLabel; &#34;0 0 0&#34;]&#10;Initial starting value for this node." name="initialValue"/>
            <attribute tooltip="[initialDestination &initializeOnlyLabel; &SFRotationLabel; &#34;0 0 0&#34;]&#10;Initial destination value for this node." name="initialDestination"/>
            <attribute tooltip="[set_value &inputOnlyLabel; &SFRotationLabel; #FIXED &#34;&#34;]&#10;set_value resets current value of this node.&#10;Warning: it is an error to define this transient inputOnly field in an X3D file, instead only use it a destination for ROUTE events." name="set_value"/>
            <attribute tooltip="[set_destination &inputOnlyLabel; &SFRotationLabel; #FIXED &#34;&#34;]&#10;set_destination resets destination value of this node.&#10;Warning: it is an error to define this transient inputOnly field in an X3D file, instead only use it a destination for ROUTE events." name="set_destination"/>
            <attribute tooltip="[isActive &outputOnlyLabel; &SFBoolLabel; #FIXED &#34;&#34;]&#10;isActive true/false events are sent when follower-node computation starts/stops.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="isActive"/>
            <attribute tooltip="[value_changed &outputOnlyLabel; &SFRotationLabel; #FIXED &#34;&#34;]&#10;Computed output value that approaches within tolerance of destination value, as determined by elapsed time, order and tau.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="value_changed"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/PositionInterpolator.gif" tooltip="(X3D version 3.2 or later) [X3DDamperNode] PositionDamper generates a series of position values that progressively change from initial value to destination value.&#10;Hint: ROUTE value_changed output events to a &lt;Transform&gt; node's translation field, for example." name="PositionDamper">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[order &initializeOnlyLabel; &SFInt32Label; &#34;3&#34;] [0,5]&#10;order defines the number of internal filters (larger means smoother response, longer delay)." name="order"/>
            <attribute tooltip="[tau &inputOutputLabel; &SFTimeLabel; &#34;0.3&#34;] [0,+&#8734;)&#10;tau is the exponential-decay time constant for filter response in seconds." name="tau"/>
            <attribute tooltip="[tolerance &inputOutputLabel; &SFFloatLabel; #IMPLIED] [0,+&#8734;) or -1.&#10;Absolute value for satisfactory completion proximity (-1 lets browser choose)." name="tolerance"/>
            <attribute tooltip="[initialValue &initializeOnlyLabel; &SFVec3fLabel; &#34;0 0 0&#34;]&#10;Initial starting value for this node." name="initialValue"/>
            <attribute tooltip="[initialDestination &initializeOnlyLabel; &SFVec3fLabel; &#34;0 0 0&#34;]&#10;Initial destination value for this node." name="initialDestination"/>
            <attribute tooltip="[set_value &inputOnlyLabel; &SFVec3fLabel; #FIXED &#34;&#34;]&#10;set_value resets current value of this node.&#10;Warning: it is an error to define this transient inputOnly field in an X3D file, instead only use it a destination for ROUTE events." name="set_value"/>
            <attribute tooltip="[set_destination &inputOnlyLabel; &SFVec3fLabel; #FIXED &#34;&#34;]&#10;set_destination resets destination value of this node.&#10;Warning: it is an error to define this transient inputOnly field in an X3D file, instead only use it a destination for ROUTE events." name="set_destination"/>
            <attribute tooltip="[isActive &outputOnlyLabel; &SFBoolLabel; #FIXED &#34;&#34;]&#10;isActive true/false events are sent when follower-node computation starts/stops.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="isActive"/>
            <attribute tooltip="[value_changed &outputOnlyLabel; &SFVec3fLabel; #FIXED &#34;&#34;]&#10;Computed output value that approaches within tolerance of destination value, as determined by elapsed time, order and tau.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="value_changed"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/PositionInterpolator2D.gif" tooltip="(X3D version 3.2 or later) [X3DDamperNode] PositionDamper2D generates a series of 2D floating-point values that progressively change from initial value to destination value.&#10;Hint: ROUTE value_changed output events to a &lt;TextureTransform&gt; node's translation field, for example." name="PositionDamper2D">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[order &initializeOnlyLabel; &SFInt32Label; &#34;3&#34;] [0,5]&#10;order defines the number of internal filters (larger means smoother response, longer delay)." name="order"/>
            <attribute tooltip="[tau &inputOutputLabel; &SFTimeLabel; &#34;0.3&#34;] [0,+&#8734;)&#10;tau is the exponential-decay time constant for filter response in seconds." name="tau"/>
            <attribute tooltip="[tolerance &inputOutputLabel; &SFFloatLabel; #IMPLIED] [0,+&#8734;) or -1.&#10;Absolute value for satisfactory completion proximity (-1 lets browser choose)." name="tolerance"/>
            <attribute tooltip="[initialValue &initializeOnlyLabel; &SFVec2fLabel; &#34;0 0&#34;]&#10;Initial starting value for this node." name="initialValue"/>
            <attribute tooltip="[initialDestination &initializeOnlyLabel; &SFVec2fLabel; &#34;0 0&#34;]&#10;Initial destination value for this node." name="initialDestination"/>
            <attribute tooltip="[set_value &inputOnlyLabel; &SFVec2fLabel; #FIXED &#34;&#34;]&#10;set_value resets current value of this node.&#10;Warning: it is an error to define this transient inputOnly field in an X3D file, instead only use it a destination for ROUTE events." name="set_value"/>
            <attribute tooltip="[set_destination &inputOnlyLabel; &SFVec2fLabel; #FIXED &#34;&#34;]&#10;set_destination resets destination value of this node.&#10;Warning: it is an error to define this transient inputOnly field in an X3D file, instead only use it a destination for ROUTE events." name="set_destination"/>
            <attribute tooltip="[isActive &outputOnlyLabel; &SFBoolLabel; #FIXED &#34;&#34;]&#10;isActive true/false events are sent when follower-node computation starts/stops.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="isActive"/>
            <attribute tooltip="[value_changed &outputOnlyLabel; &SFVec2fLabel; #FIXED &#34;&#34;]&#10;Computed output value that approaches within tolerance of destination value, as determined by elapsed time, order and tau.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="value_changed"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/ScalarInterpolator.gif" tooltip="(X3D version 3.3 or later) [X3DDamperNode] ScalarDamper generates a series of floating-point values that progressively change from initial value to destination value.&#10;Hint: ROUTE value_changed output events to an interpolator node's set_fraction field, for example." name="ScalarDamper">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[order &initializeOnlyLabel; &SFInt32Label; &#34;3&#34;] [0,5]&#10;order defines the number of internal filters (larger means smoother response, longer delay)." name="order"/>
            <attribute tooltip="[tau &inputOutputLabel; &SFTimeLabel; &#34;0.3&#34;] [0,+&#8734;)&#10;tau is the exponential-decay time constant for filter response in seconds." name="tau"/>
            <attribute tooltip="[tolerance &inputOutputLabel; &SFFloatLabel; #IMPLIED] [0,+&#8734;) or -1.&#10;Absolute value for satisfactory completion proximity (-1 lets browser choose)." name="tolerance"/>
            <attribute tooltip="[initialValue &initializeOnlyLabel; &SFFloatLabel; &#34;0&#34;]&#10;Initial starting value for this node." name="initialValue"/>
            <attribute tooltip="[initialDestination &initializeOnlyLabel; &SFFloatLabel; &#34;0&#34;]&#10;Initial destination value for this node." name="initialDestination"/>
            <attribute tooltip="[set_value &inputOnlyLabel; &SFFloatLabel; #FIXED &#34;&#34;]&#10;set_value resets current value of this node.&#10;Warning: it is an error to define this transient inputOnly field in an X3D file, instead only use it a destination for ROUTE events." name="set_value"/>
            <attribute tooltip="[set_destination &inputOnlyLabel; &SFFloatLabel; #FIXED &#34;&#34;]&#10;set_destination resets destination value of this node.&#10;Warning: it is an error to define this transient inputOnly field in an X3D file, instead only use it a destination for ROUTE events." name="set_destination"/>
            <attribute tooltip="[isActive &outputOnlyLabel; &SFBoolLabel; #FIXED &#34;&#34;]&#10;isActive true/false events are sent when follower-node computation starts/stops.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="isActive"/>
            <attribute tooltip="[value_changed &outputOnlyLabel; &SFFloatLabel; #FIXED &#34;&#34;]&#10;Computed output value that approaches within tolerance of destination value, as determined by elapsed time, order and tau.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="value_changed"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/TextureCoordinate.gif" tooltip="(X3D version 3.2 or later) [X3DDamperNode] TexCoordDamper2D generates a series of 2D floating-point arrays that progressively change from initial value to destination value.&#10;Hint: ROUTE value_changed output events to a &lt;TextureTransform&gt; node's translation field, for example." name="TexCoordDamper2D">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[order &initializeOnlyLabel; &SFInt32Label; &#34;3&#34;] [0,5]&#10;order defines the number of internal filters (larger means smoother response, longer delay)." name="order"/>
            <attribute tooltip="[tau &inputOutputLabel; &SFTimeLabel; &#34;0.3&#34;] [0,+&#8734;)&#10;tau is the exponential-decay time constant for filter response in seconds." name="tau"/>
            <attribute tooltip="[tolerance &inputOutputLabel; &SFFloatLabel; #IMPLIED] [0,+&#8734;) or -1.&#10;Absolute value for satisfactory completion proximity (-1 lets browser choose)." name="tolerance"/>
            <attribute tooltip="[initialValue &initializeOnlyLabel; &MFVec2fLabel; #IMPLIED]&#10;Initial starting value for this node." name="initialValue"/>
            <attribute tooltip="[initialDestination &initializeOnlyLabel; &MFVec2fLabel; #IMPLIED]&#10;Initial destination value for this node." name="initialDestination"/>
            <attribute tooltip="[set_value &inputOnlyLabel; &MFVec2fLabel; #FIXED &#34;&#34;]&#10;set_value resets current value of this node.&#10;Warning: it is an error to define this transient inputOnly field in an X3D file, instead only use it a destination for ROUTE events." name="set_value"/>
            <attribute tooltip="[set_destination &inputOnlyLabel; &MFVec2fLabel; #FIXED &#34;&#34;]&#10;set_destination resets destination value of this node.&#10;Warning: it is an error to define this transient inputOnly field in an X3D file, instead only use it a destination for ROUTE events." name="set_destination"/>
            <attribute tooltip="[isActive &outputOnlyLabel; &SFBoolLabel; #FIXED &#34;&#34;]&#10;isActive true/false events are sent when follower-node computation starts/stops.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="isActive"/>
            <attribute tooltip="[value_changed &outputOnlyLabel; &MFVec2fLabel; #FIXED &#34;&#34;]&#10;Computed output value that approaches within tolerance of destination value, as determined by elapsed time, order and tau.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="value_changed"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/ColorInterpolator.gif" tooltip="(X3D version 3.3 or later) [X3DChaserNode] ColorChaser generates a series of SFColor values that progressively change from initial value to destination value.&#10;Hint: ROUTE value_changed output events to one of a &lt;Material&gt; node's color fields, for example.&#10;Hint: X3D Scene Authoring Hints, Color https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#Color" name="ColorChaser">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[duration &inputOutputLabel; &SFTimeLabel; &#34;1&#34;] [0,+&#8734;)&#10;duration is the time interval for filter response in seconds.&#10;Hint: duration is a nonnegative SFTime duration interval, not an absolute clock time." name="duration"/>
            <attribute tooltip="[initialValue &initializeOnlyLabel; &SFColorLabel; &#34;0.8 0.8 0.8&#34;]&#10;Initial starting value for this node." name="initialValue"/>
            <attribute tooltip="[initialDestination &initializeOnlyLabel; &SFColorLabel; &#34;0.8 0.8 0.8&#34;]&#10;Initial destination value for this node." name="initialDestination"/>
            <attribute tooltip="[set_value &inputOnlyLabel; &SFColorLabel; #FIXED &#34;&#34;]&#10;set_value resets current value of this node.&#10;Warning: it is an error to define this transient inputOnly field in an X3D file, instead only use it a destination for ROUTE events." name="set_value"/>
            <attribute tooltip="[set_destination &inputOnlyLabel; &SFColorLabel; #FIXED &#34;&#34;]&#10;set_destination resets destination value of this node.&#10;Warning: it is an error to define this transient inputOnly field in an X3D file, instead only use it a destination for ROUTE events." name="set_destination"/>
            <attribute tooltip="[isActive &outputOnlyLabel; &SFBoolLabel; #FIXED &#34;&#34;]&#10;isActive true/false events are sent when follower-node computation starts/stops.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="isActive"/>
            <attribute tooltip="[value_changed &outputOnlyLabel; &SFColorLabel; #FIXED &#34;&#34;]&#10;Computed output value that approaches within tolerance of destination value, as determined by elapsed time, order and tau.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="value_changed"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/CoordinateInterpolator.gif" tooltip="(X3D version 3.3 or later) [X3DChaserNode] CoordinateChaser generates a series of coordinate arrays that progressively change from initial value to destination value.&#10;Hint: ROUTE value_changed output events to a &lt;Coordinate&gt; node's point field, for example." name="CoordinateChaser">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[duration &inputOutputLabel; &SFTimeLabel; &#34;1&#34;] [0,+&#8734;)&#10;duration is the time interval for filter response in seconds.&#10;Hint: duration is a nonnegative SFTime duration interval, not an absolute clock time." name="duration"/>
            <attribute tooltip="[initialValue &initializeOnlyLabel; &MFVec3fLabel; &#34;0 0 0&#34;]&#10;Initial starting value for this node." name="initialValue"/>
            <attribute tooltip="[initialDestination &initializeOnlyLabel; &MFVec3fLabel; &#34;0 0 0&#34;]&#10;Initial destination value for this node." name="initialDestination"/>
            <attribute tooltip="[set_value &inputOnlyLabel; &MFVec3fLabel; #FIXED &#34;&#34;]&#10;set_value resets current value of this node.&#10;Warning: it is an error to define this transient inputOnly field in an X3D file, instead only use it a destination for ROUTE events." name="set_value"/>
            <attribute tooltip="[set_destination &inputOnlyLabel;&MFVec3fLabel; #FIXED &#34;&#34;]&#10;set_destination resets destination value of this node.&#10;Warning: it is an error to define this transient inputOnly field in an X3D file, instead only use it a destination for ROUTE events." name="set_destination"/>
            <attribute tooltip="[isActive &outputOnlyLabel; &SFBoolLabel; #FIXED &#34;&#34;]&#10;isActive true/false events are sent when follower-node computation starts/stops.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="isActive"/>
            <attribute tooltip="[value_changed &outputOnlyLabel; &MFVec3fLabel; #FIXED &#34;&#34;]&#10;Computed output value that approaches within tolerance of destination value, as determined by elapsed time, order and tau.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="value_changed"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/OrientationInterpolator.gif" tooltip="(X3D version 3.2 or later) [X3DChaserNode] OrientationChaser generates a series of 4-tuple axis-angle SFRotation values that progressively change from initial value to destination value.&#10;Hint: ROUTE value_changed output events to a &lt;Transform&gt; node's rotation field, for example." name="OrientationChaser">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[duration &inputOutputLabel; &SFTimeLabel; &#34;1&#34;] [0,+&#8734;)&#10;duration is the time interval for filter response in seconds.&#10;Hint: duration is a nonnegative SFTime duration interval, not an absolute clock time." name="duration"/>
            <attribute tooltip="[initialValue &initializeOnlyLabel; &SFRotationLabel; &#34;0 1 0 0&#34;]&#10;Initial starting value for this node." name="initialValue"/>
            <attribute tooltip="[initialDestination &initializeOnlyLabel; &SFRotationLabel; &#34;0 1 0 0&#34;]&#10;Initial destination value for this node." name="initialDestination"/>
            <attribute tooltip="[set_value &inputOnlyLabel; &SFRotationLabel; #FIXED &#34;&#34;]&#10;set_value resets current value of this node.&#10;Warning: it is an error to define this transient inputOnly field in an X3D file, instead only use it a destination for ROUTE events." name="set_value"/>
            <attribute tooltip="[set_destination &inputOnlyLabel; &SFRotationLabel; #FIXED &#34;&#34;]&#10;set_destination resets destination value of this node.&#10;Warning: it is an error to define this transient inputOnly field in an X3D file, instead only use it a destination for ROUTE events." name="set_destination"/>
            <attribute tooltip="[isActive &outputOnlyLabel; &SFBoolLabel; #FIXED &#34;&#34;]&#10;isActive true/false events are sent when follower-node computation starts/stops.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="isActive"/>
            <attribute tooltip="[value_changed &outputOnlyLabel; &SFRotationLabel; #FIXED &#34;&#34;]&#10;Computed output value that approaches within tolerance of destination value, as determined by elapsed time, order and tau.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="value_changed"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/PositionInterpolator.gif" tooltip="(X3D version 3.2 or later) [X3DChaserNode] PositionChaser generates a series of position values that progressively change from initial value to destination value.&#10;Hint: ROUTE value_changed output events to a &lt;Transform&gt; node's translation field, for example." name="PositionChaser">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[duration &inputOutputLabel; &SFTimeLabel; &#34;1&#34;] [0,+&#8734;)&#10;duration is the time interval for filter response in seconds.&#10;Hint: duration is a nonnegative SFTime duration interval, not an absolute clock time." name="duration"/>
            <attribute tooltip="[initialValue &initializeOnlyLabel; &SFVec3fLabel; &#34;0 0 0&#34;]&#10;Initial starting value for this node." name="initialValue"/>
            <attribute tooltip="[initialDestination &initializeOnlyLabel; &SFVec3fLabel; &#34;0 0 0&#34;]&#10;Initial destination value for this node." name="initialDestination"/>
            <attribute tooltip="[set_value &inputOnlyLabel; &SFVec3fLabel; #FIXED &#34;&#34;]&#10;set_value resets current value of this node.&#10;Warning: it is an error to define this transient inputOnly field in an X3D file, instead only use it a destination for ROUTE events." name="set_value"/>
            <attribute tooltip="[set_destination &inputOnlyLabel; &SFVec3fLabel; #FIXED &#34;&#34;]&#10;set_destination resets destination value of this node.&#10;Warning: it is an error to define this transient inputOnly field in an X3D file, instead only use it a destination for ROUTE events." name="set_destination"/>
            <attribute tooltip="[isActive &outputOnlyLabel; &SFBoolLabel; #FIXED &#34;&#34;]&#10;isActive true/false events are sent when follower-node computation starts/stops.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="isActive"/>
            <attribute tooltip="[value_changed &outputOnlyLabel; &SFVec3fLabel; #FIXED &#34;&#34;]&#10;Computed output value that approaches within tolerance of destination value, as determined by elapsed time, order and tau.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="value_changed"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/PositionInterpolator2D.gif" tooltip="(X3D version 3.2 or later) [X3DChaserNode] PositionChaser2D generates a series of 2D position values that progressively change from initial value to destination value.&#10;Hint: ROUTE value_changed output events to a &lt;TextureTransform&gt; node's translation field, for example." name="PositionChaser2D">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[duration &inputOutputLabel; &SFTimeLabel; &#34;1&#34;] [0,+&#8734;)&#10;duration is the time interval for filter response in seconds.&#10;Hint: duration is a nonnegative SFTime duration interval, not an absolute clock time." name="duration"/>
            <attribute tooltip="[initialValue &initializeOnlyLabel; &SFVec2fLabel; &#34;0 0&#34;]&#10;Initial starting value for this node." name="initialValue"/>
            <attribute tooltip="[initialDestination &initializeOnlyLabel; &SFVec2fLabel; &#34;0 0&#34;]&#10;Initial destination value for this node." name="initialDestination"/>
            <attribute tooltip="[set_value &inputOnlyLabel; &SFVec2fLabel; #FIXED &#34;&#34;]&#10;set_value resets current value of this node.&#10;Warning: it is an error to define this transient inputOnly field in an X3D file, instead only use it a destination for ROUTE events." name="set_value"/>
            <attribute tooltip="[set_destination &inputOnlyLabel; &SFVec2fLabel; #FIXED &#34;&#34;]&#10;set_destination resets destination value of this node.&#10;Warning: it is an error to define this transient inputOnly field in an X3D file, instead only use it a destination for ROUTE events." name="set_destination"/>
            <attribute tooltip="[isActive &outputOnlyLabel; &SFBoolLabel; #FIXED &#34;&#34;]&#10;isActive true/false events are sent when follower-node computation starts/stops.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="isActive"/>
            <attribute tooltip="[value_changed &outputOnlyLabel; &SFVec2fLabel; #FIXED &#34;&#34;]&#10;Computed output value that approaches within tolerance of destination value, as determined by elapsed time, order and tau.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="value_changed"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/ScalarInterpolator.gif" tooltip="(X3D version 3.2 or later) [X3DChaserNode] ScalarChaser generates a series of single floating-point values that progressively change from initial value to destination value.&#10;Hint: ROUTE value_changed output events to an interpolator node's set_fraction field, for example." name="ScalarChaser">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[duration &inputOutputLabel; &SFTimeLabel; &#34;1&#34;] [0,+&#8734;)&#10;duration is the time interval for filter response in seconds.&#10;Hint: duration is a nonnegative SFTime duration interval, not an absolute clock time." name="duration"/>
            <attribute tooltip="[initialValue &initializeOnlyLabel; &SFFloatLabel; &#34;0&#34;]&#10;Initial starting value for this node." name="initialValue"/>
            <attribute tooltip="[initialDestination &initializeOnlyLabel; &SFFloatLabel; &#34;0&#34;]&#10;Initial destination value for this node." name="initialDestination"/>
            <attribute tooltip="[set_value &inputOnlyLabel; &SFFloatLabel; #FIXED &#34;&#34;]&#10;set_value resets current value of this node.&#10;Warning: it is an error to define this transient inputOnly field in an X3D file, instead only use it a destination for ROUTE events." name="set_value"/>
            <attribute tooltip="[set_destination &inputOnlyLabel; &SFFloatLabel; #FIXED &#34;&#34;]&#10;set_destination resets destination value of this node.&#10;Warning: it is an error to define this transient inputOnly field in an X3D file, instead only use it a destination for ROUTE events." name="set_destination"/>
            <attribute tooltip="[isActive &outputOnlyLabel; &SFBoolLabel; #FIXED &#34;&#34;]&#10;isActive true/false events are sent when follower-node computation starts/stops.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="isActive"/>
            <attribute tooltip="[value_changed &outputOnlyLabel; &SFFloatLabel; #FIXED &#34;&#34;]&#10;Computed output value that approaches within tolerance of destination value, as determined by elapsed time, order and tau.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="value_changed"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/CoordinateInterpolator.gif" tooltip="(X3D version 3.3 or later) [X3DChaserNode] TexCoordChaser2D generates a series of single floating-point values that progressively change from initial value to destination value.&#10;Hint: ROUTE value_changed output events to a &lt;TextureTransform&gt; node's translation field, for example." name="TexCoordChaser2D">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[duration &inputOutputLabel; &SFTimeLabel; &#34;1&#34;] [0,+&#8734;)&#10;duration is the time interval for filter response in seconds.&#10;Hint: duration is a nonnegative SFTime duration interval, not an absolute clock time." name="duration"/>
            <attribute tooltip="[initialValue &initializeOnlyLabel; &MFVec2fLabel; #IMPLIED]&#10;Initial starting value for this node." name="initialValue"/>
            <attribute tooltip="[initialDestination &initializeOnlyLabel; &MFVec2fLabel; #IMPLIED]&#10;Initial destination value for this node." name="initialDestination"/>
            <attribute tooltip="[set_value &inputOnlyLabel; &MFVec2fLabel; #FIXED &#34;&#34;]&#10;set_value resets current value of this node.&#10;Warning: it is an error to define this transient inputOnly field in an X3D file, instead only use it a destination for ROUTE events." name="set_value"/>
            <attribute tooltip="[set_destination &inputOnlyLabel; &MFVec2fLabel; #FIXED &#34;&#34;]&#10;set_destination resets destination value of this node.&#10;Warning: it is an error to define this transient inputOnly field in an X3D file, instead only use it a destination for ROUTE events." name="set_destination"/>
            <attribute tooltip="[isActive &outputOnlyLabel; &SFBoolLabel; #FIXED &#34;&#34;]&#10;isActive true/false events are sent when follower-node computation starts/stops.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="isActive"/>
            <attribute tooltip="[value_changed &outputOnlyLabel; &MFVec2fLabel; #FIXED &#34;&#34;]&#10;Computed output value that approaches within tolerance of destination value, as determined by elapsed time, order and tau.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="value_changed"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <!-- Particle systems component -->
        <element icon="icons/SHAPE16.png" tooltip="(X3D version 3.2 or later) [X3DParticlePhysicsModelNode] BoundedPhysicsModel provides user-defined geometrical boundaries for particle motion. A child geometry node specifies boundaries that constrain the location of the particles.&#10;Hint: when a particle touches the boundary surface, it is reflected by the geometry (either inside or outside)." name="BoundedPhysicsModel">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[geometry &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DGeometryNode]&#10;Single contained geometry node provides the geometry used for each particle when the parent ParticleSystem node has geometryType=GEOMETRY.&#10;Hint: X3D for Advanced Modeling (X3D4AM) slideset https://x3dgraphics.com/slidesets/X3dForAdvancedModeling/GeospatialComponentX3dEarth.pdf&#10;Warning: requires X3D profile='Full' or else include &lt;component name='Geospatial' level='1'/&gt;" name="geometry"/>
            <attribute tooltip="[enabled &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Enables/disables node operation." name="enabled"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;physics&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/SHAPE16.png" tooltip="(X3D version 3.2 or later) [X3DParticleEmitterNode] ConeEmitter generates all available particles from a specific point in space. Particles are emitted from the single point specified by the position field emanating in a direction randomly distributed within the cone specified by the angle and direction fields." name="ConeEmitter">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[angle &inputOutputLabel; &SFFloatLabel; &#34;0&#34;] [0,+&#8734;)&#10;Cone boundary for random distribution of particles about initial direction.&#10;Hint: radian units for angular measure https://en.wikipedia.org/wiki/Radian" name="angle"/>
            <attribute tooltip="[direction &inputOutputLabel; &SFVec3fLabel; &#34;0 1 0&#34;]&#10;Initial direction from which particles emanate." name="direction"/>
            <attribute tooltip="[mass &initializeOnlyLabel; &SFFloatLabel; &#34;0&#34;] [0,+&#8734;)&#10;Basic mass of each particle, defined in mass base units (default is kilograms).&#10;Hint: mass is needed if gravity or other force-related calculations are performed on a per-particle basis.&#10;Hint: https://en.wikipedia.org/wiki/Kilogram&#10;Hint: X3D Architecture 4.3.6 Standard units and coordinate system https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/concepts.html#Standardunitscoordinates" name="mass"/>
            <attribute tooltip="[on &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Enables/disables production of particles from this emitter node. If operating when turned off, existing particles complete their rendering process." name="on"/>
            <attribute tooltip="[position &inputOutputLabel; &SFVec3fLabel; &#34;0 1 0&#34;]&#10;Point from which particles emanate." name="position"/>
            <attribute tooltip="[speed &inputOutputLabel; &SFFloatLabel; &#34;0&#34;] [0,+&#8734;)&#10;Initial linear speed (default is m/s) imparted to all particles along their direction of movement." name="speed"/>
            <attribute tooltip="[surfaceArea &initializeOnlyLabel; &SFFloatLabel; &#34;0&#34;] [0,+&#8734;)&#10;Particle surface area in area base units (default is meters squared). Surface area is used for calculations such as wind effects per particle.&#10;Hint: surfaceArea value represents average frontal area presented to the wind.&#10;Hint: assumes spherical model for each particle (i.e., surface area is the same regardless of direction)." name="surfaceArea"/>
            <attribute tooltip="[variation &inputOutputLabel; &SFFloatLabel; &#34;0.25&#34;] [0,+&#8734;)&#10;Multiplier for the randomness used to control the range of possible output values. The bigger the value, the more random the output and the bigger the range of possible initial values possible.&#10;Hint: variation of zero does not allow any randomness." name="variation"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;emitter&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/SHAPE16.png" tooltip="(X3D version 3.2 or later) [X3DParticleEmitterNode] ExplosionEmitter generates all particles from a specific point in space at the initial time enabled." name="ExplosionEmitter">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[on &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Enables/disables production of particles from this emitter node. If operating when turned off, existing particles complete their rendering process." name="on"/>
            <attribute tooltip="[position &inputOutputLabel; &SFVec3fLabel; &#34;0 1 0&#34;]&#10;Point from which particles emanate." name="position"/>
            <attribute tooltip="[mass &initializeOnlyLabel; &SFFloatLabel; &#34;0&#34;] [0,+&#8734;)&#10;Basic mass of each particle, defined in mass base units (default is kilograms).&#10;Hint: mass is needed if gravity or other force-related calculations are performed on a per-particle basis.&#10;Hint: https://en.wikipedia.org/wiki/Kilogram&#10;Hint: X3D Architecture 4.3.6 Standard units and coordinate system https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/concepts.html#Standardunitscoordinates" name="mass"/>
            <attribute tooltip="[speed &inputOutputLabel; &SFFloatLabel; &#34;0&#34;] [0,+&#8734;)&#10;Initial linear speed (default is m/s) imparted to all particles along their direction of movement." name="speed"/>
            <attribute tooltip="[surfaceArea &initializeOnlyLabel; &SFFloatLabel; &#34;0&#34;] [0,+&#8734;)&#10;Particle surface area in area base units (default is meters squared). Surface area is used for calculations such as wind effects per particle.&#10;Hint: surfaceArea value represents average frontal area presented to the wind.&#10;Hint: assumes spherical model for each particle (i.e., surface area is the same regardless of direction)." name="surfaceArea"/>
            <attribute tooltip="[variation &inputOutputLabel; &SFFloatLabel; &#34;0.25&#34;] [0,+&#8734;)&#10;Multiplier for the randomness used to control the range of possible output values. The bigger the value, the more random the output and the bigger the range of initial values possible.&#10;Hint: variation of zero does not allow any randomness." name="variation"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;emitter&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/SHAPE16.png" tooltip="(X3D version 3.2 or later) [X3DParticlePhysicsModelNode] ForcePhysicsModel applies a constant force value to the particles.&#10;Hint: force may act in any given direction vector at any strength." name="ForcePhysicsModel">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[enabled &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Enables/disables node operation." name="enabled"/>
            <attribute tooltip="[force &inputOutputLabel; &SFVec3fLabel; &#34;0 -9.8 0&#34;] (-&#8734;,+&#8734;)&#10;force field indicates strength and direction of the propelling force on the particles (for example, default is Earth's gravity).&#10;Hint: if particles have zero mass, ForcePhysicsModel node has no effect.&#10;Hint: force is specified in force base units (usually newtons, acceleration of one kilogram at rate of one meter per second squared).&#10;Hint: https://en.wikipedia.org/wiki/Newton_(unit) and https://en.wikipedia.org/wiki/Kilogram&#10;Hint: X3D Architecture 4.3.6 Standard units and coordinate system https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/concepts.html#Standardunitscoordinates" name="force"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;physics&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/SHAPE16.png" tooltip="(X3D version 3.2 or later) [X3DShapeNode] ParticleSystem specifies a complete particle system. It can contain Appearance for particle appearance, a geometry node if gemoetryType='GEOMETRY', a color field with Color|ColorRGBA node for changing base color over each particle's lifetime, a texcoord TextureCoordinate node to control texture coordinates of provided texture(s) in the Appearance node over time, a single emitter X3DParticleEmitterNode, and an array of physics X3DParticlePhysicsModelNode nodes.&#10;Hint: event timing details are explained in X3D Specification 4.4.8.3 Execution model https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/concepts.html#ExecutionModelHint: Wikipedia, particle system https://en.wikipedia.org/wiki/Particle_system" name="ParticleSystem">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[appearance &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DAppearanceNode]&#10;The appearance field holds an Appearance node that is used for the geometry. All effects, such as material colors and/or multi-textures, are applied to each particle.&#10;Hint: if a texture coordinate ramp and key is supplied with this geometry, it shall be used in preference to any automatic texture coordinate generation.&#10;Hint: if automatic texture coordinate generation is used, results shall be based on the entire volume that the particles consume, not locally applied to each particle." name="appearance"/>
            <attribute tooltip="(X3D version 4.0 draft) [bboxDisplay &inputOutputLabel; &SFBoolLabel; &#34;false&#34;]&#10;Whether to display bounding box for associated geometry, aligned with world coordinates.&#10;Hint: the bounding box is displayed regardless of whether contained content is visible." name="bboxDisplay"/>
            <attribute tooltip="(X3D version 4.0 draft) [castShadow &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;The castShadow field defines whether this Shape casts shadows as produced by lighting nodes.&#10;Hint: if the visible field is FALSE, then the Shape does not cast any shadows, regardless of the castShadow value.&#10;Hint: if prior X3D3 content is loaded into an X3D4 model, then legacy Shape nodes have shadows set to true." name="castShadow"/>
            <attribute tooltip="[colorKey &initializeOnlyLabel; &MFFloatLabel; #IMPLIED] [0,+&#8734;)&#10;Array of time intervals in seconds, corresponding to particle lifetime, that are used to interpolate color array values.&#10;Hint: color values are interpolated in linear Hue Saturation Value (HSV) space, similar to ColorInterpolator node.&#10;Hint: color values are defined as per-vertex color values.&#10;Warning: if an Appearance and Material nodes are provided, those material properties override color field interpolation.&#10;Hint: number of colorKey values must match length of the per-vertex color field array values!&#10;Hint: X3D Scene Authoring Hints, Color https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#Color" name="colorKey"/>
            <attribute tooltip="(X3D version 4.0 draft) [color &initializeOnlyLabel; &MFNodeLabel;, NULL node] [X3DColorNode]&#10;The color field contains Color|ColorRGBA nodes as a series of color values to be used at the given colorKey points in time.&#10;Warning: field originally named 'colorRamp' in X3Dv3. https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#fieldNameChanges&#10;&#10;Hint: color values are defined as per-vertex color values.&#10;Warning: if an Appearance and Material nodes are provided, those material properties override color field interpolation.&#10;Hint: number of colorKey values must match length of the per-vertex color field array values!&#10;Hint: X3D Scene Authoring Hints, Color https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#Color" name="color"/>
            <attribute tooltip="[createParticles &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Enables/disables creation of new particles, while any existing particles remain in existence and continue to animate until the end of their lifetimes.&#10;Hint: if no particles are left in scene, system is considered both active and enabled." name="createParticles"/>
            <attribute tooltip="[emitter &initializeOnlyLabel; &SFNodeLabel;, NULL node] [X3DParticleEmitterNode]&#10;The emitter field specifies the type of emitter geometry and properties that the particles are given for their initial positions." name="emitter"/>
            <attribute tooltip="[enabled &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Enables/disables node operation." name="enabled"/>
            <attribute tooltip="[geometryType &initializeOnlyLabel; &SFStringLabel; &ParticleSystemgeometryTypes; QUAD]&#10;specifies type of geometry used to represent individual particles. Typically, a particle is calculated as point in space at which the geometry is placed. Changing the value of the geometry field or the definition of the geometry node shall be applied during current computation of the next frame to be rendered.&#10;Hint: LINE means that a line is drawn along the particle's current velocity vector, for this frame, centered about the particle's position. The length of the line is specified by the particle's height from the particleSize field value.&#10;Hint: POINT means that a point geometry is rendered at the particle's position.&#10;Hint: QUAD means that a 2D quad is rendered aligned in the local coordinate space of the particle system with the face normal pointing along the positive Z axis. Individual quads are not aligned to the user's eye position but are affected in depth by the physics model. The particle's position is at the center of the quad.&#10;Hint: SPRITE means that a point sprite that uses a 2D point position to locate a screen-aligned quad at the center of the particle's location is rendered.&#10;Hint: TRIANGLE means that a 2D quad is rendered using a pair of triangles aligned in the local coordinate space of the particle system with the face normal pointing along the positive Z axis. Individual triangles are not aligned to the user's eye position, but are affected in depth by the physics model. The particle's position is at the center of the triangle.&#10;Hint: GEOMETRY means that the geometry specified by the geometry field is rendered for each particle using the local coordinate system.&#10;Warning: do not wrap extra quotation marks  around these SFString enumeration values, since &#34;quotation&#34; &#34;marks&#34; are only used for MFString values.&#10;Hint: X3D for Advanced Modeling (X3D4AM) slideset https://x3dgraphics.com/slidesets/X3dForAdvancedModeling/GeospatialComponentX3dEarth.pdf&#10;Warning: requires X3D profile='Full' or else include &lt;component name='Geospatial' level='1'/&gt;" name="geometryType"/>
            <attribute tooltip="[geometry &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DGeometryNode]&#10;Single contained geometry node provides geometry used for each particle when geometryType=GEOMETRY.&#10;Hint: X3D for Advanced Modeling (X3D4AM) slideset https://x3dgraphics.com/slidesets/X3dForAdvancedModeling/GeospatialComponentX3dEarth.pdf&#10;Warning: requires X3D profile='Full' or else include &lt;component name='Geospatial' level='1'/&gt;" name="geometry"/>
            <attribute tooltip="[physics &initializeOnlyLabel; &MFNodeLabel;, empty list] [X3DParticlePhysicsModelNode]&#10;After being created, the individual particles are then manipulated according to the physics model(s) specified in the physics field." name="physics"/>
            <attribute tooltip="[lifetimeVariation &inputOutputLabel; &SFFloatLabel; &#34;0.25&#34;] [0,1)&#10;TODO not properly defined in X3D spedification.&#10;Multiplier for the randomness used to control the range of possible output values. The bigger the value, the more random the output and the bigger the range of initial values possible.&#10;Hint: variation of zero does not allow any randomness." name="lifetimeVariation"/>
            <attribute tooltip="[maxParticles &inputOutputLabel; &SFInt32Label; &#34;200&#34;] [0,+&#8734;)&#10;Maximum number of particles to be generated at one time (subject to player limitations)." name="maxParticles"/>
            <attribute tooltip="[particleLifetime &inputOutputLabel; &SFFloatLabel; &#34;5&#34;] [0,+&#8734;)&#10;TODO not properly defined in X3D spedification.&#10;Particle animation lifetime in base time units (default is seconds)." name="particleLifetime"/>
            <attribute tooltip="[particleSize &inputOutputLabel; &SFVec2fLabel; &#34;0.02 0.02&#34;] [0,+&#8734;)&#10;particleSize describes width and height dimensions for each particle in length base units (default is meters). Changing this value dynamically will only change new particles created after the change.&#10;Hint: particles created before this timestamp will remain at the old size.&#10;Hint: his field only effects particles using LINE, QUAD, SPRITE, and TRIANGLE geometry types." name="particleSize"/>
            <attribute tooltip="(X3D version 4.0 draft) [visible &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Whether or not renderable content within this node is visually displayed.&#10;Hint: the visible field has no effect on animation behaviors, event passing or other non-visual characteristics.&#10;Hint: content must be visible to be collidable and to be pickable." name="visible"/>
            <attribute tooltip="[texCoordKey &initializeOnlyLabel; &MFFloatLabel; #IMPLIED] [0,+&#8734;)&#10;Array of time intervals in seconds, corresponding to particle lifetime, that are used to sequence texCoord array values.&#10;Hint: no interpolation is performed, texture coordinates are simply sequenced in order.&#10;Hint: texture-coordinate values map textures to vertices in the geometry.&#10;Hint: number of texCoordKey values must match length of the per-vertex texCoord arrays!" name="texCoordKey"/>
            <attribute tooltip="(X3D version 4.0 draft) [texCoord &initializeOnlyLabel; &SFNodeLabel;, NULL node] [TextureCoordinate|TextureCoordinateGenerator]&#10;texture coordinates of the provided texture(s) in the Appearance node, over time. Particle systems frequently like to change the texture on a particle as it ages, yet there is no good way of accomplishing this through standard interpolators because interpolators have no concept of particle time. This pair of fields hold time-dependent values for the texture coordinates to be applied to the particle. When a particle reaches the next time stamp it moves to the next set of texture coordinates.&#10;Warning: field originally named 'texCoordRamp' in X3Dv3. https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#fieldNameChanges&#10;&#10;Hint: texture-coordinate values map textures to vertices in the geometry.&#10;Hint: number of texCoordKey values must match length of the per-vertex texCoord arrays!" name="texCoord"/>
            <attribute tooltip="[isActive &outputOnlyLabel; &SFBoolLabel; #FIXED &#34;&#34;]&#10;isActive true/false events are sent when playback starts/stops.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="isActive"/>
            <attribute tooltip="[bboxCenter &initializeOnlyLabel; &SFVec3fLabel; &#34;0 0 0&#34;]&#10;Bounding box center accompanies bboxSize and provides an optional hint for bounding box position offset from origin of local coordinate system.&#10;Hint: precomputation and inclusion of bounding box information can speed up the initialization of large detailed models, with a corresponding cost of increased file size.&#10;Hint: X3D Architecture, 10.2.2 Bounding boxes https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#BoundingBoxes&#10;Hint:  X3D Architecture, 10.3.1 X3DBoundedObject https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#X3DBoundedObject" name="bboxCenter"/>
            <attribute tooltip="[bboxSize &initializeOnlyLabel; &SFVec3fLabel; &#34;-1 -1 -1&#34;] or [0,+&#8734;)&#10;Bounding box size is usually omitted, and can easily be calculated automatically by an X3D player at scene-loading time with minimal computational cost. Bounding box size can also be defined as an optional authoring hint that suggests an optimization or constraint.&#10;Hint: can be useful for collision computations or inverse-kinematics (IK) engines.&#10;Hint: precomputation and inclusion of bounding box information can speed up the initialization of large detailed models, with a corresponding cost of increased file size.&#10;Hint: X3D Architecture, 10.2.2 Bounding boxes https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#BoundingBoxes&#10;Hint:  X3D Architecture, 10.3.1 X3DBoundedObject https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#X3DBoundedObject" name="bboxSize"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/SHAPE16.png" tooltip="(X3D version 3.2 or later) [X3DParticleEmitterNode] PointEmitter generates particles from a specific point in space using the specified direction and speed." name="PointEmitter">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[direction &inputOutputLabel; &SFVec3fLabel; &#34;0 1 0&#34;]&#10;Initial direction from which particles emanate." name="direction"/>
            <attribute tooltip="[on &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Enables/disables production of particles from this emitter node. If operating when turned off, existing particles complete their rendering process." name="on"/>
            <attribute tooltip="[position &inputOutputLabel; &SFVec3fLabel; &#34;0 1 0&#34;]&#10;Point from which particles emanate." name="position"/>
            <attribute tooltip="[mass &initializeOnlyLabel; &SFFloatLabel; &#34;0&#34;] [0,+&#8734;)&#10;Basic mass of each particle, defined in mass base units (default is kilograms).&#10;Hint: mass is needed if gravity or other force-related calculations are performed on a per-particle basis.&#10;Hint: https://en.wikipedia.org/wiki/Kilogram&#10;Hint: X3D Architecture 4.3.6 Standard units and coordinate system https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/concepts.html#Standardunitscoordinates" name="mass"/>
            <attribute tooltip="[speed &inputOutputLabel; &SFFloatLabel; &#34;0&#34;] [0,+&#8734;)&#10;Initial linear speed (default is m/s) imparted to all particles along their direction of movement." name="speed"/>
            <attribute tooltip="[surfaceArea &initializeOnlyLabel; &SFFloatLabel; &#34;0&#34;] [0,+&#8734;)&#10;Particle surface area in area base units (default is meters squared). Surface area is used for calculations such as wind effects per particle.&#10;Hint: surfaceArea value represents average frontal area presented to the wind.&#10;Hint: assumes spherical model for each particle (i.e., surface area is the same regardless of direction)." name="surfaceArea"/>
            <attribute tooltip="[variation &inputOutputLabel; &SFFloatLabel; &#34;0.25&#34;] [0,+&#8734;)&#10;Multiplier for the randomness used to control the range of possible output values. The bigger the value, the more random the output and the bigger the range of possible initial values possible.&#10;Hint: variation of zero does not allow any randomness." name="variation"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;emitter&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/SHAPE16.png" tooltip="(X3D version 3.2 or later) [X3DParticleEmitterNode] PolylineEmitter emits particles along a single polyline. The coordinates for the line along which particles should be randomly generated are taken from a combination of the coord and coordIndex fields. The starting point for generating particles is randomly distributed along this line and given the initial speed and direction.&#10;Hint: if no coordinates are available, PolylineEmitter acts like a point source located at local origin." name="PolylineEmitter">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[coord &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DCoordinateNode]&#10;Coordinates for the line along which particles are randomly generated.&#10;Warning: If no coordinates are available, PolylineEmitter acts like a point source located at local origin." name="coord"/>
            <attribute tooltip="[coordIndex &initializeOnlyLabel; &MFInt32Label; &#34;-1&#34;] [-1,+&#8734;)&#10;coordIndex indices are applied to contained Coordinate values in order to define randomly generated initial geometry of the particles.&#10;Warning: If no coordinates are available, PolylineEmitter acts like a point source located at local origin.&#10;Warning: coordIndex is required in order to connect contained coordinate point values." name="coordIndex"/>
            <attribute tooltip="[direction &inputOutputLabel; &SFVec3fLabel; &#34;0 1 0&#34;]&#10;Initial direction from which particles emanate." name="direction"/>
            <attribute tooltip="[on &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Enables/disables production of particles from this emitter node. If operating when turned off, existing particles complete their rendering process." name="on"/>
            <attribute tooltip="[mass &initializeOnlyLabel; &SFFloatLabel; &#34;0&#34;] [0,+&#8734;)&#10;Basic mass of each particle, defined in mass base units (default is kilograms).&#10;Hint: mass is needed if gravity or other force-related calculations are performed on a per-particle basis.&#10;Hint: https://en.wikipedia.org/wiki/Kilogram&#10;Hint: X3D Architecture 4.3.6 Standard units and coordinate system https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/concepts.html#Standardunitscoordinates" name="mass"/>
            <attribute tooltip="[speed &inputOutputLabel; &SFFloatLabel; &#34;0&#34;] [0,+&#8734;)&#10;Initial linear speed (default is m/s) imparted to all particles along their direction of movement." name="speed"/>
            <attribute tooltip="[surfaceArea &initializeOnlyLabel; &SFFloatLabel; &#34;0&#34;] [0,+&#8734;)&#10;Particle surface area in area base units (default is meters squared). Surface area is used for calculations such as wind effects per particle.&#10;Hint: surfaceArea value represents average frontal area presented to the wind.&#10;Hint: assumes spherical model for each particle (i.e., surface area is the same regardless of direction)." name="surfaceArea"/>
            <attribute tooltip="[variation &inputOutputLabel; &SFFloatLabel; &#34;0.25&#34;] [0,+&#8734;)&#10;Multiplier for the randomness used to control the range of possible output values. The bigger the value, the more random the output and the bigger the range of possible initial values possible.&#10;Hint: variation of zero does not allow any randomness." name="variation"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;emitter&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/SHAPE16.png" tooltip="(X3D version 3.2 or later) [X3DParticleEmitterNode] SurfaceEmitter generates particles from the surface of an object. New particles are generated by first randomly choosing a face on the tessellated geometry and then a random position on that face. Particles are generated with an initial direction of the normal to that point (including any normal averaging due to normalPerVertex and creaseAngle field settings).&#10;Hint: ff surface is not solid (solid=false), randomly choose from which side of the surface to emit, negating the normal direction when generating from the back side.&#10;Warning: only valid geometry shall be used." name="SurfaceEmitter">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[surface &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DGeometryNode]&#10;The geometry node provides geometry used as the emitting surface.&#10;Hint: If the surface is indicated as not being solid (solid field set to false), randomly choose from which side of the surface to emit, negating the normal direction when generating from the back side.&#10;Warning: only valid geometry shall be used." name="surface"/>
            <attribute tooltip="[coordIndex &initializeOnlyLabel; &MFInt32Label; &#34;-1&#34;] [-1,+&#8734;)&#10;coordIndex indices are applied to contained Coordinate values in order to define randomly generated initial geometry of the particles.&#10;Warning: coordIndex is required in order to connect contained coordinate point values." name="coordIndex"/>
            <attribute tooltip="[mass &initializeOnlyLabel; &SFFloatLabel; &#34;0&#34;] [0,+&#8734;)&#10;Basic mass of each particle, defined in mass base units (default is kilograms).&#10;Hint: mass is needed if gravity or other force-related calculations are performed on a per-particle basis.&#10;Hint: https://en.wikipedia.org/wiki/Kilogram&#10;Hint: X3D Architecture 4.3.6 Standard units and coordinate system https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/concepts.html#Standardunitscoordinates" name="mass"/>
            <attribute tooltip="[on &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Enables/disables production of particles from this emitter node. If operating when turned off, existing particles complete their rendering process." name="on"/>
            <attribute tooltip="[speed &inputOutputLabel; &SFFloatLabel; &#34;0&#34;] [0,+&#8734;)&#10;Initial linear speed (default is m/s) imparted to all particles along their direction of movement." name="speed"/>
            <attribute tooltip="[surfaceArea &initializeOnlyLabel; &SFFloatLabel; &#34;0&#34;] [0,+&#8734;)&#10;Particle surface area in area base units (default is meters squared). Surface area is used for calculations such as wind effects per particle.&#10;Hint: surfaceArea value represents average frontal area presented to the wind.&#10;Hint: assumes spherical model for each particle (i.e., surface area is the same regardless of direction)." name="surfaceArea"/>
            <attribute tooltip="[variation &inputOutputLabel; &SFFloatLabel; &#34;0.25&#34;] [0,+&#8734;)&#10;Multiplier for the randomness used to control the range of possible output values. The bigger the value, the more random the output and the bigger the range of possible initial values possible.&#10;Hint: variation of zero does not allow any randomness." name="variation"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;emitter&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/SHAPE16.png" tooltip="(X3D version 3.2 or later) [X3DParticleEmitterNode] VolumeEmitter emits particles from a random position confined within the given closed geometry volume.&#10;Hint: otherwise, a VolumeEmitter node acts like a PolylineEmitter node." name="VolumeEmitter">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[coord &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DCoordinateNode]&#10;Coordinates for the geometry used as the emitting volume." name="coord"/>
            <attribute tooltip="[coordIndex &initializeOnlyLabel; &MFInt32Label; &#34;-1&#34;] [-1,+&#8734;)&#10;coordIndex indices are applied to contained Coordinate values in order to define randomly generated initial geometry of the particles.&#10;Warning: coordIndex is required in order to connect contained coordinate point values." name="coordIndex"/>
            <attribute tooltip="[direction &inputOutputLabel; &SFVec3fLabel; &#34;0 1 0&#34;]&#10;Initial direction from which particles emanate." name="direction"/>
            <attribute tooltip="[internal &initializeOnlyLabel; &SFBoolLabel; &#34;true&#34;]&#10;TODO, X3D specification is undefined." name="internal"/>
            <attribute tooltip="[mass &initializeOnlyLabel; &SFFloatLabel; &#34;0&#34;] [0,+&#8734;)&#10;Basic mass of each particle, defined in mass base units (default is kilograms).&#10;Hint: mass is needed if gravity or other force-related calculations are performed on a per-particle basis.&#10;Hint: https://en.wikipedia.org/wiki/Kilogram&#10;Hint: X3D Architecture 4.3.6 Standard units and coordinate system https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/concepts.html#Standardunitscoordinates" name="mass"/>
            <attribute tooltip="[on &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Enables/disables production of particles from this emitter node. If operating when turned off, existing particles complete their rendering process." name="on"/>
            <attribute tooltip="[speed &inputOutputLabel; &SFFloatLabel; &#34;0&#34;] [0,+&#8734;)&#10;Initial linear speed (default is m/s) imparted to all particles along their direction of movement." name="speed"/>
            <attribute tooltip="[surfaceArea &initializeOnlyLabel; &SFFloatLabel; &#34;0&#34;] [0,+&#8734;)&#10;Particle surface area in area base units (default is meters squared). Surface area is used for calculations such as wind effects per particle.&#10;Hint: surfaceArea value represents average frontal area presented to the wind.&#10;Hint: assumes spherical model for each particle (i.e., surface area is the same regardless of direction)." name="surfaceArea"/>
            <attribute tooltip="[variation &inputOutputLabel; &SFFloatLabel; &#34;0.25&#34;] [0,+&#8734;)&#10;Multiplier for the randomness used to control the range of possible output values. The bigger the value, the more random the output and the bigger the range of possible initial values possible.&#10;Hint: variation of zero does not allow any randomness." name="variation"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;emitter&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/SHAPE16.png" tooltip="(X3D version 3.2 or later) [X3DParticlePhysicsModelNode] WindPhysicsModel applies a wind effect to the particles. The wind includes a random variation factor to model gustiness." name="WindPhysicsModel">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[enabled &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Enables/disables node operation." name="enabled"/>
            <attribute tooltip="[direction &inputOutputLabel; &SFVec3fLabel; &#34;1 0 0&#34;]&#10;direction in which wind is travelling in the form of a  normalized, unit vector." name="direction"/>
            <attribute tooltip="[gustiness &inputOutputLabel; &SFFloatLabel; &#34;0.1&#34;] [0,+&#8734;)&#10;gustiness specifies how much wind speed varies from the average speed.&#10;Hint: wind speed variation is calculated once per frame and applied equally to all particles." name="gustiness"/>
            <attribute tooltip="[speed &inputOutputLabel; &SFFloatLabel; &#34;0.1&#34;] [0,+&#8734;)&#10;Initial linear speed (default is m/s) imparted to all particles along their direction of movement." name="speed"/>
            <attribute tooltip="[turbulence &inputOutputLabel; &SFFloatLabel; &#34;0.1&#34;] [0,1]&#10;turbulence field specifies how much the wind acts directly in line with the direction, and how much variation is applied in directions other than the wind direction.&#10;Hint: this is determined per-particle to model how each is effected by turbulence." name="turbulence"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;physics&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <!-- version 3.3 -->
        <element icon="icons/UNIT16.png" tooltip="(X3D version 3.3 or later) [X3D statement] A unit statement defines data-conversion factors for typed values defined within a scene.&#10;Hint: unit statements are optional secondary children of head statement (add a head statement and optionally any component elements first).&#10;Hint: unit conversionFactor scale values only affect node definitions in the current Scene, leaving Inline and ExternProtoDeclare content subject to their own independent unit statements.&#10;Hint: a good practice is to always include unit statements in CAD scenes in order to ensure correct model composition.&#10;Hint: X3D XML Encoding https://www.web3d.org/documents/specifications/19776-1/V3.3/Part01/concepts.html#Header&#10;Warning: the UNIT statement is capitalized in the X3D Architecture specification and in the X3D ClassicVRML Encoding.&#10;Hint: X3D Architecture 7.2.5.5 UNIT statement https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#UNITStatement&#10;Hint: International System of Units (SI), i.e. metric system https://en.wikipedia.org/wiki/International_System_of_Units&#10;Hint: International System of Quantities (ISQ) https://en.wikipedia.org/wiki/International_System_of_Quantities&#10;Hint: SI base unit https://en.wikipedia.org/wiki/SI_base_unit&#10;Hint: SI derived unit https://en.wikipedia.org/wiki/SI_derived_unit&#10;Hint: Metrology https://en.wikipedia.org/wiki/Metrology&#10;Hint: X3D Scene Authoring Hints, Scale Factors and Unit Conversions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#Scale" name="unit">
            <attribute tooltip="[name type NMTOKEN #REQUIRED]&#10;Author-defined name for this unit conversionFactor value (for example, FeetToMeters).&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="name"/>
            <attribute tooltip="[category type ENUMERATION #REQUIRED &unitCategoryChoices;]&#10;Base-unit category as defined in X3D Specification.&#10;Hint:  unit category defaults are angle (radian), force (newton), length (meter), mass (kilogram).&#10;Hint: X3D Specification 4.3.6 Standard units and coordinate system https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/concepts.html#Standardunitscoordinates" name="category"/>
            <attribute tooltip="[conversionFactor &SFDoubleLabel; #REQUIRED] [0,+&#8734;)&#10;Positive double-precision factor that converts new base unit to default base unit.&#10;Hint: X3D Scene Authoring Hints, Scale Factors and Unit Conversions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#Scale" name="conversionFactor"/>
        </element>
        <!-- v3.3 Volume Rendering component -->
        <!-- TODO update X3D-Edit tooltips -->
        <element icon="icons/Appearance.gif" tooltip="(X3D version 3.3 or later) [X3DComposableVolumeRenderStyleNode] BlendedVolumeStyle combines rendering of two voxel data sets into one by blending voxel values. Hint: BlendedVolumeStyle can contain just one each of following: VolumeStyle node with containerField='renderStyle', Texture3D node with containerField='voxels', Texture2D node with containerField='weightTransferFunction1' and Texture2D node with containerField='weightTransferFunction2'.&#10;Warning: requires X3D profile='Full' or else include &lt;component name='VolumeRendering' level='3'/&gt;" name="BlendedVolumeStyle">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[renderStyle &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DComposableVolumeRenderStyleNode]&#10;Single contained X3DComposableVolumeRenderStyleNode node that defines specific rendering technique for data in the voxels field, and the result is blended with parent VolumeData or SegmentedVoliumeData node." name="renderStyle"/>
            <attribute tooltip="[voxels &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DTexture3DNode]&#10;Single contained X3DTexture3DNode (ComposedTexture3D, ImageTexture3D, PixelTexture3D) that provides second set of raw voxel information utilized by corresponding rendering styles. Any number of color components (1-4) may be defined." name="voxels"/>
            <attribute tooltip="[weightTransferFunction1 &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DTexture2DNode]&#10;The weightTransferFunction1 and weightTransferFunction2 fields specify two-dimensional textures that are used to determine the weight values when the weight function is set to &quot;TABLE&quot;. The output weight value depends on the number of components in the textures as specified in Table 41.4.&#10;Hint: https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/volume.html#t-transferFunctionToWeightMapping" name="weightTransferFunction1"/>
            <attribute tooltip="[weightTransferFunction2 &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DTexture2DNode]&#10;The weightTransferFunction1 and weightTransferFunction2 fields specify two-dimensional textures that are used to determine the weight values when the weight function is set to &quot;TABLE&quot;. The output weight value depends on the number of components in the textures as specified in Table 41.4.&#10;Hint: https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/volume.html#t-transferFunctionToWeightMapping" name="weightTransferFunction2"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[enabled &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Enables/disables node operation." name="enabled"/>
            <attribute tooltip="[weightConstant1 &inputOutputLabel; &SFFloatLabel; &#34;0.5&#34;] [0,1]&#10;weightConstant1 is used when weightFunction1=CONSTANT" name="weightConstant1"/>
            <attribute tooltip="[weightConstant2 &inputOutputLabel; &SFFloatLabel; &#34;0.5&#34;] [0,1]&#10;weightConstant2 is used when weightFunction2=CONSTANT" name="weightConstant2"/>
            <attribute tooltip="[weightFunction1 &inputOutputLabel; &SFStringLabel; &VolumeRenderingWeightFunctionValues; CONSTANT]&#10;specifies 2D textures used to determine weight values when weight function is set to TABLE.&#10;Warning: do not wrap extra quotation marks  around these SFString enumeration values, since &#34;quotation&#34; &#34;marks&#34; are only used for MFString values.&#10;Hint: X3D Architecture Table 41.3, Weight function types https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/volume.html#t-WeightFunctionTypes Hint: X3D Architecture Table 41.4, Transfer function to weight mapping https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/volume.html#t-transferFunctionToWeightMapping" name="weightFunction1"/>
            <attribute tooltip="[weightFunction2 &inputOutputLabel; &SFStringLabel; &VolumeRenderingWeightFunctionValues; CONSTANT]&#10;specifies 2D textures used to determine weight values when weight function is set to TABLE.&#10;Warning: do not wrap extra quotation marks  around these SFString enumeration values, since &#34;quotation&#34; &#34;marks&#34; are only used for MFString values.&#10;Hint: X3D Architecture Table 41.3, Weight function types https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/volume.html#t-WeightFunctionTypes Hint: X3D Architecture Table 41.4, Transfer function to weight mapping https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/volume.html#t-transferFunctionToWeightMapping" name="weightFunction2"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;renderStyle&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/Appearance.gif" tooltip="(X3D version 3.3 or later) [X3DComposableVolumeRenderStyleNode] BoundaryEnhancementVolumeStyle provides boundary enhancement for the volume rendering style.&#10;Warning: requires X3D profile='Full' or else include &lt;component name='VolumeRendering' level='2'/&gt;" name="BoundaryEnhancementVolumeStyle">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[surfaceNormals &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DTexture3DNode]&#10;The surfaceNormals field contains a 3D texture with at least three component values. Each voxel in the texture represents the surface normal direction for the corresponding voxel in the base data source." name="surfaceNormals"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[enabled &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Enables/disables node operation." name="enabled"/>
            <attribute tooltip="[retainedOpacity &inputOutputLabel; &SFFloatLabel; &#34;0.2&#34;] [0,1]&#10;retainedOpacity k_gc is the amount of initial opacity to mix into the output" name="retainedOpacity"/>
            <attribute tooltip="[boundaryOpacity &inputOutputLabel; &SFFloatLabel; &#34;0.9&#34;] [0,+&#8734;)&#10;boundaryOpacity k_gs is the factored amount of the gradient enhancement to use." name="boundaryOpacity"/>
            <attribute tooltip="[opacityFactor &inputOutputLabel; &SFFloatLabel; &#34;2&#34;] [0,+&#8734;)&#10;opacityFactor k_ge is the power function to control the slope of the opacity curve to highlight the set of data." name="opacityFactor"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;renderStyle&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/Appearance.gif" tooltip="(X3D version 3.3 or later) [X3DComposableVolumeRenderStyleNode] CartoonVolumeStyle generates cartoon-style non-photorealistic rendering of associated volumetric data. Hint: contains single Texture3D node with containerField='surfaceNormals'&#10;Warning: requires X3D profile='Full' or else include &lt;component name='VolumeRendering' level='3'/&gt;" name="CartoonVolumeStyle">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[surfaceNormals &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DTexture3DNode]&#10;The surfaceNormals field contains a 3D texture with at least three component values. Each voxel in the texture represents the surface normal direction for the corresponding voxel in the base data source." name="surfaceNormals"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[enabled &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Enables/disables node operation." name="enabled"/>
            <attribute tooltip="[colorSteps &inputOutputLabel; &SFInt32Label; &#34;4&#34;] [1,64]&#10;Number of distinct colors taken from interpolated colors and used to render the object.&#10;Hint: colorSteps=1 means no color interpolation takes place, only use orthogonalColor.&#10;Hint: parallelColor and orthogonalColor interpolation is in HSV color space for RGB components, linearly for alpha component." name="colorSteps"/>
            <attribute tooltip="[orthogonalColor &inputOutputLabel; &SFColorRGBALabel; &#34;1 1 1 1&#34;] [0,1]&#10;orthogonalColor is used for surface normals that are orthogonal (perpendicular) to viewer's current location.&#10;Hint: plane of surface itself is orthogonal to user's view direction.&#10;Hint: X3D Scene Authoring Hints, Color https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#Color" name="orthogonalColor"/>
            <attribute tooltip="[parallelColor &inputOutputLabel; &SFColorRGBALabel; &#34;0 0 0 1&#34;] [0,1]&#10;parallelColor is used for surface normals that are orthogonal to viewer's current location.&#10;Hint: plane of surface itself is parallel to user's view direction.&#10;Hint: X3D Scene Authoring Hints, Color https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#Color" name="parallelColor"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;renderStyle&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/Appearance.gif" tooltip="(X3D version 3.3 or later) [X3DComposableVolumeRenderStyleNode] ComposedVolumeStyle allows compositing multiple rendering styles into single rendering pass.&#10; Hint: contains multiple RenderStyle nodes.&#10;Warning: requires X3D profile='Full' or else include &lt;component name='VolumeRendering' level='2'/&gt;" name="ComposedVolumeStyle">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[renderStyle &inputOutputLabel; &MFNodeLabel;,  empty list] [X3DComposableVolumeRenderStyleNode]&#10;List of contributing rendering style nodes or node references that can be applied to the object. Each rendering style is applied strictly in the order declared, starting with the first rendering style in the renderStyle field." name="renderStyle"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[enabled &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Enables/disables node operation." name="enabled"/>
            <attribute tooltip="[ordered &inputOutputLabel; &SFBoolLabel; &#34;false&#34;]&#10;If ordered  is true, strictly apply each contained renderStyle node in order declared." name="ordered"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;renderStyle&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/Appearance.gif" tooltip="(X3D version 3.3 or later) [X3DComposableVolumeRenderStyleNode] EdgeEnhancementVolumeStyle specifies edge enhancement for the volume rendering style. Hint: surfaceNormals can be provided in a single ComposedTexture3D, ImageTexture3D or PixelTexture3D node.&#10;Warning: requires X3D profile='Full' or else include &lt;component name='VolumeRendering' level='2'/&gt;" name="EdgeEnhancementVolumeStyle">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[surfaceNormals &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DTexture3DNode]&#10;The surfaceNormals field contains a 3D texture with at least three component values. Each voxel in the texture represents the surface normal direction for the corresponding voxel in the base data source." name="surfaceNormals"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[enabled &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Enables/disables node operation." name="enabled"/>
            <attribute tooltip="[gradientThreshold &inputOutputLabel; &SFFloatLabel; &#34;0.4&#34;] [0,1]&#10;minimum angle (in radians) away from view-direction vector for surface normal before applying enhancement" name="gradientThreshold"/>
            <attribute tooltip="[edgeColor &inputOutputLabel; &SFColorRGBALabel; &#34;0 0 0 1&#34;] [0,1]&#10;color used to highlight edges.&#10;Hint: X3D Scene Authoring Hints, Color https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#Color" name="edgeColor"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;renderStyle&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/SHAPE16.png" tooltip="(X3D version 3.3 or later) [X3DVolumeDataNode] IsoSurfaceVolumeData displays one or more surfaces extracted from a voxel dataset. A surface is defined as the boundary between regions in the volume where the voxel values are larger than a given value (the iso value) on one side of the boundary and smaller on the other side, and the gradient magnitude is larger than surfaceTolerance.&#10;Hint: IsoSurfaceVolumeData can contain a single  Texture3D node with containerField='gradients' that is used to provide explicit per-voxel gradient direction information for determining surface boundaries, rather than having values implicitly calculated by the implementation. Hint:  IsoSurfaceVolumeData  can contain another Texture3D node with containerField='voxels' containing voxel data. Hint: IsoSurfaceVolumeData can contain multiple VolumeStyle nodes.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events.&#10;Warning: requires X3D profile='Full' or else include &lt;component name='VolumeRendering' level='2'/&gt;" name="IsoSurfaceVolumeData">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[gradients &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DTexture3DNode]&#10;Single contained X3DTexture3DNode (ComposedTexture3D, ImageTexture3D, PixelTexture3D) that provides explicit per-voxel gradient direction information for determining surface boundaries, rather than having it implicitly calculated by the implementation." name="gradients"/>
            <attribute tooltip="[renderStyle &inputOutputLabel; &MFNodeLabel;, empty list] [X3DVolumeRenderStyleNode]&#10;Multiple contained X3DVolumeRenderStyleNode nodes corresponding to each isosurface that define specific rendering technique for this volumetric object.&#10;Hint: &#10;Warning: if not defined, no default renderStryle is defined." name="renderStyle"/>
            <attribute tooltip="[voxels &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DTexture3DNode]&#10;Single contained X3DTexture3DNode (ComposedTexture3D, ImageTexture3D, PixelTexture3D) that provides raw voxel information utilized by corresponding rendering styles. Any number of color components (1-4) may be defined." name="voxels"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[dimensions &inputOutputLabel; &SFVec3fLabel; &#34;1 1 1&#34;]&#10;Actual-size X-Y-Z dimensions of volume data in local coordinate system." name="dimensions"/>
            <attribute tooltip="[contourStepSize &inputOutputLabel; &SFFloatLabel; &#34;0&#34;]&#10;If contourStepSize is non-zero, also render all isosurfaces that are multiples of that step size from initial surface value.&#10;Hint: contourStepSize can be negative so that steppping can proceed in a negative direction." name="contourStepSize"/>
            <attribute tooltip="[surfaceTolerance &inputOutputLabel; &SFFloatLabel; &#34;0&#34;] [0,+&#8734;)&#10;Threshold for gradient magnitude for voxel inolusion in isosurface.&#10;Hint: contained Texture3D node with containerField='gradients' can provide explicit per-voxel gradient direction information for determining surface boundaries." name="surfaceTolerance"/>
            <attribute tooltip="[surfaceValues &inputOutputLabel; &MFFloatLabel; &#34;0&#34;]&#10;If surfaceValues has one value defined, render corresponding isosurface plus any isosurfaces based on contourStepSize. If surfaceValues has more than one value defined, ignore contourStepSize and render surfaces corresponding to listed surfaceValues." name="surfaceValues"/>
            <attribute tooltip="[bboxCenter &initializeOnlyLabel; &SFVec3fLabel; &#34;0 0 0&#34;]&#10;Bounding box center accompanies bboxSize and provides an optional hint for bounding box position offset from origin of local coordinate system.&#10;Hint: precomputation and inclusion of bounding box information can speed up the initialization of large detailed models, with a corresponding cost of increased file size.&#10;Hint: X3D Architecture, 10.2.2 Bounding boxes https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#BoundingBoxes&#10;Hint:  X3D Architecture, 10.3.1 X3DBoundedObject https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#X3DBoundedObject" name="bboxCenter"/>
            <attribute tooltip="[bboxSize &initializeOnlyLabel; &SFVec3fLabel; &#34;-1 -1 -1&#34;] or [0,+&#8734;)&#10;Bounding box size is usually omitted, and can easily be calculated automatically by an X3D player at scene-loading time with minimal computational cost. Bounding box size can also be defined as an optional authoring hint that suggests an optimization or constraint.&#10;Hint: can be useful for collision computations or inverse-kinematics (IK) engines.&#10;Hint: precomputation and inclusion of bounding box information can speed up the initialization of large detailed models, with a corresponding cost of increased file size.&#10;Hint: X3D Architecture, 10.2.2 Bounding boxes https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#BoundingBoxes&#10;Hint:  X3D Architecture, 10.3.1 X3DBoundedObject https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#X3DBoundedObject" name="bboxSize"/>
            <attribute tooltip="(X3D version 4.0 draft) [bboxDisplay &inputOutputLabel; &SFBoolLabel; &#34;false&#34;]&#10;Whether to display bounding box for associated geometry, aligned with world coordinates.&#10;Hint: the bounding box is displayed regardless of whether contained content is visible." name="bboxDisplay"/>
            <attribute tooltip="(X3D version 4.0 draft) [visible &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Whether or not renderable content within this node is visually displayed.&#10;Hint: the visible field has no effect on animation behaviors, event passing or other non-visual characteristics.&#10;Hint: content must be visible to be collidable and to be pickable." name="visible"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/Appearance.gif" tooltip="(X3D version 3.3 or later) [X3DComposableVolumeRenderStyleNode] OpacityMapVolumeStyle specifies that volumetric data is rendered using opacity mapped to a transfer function texture. Hint: contains a single ImageTexture2D or ImageTexture3D node with containerField='transferFunction'. Voxel values are used as lookup coordinates into the transfer function texture, where the texel value represents the output color.&#10;Warning: requires X3D profile='Full' or else include &lt;component name='VolumeRendering' level='2'/&gt;" name="OpacityMapVolumeStyle">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[transferFunction &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DTexture2DNode,X3DTexture3DNode]&#10;The transferFunction field holds a single texture representation in either two or three dimensions that maps the voxel data values to a specific colour output. If no value is supplied for this field, the default implementation shall generate a 256x1 alpha-only image that blends from completely transparent at pixel 0 to fully opaque at pixel 255.The texture may be any number of dimensions and any number of components. The voxel values are used as a lookup coordinates into the transfer function texture, where the texel value represents the output colour." name="transferFunction"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[enabled &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Enables/disables node operation." name="enabled"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;renderStyle&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/Appearance.gif" tooltip="(X3D version 3.3 or later) [X3DComposableVolumeRenderStyleNode] ProjectionVolumeStyle uses voxel data to directly generate output color.&#10;Warning: requires X3D profile='Full' or else include &lt;component name='VolumeRendering' level='2'/&gt;" name="ProjectionVolumeStyle">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[enabled &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Enables/disables node operation." name="enabled"/>
            <attribute tooltip="[intensityThreshold &inputOutputLabel; &SFFloatLabel; &#34;0&#34;] [0,1]&#10;Threshold value used when type=MIN (LMIP) or type=MAX (MIP).&#10;Hint: ignored if type=AVERAGE (no thresholding)." name="intensityThreshold"/>
            <attribute tooltip="[type &inputOutputLabel; &SFStringLabel; &ProjectionVolumeStyleTypeValues; MAX]&#10;If type=MAX then Maximum Intensity Projection (MIP) or Least MIP (LMIP) algorithm is used to generate output color. If type=MIN then Minimum Intensity Projection algorithm is used. If type=AVERAGE then all voxels along ray are averaged.&#10;Hint: type=AVERAGE matches a simple approximation of an X-ray.#10;Warning: do not wrap extra quotation marks  around these SFString enumeration values, since &#34;quotation&#34; &#34;marks&#34; are only used for MFString values." name="type"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;renderStyle&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/SHAPE16.png" tooltip="(X3D version 3.3 or later) [X3DVolumeDataNode] SegmentedVolumeData displays a segmented voxel dataset with different RenderStyle nodes. Hint: SegmentedVolumeData can contain a single ComposedTexture3D, ImageTexture3D or PixelTexture3D node with containerField='segmentIdentifiers' and another with containerField='voxels'. Hint: SegmentedVolumeData can contain multiple RenderStyle nodes.&#10;Warning: requires X3D profile='Full' or else include &lt;component name='VolumeRendering' level='2'/&gt;" name="SegmentedVolumeData">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[renderStyle &inputOutputLabel; &MFNodeLabel;, empty list] [X3DVolumeRenderStyleNode]&#10;Multiple contained X3DVolumeRenderStyleNode nodes corresponding to each isosurface that define specific rendering technique for this volumetric object.&#10;Hint: &#10;Warning: if not defined, no default renderStryle is defined." name="renderStyle"/>
            <attribute tooltip="[segmentEnabled &inputOutputLabel; &MFBoolLabel;, #IMPLIED]&#10;Array of boolean values that indicates whether to draw each segment, with indices corresponding to the segment identifier.&#10;Hint: if a segment index is found greater than the array length, it shall be rendered." name="segmentEnabled"/>
            <attribute tooltip="[segmentIdentifiers &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DTexture3DNode]&#10;Single contained X3DTexture3DNode (ComposedTexture3D, ImageTexture3D, PixelTexture3D) holds component texture that provides corresponding segment identifier.&#10;Hint: if more than one color component is contained, only initial color component defines the segment identifier.&#10;Warning: if segmentIdentifiers texture is not identical in size to the main voxels, it shall be ignored." name="segmentIdentifiers"/>
            <attribute tooltip="[voxels &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DTexture3DNode]&#10;Single contained X3DTexture3DNode (ComposedTexture3D, ImageTexture3D, PixelTexture3D) that provides raw voxel information utilized by corresponding rendering styles. Any number of color components (1-4) may be defined." name="voxels"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[dimensions &inputOutputLabel; &SFVec3fLabel; &#34;1 1 1&#34;]&#10;Actual-size X-Y-Z dimensions of volume data in local coordinate system." name="dimensions"/>
            <attribute tooltip="[bboxCenter &initializeOnlyLabel; &SFVec3fLabel; &#34;0 0 0&#34;]&#10;Bounding box center accompanies bboxSize and provides an optional hint for bounding box position offset from origin of local coordinate system.&#10;Hint: precomputation and inclusion of bounding box information can speed up the initialization of large detailed models, with a corresponding cost of increased file size.&#10;Hint: X3D Architecture, 10.2.2 Bounding boxes https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#BoundingBoxes&#10;Hint:  X3D Architecture, 10.3.1 X3DBoundedObject https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#X3DBoundedObject" name="bboxCenter"/>
            <attribute tooltip="[bboxSize &initializeOnlyLabel; &SFVec3fLabel; &#34;-1 -1 -1&#34;] or [0,+&#8734;)&#10;Bounding box size is usually omitted, and can easily be calculated automatically by an X3D player at scene-loading time with minimal computational cost. Bounding box size can also be defined as an optional authoring hint that suggests an optimization or constraint.&#10;Hint: can be useful for collision computations or inverse-kinematics (IK) engines.&#10;Hint: precomputation and inclusion of bounding box information can speed up the initialization of large detailed models, with a corresponding cost of increased file size.&#10;Hint: X3D Architecture, 10.2.2 Bounding boxes https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#BoundingBoxes&#10;Hint:  X3D Architecture, 10.3.1 X3DBoundedObject https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#X3DBoundedObject" name="bboxSize"/>
            <attribute tooltip="(X3D version 4.0 draft) [bboxDisplay &inputOutputLabel; &SFBoolLabel; &#34;false&#34;]&#10;Whether to display bounding box for associated geometry, aligned with world coordinates.&#10;Hint: the bounding box is displayed regardless of whether contained content is visible." name="bboxDisplay"/>
            <attribute tooltip="(X3D version 4.0 draft) [visible &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Whether or not renderable content within this node is visually displayed.&#10;Hint: the visible field has no effect on animation behaviors, event passing or other non-visual characteristics.&#10;Hint: content must be visible to be collidable and to be pickable." name="visible"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/Appearance.gif" tooltip="(X3D version 3.3 or later) [X3DComposableVolumeRenderStyleNode] ShadedVolumeStyle applies Blinn-Phong illumination model to volume rendering. Hint: ShadedVolumeStyle can contain a single Texture3D node with containerField='surfaceNormals' and a single Material node.&#10;Warning: requires X3D profile='Full' or else include &lt;component name='VolumeRendering' level='3'/&gt; or level='4' to include shadows." name="ShadedVolumeStyle">
            <attribute tooltip="[material &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMaterialNode]&#10;Colour and opacity is determined based on whether a value has been specified for the material field." name="material"/>
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[surfaceNormals &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DTexture3DNode]&#10;The surfaceNormals field contains a 3D texture with at least three component values. Each voxel in the texture represents the surface normal direction for the corresponding voxel in the base data source." name="surfaceNormals"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[enabled &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Enables/disables node operation." name="enabled"/>
            <attribute tooltip="[lighting &inputOutputLabel; &SFBoolLabel; &#34;false&#34;]&#10;Whether rendering calculates and applies shading effects to visual output." name="lighting"/>
            <attribute tooltip="[shadows &inputOutputLabel; &SFBoolLabel; &#34;false&#34;]&#10;Whether rendering calculates and applies shadows to visual output (using global illumination model)." name="shadows"/>
            <attribute tooltip="[phaseFunction &inputOutputLabel; &SFStringLabel; &ShadedVolumeStylePhaseFunctionValues; Henyey-Greenstein]&#10;define scattering model for implementations using global illumination (NONE or Henyey-Greenstein phase function).#10;Warning: do not wrap extra quotation marks  around these SFString enumeration values, since &#34;quotation&#34; &#34;marks&#34; are only used for MFString values." name="phaseFunction"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;renderStyle&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/Appearance.gif" tooltip="(X3D version 3.3 or later) [X3DComposableVolumeRenderStyleNode] SilhouetteEnhancementVolumeStyle specifies that volumetric data is rendered with silhouette enhancement.&#10;Hint: SilhouetteEnhancementVolumeStyle can contain a single Texture3D node with containerField='surfaceNormals'&#10;Warning: requires X3D profile='Full' or else include &lt;component name='VolumeRendering' level='2'/&gt;" name="SilhouetteEnhancementVolumeStyle">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[surfaceNormals &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DTexture3DNode]&#10;The surfaceNormals field contains a 3D texture with at least three component values. Each voxel in the texture represents the surface normal direction for the corresponding voxel in the base data source." name="surfaceNormals"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[enabled &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Enables/disables node operation." name="enabled"/>
            <attribute tooltip="[silhouetteBoundaryOpacity &inputOutputLabel; &SFFloatLabel; &#34;0&#34;] [0,1]&#10;amount of the silhouette enhancement to use." name="silhouetteBoundaryOpacity"/>
            <attribute tooltip="[silhouetteRetainedOpacity &inputOutputLabel; &SFFloatLabel; &#34;1&#34;] [0,1]&#10;scaling of non-silhouette regions." name="silhouetteRetainedOpacity"/>
            <attribute tooltip="[silhouetteSharpness &inputOutputLabel; &SFFloatLabel; &#34;0.5&#34;] [0,+&#8734;)&#10;power function to control sharpness of the silhouette." name="silhouetteSharpness"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;renderStyle&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/Appearance.gif" tooltip="(X3D version 3.3 or later) [X3DComposableVolumeRenderStyleNode] ToneMappedVolumeStyle specifies that volumetric data is rendered with Gooch shading model of two-toned warm/cool coloring.&#10;Hint: ToneMappedVolumeStyle can contain a single Texture3D node with containerField='surfaceNormals'&#10;Hint: Gooch shading https://en.wikipedia.org/wiki/Gooch_shading&#10;Warning: requires X3D profile='Full' or else include &lt;component name='VolumeRendering' level='2'/&gt;" name="ToneMappedVolumeStyle">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[surfaceNormals &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DTexture3DNode]&#10;The surfaceNormals field contains a 3D texture with at least three component values. Each voxel in the texture represents the surface normal direction for the corresponding voxel in the base data source." name="surfaceNormals"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[enabled &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Enables/disables node operation." name="enabled"/>
            <attribute tooltip="[coolColor &inputOutputLabel; &SFColorRGBALabel; &#34;0 0 1 0&#34;] [0,1]&#10;coolColor is used for surfaces facing away from the light direction.&#10;Hint: X3D Scene Authoring Hints, Color https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#Color" name="coolColor"/>
            <attribute tooltip="[warmColor &inputOutputLabel; &SFColorRGBALabel; &#34;1 1 0 0&#34;] [0,1]&#10;warmColor is used for surfaces facing towards the light.&#10;Hint: X3D Scene Authoring Hints, Color https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#Color" name="warmColor"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;renderStyle&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/SHAPE16.png" tooltip="(X3D version 3.3 or later) [X3DVolumeDataNode] VolumeData displays a simple non-segmented voxel dataset with a single RenderStyle node. Hint: VolumeData can contain a single Texture3D node with containerField='voxels' and a single RenderStyle node.&#10;Warning: requires X3D profile='Full' or else include &lt;component name='VolumeRendering' level='1'/&gt;" name="VolumeData">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[renderStyle &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DVolumeRenderStyleNode]&#10;Single contained X3DVolumeRenderStyleNode node that defines specific rendering technique for this volumetric object. If field is not defined, default is OpacityMapVolumeStyle node." name="renderStyle"/>
            <attribute tooltip="[voxels &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DTexture3DNode]&#10;Single contained X3DTexture3DNode (ComposedTexture3D, ImageTexture3D, PixelTexture3D) that provides raw voxel information utilized by corresponding rendering styles. Any number of color components (1-4) may be defined." name="voxels"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[dimensions &inputOutputLabel; &SFVec3fLabel; &#34;1 1 1&#34;]&#10;Actual-size X-Y-Z dimensions of volume data in local coordinate system." name="dimensions"/>
            <attribute tooltip="[bboxCenter &initializeOnlyLabel; &SFVec3fLabel; &#34;0 0 0&#34;]&#10;Bounding box center accompanies bboxSize and provides an optional hint for bounding box position offset from origin of local coordinate system.&#10;Hint: precomputation and inclusion of bounding box information can speed up the initialization of large detailed models, with a corresponding cost of increased file size.&#10;Hint: X3D Architecture, 10.2.2 Bounding boxes https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#BoundingBoxes&#10;Hint:  X3D Architecture, 10.3.1 X3DBoundedObject https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#X3DBoundedObject" name="bboxCenter"/>
            <attribute tooltip="[bboxSize &initializeOnlyLabel; &SFVec3fLabel; &#34;-1 -1 -1&#34;] or [0,+&#8734;)&#10;Bounding box size is usually omitted, and can easily be calculated automatically by an X3D player at scene-loading time with minimal computational cost. Bounding box size can also be defined as an optional authoring hint that suggests an optimization or constraint.&#10;Hint: can be useful for collision computations or inverse-kinematics (IK) engines.&#10;Hint: precomputation and inclusion of bounding box information can speed up the initialization of large detailed models, with a corresponding cost of increased file size.&#10;Hint: X3D Architecture, 10.2.2 Bounding boxes https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#BoundingBoxes&#10;Hint:  X3D Architecture, 10.3.1 X3DBoundedObject https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#X3DBoundedObject" name="bboxSize"/>
            <attribute tooltip="(X3D version 4.0 draft) [bboxDisplay &inputOutputLabel; &SFBoolLabel; &#34;false&#34;]&#10;Whether to display bounding box for associated geometry, aligned with world coordinates.&#10;Hint: the bounding box is displayed regardless of whether contained content is visible." name="bboxDisplay"/>
            <attribute tooltip="(X3D version 4.0 draft) [visible &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Whether or not renderable content within this node is visually displayed.&#10;Hint: the visible field has no effect on animation behaviors, event passing or other non-visual characteristics.&#10;Hint: content must be visible to be collidable and to be pickable." name="visible"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/AudioClip.gif" tooltip="(X3D version 4.0 draft) [X3DAppearanceChildNode] AcousticProperties specifies the interaction of sound waves with characteristics of geometric objects in the scene. Acoustic coefficient values are expected to fully account for physical and structural characteristics of associated geometry such as width, height, thickness, shape, softness and/or hardness, and density variations.&#10;Hint: AcousticProperties must have a parent Appearance node, and only affects geometry within the same Shape.&#10;Hint: proxy geometry for acoustic response can be far simpler than geometry needed for visual rendering.&#10;Hint: X3D Architecture Figure 16.2 Sound Propagation Phenomena https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/sound.html#f-SoundPropagationPhenomena" name="AcousticProperties">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[absorption &inputOutputLabel; &SFFloatLabel; &#34;0&#34;] [0,1]&#10;specifies the sound absorption coefficient of a surface, meaning the ratio of sound intensity not reflected by a surface." name="absorption"/>
            <attribute tooltip="[description &inputOutputLabel; &SFStringLabel; #IMPLIED]&#10;Author-provided prose that describes intended purpose of the url asset.&#10;Hint: many XML tools substitute XML character references for special characters automatically if needed within an attribute value (such as &amp;#38; for &#38; ampersand character, or &amp;#34; for &#34; quotation-mark character)." name="description"/>
            <attribute tooltip="[diffuse &inputOutputLabel; &SFFloatLabel; &#34;0&#34;] [0,1]&#10; diffuse coefficient of sound reflection indicates how much of the incident sound energy is reflected back in multiple directions." name="diffuse"/>
            <attribute tooltip="[enabled &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Enables/disables node operation." name="enabled"/>
            <attribute tooltip="[refraction &inputOutputLabel; &SFFloatLabel; &#34;0&#34;] [0,1]&#10;sound refraction coefficient of a medium, which determines change in propagation direction of sound wave when obliquely crossing boundary between two mediums where its speed is different.&#10;Hint: relationships described by Snell&apos;s Law https://en.wikipedia.org/wiki/Snell%27s_law" name="refraction"/>
            <attribute tooltip="[specular &inputOutputLabel; &SFFloatLabel; &#34;0&#34;] [0,1]&#10;specular coefficient of sound reflection striking a plane surface, directly reflected back into space, where angle of reflection equals angle of incidence." name="specular"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;acousticProperties&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/AudioClip.gif" tooltip="(X3D version 4.0 draft) [X3DSoundProcessingNode] Analyser provides real-time frequency and time-domain analysis information, without any change to the input.&#10;Hint: W3C Web Audio API https://www.w3.org/TR/webaudio/#analysernode" name="Analyser">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[children &inputOutputLabel; &MFNodeLabel;, empty list] [X3DSoundChannelNode|X3DSoundProcessingNode|X3DSoundSourceNode]&#10;The children field specifies audio-graph sound sources providing input signals for this node. If multiple input signals are provided by the inputs children field, all channels are mixed together and merged prior to presentation.&#10;Warning: contained AudioClip or MovieTexture nodes must have containerField=&apos;children&apos; to override otherwise-incorrect defaults.&#10;Hint: can be original (DEF) or referenced (USE) nodes." name="children"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[description &inputOutputLabel; &SFStringLabel; #IMPLIED]&#10;Author-provided prose that describes intended purpose of the url asset.&#10;Hint: many XML tools substitute XML character references for special characters automatically if needed within an attribute value (such as &amp;#38; for &#38; ampersand character, or &amp;#34; for &#34; quotation-mark character)." name="description"/>
            <attribute tooltip="[enabled &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Enables/disables node operation." name="enabled"/>
            <attribute tooltip="[fftSize &inputOutputLabel; &SFInt32Label; &#34;2048&#34;] (0,+&#8734;)&#10;fftSize represents size of Fast Fourier Transform (FFT) used to determine frequency domain.&#10;Hint: Fast Fourier Transform (FFT) https://en.wikipedia.org/wiki/Fast_Fourier_transform" name="fftSize"/>
            <attribute tooltip="[frequencyBinCount &inputOutputLabel; &SFInt32Label; &#34;2048&#34;] (0,+&#8734;)&#10;frequencyBinCount is half of fftSize and generally equates to number of data values available for the visualization. " name="frequencyBinCount"/>
            <attribute tooltip="[gain &inputOutputLabel; &SFFloatLabel; &#34;1&#34;] (-&#8734;,+&#8734;)&#10;The gain field is a factor that represents the amount of linear amplification to apply to the output of the node.&#10;Warning: Decibel values shall not be used.&#10;Hint: Negative gain factors negate the input signal." name="gain"/>
            <attribute tooltip="[minDecibels &inputOutputLabel; &SFFloatLabel; &#34;-100&#34;] (-&#8734;,+&#8734;)&#10;minDecibels represents minimum power value in scaling range for FFT analysis data." name="minDecibels"/>
            <attribute tooltip="[maxDecibels &inputOutputLabel; &SFFloatLabel; &#34;-30&#34;] (-&#8734;,+&#8734;)&#10;maxDecibels represents maximum power value in scaling range for FFT analysis data." name="maxDecibels"/>
            <attribute tooltip="[smoothingTimeConstant &inputOutputLabel; &SFFloatLabel; &#34;0.8&#34;] (0,+&#8734;)&#10;smoothingTimeConstant represents averaging constant during last analysis frame." name="smoothingTimeConstant"/>
            <attribute tooltip="[tailTime &inputOutputLabel; &SFTimeLabel; &#34;0&#34;] [0,+&#8734;)&#10;tailTime is duration of time that a node continues to provide output signal after the input signal becomes silent.&#10;Hint: tailTime always has a value of zero for Analyser." name="tailTime"/>
            <attribute tooltip="[channelCount &outputOnlyLabel; &SFInt32Label;] [0,+&#8734;)&#10;channelCount reports number of channels provided by input nodes.&#10;Hint: W3C Web Audio API https://www.w3.org/TR/webaudio/#dom-audionode-channelcount" name="channelCount"/>
            <attribute tooltip="[channelCountMode &inputOutputLabel; &SFStringLabel; &channelCountModeValues; MAX]&#10;channelCountMode determines how individual channels are counted when up-mixing and down-mixing connections to any inputs.&#10;Hint: W3C Web Audio API https://www.w3.org/TR/webaudio/#dom-audionode-channelcountmode" name="channelCountMode"/>
            <attribute tooltip="[channelInterpretation &inputOutputLabel; &SFStringLabel; &channelInterpretationValues; SPEAKERS]&#10;channelInterpretation determines how individual channels are treated when up-mixing and down-mixing connections to any inputs.&#10;Hint: W3C Web Audio API https://www.w3.org/TR/webaudio/#dom-audionode-channelinterpretation" name="channelInterpretation "/>
            <attribute tooltip="[startTime &inputOutputLabel; &SFTimeLabel; &#34;0&#34;]&#10;Absolute time: number of seconds since January 1, 1970, 00:00:00 GMT.&#10;Hint: ROUTE a time value matching system clock to this field, such as output event from TouchSensor touchTime or TimeTrigger triggerTime." name="startTime"/>
            <attribute tooltip="[stopTime &inputOutputLabel; &SFTimeLabel; &#34;0&#34;]&#10;Absolute time: number of seconds since January 1, 1970, 00:00:00 GMT.&#10;Hint: ROUTE a time value matching system clock to this field, such as output event from TouchSensor touchTime or TimeTrigger triggerTime.&#10;Warning: An active TimeSensor node ignores set_cycleInterval and set_startTime events.&#10;Warning:An active TimeSensor node ignores set_stopTime event values less than or equal to startTime." name="stopTime"/>
            <attribute tooltip="[pauseTime &inputOutputLabel; &SFTimeLabel; &#34;0&#34;]&#10;When time now &gt;= pauseTime, isPaused becomes true and AudioClip becomes paused.&#10;Absolute time: number of seconds since January 1, 1970, 00:00:00 GMT.&#10;Hint: ROUTE a time value matching system clock to this field, such as output event from TouchSensor touchTime or TimeTrigger triggerTime." name="pauseTime"/>
            <attribute tooltip="[resumeTime &inputOutputLabel; &SFTimeLabel; &#34;0&#34;]&#10;When resumeTime becomes &lt;= time now, isPaused becomes false and AudioClip becomes active.&#10;Absolute time: number of seconds since January 1, 1970, 00:00:00 GMT.&#10;Hint: ROUTE a time value matching system clock to this field, such as output event from TouchSensor touchTime or TimeTrigger triggerTime." name="resumeTime"/>
            <attribute tooltip="[elapsedTime &outputOnlyLabel; &SFTimeLabel; #FIXED &#34;&#34;] [0,+&#8734;)&#10;Current elapsed time since AudioClip activated/running, cumulative in seconds, and not counting any paused time.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events.&#10;Hint: elapsedTime is a nonnegative SFTime duration interval, not an absolute clock time." name="elapsedTime"/>
            <attribute tooltip="[isActive &outputOnlyLabel; &SFBoolLabel; #FIXED &#34;&#34;]&#10;isActive true/false events are sent when playback starts/stops.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="isActive"/>
            <attribute tooltip="[isPaused &outputOnlyLabel; &SFBoolLabel; #FIXED &#34;&#34;]&#10;isPaused true/false events are sent when AudioClip is paused/resumed.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="isPaused"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/AudioClip.gif" tooltip="(X3D version 4.0 draft) [X3DSoundSourceNode] BufferAudioSource node represents a memory-resident audio asset that can contain one or more channels. Typically the length of the Pulse Coded Modulation (PCM) data is expected to be fairly short (usually somewhat less than a minute).&#10;Warning: for longer sounds, such as music soundtracks, streaming such as StreamAudioSource should be used.&#10;Hint: W3C Web Audio API https://www.w3.org/TR/webaudio/#AudioBufferSourceNode" name="BufferAudioSource">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="(X3D version 4.0 draft) [autoRefresh &inputOutputLabel; &SFTimeLabel; &#34;0.0&#34;]&#10;autoRefresh defines interval in seconds before automatic reload of current url asset is performed.&#10;Hint: if preceding file loading fails or load field is false, no refresh is performed.&#10;Hint: repeated refresh attempts to reload currently loaded entry of url list. If that fails, the browser retries other entries in the url list.&#10;Warning: automatically reloading content has security considerations and needs to be considered carefully." name="autoRefresh"/>
            <attribute tooltip="(X3D version 4.0 draft) [autoRefreshTimeLimit &inputOutputLabel; &SFTimeLabel; &#34;3600.0&#34;]&#10;autoRefreshTimeLimit defines maximum duration that automatic refresh activity can occur.&#10;Hint: Automatic refresh is different than query and response timeouts performed by a networking library while sequentially attempting to retrieve addressed content from a url list.&#10;Warning: automatically reloading content has security considerations and needs to be considered carefully." name="autoRefreshTimeLimit"/>
            <attribute tooltip="[buffer &inputOutputLabel; &MFFloatLabel; &#34;&#34;]&#10; buffer is a memory-resident audio asset that can contain one or more channels. buffer data format is non-interleaved 32-bit floating-point linear PCM values with a normal range of [−1,1], but values are not limited to this range.&#10;Hint: Wikipedia Pulse-Code Modulation (PCM) https://en.wikipedia.org/wiki/Pulse-code_modulation" name="buffer"/>
            <attribute tooltip="[bufferDuration &inputOutputLabel; &SFTimeLabel; &#34;1&#34;] [0,+&#8734;)&#10;bufferDuration is duration in seconds to use from buffer field.&#10;Hint: duration is a nonnegative SFTime duration interval, not an absolute clock time." name="bufferDuration"/>
            <attribute tooltip="[bufferLength &inputOutputLabel; &SFTimeLabel; &#34;1&#34;] [0,+&#8734;)&#10;bufferLength is length of buffer field in sample-frames." name="bufferLength"/>
            <attribute tooltip="[description &inputOutputLabel; &SFStringLabel; #IMPLIED]&#10;Author-provided prose that describes intended purpose of the url asset.&#10;Hint: many XML tools substitute XML character references for special characters automatically if needed within an attribute value (such as &amp;#38; for &#38; ampersand character, or &amp;#34; for &#34; quotation-mark character)." name="description"/>
            <attribute tooltip="[detune &inputOutputLabel; &SFFloatLabel; &#34;0&#34;] (0,+&#8734;)&#10;The detune field forms a compound field together with playbackRate that together determine a computedPlaybackRate value.&#10;Hint: computedPlaybackRate(t) =  playbackRate(t) * pow(2, detune(t) / 1200)" name="detune"/>
            <attribute tooltip="[enabled &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Enables/disables node operation." name="enabled"/>
            <attribute tooltip="[gain &inputOutputLabel; &SFFloatLabel; &#34;1&#34;] (-&#8734;,+&#8734;)&#10;The gain field is a factor that represents the amount of linear amplification to apply to the output of the node.&#10;Warning: Decibel values shall not be used.&#10;Hint: Negative gain factors negate the input signal." name="gain"/>
            <attribute tooltip="(X3D version 4.0 draft) [load &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;load=true means load immediately,&#10;load=false means defer loading or else unload a previously loaded scene.&#10;Hint: allows author to design when Inline loading occurs via user interaction, event chains or scripting.&#10;Hint: use a separate LoadSensor node to detect when loading is complete." name="load"/>
            <attribute tooltip="[loop &inputOutputLabel; &SFBoolLabel; &#34;false&#34;]&#10;Repeat indefinitely when loop=true, repeat only once when loop=false." name="loop"/>
            <attribute tooltip="[loopStart &inputOutputLabel; &SFTimeLabel; &#34;0&#34;] [0,+&#8734;)&#10;loopStart field is optional playhead position where looping begins if loop=true. If loopStart is greater than duration of buffer, looping starts at buffer end.&#10;Hint: loopStart represents a nonnegative SFTime duration interval, not an absolute clock time." name="loopStart"/>
            <attribute tooltip="[loopEnd &inputOutputLabel; &SFTimeLabel; &#34;0&#34;] [0,+&#8734;)&#10;loopEnd field is optional playhead position where looping ends if loop=true. If loopEnd value is zero, or if loopEnd is greater than duration of buffer, looping ends at buffer end.&#10;Hint: loopEnd represents a nonnegative SFTime duration interval, not an absolute clock time." name="loopEnd"/>
            <attribute tooltip="[numberOfChannels &outputOnlyLabel; &SFInt32Label;] [0,+&#8734;)&#10;numberOfChannels is number of audio channels found in this buffer source." name="numberOfChannels"/>
            <attribute tooltip="[playbackRate &inputOutputLabel; &SFFloatLabel; &#34;1&#34;] (-&#8734;,+&#8734;)&#10;playbackRate field is speed at which to render the audio stream, and forms a compound field together with detune field&#10;Hint: negative values play in reverse." name="playbackRate"/>
            <attribute tooltip="[sampleRate &inputOutputLabel; &SFFloatLabel; &#34;0&#34;] (-&#8734;,+&#8734;)&#10;sampleRate field is sample-frames per second.&#10;Hint: sample-rate converters (variable speed processors) are not supported in real-time processing.&#10;Hint: Nyquist frequency is half this sampleRate value.&#10;Hint: Wikipedia Nyquist frequency https://en.wikipedia.org/wiki/Nyquist_frequency" name="sampleRate"/>
            <attribute tooltip="[url &inputOutputLabel; &MFStringLabel; #IMPLIED]&#10;Location and filename of sound file.&#10;Support for .wav format is required, .midi format is recommended, other formats are optional.&#10;Hint: MFString arrays can have multiple values, so separate each individual string by quote marks.&#10;&quot;https://www.web3d.org&quot; &quot;https://www.web3d.org/about&quot; &quot;etc.&quot;&#10;Hint: alternative XML encoding for quotation mark &quot; is &#38;quot; (which is an example of a character entity).&#10;Warning: strictly match directory and filename capitalization for http links! This is important for portability. Some operating systems are forgiving of capitalization mismatches, but http/https url addresses and paths in Unix-based operating systems are all case sensitive and intolerant of uppercase/lowercase mismatches.&#10;Hint: can replace embedded blank(s) in url queries with %20 for each blank character.&#10;Hint: X3D Scene Authoring Hints, urls https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#urls" name="url"/>
            <attribute tooltip="[channelCount &outputOnlyLabel; &SFInt32Label;] [0,+&#8734;)&#10;channelCount reports number of channels provided by input nodes.&#10;Hint: W3C Web Audio API https://www.w3.org/TR/webaudio/#dom-audionode-channelcount" name="channelCount"/>
            <attribute tooltip="[channelCountMode &inputOutputLabel; &SFStringLabel; &channelCountModeValues; MAX]&#10;channelCountMode determines how individual channels are counted when up-mixing and down-mixing connections to any inputs.&#10;Hint: W3C Web Audio API https://www.w3.org/TR/webaudio/#dom-audionode-channelcountmode" name="channelCountMode"/>
            <attribute tooltip="[channelInterpretation &inputOutputLabel; &SFStringLabel; &channelInterpretationValues; SPEAKERS]&#10;channelInterpretation determines how individual channels are treated when up-mixing and down-mixing connections to any inputs.&#10;Hint: W3C Web Audio API https://www.w3.org/TR/webaudio/#dom-audionode-channelinterpretation" name="channelInterpretation "/>
            <attribute tooltip="[startTime &inputOutputLabel; &SFTimeLabel; &#34;0&#34;]&#10;Absolute time: number of seconds since January 1, 1970, 00:00:00 GMT.&#10;Hint: ROUTE a time value matching system clock to this field, such as output event from TouchSensor touchTime or TimeTrigger triggerTime." name="startTime"/>
            <attribute tooltip="[stopTime &inputOutputLabel; &SFTimeLabel; &#34;0&#34;]&#10;Absolute time: number of seconds since January 1, 1970, 00:00:00 GMT.&#10;Hint: ROUTE a time value matching system clock to this field, such as output event from TouchSensor touchTime or TimeTrigger triggerTime.&#10;Warning: An active TimeSensor node ignores set_cycleInterval and set_startTime events.&#10;Warning:An active TimeSensor node ignores set_stopTime event values less than or equal to startTime." name="stopTime"/>
            <attribute tooltip="[pauseTime &inputOutputLabel; &SFTimeLabel; &#34;0&#34;]&#10;When time now &gt;= pauseTime, isPaused becomes true and AudioClip becomes paused.&#10;Absolute time: number of seconds since January 1, 1970, 00:00:00 GMT.&#10;Hint: ROUTE a time value matching system clock to this field, such as output event from TouchSensor touchTime or TimeTrigger triggerTime." name="pauseTime"/>
            <attribute tooltip="[resumeTime &inputOutputLabel; &SFTimeLabel; &#34;0&#34;]&#10;When resumeTime becomes &lt;= time now, isPaused becomes false and AudioClip becomes active.&#10;Absolute time: number of seconds since January 1, 1970, 00:00:00 GMT.&#10;Hint: ROUTE a time value matching system clock to this field, such as output event from TouchSensor touchTime or TimeTrigger triggerTime." name="resumeTime"/>
            <attribute tooltip="[elapsedTime &outputOnlyLabel; &SFTimeLabel; #FIXED &#34;&#34;] [0,+&#8734;)&#10;Current elapsed time since AudioClip activated/running, cumulative in seconds, and not counting any paused time.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events.&#10;Hint: elapsedTime is a nonnegative SFTime duration interval, not an absolute clock time." name="elapsedTime"/>
            <attribute tooltip="[isActive &outputOnlyLabel; &SFBoolLabel; #FIXED &#34;&#34;]&#10;isActive true/false events are sent when playback starts/stops.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="isActive"/>
            <attribute tooltip="[isPaused &outputOnlyLabel; &SFBoolLabel; #FIXED &#34;&#34;]&#10;isPaused true/false events are sent when AudioClip is paused/resumed.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="isPaused"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/AudioClip.gif" tooltip="(X3D version 4.0 draft) [X3DSoundDestinationNode] AudioDestination node represents the final audio destination and is what user ultimately hears, typically from the speakers of user device. An AudioDestinationNode representing the audio hardware end-point (the normal case) can potentially output more than 2 channels of audio if the audio hardware is multi-channel.&#10;Hint: W3C Web Audio API https://www.w3.org/TR/webaudio/#AudioDestinationNode" name="AudioDestination">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[children &inputOutputLabel; &MFNodeLabel;, empty list] [X3DSoundChannelNode|X3DSoundProcessingNode|X3DSoundSourceNode]&#10;The children field specifies audio-graph sound sources providing input signals for this node. If multiple input signals are provided by the inputs children field, all channels are mixed together and merged prior to presentation.&#10;Warning: contained AudioClip or MovieTexture nodes must have containerField=&apos;children&apos; to override otherwise-incorrect defaults.&#10;Hint: can be original (DEF) or referenced (USE) nodes." name="children"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[description &inputOutputLabel; &SFStringLabel; #IMPLIED]&#10;Author-provided prose that describes intended purpose of the url asset.&#10;Hint: many XML tools substitute XML character references for special characters automatically if needed within an attribute value (such as &amp;#38; for &#38; ampersand character, or &amp;#34; for &#34; quotation-mark character)." name="description"/>
            <attribute tooltip="[enabled &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Enables/disables node operation." name="enabled"/>
            <attribute tooltip="[gain &inputOutputLabel; &SFFloatLabel; &#34;1&#34;] (-&#8734;,+&#8734;)&#10;The gain field is a factor that represents the amount of linear amplification to apply to the output of the node.&#10;Warning: Decibel values shall not be used.&#10;Hint: Negative gain factors negate the input signal." name="gain"/>
            <attribute tooltip="[maxChannelCount &outputOnlyLabel; &SFInt32Label;] [0,+&#8734;)&#10;[maxChannelCount.&#10;Hint: W3C Web Audio API https://www.w3.org/TR/webaudio/#dom-audionode-channelcount" name="maxChannelCount"/>
            <attribute tooltip="[channelCount &outputOnlyLabel; &SFInt32Label;] [0,+&#8734;)&#10;channelCount reports number of channels provided by input nodes.&#10;Hint: W3C Web Audio API https://www.w3.org/TR/webaudio/#dom-audionode-channelcount" name="channelCount"/>
            <attribute tooltip="[channelCountMode &inputOutputLabel; &SFStringLabel; &channelCountModeValues; MAX]&#10;channelCountMode determines how individual channels are counted when up-mixing and down-mixing connections to any inputs.&#10;Hint: W3C Web Audio API https://www.w3.org/TR/webaudio/#dom-audionode-channelcountmode" name="channelCountMode"/>
            <attribute tooltip="[channelInterpretation &inputOutputLabel; &SFStringLabel; &channelInterpretationValues; SPEAKERS]&#10;channelInterpretation determines how individual channels are treated when up-mixing and down-mixing connections to any inputs.&#10;Hint: W3C Web Audio API https://www.w3.org/TR/webaudio/#dom-audionode-channelinterpretation" name="channelInterpretation "/>
            <attribute tooltip="[mediaDeviceID &outputOnlyLabel; &SFStringLabel; #FIXED &#34;&#34;]&#10;mediaDeviceID field provides ID parameter functionality. (TODO experimental)" name="mediaDeviceID"/>
            <attribute tooltip="[isActive &outputOnlyLabel; &SFBoolLabel; #FIXED &#34;&#34;]&#10;isActive true/false events are sent when playback starts/stops.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="isActive"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/AudioClip.gif" tooltip="(X3D version 4.0 draft) [X3DSoundProcessingNode] BiquadFilter node is an AudioNode processor implementing common low-order filters. Low-order filters are the building blocks of basic tone controls (bass, mid, treble), graphic equalizers, and more advanced filters. Multiple BiquadFilter node filters can be combined to form more complex filters. The filter parameters such as frequency can be changed over time for filter sweeps, etc. &#10;Warning: contained AudioClip or MovieTexture nodes must have containerField=&apos;children&apos; to override otherwise-incorrect defaults.&#10;Hint: W3C Web Audio API https://www.w3.org/TR/webaudio/#biquadfilternode" name="BiquadFilter">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[children &inputOutputLabel; &MFNodeLabel;, empty list] [X3DSoundChannelNode|X3DSoundProcessingNode|X3DSoundSourceNode]&#10;The children field specifies audio-graph sound sources providing input signals for this node. If multiple input signals are provided by the inputs children field, all channels are mixed together and merged prior to presentation.&#10;Warning: contained AudioClip or MovieTexture nodes must have containerField=&apos;children&apos; to override otherwise-incorrect defaults.&#10;Hint: can be original (DEF) or referenced (USE) nodes." name="children"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[description &inputOutputLabel; &SFStringLabel; #IMPLIED]&#10;Author-provided prose that describes intended purpose of the url asset.&#10;Hint: many XML tools substitute XML character references for special characters automatically if needed within an attribute value (such as &amp;#38; for &#38; ampersand character, or &amp;#34; for &#34; quotation-mark character)." name="description"/>
            <attribute tooltip="[detune &inputOutputLabel; &SFFloatLabel; &#34;0&#34;] (0,+&#8734;)&#10;The detune field forms a compound field together with playbackRate that together determine a computedPlaybackRate value.&#10;Hint: computedPlaybackRate(t) =  playbackRate(t) * pow(2, detune(t) / 1200)" name="detune"/>
            <attribute tooltip="[enabled &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Enables/disables node operation." name="enabled"/>
            <attribute tooltip="[frequency &inputOutputLabel; &SFFloatLabel; &#34;350&#34;] [0,+&#8734;)&#10;frequency at which the BiquadFilterNode operates, in Hz.&#10;Hint: Wikipedia Hertz https://en.wikipedia.org/wiki/Hertz" name="frequency"/>
            <attribute tooltip="[gain &inputOutputLabel; &SFFloatLabel; &#34;1&#34;] (-&#8734;,+&#8734;)&#10;The gain field is a factor that represents the amount of linear amplification to apply to the output of the node.&#10;Warning: Decibel values shall not be used.&#10;Hint: Negative gain factors negate the input signal." name="gain"/>
            <attribute tooltip="[qualityFactor &inputOutputLabel; &SFFloatLabel; &#34;1&#34;] [0,+&#8734;)&#10;qualityFactor is Quality Factor (Q) of the respective filter algorithm.&#10;Hint: Wikipedia Q factor https://en.wikipedia.org/wiki/Q_factor" name="qualityFactor"/>
            <attribute tooltip="[tailTime &inputOutputLabel; &SFTimeLabel; &#34;0&#34;] [0,+&#8734;)&#10;tailTime is duration of time that a node continues to provide output signal after the input signal becomes silent." name="tailTime"/>
            <attribute tooltip="[type &inputOutputLabel; &SFStringLabel; &biquadFilterTypeValues; LOWPASS]&#10;type selects which BiquadFilter algorithm is used.&#10;Hint: W3C Web Audio API https://www.w3.org/TR/webaudio/#enumdef-biquadfiltertype" name="type"/>
            <attribute tooltip="[channelCount &outputOnlyLabel; &SFInt32Label;] [0,+&#8734;)&#10;channelCount reports number of channels provided by input nodes.&#10;Hint: W3C Web Audio API https://www.w3.org/TR/webaudio/#dom-audionode-channelcount" name="channelCount"/>
            <attribute tooltip="[channelCountMode &inputOutputLabel; &SFStringLabel; &channelCountModeValues; MAX]&#10;channelCountMode determines how individual channels are counted when up-mixing and down-mixing connections to any inputs.&#10;Hint: W3C Web Audio API https://www.w3.org/TR/webaudio/#dom-audionode-channelcountmode" name="channelCountMode"/>
            <attribute tooltip="[channelInterpretation &inputOutputLabel; &SFStringLabel; &channelInterpretationValues; SPEAKERS]&#10;channelInterpretation determines how individual channels are treated when up-mixing and down-mixing connections to any inputs.&#10;Hint: W3C Web Audio API https://www.w3.org/TR/webaudio/#dom-audionode-channelinterpretation" name="channelInterpretation "/>
            <attribute tooltip="[startTime &inputOutputLabel; &SFTimeLabel; &#34;0&#34;]&#10;Absolute time: number of seconds since January 1, 1970, 00:00:00 GMT.&#10;Hint: ROUTE a time value matching system clock to this field, such as output event from TouchSensor touchTime or TimeTrigger triggerTime." name="startTime"/>
            <attribute tooltip="[stopTime &inputOutputLabel; &SFTimeLabel; &#34;0&#34;]&#10;Absolute time: number of seconds since January 1, 1970, 00:00:00 GMT.&#10;Hint: ROUTE a time value matching system clock to this field, such as output event from TouchSensor touchTime or TimeTrigger triggerTime.&#10;Warning: An active TimeSensor node ignores set_cycleInterval and set_startTime events.&#10;Warning:An active TimeSensor node ignores set_stopTime event values less than or equal to startTime." name="stopTime"/>
            <attribute tooltip="[pauseTime &inputOutputLabel; &SFTimeLabel; &#34;0&#34;]&#10;When time now &gt;= pauseTime, isPaused becomes true and AudioClip becomes paused.&#10;Absolute time: number of seconds since January 1, 1970, 00:00:00 GMT.&#10;Hint: ROUTE a time value matching system clock to this field, such as output event from TouchSensor touchTime or TimeTrigger triggerTime." name="pauseTime"/>
            <attribute tooltip="[resumeTime &inputOutputLabel; &SFTimeLabel; &#34;0&#34;]&#10;When resumeTime becomes &lt;= time now, isPaused becomes false and AudioClip becomes active.&#10;Absolute time: number of seconds since January 1, 1970, 00:00:00 GMT.&#10;Hint: ROUTE a time value matching system clock to this field, such as output event from TouchSensor touchTime or TimeTrigger triggerTime." name="resumeTime"/>
            <attribute tooltip="[elapsedTime &outputOnlyLabel; &SFTimeLabel; #FIXED &#34;&#34;] [0,+&#8734;)&#10;Current elapsed time since AudioClip activated/running, cumulative in seconds, and not counting any paused time.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events.&#10;Hint: elapsedTime is a nonnegative SFTime duration interval, not an absolute clock time." name="elapsedTime"/>
            <attribute tooltip="[isActive &outputOnlyLabel; &SFBoolLabel; #FIXED &#34;&#34;]&#10;isActive true/false events are sent when playback starts/stops.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="isActive"/>
            <attribute tooltip="[isPaused &outputOnlyLabel; &SFBoolLabel; #FIXED &#34;&#34;]&#10;isPaused true/false events are sent when AudioClip is paused/resumed.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="isPaused"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/AudioClip.gif" tooltip="(X3D version 4.0 draft) [X3DSoundChannelNode] ChannelMerger unites different input channels into a single output channel.&#10;Hint: W3C Web Audio API https://www.w3.org/TR/webaudio/#channelmergernode" name="ChannelMerger">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[children &inputOutputLabel; &MFNodeLabel;, empty list] [X3DSoundChannelNode|X3DSoundProcessingNode|X3DSoundSourceNode]&#10;The children field specifies audio-graph sound sources providing input signals for this node. If multiple input signals are provided by the inputs children field, all channels are mixed together and merged prior to presentation.&#10;Warning: contained AudioClip or MovieTexture nodes must have containerField=&apos;children&apos; to override otherwise-incorrect defaults.&#10;Hint: can be original (DEF) or referenced (USE) nodes." name="children"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[description &inputOutputLabel; &SFStringLabel; #IMPLIED]&#10;Author-provided prose that describes intended purpose of the url asset.&#10;Hint: many XML tools substitute XML character references for special characters automatically if needed within an attribute value (such as &amp;#38; for &#38; ampersand character, or &amp;#34; for &#34; quotation-mark character)." name="description"/>
            <attribute tooltip="[enabled &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Enables/disables node operation." name="enabled"/>
            <attribute tooltip="[gain &inputOutputLabel; &SFFloatLabel; &#34;1&#34;] (-&#8734;,+&#8734;)&#10;The gain field is a factor that represents the amount of linear amplification to apply to the output of the node.&#10;Warning: Decibel values shall not be used.&#10;Hint: Negative gain factors negate the input signal." name="gain"/>
            <attribute tooltip="[channelCount &outputOnlyLabel; &SFInt32Label;] [0,+&#8734;)&#10;channelCount reports number of channels provided by input nodes.&#10;Hint: W3C Web Audio API https://www.w3.org/TR/webaudio/#dom-audionode-channelcount" name="channelCount"/>
            <attribute tooltip="[channelCountMode &inputOutputLabel; &SFStringLabel; &channelCountModeValues; MAX]&#10;channelCountMode determines how individual channels are counted when up-mixing and down-mixing connections to any inputs.&#10;Hint: W3C Web Audio API https://www.w3.org/TR/webaudio/#dom-audionode-channelcountmode" name="channelCountMode"/>
            <attribute tooltip="[channelInterpretation &inputOutputLabel; &SFStringLabel; &channelInterpretationValues; SPEAKERS]&#10;channelInterpretation determines how individual channels are treated when up-mixing and down-mixing connections to any inputs.&#10;Hint: W3C Web Audio API https://www.w3.org/TR/webaudio/#dom-audionode-channelinterpretation" name="channelInterpretation "/>
            <attribute tooltip="[containerField type NMTOKEN &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/AudioClip.gif" tooltip="(X3D version 4.0 draft) [X3DSoundChannelNode] ChannelSelector selects a single channel output from all input channels.&#10;Hint: ChannelSelector is a utility node to complement ChannelSplitter." name="ChannelSelector">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[children &inputOutputLabel; &MFNodeLabel;, empty list] [X3DSoundChannelNode|X3DSoundProcessingNode|X3DSoundSourceNode]&#10;The children field specifies audio-graph sound sources providing input signals for this node. If multiple input signals are provided by the inputs children field, all channels are mixed together and merged prior to presentation.&#10;Warning: contained AudioClip or MovieTexture nodes must have containerField=&apos;children&apos; to override otherwise-incorrect defaults.&#10;Hint: can be original (DEF) or referenced (USE) nodes." name="children"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[description &inputOutputLabel; &SFStringLabel; #IMPLIED]&#10;Author-provided prose that describes intended purpose of the url asset.&#10;Hint: many XML tools substitute XML character references for special characters automatically if needed within an attribute value (such as &amp;#38; for &#38; ampersand character, or &amp;#34; for &#34; quotation-mark character)." name="description"/>
            <attribute tooltip="[enabled &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Enables/disables node operation." name="enabled"/>
            <attribute tooltip="[gain &inputOutputLabel; &SFFloatLabel; &#34;1&#34;] (-&#8734;,+&#8734;)&#10;The gain field is a factor that represents the amount of linear amplification to apply to the output of the node.&#10;Warning: Decibel values shall not be used.&#10;Hint: Negative gain factors negate the input signal." name="gain"/>
            <attribute tooltip="[channelSelection &outputOnlyLabel; &SFInt32Label;] [0,+&#8734;)&#10;channelSelection is single channel of interest from those provided by input nodes." name="channelSelection"/>
            <attribute tooltip="[channelCount &outputOnlyLabel; &SFInt32Label;] [0,+&#8734;)&#10;channelCount reports number of channels provided by input nodes.&#10;Hint: W3C Web Audio API https://www.w3.org/TR/webaudio/#dom-audionode-channelcount" name="channelCount"/>
            <attribute tooltip="[channelCountMode &inputOutputLabel; &SFStringLabel; &channelCountModeValues; MAX]&#10;channelCountMode determines how individual channels are counted when up-mixing and down-mixing connections to any inputs.&#10;Hint: W3C Web Audio API https://www.w3.org/TR/webaudio/#dom-audionode-channelcountmode" name="channelCountMode"/>
            <attribute tooltip="[channelInterpretation &inputOutputLabel; &SFStringLabel; &channelInterpretationValues; SPEAKERS]&#10;channelInterpretation determines how individual channels are treated when up-mixing and down-mixing connections to any inputs.&#10;Hint: W3C Web Audio API https://www.w3.org/TR/webaudio/#dom-audionode-channelinterpretation" name="channelInterpretation "/>
            <attribute tooltip="[containerField type NMTOKEN &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/AudioClip.gif" tooltip="(X3D version 4.0 draft) [X3DSoundChannelNode] ChannelSplitter separates the different channels of a single audio source into a set of monophonic output channels.&#10;Hint: W3C Web Audio API https://www.w3.org/TR/webaudio/#channelsplitternode" name="ChannelSplitter">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[children &inputOutputLabel; &MFNodeLabel;, empty list] [X3DSoundChannelNode|X3DSoundProcessingNode|X3DSoundSourceNode]&#10;The children field specifies audio-graph sound sources providing input signals for this node, making up a section of the audio graph. If multiple input signals are provided by the inputs children field, all channels are mixed together and merged prior to presentation.&#10;Warning: contained AudioClip or MovieTexture nodes must have containerField=&apos;children&apos; to override otherwise-incorrect defaults.&#10;Hint: can be original (DEF) or referenced (USE) nodes." name="children"/>
            <attribute tooltip="[outputs &inputOutputLabel; &MFNodeLabel;, empty list] [X3DSoundChannelNode|X3DSoundProcessingNode|X3DSoundSourceNode]&#10;The outputs field is a set of output nodes receiving the split channels, and making up a section of the audio graph.&#10;Hint: can be original (DEF) or referenced (USE) nodes." name="outputs"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[description &inputOutputLabel; &SFStringLabel; #IMPLIED]&#10;Author-provided prose that describes intended purpose of the url asset.&#10;Hint: many XML tools substitute XML character references for special characters automatically if needed within an attribute value (such as &amp;#38; for &#38; ampersand character, or &amp;#34; for &#34; quotation-mark character)." name="description"/>
            <attribute tooltip="[enabled &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Enables/disables node operation." name="enabled"/>
            <attribute tooltip="[gain &inputOutputLabel; &SFFloatLabel; &#34;1&#34;] (-&#8734;,+&#8734;)&#10;The gain field is a factor that represents the amount of linear amplification to apply to the output of the node.&#10;Warning: Decibel values shall not be used.&#10;Hint: Negative gain factors negate the input signal." name="gain"/>
            <attribute tooltip="[channelCount &outputOnlyLabel; &SFInt32Label;] [0,+&#8734;)&#10;channelCount reports number of channels provided by input nodes.&#10;Hint: W3C Web Audio API https://www.w3.org/TR/webaudio/#dom-audionode-channelcount" name="channelCount"/>
            <attribute tooltip="[channelCountMode &inputOutputLabel; &SFStringLabel; &channelCountModeValues; MAX]&#10;channelCountMode determines how individual channels are counted when up-mixing and down-mixing connections to any inputs.&#10;Hint: W3C Web Audio API https://www.w3.org/TR/webaudio/#dom-audionode-channelcountmode" name="channelCountMode"/>
            <attribute tooltip="[channelInterpretation &inputOutputLabel; &SFStringLabel; &channelInterpretationValues; SPEAKERS]&#10;channelInterpretation determines how individual channels are treated when up-mixing and down-mixing connections to any inputs.&#10;Hint: W3C Web Audio API https://www.w3.org/TR/webaudio/#dom-audionode-channelinterpretation" name="channelInterpretation "/>
            <attribute tooltip="[containerField type NMTOKEN &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/AudioClip.gif" tooltip="(X3D version 4.0 draft) [X3DSoundProcessingNode] Convolver performs a linear convolution on a given AudioBuffer, often used to achieve a reverberation effect.&#10;Hint: potential modifications include chorus effects, reverberation, and telephone-like speech.&#10;Hint: W3C Web Audio API https://www.w3.org/TR/webaudio/#ConvolverNode" name="Convolver">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[children &inputOutputLabel; &MFNodeLabel;, empty list] [X3DSoundChannelNode|X3DSoundProcessingNode|X3DSoundSourceNode]&#10;The children field specifies audio-graph sound sources providing input signals for this node. If multiple input signals are provided by the inputs children field, all channels are mixed together and merged prior to presentation.&#10;Warning: contained AudioClip or MovieTexture nodes must have containerField=&apos;children&apos; to override otherwise-incorrect defaults.&#10;Hint: can be original (DEF) or referenced (USE) nodes." name="children"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[buffer &inputOutputLabel; &MFFloatLabel; &#34;&#34;]&#10; buffer is a memory-resident audio asset that can contain one or more channels. buffer data format is non-interleaved 32-bit floating-point linear PCM values with a normal range of [−1,1], but values are not limited to this range.&#10;Hint: Wikipedia Pulse-Code Modulation (PCM) https://en.wikipedia.org/wiki/Pulse-code_modulation" name="buffer"/>
            <attribute tooltip="[description &inputOutputLabel; &SFStringLabel; #IMPLIED]&#10;Author-provided prose that describes intended purpose of the url asset.&#10;Hint: many XML tools substitute XML character references for special characters automatically if needed within an attribute value (such as &amp;#38; for &#38; ampersand character, or &amp;#34; for &#34; quotation-mark character)." name="description"/>
            <attribute tooltip="[enabled &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Enables/disables node operation." name="enabled"/>
            <attribute tooltip="[gain &inputOutputLabel; &SFFloatLabel; &#34;1&#34;] (-&#8734;,+&#8734;)&#10;The gain field is a factor that represents the amount of linear amplification to apply to the output of the node.&#10;Warning: Decibel values shall not be used.&#10;Hint: Negative gain factors negate the input signal." name="gain"/>
            <attribute tooltip="[normalize &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;normalize controls whether or not the impulse response from the buffer is scaled by an equal-power normalization when the buffer field is set" name="normalize"/>
            <attribute tooltip="[tailTime &inputOutputLabel; &SFTimeLabel; &#34;0&#34;] [0,+&#8734;)&#10;tailTime is duration of time that a node continues to provide output signal after the input signal becomes silent." name="tailTime"/>
            <attribute tooltip="[channelCount &outputOnlyLabel; &SFInt32Label;] [0,+&#8734;)&#10;channelCount reports number of channels provided by input nodes.&#10;Hint: W3C Web Audio API https://www.w3.org/TR/webaudio/#dom-audionode-channelcount" name="channelCount"/>
            <attribute tooltip="[channelCountMode &inputOutputLabel; &SFStringLabel; &channelCountModeValues; MAX]&#10;channelCountMode determines how individual channels are counted when up-mixing and down-mixing connections to any inputs.&#10;Hint: W3C Web Audio API https://www.w3.org/TR/webaudio/#dom-audionode-channelcountmode" name="channelCountMode"/>
            <attribute tooltip="[channelInterpretation &inputOutputLabel; &SFStringLabel; &channelInterpretationValues; SPEAKERS]&#10;channelInterpretation determines how individual channels are treated when up-mixing and down-mixing connections to any inputs.&#10;Hint: W3C Web Audio API https://www.w3.org/TR/webaudio/#dom-audionode-channelinterpretation" name="channelInterpretation "/>
            <attribute tooltip="[startTime &inputOutputLabel; &SFTimeLabel; &#34;0&#34;]&#10;Absolute time: number of seconds since January 1, 1970, 00:00:00 GMT.&#10;Hint: ROUTE a time value matching system clock to this field, such as output event from TouchSensor touchTime or TimeTrigger triggerTime." name="startTime"/>
            <attribute tooltip="[stopTime &inputOutputLabel; &SFTimeLabel; &#34;0&#34;]&#10;Absolute time: number of seconds since January 1, 1970, 00:00:00 GMT.&#10;Hint: ROUTE a time value matching system clock to this field, such as output event from TouchSensor touchTime or TimeTrigger triggerTime.&#10;Warning: An active TimeSensor node ignores set_cycleInterval and set_startTime events.&#10;Warning:An active TimeSensor node ignores set_stopTime event values less than or equal to startTime." name="stopTime"/>
            <attribute tooltip="[pauseTime &inputOutputLabel; &SFTimeLabel; &#34;0&#34;]&#10;When time now &gt;= pauseTime, isPaused becomes true and AudioClip becomes paused.&#10;Absolute time: number of seconds since January 1, 1970, 00:00:00 GMT.&#10;Hint: ROUTE a time value matching system clock to this field, such as output event from TouchSensor touchTime or TimeTrigger triggerTime." name="pauseTime"/>
            <attribute tooltip="[resumeTime &inputOutputLabel; &SFTimeLabel; &#34;0&#34;]&#10;When resumeTime becomes &lt;= time now, isPaused becomes false and AudioClip becomes active.&#10;Absolute time: number of seconds since January 1, 1970, 00:00:00 GMT.&#10;Hint: ROUTE a time value matching system clock to this field, such as output event from TouchSensor touchTime or TimeTrigger triggerTime." name="resumeTime"/>
            <attribute tooltip="[elapsedTime &outputOnlyLabel; &SFTimeLabel; #FIXED &#34;&#34;] [0,+&#8734;)&#10;Current elapsed time since AudioClip activated/running, cumulative in seconds, and not counting any paused time.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events.&#10;Hint: elapsedTime is a nonnegative SFTime duration interval, not an absolute clock time." name="elapsedTime"/>
            <attribute tooltip="[isActive &outputOnlyLabel; &SFBoolLabel; #FIXED &#34;&#34;]&#10;isActive true/false events are sent when playback starts/stops.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="isActive"/>
            <attribute tooltip="[isPaused &outputOnlyLabel; &SFBoolLabel; #FIXED &#34;&#34;]&#10;isPaused true/false events are sent when AudioClip is paused/resumed.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="isPaused"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/AudioClip.gif" tooltip="(X3D version 4.0 draft) [X3DSoundProcessingNode] Delay causes a time delay between the arrival of input data and subsequent propagation to the output.&#10;Hint: W3C Web Audio API https://www.w3.org/TR/webaudio/#DelayNode" name="Delay">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[children &inputOutputLabel; &MFNodeLabel;, empty list] [X3DSoundChannelNode|X3DSoundProcessingNode|X3DSoundSourceNode]&#10;The children field specifies audio-graph sound sources providing input signals for this node. If multiple input signals are provided by the inputs children field, all channels are mixed together and merged prior to presentation.&#10;Warning: contained AudioClip or MovieTexture nodes must have containerField=&apos;children&apos; to override otherwise-incorrect defaults.&#10;Hint: can be original (DEF) or referenced (USE) nodes." name="children"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[description &inputOutputLabel; &SFStringLabel; #IMPLIED]&#10;Author-provided prose that describes intended purpose of the url asset.&#10;Hint: many XML tools substitute XML character references for special characters automatically if needed within an attribute value (such as &amp;#38; for &#38; ampersand character, or &amp;#34; for &#34; quotation-mark character)." name="description"/>
            <attribute tooltip="[enabled &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Enables/disables node operation." name="enabled"/>
            <attribute tooltip="[gain &inputOutputLabel; &SFFloatLabel; &#34;1&#34;] (-&#8734;,+&#8734;)&#10;The gain field is a factor that represents the amount of linear amplification to apply to the output of the node.&#10;Warning: Decibel values shall not be used.&#10;Hint: Negative gain factors negate the input signal." name="gain"/>
            <attribute tooltip="[delayTime &inputOutputLabel; &SFTimeLabel; &#34;0&#34;] [0,+&#8734;)&#10;delayTime is duration of delay (in seconds) to apply." name="delayTime"/>
            <attribute tooltip="[maxDelayTime &inputOutputLabel; &SFTimeLabel; &#34;0&#34;] [0,+&#8734;)&#10;maxDelayTime is duration of maximum amount of delay (in seconds) that can be applied." name="maxDelayTime"/>
            <attribute tooltip="[tailTime &inputOutputLabel; &SFTimeLabel; &#34;0&#34;] [0,+&#8734;)&#10;tailTime is duration of time that a node continues to provide output signal after the input signal becomes silent." name="tailTime"/>
            <attribute tooltip="[channelCount &outputOnlyLabel; &SFInt32Label;] [0,+&#8734;)&#10;channelCount reports number of channels provided by input nodes.&#10;Hint: W3C Web Audio API https://www.w3.org/TR/webaudio/#dom-audionode-channelcount" name="channelCount"/>
            <attribute tooltip="[channelCountMode &inputOutputLabel; &SFStringLabel; &channelCountModeValues; MAX]&#10;channelCountMode determines how individual channels are counted when up-mixing and down-mixing connections to any inputs.&#10;Hint: W3C Web Audio API https://www.w3.org/TR/webaudio/#dom-audionode-channelcountmode" name="channelCountMode"/>
            <attribute tooltip="[channelInterpretation &inputOutputLabel; &SFStringLabel; &channelInterpretationValues; SPEAKERS]&#10;channelInterpretation determines how individual channels are treated when up-mixing and down-mixing connections to any inputs.&#10;Hint: W3C Web Audio API https://www.w3.org/TR/webaudio/#dom-audionode-channelinterpretation" name="channelInterpretation "/>
            <attribute tooltip="[startTime &inputOutputLabel; &SFTimeLabel; &#34;0&#34;]&#10;Absolute time: number of seconds since January 1, 1970, 00:00:00 GMT.&#10;Hint: ROUTE a time value matching system clock to this field, such as output event from TouchSensor touchTime or TimeTrigger triggerTime." name="startTime"/>
            <attribute tooltip="[stopTime &inputOutputLabel; &SFTimeLabel; &#34;0&#34;]&#10;Absolute time: number of seconds since January 1, 1970, 00:00:00 GMT.&#10;Hint: ROUTE a time value matching system clock to this field, such as output event from TouchSensor touchTime or TimeTrigger triggerTime.&#10;Warning: An active TimeSensor node ignores set_cycleInterval and set_startTime events.&#10;Warning:An active TimeSensor node ignores set_stopTime event values less than or equal to startTime." name="stopTime"/>
            <attribute tooltip="[pauseTime &inputOutputLabel; &SFTimeLabel; &#34;0&#34;]&#10;When time now &gt;= pauseTime, isPaused becomes true and AudioClip becomes paused.&#10;Absolute time: number of seconds since January 1, 1970, 00:00:00 GMT.&#10;Hint: ROUTE a time value matching system clock to this field, such as output event from TouchSensor touchTime or TimeTrigger triggerTime." name="pauseTime"/>
            <attribute tooltip="[resumeTime &inputOutputLabel; &SFTimeLabel; &#34;0&#34;]&#10;When resumeTime becomes &lt;= time now, isPaused becomes false and AudioClip becomes active.&#10;Absolute time: number of seconds since January 1, 1970, 00:00:00 GMT.&#10;Hint: ROUTE a time value matching system clock to this field, such as output event from TouchSensor touchTime or TimeTrigger triggerTime." name="resumeTime"/>
            <attribute tooltip="[elapsedTime &outputOnlyLabel; &SFTimeLabel; #FIXED &#34;&#34;] [0,+&#8734;)&#10;Current elapsed time since AudioClip activated/running, cumulative in seconds, and not counting any paused time.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events.&#10;Hint: elapsedTime is a nonnegative SFTime duration interval, not an absolute clock time." name="elapsedTime"/>
            <attribute tooltip="[isActive &outputOnlyLabel; &SFBoolLabel; #FIXED &#34;&#34;]&#10;isActive true/false events are sent when playback starts/stops.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="isActive"/>
            <attribute tooltip="[isPaused &outputOnlyLabel; &SFBoolLabel; #FIXED &#34;&#34;]&#10;isPaused true/false events are sent when AudioClip is paused/resumed.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="isPaused"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/AudioClip.gif" tooltip="(X3D version 4.0 draft) [X3DSoundProcessingNode] DynamicsCompressor node implements a dynamics compression effect, lowering volume of loudest parts of signal and raising volume of softest parts.&#10;Hint: W3C Web Audio API w3.org/TR/webaudio/#dynamicscompressornode" name="DynamicsCompressor">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[children &inputOutputLabel; &MFNodeLabel;, empty list] [X3DSoundChannelNode|X3DSoundProcessingNode|X3DSoundSourceNode]&#10;The children field specifies audio-graph sound sources providing input signals for this node. If multiple input signals are provided by the inputs children field, all channels are mixed together and merged prior to presentation.&#10;Warning: contained AudioClip or MovieTexture nodes must have containerField=&apos;children&apos; to override otherwise-incorrect defaults.&#10;Hint: can be original (DEF) or referenced (USE) nodes." name="children"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[attack &inputOutputLabel; &SFFloatLabel; &#34;0.003&#34;] [0,+&#8734;)&#10;The attack field is the amount of time (in seconds) to reduce the gain by 10dB." name="attack"/>
            <attribute tooltip="[description &inputOutputLabel; &SFStringLabel; #IMPLIED]&#10;Author-provided prose that describes intended purpose of the url asset.&#10;Hint: many XML tools substitute XML character references for special characters automatically if needed within an attribute value (such as &amp;#38; for &#38; ampersand character, or &amp;#34; for &#34; quotation-mark character)." name="description"/>
            <attribute tooltip="[enabled &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Enables/disables node operation." name="enabled"/>
            <attribute tooltip="[gain &inputOutputLabel; &SFFloatLabel; &#34;1&#34;] (-&#8734;,+&#8734;)&#10;The gain field is a factor that represents the amount of linear amplification to apply to the output of the node.&#10;Warning: Decibel values shall not be used.&#10;Hint: Negative gain factors negate the input signal." name="gain"/>
            <attribute tooltip="[knee &inputOutputLabel; &SFFloatLabel; &#34;30&#34;] [0,+&#8734;)&#10;knee field contains a decibel value representing range above threshold where the curve smoothly transitions to compressed portion." name="knee"/>
            <attribute tooltip="[ratio &inputOutputLabel; &SFFloatLabel; &#34;30&#34;] [0,+&#8734;)&#10;ratio field represents amount of input change, in dB, needed for 1 dB change in output." name="ratio"/>
            <attribute tooltip="[reduction &outputOnlyLabel; &SFFloatLabel; #FIXED &#34;&#34;] [0,+&#8734;)&#10;reduction field provides amount of gain reduction in dB currently applied by compressor to signal. If fed no signal, then value is 0 (no gain reduction)" name="reduction"/>
            <attribute tooltip="[release &inputOutputLabel; &SFTimeLabel; &#34;0&#34;] [0,+&#8734;)&#10;release field represents amount of time (in seconds) to increase gain by 10dB." name="release"/>
            <attribute tooltip="[threshold &inputOutputLabel; &SFFloatLabel; &#34;30&#34;] [0,+&#8734;)&#10;threshold field represents decibel value above which compression starts taking effect." name="threshold"/>
            <attribute tooltip="[channelCount &outputOnlyLabel; &SFInt32Label;] [0,+&#8734;)&#10;channelCount reports number of channels provided by input nodes.&#10;Hint: W3C Web Audio API https://www.w3.org/TR/webaudio/#dom-audionode-channelcount" name="channelCount"/>
            <attribute tooltip="[channelCountMode &inputOutputLabel; &SFStringLabel; &channelCountModeValues; MAX]&#10;channelCountMode determines how individual channels are counted when up-mixing and down-mixing connections to any inputs.&#10;Hint: W3C Web Audio API https://www.w3.org/TR/webaudio/#dom-audionode-channelcountmode" name="channelCountMode"/>
            <attribute tooltip="[channelInterpretation &inputOutputLabel; &SFStringLabel; &channelInterpretationValues; SPEAKERS]&#10;channelInterpretation determines how individual channels are treated when up-mixing and down-mixing connections to any inputs.&#10;Hint: W3C Web Audio API https://www.w3.org/TR/webaudio/#dom-audionode-channelinterpretation" name="channelInterpretation "/>
            <attribute tooltip="[startTime &inputOutputLabel; &SFTimeLabel; &#34;0&#34;]&#10;Absolute time: number of seconds since January 1, 1970, 00:00:00 GMT.&#10;Hint: ROUTE a time value matching system clock to this field, such as output event from TouchSensor touchTime or TimeTrigger triggerTime." name="startTime"/>
            <attribute tooltip="[stopTime &inputOutputLabel; &SFTimeLabel; &#34;0&#34;]&#10;Absolute time: number of seconds since January 1, 1970, 00:00:00 GMT.&#10;Hint: ROUTE a time value matching system clock to this field, such as output event from TouchSensor touchTime or TimeTrigger triggerTime.&#10;Warning: An active TimeSensor node ignores set_cycleInterval and set_startTime events.&#10;Warning:An active TimeSensor node ignores set_stopTime event values less than or equal to startTime." name="stopTime"/>
            <attribute tooltip="[pauseTime &inputOutputLabel; &SFTimeLabel; &#34;0&#34;]&#10;When time now &gt;= pauseTime, isPaused becomes true and AudioClip becomes paused.&#10;Absolute time: number of seconds since January 1, 1970, 00:00:00 GMT.&#10;Hint: ROUTE a time value matching system clock to this field, such as output event from TouchSensor touchTime or TimeTrigger triggerTime." name="pauseTime"/>
            <attribute tooltip="[resumeTime &inputOutputLabel; &SFTimeLabel; &#34;0&#34;]&#10;When resumeTime becomes &lt;= time now, isPaused becomes false and AudioClip becomes active.&#10;Absolute time: number of seconds since January 1, 1970, 00:00:00 GMT.&#10;Hint: ROUTE a time value matching system clock to this field, such as output event from TouchSensor touchTime or TimeTrigger triggerTime." name="resumeTime"/>
            <attribute tooltip="[tailTime &inputOutputLabel; &SFTimeLabel; &#34;0&#34;] [0,+&#8734;)&#10;tailTime is duration of time that a node continues to provide output signal after the input signal becomes silent." name="tailTime"/>
            <attribute tooltip="[elapsedTime &outputOnlyLabel; &SFTimeLabel; #FIXED &#34;&#34;] [0,+&#8734;)&#10;Current elapsed time since AudioClip activated/running, cumulative in seconds, and not counting any paused time.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events.&#10;Hint: elapsedTime is a nonnegative SFTime duration interval, not an absolute clock time." name="elapsedTime"/>
            <attribute tooltip="[isActive &outputOnlyLabel; &SFBoolLabel; #FIXED &#34;&#34;]&#10;isActive true/false events are sent when playback starts/stops.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="isActive"/>
            <attribute tooltip="[isPaused &outputOnlyLabel; &SFBoolLabel; #FIXED &#34;&#34;]&#10;isPaused true/false events are sent when AudioClip is paused/resumed.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="isPaused"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/AudioClip.gif" tooltip="(X3D version 4.0 draft) [X3DSoundProcessingNode] The Gain node amplifies or deamplifies the input signal.&#10;Hint: W3C Web Audio API https://www.w3.org/TR/webaudio/#gainnode" name="Gain">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[children &inputOutputLabel; &MFNodeLabel;, empty list] [X3DSoundChannelNode|X3DSoundProcessingNode|X3DSoundSourceNode]&#10;The children field specifies audio-graph sound sources providing input signals for this node. If multiple input signals are provided by the inputs children field, all channels are mixed together and merged prior to presentation.&#10;Warning: contained AudioClip or MovieTexture nodes must have containerField=&apos;children&apos; to override otherwise-incorrect defaults.&#10;Hint: can be original (DEF) or referenced (USE) nodes." name="children"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[description &inputOutputLabel; &SFStringLabel; #IMPLIED]&#10;Author-provided prose that describes intended purpose of the url asset.&#10;Hint: many XML tools substitute XML character references for special characters automatically if needed within an attribute value (such as &amp;#38; for &#38; ampersand character, or &amp;#34; for &#34; quotation-mark character)." name="description"/>
            <attribute tooltip="[enabled &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Enables/disables node operation." name="enabled"/>
            <attribute tooltip="[gain &inputOutputLabel; &SFFloatLabel; &#34;1&#34;] (-&#8734;,+&#8734;)&#10;The gain field is a factor that represents the amount of linear amplification to apply to the output of the node.&#10;Warning: Decibel values shall not be used.&#10;Hint: Negative gain factors negate the input signal." name="gain"/>
            <attribute tooltip="[tailTime &inputOutputLabel; &SFTimeLabel; &#34;0&#34;] [0,+&#8734;)&#10;tailTime is duration of time that a node continues to provide output signal after the input signal becomes silent." name="tailTime"/>
            <attribute tooltip="[channelCount &outputOnlyLabel; &SFInt32Label;] [0,+&#8734;)&#10;channelCount reports number of channels provided by input nodes.&#10;Hint: W3C Web Audio API https://www.w3.org/TR/webaudio/#dom-audionode-channelcount" name="channelCount"/>
            <attribute tooltip="[channelCountMode &inputOutputLabel; &SFStringLabel; &channelCountModeValues; MAX]&#10;channelCountMode determines how individual channels are counted when up-mixing and down-mixing connections to any inputs.&#10;Hint: W3C Web Audio API https://www.w3.org/TR/webaudio/#dom-audionode-channelcountmode" name="channelCountMode"/>
            <attribute tooltip="[channelInterpretation &inputOutputLabel; &SFStringLabel; &channelInterpretationValues; SPEAKERS]&#10;channelInterpretation determines how individual channels are treated when up-mixing and down-mixing connections to any inputs.&#10;Hint: W3C Web Audio API https://www.w3.org/TR/webaudio/#dom-audionode-channelinterpretation" name="channelInterpretation "/>
            <attribute tooltip="[startTime &inputOutputLabel; &SFTimeLabel; &#34;0&#34;]&#10;Absolute time: number of seconds since January 1, 1970, 00:00:00 GMT.&#10;Hint: ROUTE a time value matching system clock to this field, such as output event from TouchSensor touchTime or TimeTrigger triggerTime." name="startTime"/>
            <attribute tooltip="[stopTime &inputOutputLabel; &SFTimeLabel; &#34;0&#34;]&#10;Absolute time: number of seconds since January 1, 1970, 00:00:00 GMT.&#10;Hint: ROUTE a time value matching system clock to this field, such as output event from TouchSensor touchTime or TimeTrigger triggerTime.&#10;Warning: An active TimeSensor node ignores set_cycleInterval and set_startTime events.&#10;Warning:An active TimeSensor node ignores set_stopTime event values less than or equal to startTime." name="stopTime"/>
            <attribute tooltip="[pauseTime &inputOutputLabel; &SFTimeLabel; &#34;0&#34;]&#10;When time now &gt;= pauseTime, isPaused becomes true and AudioClip becomes paused.&#10;Absolute time: number of seconds since January 1, 1970, 00:00:00 GMT.&#10;Hint: ROUTE a time value matching system clock to this field, such as output event from TouchSensor touchTime or TimeTrigger triggerTime." name="pauseTime"/>
            <attribute tooltip="[resumeTime &inputOutputLabel; &SFTimeLabel; &#34;0&#34;]&#10;When resumeTime becomes &lt;= time now, isPaused becomes false and AudioClip becomes active.&#10;Absolute time: number of seconds since January 1, 1970, 00:00:00 GMT.&#10;Hint: ROUTE a time value matching system clock to this field, such as output event from TouchSensor touchTime or TimeTrigger triggerTime." name="resumeTime"/>
            <attribute tooltip="[elapsedTime &outputOnlyLabel; &SFTimeLabel; #FIXED &#34;&#34;] [0,+&#8734;)&#10;Current elapsed time since AudioClip activated/running, cumulative in seconds, and not counting any paused time.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events.&#10;Hint: elapsedTime is a nonnegative SFTime duration interval, not an absolute clock time." name="elapsedTime"/>
            <attribute tooltip="[isActive &outputOnlyLabel; &SFBoolLabel; #FIXED &#34;&#34;]&#10;isActive true/false events are sent when playback starts/stops.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="isActive"/>
            <attribute tooltip="[isPaused &outputOnlyLabel; &SFBoolLabel; #FIXED &#34;&#34;]&#10;isPaused true/false events are sent when AudioClip is paused/resumed.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="isPaused"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/AudioClip.gif" tooltip="(X3D version 4.0 draft) [X3DSoundSourceNode] ListenerPointSource node represents position and orientation of a person listening to virtual sound in the audio scene, and provides single or multiple sound channels as output. Multiple ListenerPointSource nodes can be active for sound processing.&#10;Hint: W3C Web Audio API https://www.w3.org/TR/webaudio/#audiolistener" name="ListenerPointSource">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[description &inputOutputLabel; &SFStringLabel; #IMPLIED]&#10;Author-provided prose that describes intended purpose of the url asset.&#10;Hint: many XML tools substitute XML character references for special characters automatically if needed within an attribute value (such as &amp;#38; for &#38; ampersand character, or &amp;#34; for &#34; quotation-mark character)." name="description"/>
            <attribute tooltip="[enabled &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Enables/disables node operation." name="enabled"/>
            <attribute tooltip="[dopplerEnabled &inputOutputLabel; &SFBoolLabel; &#34;false&#34;]&#10;dopplerEnabled enables/disables whether real-time Doppler effects (due to relation motion between sources and listeners) are computed by browser between virtual sound sources and active listening locations, then applied to received frequency at active listening locations.&#10;Hint: functional support requires player support for Sound component level 3.&#10;Hint: Wikipedia Doppler effect https://en.wikipedia.org/wiki/Doppler_effect" name="dopplerEnabled"/>
            <attribute tooltip="[gain &inputOutputLabel; &SFFloatLabel; &#34;1&#34;] (-&#8734;,+&#8734;)&#10;The gain field is a factor that represents the amount of linear amplification to apply to the output of the node.&#10;Warning: Decibel values shall not be used.&#10;Hint: Negative gain factors negate the input signal." name="gain"/>
            <attribute tooltip="[interauralDistance &inputOutputLabel; &SFFloatLabel; &#34;1&#34;] [0,+&#8734;)&#10;The interauralDistance field is ." name="interauralDistance"/>
            <attribute tooltip="[orientation &inputOutputLabel; &SFRotationLabel; &#34;0 0 1 0&#34;]&#10;Rotation (axis, angle in radians) of listening point direction relative to default -Z axis direction in local coordinate system.&#10;Warning: for VR/AR/MAR users wearing a head-mounted display (HMD), animating this field may induce motion sickness.&#10;Hint: this is orientation _change_ from default direction (0 0 -1).&#10;Hint: complex rotations can be accomplished axis-by-axis using parent Transforms." name="orientation"/>
            <attribute tooltip="[position &inputOutputLabel; &SFVec3fLabel; &#34;0 0 10&#34;]&#10;position (x, y, z in meters) relative to local coordinate system." name="position"/>
            <attribute tooltip="[trackCurrentView &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;If  trackCurrentView field is true then position and orientation match avatar's (user's) current view." name="trackCurrentView"/>
            <attribute tooltip="[channelCount &outputOnlyLabel; &SFInt32Label;] [0,+&#8734;)&#10;channelCount reports number of channels provided by input nodes.&#10;Hint: W3C Web Audio API https://www.w3.org/TR/webaudio/#dom-audionode-channelcount" name="channelCount"/>
            <attribute tooltip="[channelCountMode &inputOutputLabel; &SFStringLabel; &channelCountModeValues; MAX]&#10;channelCountMode determines how individual channels are counted when up-mixing and down-mixing connections to any inputs.&#10;Hint: W3C Web Audio API https://www.w3.org/TR/webaudio/#dom-audionode-channelcountmode" name="channelCountMode"/>
            <attribute tooltip="[channelInterpretation &inputOutputLabel; &SFStringLabel; &channelInterpretationValues; SPEAKERS]&#10;channelInterpretation determines how individual channels are treated when up-mixing and down-mixing connections to any inputs.&#10;Hint: W3C Web Audio API https://www.w3.org/TR/webaudio/#dom-audionode-channelinterpretation" name="channelInterpretation "/>
            <attribute tooltip="[startTime &inputOutputLabel; &SFTimeLabel; &#34;0&#34;]&#10;Absolute time: number of seconds since January 1, 1970, 00:00:00 GMT.&#10;Hint: ROUTE a time value matching system clock to this field, such as output event from TouchSensor touchTime or TimeTrigger triggerTime." name="startTime"/>
            <attribute tooltip="[stopTime &inputOutputLabel; &SFTimeLabel; &#34;0&#34;]&#10;Absolute time: number of seconds since January 1, 1970, 00:00:00 GMT.&#10;Hint: ROUTE a time value matching system clock to this field, such as output event from TouchSensor touchTime or TimeTrigger triggerTime.&#10;Warning: An active TimeSensor node ignores set_cycleInterval and set_startTime events.&#10;Warning:An active TimeSensor node ignores set_stopTime event values less than or equal to startTime." name="stopTime"/>
            <attribute tooltip="[pauseTime &inputOutputLabel; &SFTimeLabel; &#34;0&#34;]&#10;When time now &gt;= pauseTime, isPaused becomes true and AudioClip becomes paused.&#10;Absolute time: number of seconds since January 1, 1970, 00:00:00 GMT.&#10;Hint: ROUTE a time value matching system clock to this field, such as output event from TouchSensor touchTime or TimeTrigger triggerTime." name="pauseTime"/>
            <attribute tooltip="[resumeTime &inputOutputLabel; &SFTimeLabel; &#34;0&#34;]&#10;When resumeTime becomes &lt;= time now, isPaused becomes false and AudioClip becomes active.&#10;Absolute time: number of seconds since January 1, 1970, 00:00:00 GMT.&#10;Hint: ROUTE a time value matching system clock to this field, such as output event from TouchSensor touchTime or TimeTrigger triggerTime." name="resumeTime"/>
            <attribute tooltip="[elapsedTime &outputOnlyLabel; &SFTimeLabel; #FIXED &#34;&#34;] [0,+&#8734;)&#10;Current elapsed time since AudioClip activated/running, cumulative in seconds, and not counting any paused time.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events.&#10;Hint: elapsedTime is a nonnegative SFTime duration interval, not an absolute clock time." name="elapsedTime"/>
            <attribute tooltip="[isActive &outputOnlyLabel; &SFBoolLabel; #FIXED &#34;&#34;]&#10;isActive true/false events are sent when playback starts/stops.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="isActive"/>
            <attribute tooltip="[isPaused &outputOnlyLabel; &SFBoolLabel; #FIXED &#34;&#34;]&#10;isPaused true/false events are sent when AudioClip is paused/resumed.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="isPaused"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/AudioClip.gif" tooltip="(X3D version 4.0 draft) [X3DSoundSourceNode] MicrophoneSource captures input from a physical microphone in the real world.&#10;Warning: multiple security and privacy condiderations need to be observed.&#10;Hint: W3C Media Capture and Streams https://www.w3.org/TR/mediacapture-streams" name="MicrophoneSource">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[description &inputOutputLabel; &SFStringLabel; #IMPLIED]&#10;Author-provided prose that describes intended purpose of the url asset.&#10;Hint: many XML tools substitute XML character references for special characters automatically if needed within an attribute value (such as &amp;#38; for &#38; ampersand character, or &amp;#34; for &#34; quotation-mark character)." name="description"/>
            <attribute tooltip="[enabled &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Enables/disables node operation." name="enabled"/>
            <attribute tooltip="[gain &inputOutputLabel; &SFFloatLabel; &#34;1&#34;] (-&#8734;,+&#8734;)&#10;The gain field is a factor that represents the amount of linear amplification to apply to the output of the node.&#10;Warning: Decibel values shall not be used.&#10;Hint: Negative gain factors negate the input signal." name="gain"/>
            <attribute tooltip="[mediaDeviceID &outputOnlyLabel; &SFStringLabel; #FIXED &#34;&#34;]&#10;mediaDeviceID field provides ID parameter functionality. (TODO experimental)" name="mediaDeviceID"/>
            <attribute tooltip="[channelCount &outputOnlyLabel; &SFInt32Label;] [0,+&#8734;)&#10;channelCount reports number of channels provided by input nodes.&#10;Hint: W3C Web Audio API https://www.w3.org/TR/webaudio/#dom-audionode-channelcount" name="channelCount"/>
            <attribute tooltip="[channelCountMode &inputOutputLabel; &SFStringLabel; &channelCountModeValues; MAX]&#10;channelCountMode determines how individual channels are counted when up-mixing and down-mixing connections to any inputs.&#10;Hint: W3C Web Audio API https://www.w3.org/TR/webaudio/#dom-audionode-channelcountmode" name="channelCountMode"/>
            <attribute tooltip="[channelInterpretation &inputOutputLabel; &SFStringLabel; &channelInterpretationValues; SPEAKERS]&#10;channelInterpretation determines how individual channels are treated when up-mixing and down-mixing connections to any inputs.&#10;Hint: W3C Web Audio API https://www.w3.org/TR/webaudio/#dom-audionode-channelinterpretation" name="channelInterpretation "/>
            <attribute tooltip="[startTime &inputOutputLabel; &SFTimeLabel; &#34;0&#34;]&#10;Absolute time: number of seconds since January 1, 1970, 00:00:00 GMT.&#10;Hint: ROUTE a time value matching system clock to this field, such as output event from TouchSensor touchTime or TimeTrigger triggerTime." name="startTime"/>
            <attribute tooltip="[stopTime &inputOutputLabel; &SFTimeLabel; &#34;0&#34;]&#10;Absolute time: number of seconds since January 1, 1970, 00:00:00 GMT.&#10;Hint: ROUTE a time value matching system clock to this field, such as output event from TouchSensor touchTime or TimeTrigger triggerTime.&#10;Warning: An active TimeSensor node ignores set_cycleInterval and set_startTime events.&#10;Warning:An active TimeSensor node ignores set_stopTime event values less than or equal to startTime." name="stopTime"/>
            <attribute tooltip="[pauseTime &inputOutputLabel; &SFTimeLabel; &#34;0&#34;]&#10;When time now &gt;= pauseTime, isPaused becomes true and AudioClip becomes paused.&#10;Absolute time: number of seconds since January 1, 1970, 00:00:00 GMT.&#10;Hint: ROUTE a time value matching system clock to this field, such as output event from TouchSensor touchTime or TimeTrigger triggerTime." name="pauseTime"/>
            <attribute tooltip="[resumeTime &inputOutputLabel; &SFTimeLabel; &#34;0&#34;]&#10;When resumeTime becomes &lt;= time now, isPaused becomes false and AudioClip becomes active.&#10;Absolute time: number of seconds since January 1, 1970, 00:00:00 GMT.&#10;Hint: ROUTE a time value matching system clock to this field, such as output event from TouchSensor touchTime or TimeTrigger triggerTime." name="resumeTime"/>
            <attribute tooltip="[elapsedTime &outputOnlyLabel; &SFTimeLabel; #FIXED &#34;&#34;] [0,+&#8734;)&#10;Current elapsed time since AudioClip activated/running, cumulative in seconds, and not counting any paused time.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events.&#10;Hint: elapsedTime is a nonnegative SFTime duration interval, not an absolute clock time." name="elapsedTime"/>
            <attribute tooltip="[isActive &outputOnlyLabel; &SFBoolLabel; #FIXED &#34;&#34;]&#10;isActive true/false events are sent when playback starts/stops.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="isActive"/>
            <attribute tooltip="[isPaused &outputOnlyLabel; &SFBoolLabel; #FIXED &#34;&#34;]&#10;isPaused true/false events are sent when AudioClip is paused/resumed.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="isPaused"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/AudioClip.gif" tooltip="(X3D version 4.0 draft) [X3DSoundSourceNode] OscillatorSource node represents an audio source generating a periodic waveform, providing a constant tone.#10;Hint: W3C Web Audio API https://www.w3.org/TR/webaudio/#oscillatornode" name="OscillatorSource">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[periodicWave &inputOutputLabel; &SFNodeLabel;, NULL node] [PeriodicWave]&#10;The periodicWave field is an optional PeriodicWave node providing a regular or arbitrary periodic waveform.&#10;Hint: can be original (DEF) or referenced (USE) nodes." name="periodicWave"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[description &inputOutputLabel; &SFStringLabel; #IMPLIED]&#10;Author-provided prose that describes intended purpose of the url asset.&#10;Hint: many XML tools substitute XML character references for special characters automatically if needed within an attribute value (such as &amp;#38; for &#38; ampersand character, or &amp;#34; for &#34; quotation-mark character)." name="description"/>
            <attribute tooltip="[detune &inputOutputLabel; &SFFloatLabel; &#34;0&#34;] (0,+&#8734;)&#10;The detune ffield is an a-rate AudioParam representing detuning of oscillation in cents (though the AudioParam returned is read-only, the value it represents is not)." name="detune"/>
            <attribute tooltip="[enabled &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Enables/disables node operation." name="enabled"/>
            <attribute tooltip="[frequency &inputOutputLabel; &SFFloatLabel; &#34;440.0&#34;]&#10;The frequency of oscillation in hertz. The default value 440 Hz is a standard middle-A note." name="frequency"/>
            <attribute tooltip="[gain &inputOutputLabel; &SFFloatLabel; &#34;1&#34;] (-&#8734;,+&#8734;)&#10;The gain field is a factor that represents the amount of linear amplification to apply to the output of the node.&#10;Warning: Decibel values shall not be used.&#10;Hint: Negative gain factors negate the input signal." name="gain"/>
            <attribute tooltip="[channelCount &outputOnlyLabel; &SFInt32Label;] [0,+&#8734;)&#10;channelCount reports number of channels provided by input nodes.&#10;Hint: W3C Web Audio API https://www.w3.org/TR/webaudio/#dom-audionode-channelcount" name="channelCount"/>
            <attribute tooltip="[channelCountMode &inputOutputLabel; &SFStringLabel; &channelCountModeValues; MAX]&#10;channelCountMode determines how individual channels are counted when up-mixing and down-mixing connections to any inputs.&#10;Hint: W3C Web Audio API https://www.w3.org/TR/webaudio/#dom-audionode-channelcountmode" name="channelCountMode"/>
            <attribute tooltip="[channelInterpretation &inputOutputLabel; &SFStringLabel; &channelInterpretationValues; SPEAKERS]&#10;channelInterpretation determines how individual channels are treated when up-mixing and down-mixing connections to any inputs.&#10;Hint: W3C Web Audio API https://www.w3.org/TR/webaudio/#dom-audionode-channelinterpretation" name="channelInterpretation "/>
            <attribute tooltip="[startTime &inputOutputLabel; &SFTimeLabel; &#34;0&#34;]&#10;Absolute time: number of seconds since January 1, 1970, 00:00:00 GMT.&#10;Hint: ROUTE a time value matching system clock to this field, such as output event from TouchSensor touchTime or TimeTrigger triggerTime." name="startTime"/>
            <attribute tooltip="[stopTime &inputOutputLabel; &SFTimeLabel; &#34;0&#34;]&#10;Absolute time: number of seconds since January 1, 1970, 00:00:00 GMT.&#10;Hint: ROUTE a time value matching system clock to this field, such as output event from TouchSensor touchTime or TimeTrigger triggerTime.&#10;Warning: An active TimeSensor node ignores set_cycleInterval and set_startTime events.&#10;Warning:An active TimeSensor node ignores set_stopTime event values less than or equal to startTime." name="stopTime"/>
            <attribute tooltip="[pauseTime &inputOutputLabel; &SFTimeLabel; &#34;0&#34;]&#10;When time now &gt;= pauseTime, isPaused becomes true and AudioClip becomes paused.&#10;Absolute time: number of seconds since January 1, 1970, 00:00:00 GMT.&#10;Hint: ROUTE a time value matching system clock to this field, such as output event from TouchSensor touchTime or TimeTrigger triggerTime." name="pauseTime"/>
            <attribute tooltip="[resumeTime &inputOutputLabel; &SFTimeLabel; &#34;0&#34;]&#10;When resumeTime becomes &lt;= time now, isPaused becomes false and AudioClip becomes active.&#10;Absolute time: number of seconds since January 1, 1970, 00:00:00 GMT.&#10;Hint: ROUTE a time value matching system clock to this field, such as output event from TouchSensor touchTime or TimeTrigger triggerTime." name="resumeTime"/>
            <attribute tooltip="[elapsedTime &outputOnlyLabel; &SFTimeLabel; #FIXED &#34;&#34;] [0,+&#8734;)&#10;Current elapsed time since AudioClip activated/running, cumulative in seconds, and not counting any paused time.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events.&#10;Hint: elapsedTime is a nonnegative SFTime duration interval, not an absolute clock time." name="elapsedTime"/>
            <attribute tooltip="[isActive &outputOnlyLabel; &SFBoolLabel; #FIXED &#34;&#34;]&#10;isActive true/false events are sent when playback starts/stops.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="isActive"/>
            <attribute tooltip="[isPaused &outputOnlyLabel; &SFBoolLabel; #FIXED &#34;&#34;]&#10;isPaused true/false events are sent when AudioClip is paused/resumed.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="isPaused"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/AudioClip.gif" tooltip="(X3D version 4.0 draft) [X3DNode] PeriodicWave defines a periodic waveform that can be used to shape the output of an Oscillator.#10;Hint: W3C Web Audio API https://www.w3.org/TR/webaudio/#periodicwave" name="PeriodicWave">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[description &inputOutputLabel; &SFStringLabel; #IMPLIED]&#10;Author-provided prose that describes intended purpose of the url asset.&#10;Hint: many XML tools substitute XML character references for special characters automatically if needed within an attribute value (such as &amp;#38; for &#38; ampersand character, or &amp;#34; for &#34; quotation-mark character)." name="description"/>
            <attribute tooltip="[enabled &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Enables/disables node operation." name="enabled"/>
            <attribute tooltip="[optionsReal &inputOutputLabel; &MFFloatLabel; &#34;&#34;]&#10;real coefficients for defining a waveform.&#10;Warning: array lengths for optionsReal and optionsImag must match." name="optionsReal"/>
            <attribute tooltip="[optionsImag &inputOutputLabel; &MFFloatLabel; &#34;&#34;]&#10;imaginary coefficients for defining a waveform.&#10;Warning: array lengths for optionsReal and optionsImag must match." name="optionsImag"/>
            <attribute tooltip="[type &inputOutputLabel; &SFStringLabel; &periodicWaveTypeValues; SQUARE]&#10;The type field specifies shape of waveform to play, which can be one of several provided values or else 'custom' to indicate that real and imaginary coefficient arrays define a custom waveform.&#10;Hint: W3C Web Audio API https://www.w3.org/TR/webaudio/#dictdef-periodicwaveoptions" name="type"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;periodicWave&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/AudioClip.gif" tooltip="(X3D version 4.0 draft) [X3DSoundDestinationNode] StreamAudioDestination node represents the final audio destination via a media stream.&#10;Warning: stream-identification parameters are not fully defined and subject to change.&#10;Hint: W3C Web Audio API https://www.w3.org/TR/webaudio/#mediastreamaudiodestinationnode" name="StreamAudioDestination">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[children &inputOutputLabel; &MFNodeLabel;, empty list] [X3DSoundChannelNode|X3DSoundProcessingNode|X3DSoundSourceNode]&#10;The children field specifies audio-graph sound sources providing input signals for this node. If multiple input signals are provided by the inputs children field, all channels are mixed together and merged prior to presentation.&#10;Warning: contained AudioClip or MovieTexture nodes must have containerField=&apos;children&apos; to override otherwise-incorrect defaults.&#10;Hint: can be original (DEF) or referenced (USE) nodes." name="children"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[description &inputOutputLabel; &SFStringLabel; #IMPLIED]&#10;Author-provided prose that describes intended purpose of the url asset.&#10;Hint: many XML tools substitute XML character references for special characters automatically if needed within an attribute value (such as &amp;#38; for &#38; ampersand character, or &amp;#34; for &#34; quotation-mark character)." name="description"/>
            <attribute tooltip="[enabled &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Enables/disables node operation." name="enabled"/>
            <attribute tooltip="[gain &inputOutputLabel; &SFFloatLabel; &#34;1&#34;] (-&#8734;,+&#8734;)&#10;The gain field is a factor that represents the amount of linear amplification to apply to the output of the node.&#10;Warning: Decibel values shall not be used.&#10;Hint: Negative gain factors negate the input signal." name="gain"/>
            <attribute tooltip="[maxChannelCount &outputOnlyLabel; &SFInt32Label;] [0,+&#8734;)&#10;[maxChannelCount.&#10;Hint: W3C Web Audio API https://www.w3.org/TR/webaudio/#dom-audionode-channelcount" name="maxChannelCount"/>
            <attribute tooltip="[streamIdentifier &inputOutputLabel; &MFStringLabel; #IMPLIED]&#10;Stream identification TBD&#10;Hint: W3C Media Capture and Streams https://www.w3.org/TR/mediacapture-streams" name="streamIdentifier"/>
            <attribute tooltip="[channelCount &outputOnlyLabel; &SFInt32Label;] [0,+&#8734;)&#10;channelCount reports number of channels provided by input nodes.&#10;Hint: W3C Web Audio API https://www.w3.org/TR/webaudio/#dom-audionode-channelcount" name="channelCount"/>
            <attribute tooltip="[channelCountMode &inputOutputLabel; &SFStringLabel; &channelCountModeValues; MAX]&#10;channelCountMode determines how individual channels are counted when up-mixing and down-mixing connections to any inputs.&#10;Hint: W3C Web Audio API https://www.w3.org/TR/webaudio/#dom-audionode-channelcountmode" name="channelCountMode"/>
            <attribute tooltip="[channelInterpretation &inputOutputLabel; &SFStringLabel; &channelInterpretationValues; SPEAKERS]&#10;channelInterpretation determines how individual channels are treated when up-mixing and down-mixing connections to any inputs.&#10;Hint: W3C Web Audio API https://www.w3.org/TR/webaudio/#dom-audionode-channelinterpretation" name="channelInterpretation "/>
            <attribute tooltip="[mediaDeviceID &outputOnlyLabel; &SFStringLabel; #FIXED &#34;&#34;]&#10;mediaDeviceID field provides ID parameter functionality. (TODO experimental)" name="mediaDeviceID"/>
            <attribute tooltip="[isActive &outputOnlyLabel; &SFBoolLabel; #FIXED &#34;&#34;]&#10;isActive true/false events are sent when playback starts/stops.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="isActive"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/AudioClip.gif" tooltip="(X3D version 4.0 draft) [X3DSoundSourceNode] StreamAudioSource operates as an audio source whose media is received from a MediaStream obtained using the WebRTC or Media Capture and Streams APIs. This media source might originate from a remote microphone or sound-processing channed provided by a remote peer on a WebRTC call.\.&#10;Hint: W3C Web Audio API https://www.w3.org/TR/webaudio/#mediastreamaudiosourcenode" name="StreamAudioSource">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[description &inputOutputLabel; &SFStringLabel; #IMPLIED]&#10;Author-provided prose that describes intended purpose of the url asset.&#10;Hint: many XML tools substitute XML character references for special characters automatically if needed within an attribute value (such as &amp;#38; for &#38; ampersand character, or &amp;#34; for &#34; quotation-mark character)." name="description"/>
            <attribute tooltip="[enabled &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Enables/disables node operation." name="enabled"/>
            <attribute tooltip="[gain &inputOutputLabel; &SFFloatLabel; &#34;1&#34;] (-&#8734;,+&#8734;)&#10;The gain field is a factor that represents the amount of linear amplification to apply to the output of the node.&#10;Warning: Decibel values shall not be used.&#10;Hint: Negative gain factors negate the input signal." name="gain"/>
            <attribute tooltip="[streamIdentifier &inputOutputLabel; &MFStringLabel; #IMPLIED]&#10;Stream identification TBD&#10;Hint: W3C Media Capture and Streams https://www.w3.org/TR/mediacapture-streams" name="streamIdentifier"/>
            <attribute tooltip="[channelCount &outputOnlyLabel; &SFInt32Label;] [0,+&#8734;)&#10;channelCount reports number of channels provided by input nodes.&#10;Hint: W3C Web Audio API https://www.w3.org/TR/webaudio/#dom-audionode-channelcount" name="channelCount"/>
            <attribute tooltip="[channelCountMode &inputOutputLabel; &SFStringLabel; &channelCountModeValues; MAX]&#10;channelCountMode determines how individual channels are counted when up-mixing and down-mixing connections to any inputs.&#10;Hint: W3C Web Audio API https://www.w3.org/TR/webaudio/#dom-audionode-channelcountmode" name="channelCountMode"/>
            <attribute tooltip="[channelInterpretation &inputOutputLabel; &SFStringLabel; &channelInterpretationValues; SPEAKERS]&#10;channelInterpretation determines how individual channels are treated when up-mixing and down-mixing connections to any inputs.&#10;Hint: W3C Web Audio API https://www.w3.org/TR/webaudio/#dom-audionode-channelinterpretation" name="channelInterpretation "/>
            <attribute tooltip="[startTime &inputOutputLabel; &SFTimeLabel; &#34;0&#34;]&#10;Absolute time: number of seconds since January 1, 1970, 00:00:00 GMT.&#10;Hint: ROUTE a time value matching system clock to this field, such as output event from TouchSensor touchTime or TimeTrigger triggerTime." name="startTime"/>
            <attribute tooltip="[stopTime &inputOutputLabel; &SFTimeLabel; &#34;0&#34;]&#10;Absolute time: number of seconds since January 1, 1970, 00:00:00 GMT.&#10;Hint: ROUTE a time value matching system clock to this field, such as output event from TouchSensor touchTime or TimeTrigger triggerTime.&#10;Warning: An active TimeSensor node ignores set_cycleInterval and set_startTime events.&#10;Warning:An active TimeSensor node ignores set_stopTime event values less than or equal to startTime." name="stopTime"/>
            <attribute tooltip="[pauseTime &inputOutputLabel; &SFTimeLabel; &#34;0&#34;]&#10;When time now &gt;= pauseTime, isPaused becomes true and AudioClip becomes paused.&#10;Absolute time: number of seconds since January 1, 1970, 00:00:00 GMT.&#10;Hint: ROUTE a time value matching system clock to this field, such as output event from TouchSensor touchTime or TimeTrigger triggerTime." name="pauseTime"/>
            <attribute tooltip="[resumeTime &inputOutputLabel; &SFTimeLabel; &#34;0&#34;]&#10;When resumeTime becomes &lt;= time now, isPaused becomes false and AudioClip becomes active.&#10;Absolute time: number of seconds since January 1, 1970, 00:00:00 GMT.&#10;Hint: ROUTE a time value matching system clock to this field, such as output event from TouchSensor touchTime or TimeTrigger triggerTime." name="resumeTime"/>
            <attribute tooltip="[elapsedTime &outputOnlyLabel; &SFTimeLabel; #FIXED &#34;&#34;] [0,+&#8734;)&#10;Current elapsed time since AudioClip activated/running, cumulative in seconds, and not counting any paused time.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events.&#10;Hint: elapsedTime is a nonnegative SFTime duration interval, not an absolute clock time." name="elapsedTime"/>
            <attribute tooltip="[isActive &outputOnlyLabel; &SFBoolLabel; #FIXED &#34;&#34;]&#10;isActive true/false events are sent when playback starts/stops.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="isActive"/>
            <attribute tooltip="[isPaused &outputOnlyLabel; &SFBoolLabel; #FIXED &#34;&#34;]&#10;isPaused true/false events are sent when AudioClip is paused/resumed.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="isPaused"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/AudioClip.gif" tooltip="(X3D version 4.0 draft) [X3DSoundProcessingNode] WaveShaper node represents a nonlinear distorter that applies a wave-shaping distortion curve to the signal. Non-linear waveshaping distortion is commonly used for both subtle non-linear warming, or more obvious distortion effects. Arbitrary non-linear shaping curves may be specified.&#10;Hint: W3C Web Audio API https://www.w3.org/TR/webaudio/#waveshapernode" name="WaveShaper">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[children &inputOutputLabel; &MFNodeLabel;, empty list] [X3DSoundChannelNode|X3DSoundProcessingNode|X3DSoundSourceNode]&#10;The children field specifies audio-graph sound sources providing input signals for this node. If multiple input signals are provided by the inputs children field, all channels are mixed together and merged prior to presentation.&#10;Warning: contained AudioClip or MovieTexture nodes must have containerField=&apos;children&apos; to override otherwise-incorrect defaults.&#10;Hint: can be original (DEF) or referenced (USE) nodes." name="children"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[curve &inputOutputLabel; &MFFloatLabel; &#34;&#34;]&#10;The curve field is an array of floating-point numbers describing the distortion to apply." name="curve"/>
            <attribute tooltip="[description &inputOutputLabel; &SFStringLabel; #IMPLIED]&#10;Author-provided prose that describes intended purpose of the url asset.&#10;Hint: many XML tools substitute XML character references for special characters automatically if needed within an attribute value (such as &amp;#38; for &#38; ampersand character, or &amp;#34; for &#34; quotation-mark character)." name="description"/>
            <attribute tooltip="[enabled &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Enables/disables node operation." name="enabled"/>
            <attribute tooltip="[gain &inputOutputLabel; &SFFloatLabel; &#34;1&#34;] (-&#8734;,+&#8734;)&#10;The gain field is a factor that represents the amount of linear amplification to apply to the output of the node.&#10;Warning: Decibel values shall not be used.&#10;Hint: Negative gain factors negate the input signal." name="gain"/>
            <attribute tooltip="[oversample &inputOutputLabel; &SFStringLabel; &waveShaperOversampleValues; NONE]&#10;The oversample field is specifies what type of oversampling (if any) should be used when applying the shaping curve. Allowed values follow. Note that for some applications, avoiding oversampling can produce a precise shaping curve.&#10;Hint: W3C Web Audio API https://www.w3.org/TR/webaudio/#enumdef-oversampletype" name="oversample"/>
            <attribute tooltip="[tailTime &inputOutputLabel; &SFTimeLabel; &#34;0&#34;] [0,+&#8734;)&#10;tailTime is duration of time that a node continues to provide output signal after the input signal becomes silent." name="tailTime"/>
            <attribute tooltip="[channelCount &outputOnlyLabel; &SFInt32Label;] [0,+&#8734;)&#10;channelCount reports number of channels provided by input nodes.&#10;Hint: W3C Web Audio API https://www.w3.org/TR/webaudio/#dom-audionode-channelcount" name="channelCount"/>
            <attribute tooltip="[channelCountMode &inputOutputLabel; &SFStringLabel; &channelCountModeValues; MAX]&#10;channelCountMode determines how individual channels are counted when up-mixing and down-mixing connections to any inputs.&#10;Hint: W3C Web Audio API https://www.w3.org/TR/webaudio/#dom-audionode-channelcountmode" name="channelCountMode"/>
            <attribute tooltip="[channelInterpretation &inputOutputLabel; &SFStringLabel; &channelInterpretationValues; SPEAKERS]&#10;channelInterpretation determines how individual channels are treated when up-mixing and down-mixing connections to any inputs.&#10;Hint: W3C Web Audio API https://www.w3.org/TR/webaudio/#dom-audionode-channelinterpretation" name="channelInterpretation "/>
            <attribute tooltip="[startTime &inputOutputLabel; &SFTimeLabel; &#34;0&#34;]&#10;Absolute time: number of seconds since January 1, 1970, 00:00:00 GMT.&#10;Hint: ROUTE a time value matching system clock to this field, such as output event from TouchSensor touchTime or TimeTrigger triggerTime." name="startTime"/>
            <attribute tooltip="[stopTime &inputOutputLabel; &SFTimeLabel; &#34;0&#34;]&#10;Absolute time: number of seconds since January 1, 1970, 00:00:00 GMT.&#10;Hint: ROUTE a time value matching system clock to this field, such as output event from TouchSensor touchTime or TimeTrigger triggerTime.&#10;Warning: An active TimeSensor node ignores set_cycleInterval and set_startTime events.&#10;Warning:An active TimeSensor node ignores set_stopTime event values less than or equal to startTime." name="stopTime"/>
            <attribute tooltip="[pauseTime &inputOutputLabel; &SFTimeLabel; &#34;0&#34;]&#10;When time now &gt;= pauseTime, isPaused becomes true and AudioClip becomes paused.&#10;Absolute time: number of seconds since January 1, 1970, 00:00:00 GMT.&#10;Hint: ROUTE a time value matching system clock to this field, such as output event from TouchSensor touchTime or TimeTrigger triggerTime." name="pauseTime"/>
            <attribute tooltip="[resumeTime &inputOutputLabel; &SFTimeLabel; &#34;0&#34;]&#10;When resumeTime becomes &lt;= time now, isPaused becomes false and AudioClip becomes active.&#10;Absolute time: number of seconds since January 1, 1970, 00:00:00 GMT.&#10;Hint: ROUTE a time value matching system clock to this field, such as output event from TouchSensor touchTime or TimeTrigger triggerTime." name="resumeTime"/>
            <attribute tooltip="[elapsedTime &outputOnlyLabel; &SFTimeLabel; #FIXED &#34;&#34;] [0,+&#8734;)&#10;Current elapsed time since AudioClip activated/running, cumulative in seconds, and not counting any paused time.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events.&#10;Hint: elapsedTime is a nonnegative SFTime duration interval, not an absolute clock time." name="elapsedTime"/>
            <attribute tooltip="[isActive &outputOnlyLabel; &SFBoolLabel; #FIXED &#34;&#34;]&#10;isActive true/false events are sent when playback starts/stops.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="isActive"/>
            <attribute tooltip="[isPaused &outputOnlyLabel; &SFBoolLabel; #FIXED &#34;&#34;]&#10;isPaused true/false events are sent when AudioClip is paused/resumed.&#10;Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." name="isPaused"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
        <element icon="icons/Sound.gif" tooltip="(X3D version 4.0 draft) [X3DSoundNode] The SpatialSound node controls the 3D spatialization of sound playback by a child AudioClip or MovieTexture node. Sound intensity includes stereo support, varying according to user location and view direction in the scene.&#10;Hint: if the audio source is stereo or multi-channel, channel separation is retained during playback.&#10;Warning: while providing sounds on the ground plane, ensure that the audible auralization volume is sufficiently elevated to match avatar height.&#10;Hint: X3D Sound component Figure 16.2 Sound Node Geometry, https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/sound.html#f-Soundnodegeometry&#10;Hint: W3C Web Audio API, PannerNode Interface https://www.w3.org/TR/webaudio/#pannernode&#10;Hint: X3D Scene Authoring Hints:Audio https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#Audio&#10;Hint: Wikipedia 3D sound localization https://en.wikipedia.org/wiki/3D_sound_localization" name="SpatialSound">
            <attribute tooltip="[metadata &inputOutputLabel; &SFNodeLabel;, NULL node] [X3DMetadataObject]&#10;Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.&#10;Hint: X3D Architecture 7.2.4 Metadata https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata" name="metadata"/>
            <attribute tooltip="[children &inputOutputLabel; &MFNodeLabel;, empty list] [X3DSoundChannelNode|X3DSoundProcessingNode|X3DSoundSourceNode]&#10;The children field specifies audio-graph sound sources providing input signals for this node. If multiple input signals are provided by the inputs children field, all channels are mixed together and merged prior to presentation.&#10;Warning: contained AudioClip or MovieTexture nodes must have containerField=&apos;children&apos; to override otherwise-incorrect defaults.&#10;Hint: can be original (DEF) or referenced (USE) nodes." name="children"/>
            <attribute tooltip="[DEF type ID #IMPLIED]&#10;DEF defines a unique ID name for this node, referenceable by other nodes.&#10;Hint: descriptive DEF names improve clarity and help document a model.&#10;Hint: well-defined names can simplify design and debugging through improved author understanding.&#10;Hint: X3D Scene Authoring Hints, Naming Conventions https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions" name="DEF"/>
            <attribute tooltip="[USE type IDREF #IMPLIED]&#10;USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value).&#10;Hint: USE references to previously defined DEF geometry (instead of duplicating nodes) can improve performance.&#10;Warning: do NOT include any child nodes, a DEF attribute, or any other attribute values (except for containerField) when defining a USE attribute.&#10;Warning: each USE value must match a corresponding DEF value that is defined earlier in the scene." name="USE"/>
            <attribute tooltip="[coneInnerAngle &inputOutputLabel; &SFFloatLabel; &#34;6.2832&#34;] [0,2&#960;]&#10;coneInnerAngle is centered along direction and defines the inner conical volume, inside of which no source gain reduction occurs.&#10;Hint: coneOuterAngle value is greater than or equal to coneInnerAngle.&#10;Hint: X3D4 Architecture Figure 16.3, SpatialSound Panning Gain Relationships https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/sound.html#f-AudioPannerListenerRelationships" name="coneInnerAngle"/>
            <attribute tooltip="[coneOuterAngle &inputOutputLabel; &SFFloatLabel; &#34;6.2832&#34;] [0,2&#960;]&#10;coneOuterAngle is centered along direction and defines an outer conical volume, within which the sound gain decreases linearly from full gain to coneOuterGain. Outside of coneOuterAngle, gain equals coneOuterGain.&#10;Hint: coneOuterAngle value is greater than or equal to coneInnerAngle.&#10;Hint: X3D4 Architecture Figure 16.3, SpatialSound Panning Gain Relationships https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/sound.html#f-AudioPannerListenerRelationships" name="coneOuterAngle"/>
            <attribute tooltip="[coneOuterGain &inputOutputLabel; &SFFloatLabel; &#34;0&#34;] (-&#8734;,+&#8734;)&#10;coneOuterGain is minimum gain value found outside coneOuterAngle." name="coneOuterGain"/>
            <attribute tooltip="[description &inputOutputLabel; &SFStringLabel; #IMPLIED]&#10;Author-provided prose that describes intended purpose of the url asset.&#10;Hint: many XML tools substitute XML character references for special characters automatically if needed within an attribute value (such as &amp;#38; for &#38; ampersand character, or &amp;#34; for &#34; quotation-mark character)." name="description"/>
            <attribute tooltip="[direction &inputOutputLabel; &SFVec3fLabel; &#34;0 0 1&#34;]&#10;direction of sound axis, relative to local coordinate system." name="direction"/>
            <attribute tooltip="[distanceModel &inputOutputLabel; &SFStringLabel; &spatialSoundDistanceModelValues; INVERSE]&#10;distanceModel determines how field specifies which algorithm to use for sound attenuation, corresponding to distance between an audio source and a listener, as it moves away from the listener.&#10;Hint: W3C Web Audio API https://www.w3.org/TR/webaudio/#enumdef-distancemodeltype" name="distanceModel"/>
            <attribute tooltip="[enabled &inputOutputLabel; &SFBoolLabel; &#34;true&#34;]&#10;Enables/disables node operation." name="enabled"/>
            <attribute tooltip="[dopplerEnabled &inputOutputLabel; &SFBoolLabel; &#34;false&#34;]&#10;dopplerEnabled enables/disables whether real-time Doppler effects (due to relation motion between sources and listeners) are computed by browser between virtual sound sources and active listening locations, then applied to received frequency at active listening locations.&#10;Hint: functional support requires player support for Sound component level 3.&#10;Hint: Wikipedia Doppler effect https://en.wikipedia.org/wiki/Doppler_effect" name="dopplerEnabled"/>
            <attribute tooltip="[enableHRTF &inputOutputLabel; &SFBoolLabel; &#34;false&#34;]&#10;enableHRTF enables/disables Head Related Transfer Function (HRTF) auralization, if available. SpatialSound enabledHRTF=true corresponds to panningModelType HRTF, enabledHRTF=false corresponds to panningModelType equalpower. &#10;Hint: W3C Audio API https://www.w3.org/TR/webaudio/#enumdef-panningmodeltype&#10;Hint: Wikipedia HRTF https://en.wikipedia.org/wiki/3D_sound_localization#Head-related_Transfer_Function_(HRTF)" name="enableHRTF"/>
            <attribute tooltip="[gain &inputOutputLabel; &SFFloatLabel; &#34;1&#34;] (-&#8734;,+&#8734;)&#10;The gain field is a factor that represents the amount of linear amplification to apply to the output of the node.&#10;Warning: Decibel values shall not be used.&#10;Hint: Negative gain factors negate the input signal." name="gain"/>
            <attribute tooltip="[intensity &inputOutputLabel; &SFFloatLabel; &#34;1&#34;]&#10;Factor [0,1] adjusting loudness (decibels) of emitted sound." name="intensity"/>
            <attribute tooltip="[location &inputOutputLabel; &SFVec3fLabel; &#34;0 0 0&#34;] [0,+&#8734;)&#10;Position of sound ellipsoid center, relative to local coordinate system.&#10;Hint: improve audibility by setting location='0 1.6 0' so that center height of sound ellipsoid matches typical NavigationInfo avatarSize height." name="location"/>
            <attribute tooltip="[maxDistance &inputOutputLabel; &SFFloatLabel; &#34;10000&#34;] [0,+&#8734;)&#10;maxDistance is the maximum distance where sound is renderable between source and listener, after which no reduction in sound volume occurs." name="maxDistance"/>
            <attribute tooltip="[referenceDistance &inputOutputLabel; &SFFloatLabel; &#34;1&#34;] [0,+&#8734;)&#10;referenceDistance for reducing volume as source moves further from the listener. For distances less than this value, volume is not reduced.&#10;Hint: W3C Web Audio API https://www.w3.org/TR/webaudio/#dom-pannernode-refdistance" name="referenceDistance"/>
            <attribute tooltip="[rolloffFactor &inputOutputLabel; &SFFloatLabel; &#34;1&#34;] [0,+&#8734;)&#10;rolloffFactor indicates how quickly volume is reduced as source moves further from listener.&#10;Hint: W3C Web Audio API https://www.w3.org/TR/webaudio/#dom-pannernode-rollofffactor" name="rolloffFactor"/>
            <attribute tooltip="[priority &inputOutputLabel; &SFFloatLabel; &#34;0&#34;]&#10;Player hint [0,1] if needed to choose which sounds to play." name="priority"/>
            <attribute tooltip="[spatialize &initializeOnlyLabel; &SFBoolLabel; &#34;true&#34;]&#10;Whether to spatialize sound playback relative to viewer.&#10;Hint: only effective within the auralization volume." name="spatialize"/>
            <attribute tooltip="[containerField type NMTOKEN &#34;children&#34;]&#10;containerField is a field-label prefix indicating this node&apos;s field relationship to its parent node, for example &lt;Transform&gt;&lt;Shape containerField=&apos;children&apos;/&gt;&lt;/Transform&gt;. Hint: default containerField values for each node are correct in most cases, so the need to override default containerField values is rare.&#10;Hint: example values include containerField=&apos;geometry&apos; for Box node, containerField=&apos;children&apos; for Group node, containerField=&apos;proxy&apos; for hidden proxy shape within a Collision node, etc.&#10;Hint: containerField attribute is part of XML encoding for X3D scenes, and corresponds to the always-declared field labels in the ClassicVRML and VRML97 file encodings.&#10;Hint: USE node instances are allowed to have a containerField value that is different than the corresponding DEF declaration of that node.&#10;Hint: X3D Scene Authoring Hints, containerField https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerField"/>
        </element>
    </elements>
    <documents>
        <document description="X3D graphics scene" root="X3D" suffix="x3d" template="/www.web3d.org/x3d/content/examples/newScene.x3d"/>
    </documents>
    <palettes>
        <!--
            <toolbarpalette title="Extensible 3D (X3D)">
            <group elements="XML_COMMENT XML_CDATA XML_DOCUMENT_TYPE XML_TEXT XML_PI"/>
            </toolbarpalette>
        -->
        <!-- it would be nice if Xeena allowed tooltips on sidebar palette selection tabs. -->
        <!-- available sidebarpalette icons but not functional: XML_DOCUMENT XML_DOCUMENT_TYPE -->
        <sidebarpalette all-visible="yes" searchable="yes" title="Full profile">
            <group elements="XML_COMMENT XML_CDATA XML_DOCUMENT_TYPE &ImmersiveProfileNodesLabel; &DISTagLabels; &GeoSpatialTagLabels; &HAnimTagLabels; &NurbsTagLabels; &CadTagLabels; &CubeMapTexturingTagLabels; &ShadersTagLabels; &FollowerTagLabels;"/>
        </sidebarpalette>
        <!-- Xeena bug implementing JDK leads to no nodes visible. Too bad, nice feature.
            <sidebarpalette all-visible="no" searchable="yes" title="Allowed Nodes">
            <group elements="XML_COMMENT XML_CDATA XML_DOCUMENT_TYPE &ImmersiveProfileNodesLabel; &DISTagLabels; &GeoSpatialTagLabels; &HAnimTagLabels; &NurbsTagLabels; &CadTagLabels; &CubeMapTexturingTagLabels; &ShadersTagLabels; &FollowerTagLabels; &Texturing3DTagLabels;"/>
            </sidebarpalette>
        -->
        <sidebarpalette all-visible="yes" searchable="yes" title="Immersive profile">
            <group elements="XML_COMMENT XML_CDATA &ImmersiveProfileNodesLabel;"/>
        </sidebarpalette>
        <sidebarpalette all-visible="yes" searchable="yes" title="Interactive profile">
            <group elements="XML_COMMENT &InteractiveProfileNodesLabel;"/>
        </sidebarpalette>
        <sidebarpalette all-visible="yes" searchable="yes" title="Interchange profile">
            <group elements="XML_COMMENT &InterchangeProfileNodesLabel;"/>
        </sidebarpalette>
        <sidebarpalette all-visible="yes" searchable="yes" title="GeoSpatial 1.1">
            <group elements="XML_COMMENT &GeoSpatialTagLabels; IndexedFaceSet Shape ROUTE"/>
        </sidebarpalette>
        <sidebarpalette all-visible="yes" searchable="yes" title="H-Anim 2.0">
            <group elements="XML_COMMENT &HAnimTagLabels; Coordinate Normal Shape IndexedFaceSet Inline Appearance Material ImageTexture Viewpoint ROUTE"/>
        </sidebarpalette>
        <sidebarpalette all-visible="yes" searchable="yes" title="DIS protocol">
            <group elements="XML_COMMENT &DISTagLabels; ROUTE"/>
        </sidebarpalette>
        <!--
            <sidebarpalette all-visible="yes" searchable="yes" title="New Nodes">
            <group elements="XML_COMMENT XML_DOCUMENT_TYPE &NewTagLabels; &NurbsTagLabels; &LatticeXvlTagLabels; &NewTagExtras;"/>
            </sidebarpalette>
        -->
        <sidebarpalette all-visible="yes" searchable="yes" title="Geometry 2D">
            <group elements="XML_COMMENT &Geometry2DTagLabels;"/>
        </sidebarpalette>
        <sidebarpalette all-visible="yes" searchable="yes" title="CAD">
            <group elements="XML_COMMENT &CadTagLabels; Shape LOD Color Coordinate Normal TextureCoordinate"/>
        </sidebarpalette>
        <sidebarpalette all-visible="yes" searchable="yes" title="Shaders">
            <group elements="XML_COMMENT &ShadersTagLabels; Shape Appearance field IS connect"/>
        </sidebarpalette>
    </palettes>
    <importers>
        <importer class-name="com.ibm.hrl.xmleditor.extension.vrml.VrmlImporter"/>
    </importers>
    <exporters/>
    <!-- Default XSLT launcher toolbars: IE/VRML, IE/ClassicVRML, Xj3d/ClassicVRML, Mozilla/VRML, Netscape/VRML, IE/HTML, Mozilla/HTML.
    Can edit paths for other installs and other operating systems using entity references at top of this document. -->
    <tools>
        <!-- Internet Explorer - VRML97 browser -->
        <tool class-name="com.ibm.hrl.xmleditor.extension.xsl.XSLHandler" init-data="default.viewer=&InternetExplorerBrowser;&#10;default.stylesheet=file:///www.web3d.org/x3d/content/X3dToVrml97.xslt&#10;default.result=_new_result.wrl&#10;label=X3DtoVRML"/>
        <!-- Internet Explorer - ClassicVRML X3D browser -->
        <tool class-name="com.ibm.hrl.xmleditor.extension.xsl.XSLHandler" init-data="default.viewer=&InternetExplorerBrowser;&#10;default.stylesheet=file:///www.web3d.org/x3d/content/X3dToX3dvClassicVrmlEncoding.xslt&#10;default.result=_new_result.x3dv&#10;default.label=X3DtoClassicVRML"/>
        <!-- Xj3D              - X3D/VRML open-source sample-implementation browser -->
        <tool class-name="com.ibm.hrl.xmleditor.extension.xsl.XSLHandler" init-data="default.viewer=&Xj3dBrowser;&#10;default.stylesheet=file:///www.web3d.org/x3d/content/X3dToVrml97.xslt&#10;default.result=_new_result.wrl&#10;tooltip=Xj3D"/>
        <!-- Firefox           - VRML97 browser -->
        <tool class-name="com.ibm.hrl.xmleditor.extension.xsl.XSLHandler" init-data="default.viewer=&FirefoxBrowser;&#10;default.stylesheet=file:///www.web3d.org/x3d/content/X3dToVrml97.xslt&#10;default.result=C:\\www.web3d.org\\x3d\\content\\examples\\_new_result.wrl&#10;tooltip=X3DtoVRML"/>
        <!-- Mozilla           - VRML97 browser -->
        <tool class-name="com.ibm.hrl.xmleditor.extension.xsl.XSLHandler" init-data="default.viewer=&MozillaBrowser;&#10;default.stylesheet=file:///www.web3d.org/x3d/content/X3dToVrml97.xslt&#10;default.result=C:\\www.web3d.org\\x3d\\content\\examples\\_new_result.wrl&#10;tooltip=X3DtoVRML"/>
        <!-- Netscape 4.8x     - VRML97 browser
        <tool class-name="com.ibm.hrl.xmleditor.extension.xsl.XSLHandler" init-data="default.viewer=&NetscapeBrowser;&#10;default.stylesheet=file:///www.web3d.org/x3d/content/X3dToVrml97.xslt&#10;default.result=C:\\www.web3d.org\\x3d\\content\\examples\\_new_result.wrl&#10;tooltip=X3DtoVRML"/> -->
        <!-- Internet Explorer - HTML pretty-print browser -->
        <tool class-name="com.ibm.hrl.xmleditor.extension.xsl.XSLHandler" init-data="default.viewer=&InternetExplorerBrowser;&#10;default.stylesheet=file:///www.web3d.org/x3d/content/X3dToXhtml.xslt&#10;default.result=_new_pretty_print.html"/>
        <!-- Alternate HTML browser location:
        <tool class-name="com.ibm.hrl.xmleditor.extension.xsl.XSLHandler" init-data="default.viewer=&MozillaBrowser;&#10;default.stylesheet=file:///www.web3d.org/x3d/content/X3dToHtml.xslt&#10;default.result=_new_pretty_print.html"/>
        -->
    </tools>
</DTDProfile>
