<?xml version="1.0" encoding="utf-8"?>
<!-- X3D Unified Object Model (X3DUOM) X3dUnifiedObjectModel-4.0.xml -->
<!-- Online at https://www.web3d.org/specifications/X3dUnifiedObjectModel-4.0.xml -->
<!-- This file contains a listing of all abstract and concrete nodes in version 4.0 of X3D -->
<!-- Generated 2024-12-10-08:00 12:33:23.8336395-08:00 -->
<X3dUnifiedObjectModel version="4.0" xmlns:xsd="http://www.w3.org/2001/XMLSchema-instance" xsd:noNamespaceSchemaLocation="X3dUnifiedObjectModel.xsd">
 <SimpleTypeEnumerations>
  <!-- For schema xs:simpleType with contained xs:enumeration definitions, follow naming convention of name ending in 'Type', 'Choices' (for strict enumeration set) or 'Values' (for suggested tokens). -->
  <SimpleType appinfo="accessTypeChoices are strictly allowed enumeration values for accessType, used when defining field declarations within a Script node or ProtoDeclare/ExternProtoDeclare statements. Original accessType name values in VRML97 were eventIn, eventOut, field, exposedField respectively. This list is bounded, no additional values are allowed." baseType="xs:NMTOKEN" documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/concepts.html#FieldSemantics" name="accessTypeChoices">
   <enumeration appinfo="A field with accessType initializeOnly can be initialized, but cannot send or receive events." value="initializeOnly"/>
   <enumeration appinfo="A field with accessType inputOnly cannot be initialized or included in a scene file, but can receive input event values via a ROUTE." value="inputOnly"/>
   <enumeration appinfo="A field with accessType outputOnly cannot be initialized or included in a scene file, but can send output event values via a ROUTE." value="outputOnly"/>
   <enumeration appinfo="A field with accessType inputOutput can be initialized, and can also send or receive events." value="inputOutput"/>
  </SimpleType>
  <SimpleType appinfo="Acronyms and abbreviated terms are defined in X3D Architecture: Extensible 3D (X3D), ISO/IEC 19775-1:2023, 3 Definitions, acronyms, and abbreviations." baseType="xs:NMTOKEN" documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/glossary.html" name="acronymChoices">
   <enumeration appinfo="Computer-Assisted Design" value="CAD"/>
   <enumeration appinfo="Hue, Saturation, and Value colour model" value="HSV"/>
   <enumeration appinfo="Joint Photographic Experts Group" value="JPEG"/>
   <enumeration appinfo="Musical Instrument Digital Interface. A standard for digital music representation." value="MIDI"/>
   <enumeration appinfo="Multipurpose Internet Mail Extension" value="MIME"/>
   <enumeration appinfo="Multiple-valued field" value="MF"/>
   <enumeration appinfo="Moving Picture Experts Group" value="MPEG"/>
   <enumeration appinfo="Portable Network Graphics. A specification for representing two-dimensional images in files." value="PNG"/>
   <enumeration appinfo="Red, Green, and Blue colour model" value="RGB"/>
   <enumeration appinfo="Relative Uniform Resource Locator" value="RURL"/>
   <enumeration appinfo="Scene Access Interface" value="SAI"/>
   <enumeration appinfo="Single-valued field" value="SF"/>
   <enumeration appinfo="Universal multiple-octet coded Character Set" value="UCS"/>
   <enumeration appinfo="Universal Resource Identifier" value="URI"/>
   <enumeration appinfo="Uniform Resource Locator" value="URL"/>
   <enumeration appinfo="Universal Resource Name" value="URN"/>
   <enumeration appinfo="variable-length 8-bit Universal multiple-octet coded character set Transformation Format" value="UTF-8"/>
  </SimpleType>
  <SimpleType appinfo="Permitted values for Appearance alphaMode field. This list is bounded, no additional values are allowed." baseType="SFString" documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/Shape.html#Appearance" name="alphaModeChoices">
   <enumeration appinfo="Material transparency is applied to texture transparency" value="AUTO"/>
   <enumeration appinfo="Ignore alpha channel texture transparency, opaque" value="OPAQUE"/>
   <enumeration appinfo="Alpha-testing mode for transparent when alpha value less than 0.5 and opaque when greater than or equal to 0.5" value="MASK"/>
   <enumeration appinfo="Blend combines partial transparency of textures and materials" value="BLEND"/>
  </SimpleType>
  <SimpleType appinfo="Default global parameters for collision outputs of rigid body physics system. Contact node can override parent CollisionCollection node. Multiple optional values, but appliedParameters enumerations cannot be extended. This list is bounded, no additional values are allowed." baseType="MFString" documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/rigidBodyPhysics.html#t-AppliedParametersValidValues" name="appliedParametersChoices">
   <enumeration appinfo="The bounce field value is used." value='"BOUNCE"'/>
   <enumeration appinfo="The system will normally calculate the friction direction vector that is perpendicular to the contact normal. This setting indicates that the user-supplied value in this contact should be used." value='"USER_FRICTION"'/>
   <enumeration appinfo="Apply frictionCoefficients values" value='"FRICTION_COEFFICIENT-2"'/>
   <enumeration appinfo="Apply softnessErrorCorrection value" value='"ERROR_REDUCTION"'/>
   <enumeration appinfo="Apply softnessConstantForceMix value" value='"CONSTANT_FORCE"'/>
   <enumeration appinfo="Apply first component of surfaceSpeed array" value='"SPEED-1"'/>
   <enumeration appinfo="Apply second component of surfaceSpeed array" value='"SPEED-2"'/>
   <enumeration appinfo="Apply first component of slipFactors array" value='"SLIP-1"'/>
   <enumeration appinfo="Apply second component of slipFactors array" value='"SLIP-2"'/>
  </SimpleType>
  <SimpleType appinfo="bboxSizeType dimensions are non-negative values, default value (-1 -1 -1) indicates that no bounding box size has been computed." baseType="SFVec3f" defaultValue="-1 -1 -1" documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/grouping.html#Boundingboxes" name="bboxSizeType" regex="\s*((([+]?(((0|[1-9][0-9]*)(\.[0-9]*)?|\.[0-9]+)([Ee][+-]?[0-9]+)?)\s+){2}([+]?((0|[1-9][0-9]*)(\.[0-9]*)?|\.[0-9]+)([Ee][+-]?[0-9]+)?)\s*)|((\-1(\.(0)*)?([Ee][+-]?[0]+)?\s+){2}\-1(\.(0)*)?([Ee][+-]?[0]+)?)\s*)?"/>
  <SimpleType appinfo="Permitted values for BiquadFilter type. X3D enumeration naming conventions are capitalized versions of Web Audio API enumerations, also changing hyphens to underscores. This list is bounded, no additional values are allowed." baseType="SFString" documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/sound.html#BiquadFilter" name="biquadTypeFilterChoices">
   <enumeration alias="lowpass" appinfo='X3D version of "lowpass" in Web Audio API.' documentation="https://www.w3.org/TR/webaudio/#enumdef-biquadfiltertype" value="LOWPASS"/>
   <enumeration alias="highpass" appinfo='X3D version of "highpass" in Web Audio API.' documentation="https://www.w3.org/TR/webaudio/#enumdef-biquadfiltertype" value="HIGHPASS"/>
   <enumeration alias="bandpass" appinfo='X3D version of "bandpass" in Web Audio API.' documentation="https://www.w3.org/TR/webaudio/#enumdef-biquadfiltertype" value="BANDPASS"/>
   <enumeration alias="lowshelf" appinfo='X3D version of "lowshelf" in Web Audio API.' documentation="https://www.w3.org/TR/webaudio/#enumdef-biquadfiltertype" value="LOWSHELF"/>
   <enumeration alias="highshelf" appinfo='X3D version of "highshelf" in Web Audio API.' documentation="https://www.w3.org/TR/webaudio/#enumdef-biquadfiltertype" value="HIGHSHELF"/>
   <enumeration alias="peaking" appinfo='X3D version of "peaking" in Web Audio API.' documentation="https://www.w3.org/TR/webaudio/#enumdef-biquadfiltertype" value="PEAKING"/>
   <enumeration alias="notch" appinfo='X3D version of "notch" in Web Audio API.' documentation="https://www.w3.org/TR/webaudio/#enumdef-biquadfiltertype" value="NOTCH"/>
   <enumeration alias="allpass" appinfo='X3D version of "allpass" in Web Audio API.' documentation="https://www.w3.org/TR/webaudio/#enumdef-biquadfiltertype" value="ALLPASS"/>
  </SimpleType>
  <SimpleType appinfo="Permitted values for channelCountMode in X3DSoundChannelNode and X3DSoundDestinationNode. X3D enumeration naming conventions are capitalized versions of Web Audio API enumerations, also changing hyphens to underscores. This list is bounded, no additional values are allowed." baseType="SFString" documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/sound.html#SoundEffectsProcessing" name="channelCountModeChoices">
   <enumeration alias="max" appinfo='X3D version of "max" in Web Audio API.' documentation="https://www.w3.org/TR/webaudio/#enumdef-channelcountmode" value="MAX"/>
   <enumeration alias="clamped-max" appinfo='X3D version of "clamped-max" in Web Audio API.' documentation="https://www.w3.org/TR/webaudio/#enumdef-channelcountmode" value="CLAMPED_MAX"/>
   <enumeration alias="explicit" appinfo='X3D version of "explicit" in Web Audio API.' documentation="https://www.w3.org/TR/webaudio/#enumdef-channelcountmode" value="EXPLICIT"/>
  </SimpleType>
  <SimpleType appinfo="Permitted values for channelInterpretation in X3DSoundChannelNode and X3DSoundDestinationNode. X3D enumeration naming conventions are capitalized versions of Web Audio API enumerations, also changing hyphens to underscores. This list is bounded, no additional values are allowed." baseType="SFString" documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/sound.html#SoundEffectsProcessing" name="channelInterpretationChoices">
   <enumeration appinfo='X3D version of "speakers" in Web Audio API.' documentation="https://www.w3.org/TR/webaudio/#enumdef-channelinterpretation" value="SPEAKERS"/>
   <enumeration appinfo='X3D version of "discrete" in Web Audio API.' documentation="https://www.w3.org/TR/webaudio/#enumdef-channelinterpretation" value="DISCRETE"/>
  </SimpleType>
  <SimpleType appinfo="closureTypeChoices are strictly allowed enumeration values for ArcClose2D closureType field. This list is bounded, no additional values are allowed." baseType="xs:NMTOKEN" documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/geometry2D.html#ArcClose2D" name="closureTypeChoices">
   <enumeration appinfo="Connects arc endpoints to center, forming a pie wedge" value="PIE"/>
   <enumeration appinfo="Connects arc endpoints directly to each other, as in chord on a circle" value="CHORD"/>
  </SimpleType>
  <SimpleType appinfo="componentNameChoices are enumeration constants used to identify the profile for each scene-graph node, and also utilized by X3D element to identify the components required by the contained Scene. This list is bounded, no additional values are allowed." baseType="xs:NMTOKEN" documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/concepts.html#Components" name="componentNameChoices">
   <enumeration appinfo="The Core component supplies the base functionality for the X3D run-time system, including the abstract base node type, field types, the event model, and routing." documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/core.html" value="Core"/>
   <enumeration appinfo="The CADGeometry component is provided for Computer-Aided Design (CAD) nodes." documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/CADGeometry.html" value="CADGeometry"/>
   <enumeration appinfo="The Cube Map Environmental Texturing component describes how additional texturing effects are defined to produce environmental effects such as reflections from objects." documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/environmentalTexturing" value="CubeMapTexturing"/>
   <enumeration appinfo="The Distributed Interactive Simulation (DIS) component provides networked interoperability with the IEEE DIS protocol for sharing state and conducting real-time platform-level simulations across multiple host computers." documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/dis.html" value="DIS"/>
   <enumeration appinfo="Nodes in the Environmental effects component support the creation of realistic environmental effects such as panoramic backgrounds and fog." documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/environmentalEffects.html" value="EnvironmentalEffects"/>
   <enumeration appinfo="The Environment Sensor nodes emit events indicating activity in the scene environment, usually based on interactions between the viewer and the world." documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/environmentalSensor.html" value="EnvironmentalSensor"/>
   <enumeration appinfo="The Event Utility nodes provide the capability to filter, trigger, convert, or sequence numerous event-types for common interactive applications without the use of a Script node." documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/eventUtilities.html" value="EventUtilities"/>
   <enumeration appinfo="The Follower nodes (Chasers and Dampers) support dynamic creation of smooth parameter transitions at run time." documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/followers.html" value="Followers"/>
   <enumeration appinfo="The Geometry2D component defines how two-dimensional geometry is specified and what shapes are available." documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/geometry2D.html" value="Geometry2D"/>
   <enumeration appinfo="The Geometry3D component describes how three-dimensional geometry is specified and defines ElevationGrid, Extrusion, IndexedFaceSet, and most primitive geometry nodes (Box, Cone, Cylinder, Sphere)." documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/geometry3D.html" value="Geometry3D"/>
   <enumeration appinfo="The Geospatial component defines how to associate real-world locations in an X3D scene and specifies nodes particularly tuned for geospatial applications." documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/geospatial.html" value="Geospatial"/>
   <enumeration appinfo="The Grouping component describes how nodes are organized into groups to establish a transformation hierarchy for the X3D scene graph." documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/grouping.html" value="Grouping"/>
   <enumeration appinfo="The Humanoid Animation (HAnim) component for X3D defines node bindings and other details for implementing ISO/IEC 19774, the HAnim International Specification. Original name was H-Anim for X3D versions 3.0 through 3.3, both enumeration values HAnim and H-Anim are allowed to pass validation." documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/hanim.html" value="HAnim"/>
   <enumeration appinfo="Legacy enumeration H-Anim for X3D versions 3.0-3.3 provides backwards compatibility with Humanoid Animation (HAnim) version 1, preferred form of enumeration value is HAnim." documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/hanim.html" value="H-Anim"/>
   <enumeration appinfo="Interpolator nodes provide keyframe-based animation capability." documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/interpolators.html" value="Interpolation"/>
   <enumeration appinfo="The Key Device Sensor defines how keyboard keystrokes are inserted into an X3D world." documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/keyDeviceSensor.html" value="KeyDeviceSensor"/>
   <enumeration appinfo="The Layering component describes how to layer a set of subscene layers into a composite scene." documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/layering.html" value="Layering"/>
   <enumeration appinfo="The Layout component defines how to precisely position content in a scene in relation to the rendered results, especially for integrating 2D content with 3D content." documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/layout.html" value="Layout"/>
   <enumeration appinfo="The Lighting component specifies how light sources are defined and positioned, as well as how lights effect the rendered image." documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/lighting.html" value="Lighting"/>
   <enumeration appinfo="The Navigation component specifies how a user can effectively and intuitively move through and around a 3D scene." documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/navigation.html" value="Navigation"/>
   <enumeration appinfo="The Networking component defines node types and other features used to access file-based and streaming resources on the World Wide Web." documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/networking.html" value="Networking"/>
   <enumeration appinfo="The NURBS component describes Non-uniform Rational B-Spline (NURBS) geometry and interpolation nodes." documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/nurbs.html" value="NURBS"/>
   <enumeration appinfo="The Particle Systems component specifies how to model particles and their interactions through the application of basic physics principles to affect motion." documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/particleSystems.html" value="ParticleSystems"/>
   <enumeration appinfo="The Picking component provides the ability to test for arbitrary object collision and provide basic capabilities to detecting object intersections and interactions." documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/picking.html" value="Picking"/>
   <enumeration appinfo="Pointing device sensor nodes detect pointing events from user-interface devices, defining activities such as a user selecting a piece of geometry." documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/pointingDeviceSensor.html" value="PointingDeviceSensor"/>
   <enumeration appinfo="TextureProjection nodes project texture images onto geometry in a scene." documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/textureProjector.html" value="TextureProjection"/>
   <enumeration appinfo="The Rendering component includes fundamental rendering primitives such as TriangleSet and PointSet nodes, as well as geometric properties nodes that define how coordinate indices, colors, normals and texture coordinates are specified." documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/rendering.html" value="Rendering"/>
   <enumeration appinfo="The Rigid Body Physics component describes how to model rigid bodies and their interactions through the application of basic physics principles to effect motion." documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/rigidBodyPhysics.html" value="RigidBodyPhysics"/>
   <enumeration appinfo="The Scripting component describes how Script nodes are used to effect changes in X3D worlds." documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/scripting.html" value="Scripting"/>
   <enumeration appinfo="The Programmable Shaders component describes how programmable shaders are specified and how they affect the visual appearance of geometry." documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/shaders.html" value="Shaders"/>
   <enumeration appinfo="The Shape component defines nodes for associating geometry with their visible properties and the scene environment." documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/shape.html" value="Shape"/>
   <enumeration appinfo="The Sound component defines how sound is delivered to an X3D world as well as how sounds are accessed." documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/sound.html" value="Sound"/>
   <enumeration appinfo="The Text component defines how text strings are rendered in an X3D scene." documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/text.html" value="Text"/>
   <enumeration appinfo="The Texturing component specifies how 2D texture images are defined and then positioned on associated geometry." documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/texturing.html" value="Texturing"/>
   <enumeration appinfo="The Texturing3D component specifies how 3D volumetric textures describe surface properties as data points in a volume of space, rather than a flat surface." documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/texture3D.html" value="Texturing3D"/>
   <enumeration appinfo="The Time component defines how time is sensed, computed and associated with events in an X3D scene." documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/time.html" value="Time"/>
   <enumeration appinfo="The Volume Rendering component provides the ability to specify and render volumetric data sets." documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/volume.html" value="VolumeRendering"/>
  </SimpleType>
  <SimpleType appinfo='containerFieldChoicesAudioClip lists the allowed containerField enumeration values for AudioClip node: default "source" if parent node is Sound node, "inputs" if parent is part of audio graph, otherwise "children" if parent node is LoadSensor.' baseType="xs:NMTOKEN" documentation="https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerFieldChoicesAudioClip">
   <enumeration appinfo="parent node is X3DSoundChannelNode, X3DSoundDestinationNode, or X3DSoundProcessingNode" value="children"/>
   <enumeration appinfo="parent node is Sound node (legacy X3D3 SFNode source is allowed content model, prefer X3D4 MFNode children)" value="source"/>
   <enumeration appinfo="parent node is LoadSensor node (X3D3 only, validation allowed in X3D4 for backwards compatibility)" value="watchList"/>
  </SimpleType>
  <SimpleType appinfo='containerFieldChoicesAudioClip lists the allowed containerField enumeration values for AudioClip node: default "children" if parent is part of audio graph, "source" if parent node is Sound node, otherwise "outputs" signal is provided to this node by parent ChannelSplitter node.' baseType="xs:NMTOKEN" documentation="https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerFieldChoicesAudioGraph">
   <enumeration appinfo="provide inputs to parent (X3DSoundChannelNode, X3DSoundDestinationNode, X3DSoundProcessingNode) as part of audio graph, otherwise standalone as childe in scene graph" value="children"/>
   <enumeration appinfo="parent node is ChannelSplitter, which is providing single-channel signal input to this node" value="outputs"/>
   <enumeration appinfo="parent node is Sound node: legacy X3D3 SFNode source is allowed content model (AudioClip or MovieTexture only), prefer X3D4 MFNode children." value="source"/>
  </SimpleType>
  <SimpleType appinfo='containerFieldChoicesColor lists the allowed containerField enumeration values for Color and ColorRGBA nodes: default "color" if parent node is a geometry node, otherwise "colorRamp" if parent node is ParticleSystem.' baseType="xs:NMTOKEN" documentation="https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerFieldChoicesColor">
   <enumeration appinfo="parent node is a geometry node" value="color"/>
   <enumeration appinfo="parent node is ParticleSystem" value="colorRamp"/>
  </SimpleType>
  <SimpleType appinfo='containerFieldChoicesDISEntityTypeMapping lists the allowed containerField enumeration values for DISEntityTypeMapping node: default "mapping" if parent node is DISEntityManager node, otherwise "children" if parent node is LoadSensor.' baseType="xs:NMTOKEN" documentation="https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerFieldChoicesDISEntityTypeMapping">
   <enumeration appinfo="parent node is DISEntityManager (formerly mapping in X3D3) or LoadSensor (formerly watchList in X3D3)" value="children"/>
   <enumeration appinfo="parent node is DISEntityManager node (X3D3, validation allowed in X3D4 for backwards compatibility)" value="mapping"/>
   <enumeration appinfo="parent node is LoadSensor node (X3D3 only, validation allowed in X3D4 for backwards compatibility)" value="watchList"/>
  </SimpleType>
  <SimpleType appinfo='containerFieldChoicesGroupLODShapeTransformSwitch lists the allowed containerField enumeration values for Shape, Transform and LOD nodes: "children" if parent node has abstract type X3DGroupingNode, otherwise "metadata" default.' baseType="xs:NMTOKEN" documentation="https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerFieldChoicesGroupLODShapeTransformSwitch">
   <enumeration appinfo="parent node has abstract type X3DGroupingNode" value="children"/>
   <enumeration appinfo="parent node is Collision" value="proxy"/>
   <enumeration appinfo="parent node is GeoLOD" value="rootNode"/>
   <enumeration appinfo="parent node is CADFace or CollidableShape" value="shape"/>
   <enumeration appinfo="parent node is HAnimHumanoid" value="skin"/>
  </SimpleType>
  <SimpleType appinfo='containerFieldChoicesHAnimJoint lists the allowed containerField enumeration values for HAnimJoint node: default "children" if parent node is another HAnimJoint, otherwise "joints" or "skeleton" if parent node is HAnimHumanoid.' baseType="xs:NMTOKEN" documentation="https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerFieldChoicesHAnimJoint">
   <enumeration appinfo="parent node is another HAnimJoint" value="children"/>
   <enumeration appinfo="parent node is HAnimHumanoid, typically as a USE node" value="joints"/>
   <enumeration appinfo="parent node is HAnimHumanoid" value="skeleton"/>
  </SimpleType>
  <SimpleType appinfo='containerFieldChoicesHAnimMotion lists the allowed containerField enumeration values for HAnimMotion node: default "children" if parent node is a grouping node, otherwise "motions" if parent node is HAnimHumanoid.' baseType="xs:NMTOKEN" documentation="https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerFieldChoicesHAnimMotion">
   <enumeration appinfo="parent node is a grouping node" value="children"/>
   <enumeration appinfo="parent node is HAnimHumanoid" value="motions"/>
  </SimpleType>
  <SimpleType appinfo='containerFieldChoicesHAnimSegment lists the allowed containerField enumeration values for HAnimSegment node: default "children" if parent node is another HAnimJoint, otherwise "joints" or "skeleton" if parent node is HAnimHumanoid.' baseType="xs:NMTOKEN" documentation="https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerFieldChoicesHAnimSegment">
   <enumeration appinfo="parent node is HAnimJoint" value="children"/>
   <enumeration appinfo="parent node is HAnimHumanoid, typically as a USE node" value="segments"/>
  </SimpleType>
  <SimpleType appinfo='containerFieldChoicesHAnimSite lists the allowed containerField enumeration values for HAnimSite node: default "children" if parent node is another HAnimJoint, otherwise "sites", "skeleton" or "viewpoints" if parent node is HAnimHumanoid.' baseType="xs:NMTOKEN" documentation="https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerFieldChoicesHAnimSite">
   <enumeration appinfo="parent node is HAnimSegment" value="children"/>
   <enumeration appinfo="parent node is HAnimHumanoid, typically as a USE node" value="sites"/>
   <enumeration appinfo="parent node is HAnimHumanoid" value="skeleton"/>
   <enumeration appinfo="parent node is HAnimHumanoid" value="viewpoints"/>
  </SimpleType>
  <SimpleType appinfo='containerFieldChoicesMetadata lists the allowed containerField enumeration values for Metadata nodes: "value" if providing information and parent node is MetadataSet collection, otherwise default "metadata" if providing information about parent node.' baseType="xs:NMTOKEN" documentation="https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerFieldChoicesMetadata">
   <enumeration appinfo="this node provides metadata information regarding its parent node." value="metadata"/>
   <enumeration appinfo="parent node is MetadataSet, this node is providing information as part of a MetadataSet collection." value="value"/>
  </SimpleType>
  <SimpleType appinfo='containerFieldChoicesPackagedShader lists the allowed containerField enumeration values for PackagedShader node: default "shaders" if parent node is DISEntityManager node, otherwise "children" if parent node is LoadSensor.' baseType="xs:NMTOKEN" documentation="https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerFieldChoicesPackagedShader">
   <enumeration appinfo="parent node is an Appearance node" value="shaders"/>
   <enumeration appinfo="parent node is LoadSensor (formerly watchList in X3D3)" value="children"/>
  </SimpleType>
  <SimpleType appinfo='containerFieldChoicesShaderPart lists the allowed containerField enumeration values for ShaderPart node: default "shaders" if parent node is ShaderPart node, otherwise "children" if parent node is LoadSensor.' baseType="xs:NMTOKEN" documentation="https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerFieldChoicesShaderPart">
   <enumeration appinfo="parent node is ComposedShader node" value="parts"/>
   <enumeration appinfo="parent node is LoadSensor (formerly watchList in X3D3)" value="children"/>
  </SimpleType>
  <SimpleType appinfo='containerFieldChoicesSoundSource lists the allowed containerField enumeration values for X3DSoundSourceNode elements: default "source" if parent node is Sound node, otherwise "inputs" if parent node is another node in audio graph.' baseType="xs:NMTOKEN" documentation="https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerFieldChoicesSoundSource">
   <enumeration appinfo="parent node is X3DSoundChannelNode, X3DSoundDestinationNode, or X3DSoundProcessingNode" value="children"/>
   <enumeration appinfo="parent node is Sound node (legacy X3D3 SFNode source is allowed content model, prefer X3D4 MFNode children)" value="source"/>
  </SimpleType>
  <SimpleType appinfo='containerFieldChoicesTextureCoordinate lists the allowed containerField enumeration values for TextureCoordinate node: default "texCoord" if parent node is a geometry node, otherwise "texCoordRamp" if parent node is ParticleSystem.' baseType="xs:NMTOKEN" documentation="https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerFieldChoicesTextureCoordinate">
   <enumeration appinfo="parent node is a geometry node" value="texCoord"/>
   <enumeration appinfo="parent node is ParticleSystem" value="texCoordRamp"/>
  </SimpleType>
  <SimpleType appinfo='containerFieldChoicesX3DCoordinateNode lists the allowed containerField enumeration values for Coordinate and CoordinateDouble nodes: default "coord" if parent node is a geometry node, otherwise skinCoord or skinBindingCoords if parent node is HAnimHumanoid' baseType="xs:NMTOKEN" documentation="https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerFieldChoicesX3DCoordinateNode">
   <enumeration appinfo="parent node is a geometry node" value="coord"/>
   <enumeration appinfo="parent node is a Nurbs node" value="controlPoint"/>
   <enumeration appinfo="parent node is HAnimHumanoid" value="skinCoord"/>
   <enumeration appinfo="parent node is HAnimHumanoid, added in X3D version 4" value="skinBindingCoords"/>
  </SimpleType>
  <SimpleType appinfo='containerFieldChoicesX3DNormalNode lists the allowed containerField enumeration values for Normal nodes: default "normal" if parent node is a geometry node, otherwise skinNormal or skinBindingNormals if parent node is HAnimHumanoid' baseType="xs:NMTOKEN" documentation="https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerFieldChoicesX3DNormalNode">
   <enumeration appinfo="parent node is a geometry node" value="normal"/>
   <enumeration appinfo="parent node is HAnimHumanoid" value="skinNormal"/>
   <enumeration appinfo="parent node is HAnimHumanoid, added in X3D version 4" value="skinBindingNormals"/>
  </SimpleType>
  <SimpleType appinfo="containerFieldChoicesX3DTexture2DNode lists the allowed containerField enumeration values for PixelTexture and MultiTexture (which can contain ImageTexture, MovieTexture, PixelTexture)." baseType="xs:NMTOKEN" documentation="https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerFieldChoicesX3DTexture2DNode">
   <enumeration appinfo="default, parent node is Appearance" value="texture"/>
   <enumeration appinfo="parent node is Sound node: legacy X3D3 SFNode source is allowed content model (AudioClip or MovieTexture only), prefer X3D4 MFNode children." value="source"/>
   <enumeration appinfo="parent node is TextureBackground or ComposedCubeMapTexture" value="backTexture"/>
   <enumeration appinfo="parent node is TextureBackground or ComposedCubeMapTexture" value="bottomTexture"/>
   <enumeration appinfo="parent node is TextureBackground or ComposedCubeMapTexture" value="frontTexture"/>
   <enumeration appinfo="parent node is TextureBackground or ComposedCubeMapTexture" value="leftTexture"/>
   <enumeration appinfo="parent node is TextureBackground or ComposedCubeMapTexture" value="rightTexture"/>
   <enumeration appinfo="parent node is TextureBackground or ComposedCubeMapTexture" value="topTexture"/>
   <enumeration appinfo="parent node is LoadSensor (formerly watchList in X3D3)" value="children"/>
   <enumeration appinfo="X3D4 Physically Based Rendering (PBR) capability, parent node is PhysicalMaterial" documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/shape.html#PhysicalMaterial" value="baseTexture"/>
   <enumeration appinfo="X3D4 Physically Based Rendering (PBR) capability, parent node is PhysicalMaterial or UnlitMaterial" documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/shape.html#UnlitMaterial" value="emissiveTexture"/>
   <enumeration appinfo="X3D4 Physically Based Rendering (PBR) capability, parent node is PhysicalMaterial" documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/shape.html#PhysicalMaterial" value="metallicRoughnessTexture"/>
   <enumeration appinfo="X3D4 Physically Based Rendering (PBR) capability, parent node is PhysicalMaterial or UnlitMaterial" documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/shape.html#UnlitMaterial" value="normalTexture"/>
   <enumeration appinfo="X3D4 Physically Based Rendering (PBR) capability, parent node is PhysicalMaterial" documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/shape.html#PhysicalMaterial" value="occlusionTexture"/>
  </SimpleType>
  <SimpleType appinfo='containerFieldChoicesX3DTexture3DNode lists the allowed containerField enumeration values for ComposedTexture3D, ImageTexture3D and PixelTexture3D nodes: default "texture" for parent node such as Appearance that includes a texture field, otherwise "gradients" if parent node is IsoSurfaceVolumeData, "segmentIdentifiers" if parent node is SegmentedVolumeData, "surfaceNormals" if parent node has abstract type X3DComposableVolumeRenderStyleNode, or "voxels" if parent node has abstract type X3DVolumeDataNode.' baseType="xs:NMTOKEN" documentation="https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerFieldChoicesX3DTexture3DNode">
   <enumeration appinfo="parent node is IsoSurfaceVolumeData" value="gradients"/>
   <enumeration appinfo="parent node is SegmentedVolumeData" value="segmentIdentifiers"/>
   <enumeration appinfo="parent node has abstract type X3DComposableVolumeRenderStyleNode" value="surfaceNormals"/>
   <enumeration appinfo="(default) parent node such as Appearance that include a texture field" value="texture"/>
   <enumeration appinfo="parent node has abstract type X3DVolumeDataNode" value="voxels"/>
   <enumeration appinfo="special case for ImageTexture3D with parent node LoadSensor (formerly watchList in X3D3)" value="children"/>
  </SimpleType>
  <SimpleType appinfo='containerFieldChoicesX3DUrlObject lists the allowed containerField enumeration values for Anchor, GeoMetadata, Inline and Script nodes: default "children" if parent node has abstract type X3DGroupingNode, otherwise "children" if parent node is LoadSensor.' baseType="xs:NMTOKEN" documentation="https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerFieldChoicesX3DUrlObject">
   <enumeration appinfo="parent node has abstract type X3DGroupingNode" value="children"/>
   <enumeration appinfo="parent node is LoadSensor (formerly watchList in X3D3)" value="children"/>
  </SimpleType>
  <SimpleType appinfo="containerFieldChoicesX3dUrlObjectTexture lists the allowed containerField enumeration values for X3DTexture2DNode (ImageTexture, MovieTexture) ." baseType="xs:NMTOKEN" documentation="https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" name="containerFieldChoicesX3dUrlObjectTexture">
   <enumeration appinfo="default, parent node is Appearance" value="texture"/>
   <enumeration appinfo="parent node is LoadSensor (invalid for PixelTexture) (formerly watchList in X3D3)" value="children"/>
   <enumeration appinfo="parent node is Sound (only valid for MovieTexture)" value="source"/>
   <enumeration appinfo="parent node is TextureBackground or ComposedCubeMapTexture" value="backTexture"/>
   <enumeration appinfo="parent node is TextureBackground or ComposedCubeMapTexture" value="bottomTexture"/>
   <enumeration appinfo="parent node is TextureBackground or ComposedCubeMapTexture" value="frontTexture"/>
   <enumeration appinfo="parent node is TextureBackground or ComposedCubeMapTexture" value="leftTexture"/>
   <enumeration appinfo="parent node is TextureBackground or ComposedCubeMapTexture" value="rightTexture"/>
   <enumeration appinfo="parent node is TextureBackground or ComposedCubeMapTexture" value="topTexture"/>
   <enumeration appinfo="X3D4 Physically Based Rendering (PBR) capability, parent node is PhysicalMaterial" documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/shape.html#PhysicalMaterial" value="baseTexture"/>
   <enumeration appinfo="X3D4 Physically Based Rendering (PBR) capability, parent node is PhysicalMaterial or UnlitMaterial" documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/shape.html#UnlitMaterial" value="emissiveTexture"/>
   <enumeration appinfo="X3D4 Physically Based Rendering (PBR) capability, parent node is PhysicalMaterial" documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/shape.html#PhysicalMaterial" value="metallicRoughnessTexture"/>
   <enumeration appinfo="X3D4 Physically Based Rendering (PBR) capability, parent node is PhysicalMaterial or UnlitMaterial" documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/shape.html#UnlitMaterial" value="normalTexture"/>
   <enumeration appinfo="X3D4 Physically Based Rendering (PBR) capability, parent node is PhysicalMaterial" documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/shape.html#PhysicalMaterial" value="occlusionTexture"/>
  </SimpleType>
  <SimpleType appinfo="Permitted values for SpatialSound distanceModel. X3D enumeration naming conventions are capitalized versions of Web Audio API enumerations, also changing hyphens to underscores. This list is bounded, no additional values are allowed." baseType="SFString" documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/sound.html#SpatialSound" name="distanceModelChoices">
   <enumeration alias="linear" appinfo='X3D version of "linear" in Web Audio API.' documentation="https://www.w3.org/TR/webaudio/#enumdef-distancemodeltype" value="LINEAR"/>
   <enumeration alias="inverse" appinfo='X3D version of "inverse" in Web Audio API.' documentation="https://www.w3.org/TR/webaudio/#enumdef-distancemodeltype" value="INVERSE"/>
   <enumeration alias="exponential" appinfo='X3D version of "exponential" in Web Audio API.' documentation="https://www.w3.org/TR/webaudio/#enumdef-distancemodeltype" value="EXPONENTIAL"/>
  </SimpleType>
  <SimpleType appinfo="fieldTypeChoices are enumerations for all allowed names of X3DField types. This list is bounded, no additional values are allowed." baseType="xs:NMTOKEN" documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/fieldsDef.html" name="fieldTypeChoices">
   <enumeration appinfo="Single Field (singleton) Boolean" value="SFBool"/>
   <enumeration appinfo="Multiple Field (list) Boolean" value="MFBool"/>
   <enumeration appinfo="Single Field (singleton) color value, red-green-blue" value="SFColor"/>
   <enumeration appinfo="Multiple Field (list) color value, red-green-blue" value="MFColor"/>
   <enumeration appinfo="Single Field (singleton) color value, red-green-blue alpha (opacity)" value="SFColorRGBA"/>
   <enumeration appinfo="Multiple Field (list) color value, red-green-blue alpha (opacity)" value="MFColorRGBA"/>
   <enumeration appinfo="Single Field (singleton) double-precision (64-bit) float" value="SFDouble"/>
   <enumeration appinfo="Multiple Field (list) 2-tuple double-precision (64-bit) float vector" value="MFDouble"/>
   <enumeration appinfo="Single Field (singleton) single-precision (32-bit) float" value="SFFloat"/>
   <enumeration appinfo="Multiple Field (list) single-precision (32-bit) float vector" value="MFFloat"/>
   <enumeration appinfo="Single Field (singleton) image value" value="SFImage"/>
   <enumeration appinfo="Multiple Field (list) image values" value="MFImage"/>
   <enumeration appinfo="Single Field (singleton) 32-bit integer" value="SFInt32"/>
   <enumeration appinfo="Multiple Field (list) 32-bit integer" value="MFInt32"/>
   <enumeration appinfo="Single Field (singleton) node" value="SFNode"/>
   <enumeration appinfo="Multiple Field (list) nodes" value="MFNode"/>
   <enumeration appinfo="Single Field (singleton) rotation value using 3-tuple axis, radian angle" value="SFRotation"/>
   <enumeration appinfo="Multiple Field (list) rotation values using 3-tuple axis, radian angle" value="MFRotation"/>
   <enumeration appinfo="Single Field (singleton) string value" value="SFString"/>
   <enumeration appinfo="Multiple Field (list) SFString array" value="MFString"/>
   <enumeration appinfo="Single Field (singleton) time value in seconds" value="SFTime"/>
   <enumeration appinfo="Multiple Field (list) time array in seconds" value="MFTime"/>
   <enumeration appinfo="Single Field (singleton) 2-tuple double-precision float vector" value="SFVec2d"/>
   <enumeration appinfo="Multiple Field (list) 2-tuple double-precision float vectors" value="MFVec2d"/>
   <enumeration appinfo="Single Field (singleton) 2-tuple single-precision float vector" value="SFVec2f"/>
   <enumeration appinfo="Multiple Field (list) 2-tuple single-precision float vectors" value="MFVec2f"/>
   <enumeration appinfo="Single Field (singleton) 3-tuple double-precision float vector" value="SFVec3d"/>
   <enumeration appinfo="Multiple Field (list) 3-tuple double-precision float vectors" value="MFVec3d"/>
   <enumeration appinfo="Single Field (singleton) 3-tuple single-precision float vector" value="SFVec3f"/>
   <enumeration appinfo="Multiple Field (list) 3-tuple single-precision float vectors" value="MFVec3f"/>
   <enumeration appinfo="Single Field (singleton) 4-tuple double-precision float vector" value="SFVec4d"/>
   <enumeration appinfo="Multiple Field (list) 4-tuple double-precision float vectors" value="MFVec4d"/>
   <enumeration appinfo="Single Field (singleton) 4-tuple single-precision float vector" value="SFVec4f"/>
   <enumeration appinfo="Multiple Field (list) 4-tuple single-precision float vectors" value="MFVec4f"/>
   <enumeration appinfo="Single Field (singleton) 3×3 matrix of double-precision floating point numbers" value="SFMatrix3d"/>
   <enumeration appinfo="Multiple Field (list) 3×3 matrices of double-precision floating point numbers" value="MFMatrix3d"/>
   <enumeration appinfo="Single Field (singleton) 3×3 matrix of single-precision floating point numbers" value="SFMatrix3f"/>
   <enumeration appinfo="Multiple Field (list) 3×3 matrices of double-precision floating point numbers" value="MFMatrix3f"/>
   <enumeration appinfo="Single Field (singleton) 4×4 matrix of double-precision floating point numbers" value="SFMatrix4d"/>
   <enumeration appinfo="Multiple Field (list) 4×4 matric3w of double-precision floating point numbers" value="MFMatrix4d"/>
   <enumeration appinfo="Single Field (singleton) 4×4 matrix of single-precision floating point numbers" value="SFMatrix4f"/>
   <enumeration appinfo="Multiple Field (list) 4×4 matrices of single-precision floating point numbers" value="MFMatrix4f"/>
  </SimpleType>
  <SimpleType appinfo="fogTypeChoices are strictly allowed enumeration values for Fog node fogType field. This list is bounded, no additional values are allowed." baseType="xs:NMTOKEN" documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/environmentalEffects.html#Fog" name="fogTypeChoices">
   <enumeration appinfo="linear blending as a function of distance" value="LINEAR"/>
   <enumeration appinfo="exponential blending as a function of distance" value="EXPONENTIAL"/>
  </SimpleType>
  <SimpleType appinfo="fontFamilyValues are supported enumeration values for FontStyle/ScreenFontStyle node family field. This list is unbounded, additional enumeration values are allowed." baseType="MFString" documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/text.html#Fontfamilyandstyle" name="fontFamilyValues">
   <enumeration appinfo="default font family for sans-serif font such as Helvetica" value='"SANS"'/>
   <enumeration appinfo="default font family for serif font such as Times-Roman" value='"SERIF"'/>
   <enumeration appinfo="default font family for a fixed-pitch font such as Courier" value='"TYPEWRITER"'/>
  </SimpleType>
  <SimpleType appinfo="fontStyleChoices are strictly allowed enumeration values for FontStyle/ScreenFontStyle node style field. This list is bounded, no additional values are allowed." baseType="xs:NMTOKEN" documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/text.html#Fontfamilyandstyle" name="fontStyleChoices">
   <enumeration appinfo="default plain type" value="PLAIN"/>
   <enumeration appinfo="boldface type" value="BOLD"/>
   <enumeration appinfo="italic type" value="ITALIC"/>
   <enumeration appinfo="bold and italic type" value="BOLDITALIC"/>
  </SimpleType>
  <SimpleType appinfo="forceOutputValues are supported enumeration values for X3DRigidJointNode type forceOutput field. This list is unbounded, additional enumeration values are allowed." baseType="MFString" documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/rigidBodyPhysics.html#X3DRigidJointNode" name="forceOutputValues">
   <enumeration appinfo="all forceOutput fields computed" value='"ALL"'/>
   <enumeration appinfo="no forceOutput fields computed" value='"NONE"'/>
  </SimpleType>
  <SimpleType appinfo="generatedCubeMapTextureUpdateChoices are strictly allowed enumeration values for GeneratedCubeMapTexture field named 'update'. This list is bounded, no additional values are allowed." baseType="xs:NMTOKEN" documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/environmentalTexturing.html#GeneratedCubeMapTexture" name="generatedCubeMapTextureUpdateChoices">
   <enumeration appinfo="no further texture updates are rendered" value="NONE"/>
   <enumeration appinfo="render texture once at end of frame" value="NEXT_FRAME_ONLY"/>
   <enumeration appinfo="texture to be rendered every frame" value="ALWAYS"/>
  </SimpleType>
  <SimpleType appinfo="The enumeration keys for the GeoMetadata summary field. This list is unbounded, additional enumeration values are allowed." baseType="xs:NMTOKEN" documentation="https://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/components/geodata.html#t-keywordsandvalues" name="geoMetadataSummaryKeyValues">
   <enumeration appinfo='A name to succinctly identify the dataset to user. For example, "San Francisco, California".' value="title"/>
   <enumeration appinfo='A brief textual description or summary of the content of the dataset. For example, "LANDSAT 7 satellite imagery taken over northern Scotland".' value="description"/>
   <enumeration appinfo='The spatial reference frame used to represent the data (e.g., GD, UTM, or LCC). The list of valid codes that can be used in this field are defined in ISO/IEC 18026. In the case of UTM, the zone number should also be specified in the format "UTM Zx", where the zone number is in the range [1,60]. For example, "UTM Z11".' value="coordinateSystem"/>
   <enumeration appinfo='The name of the geodetic datum. The list of valid codes that can be used in this field are defined in ISO/IEC 18026. For example, "W84".' value="horizontalDatum"/>
   <enumeration appinfo='The name of the vertical datum (geoid). The list of valid codes that can be used in this field are defined in ISO/IEC 18026. For example, "W84".' value="verticalDatum"/>
   <enumeration appinfo='The name of the geodetic ellipsoid. The list of valid codes that can be used in this field are defined in ISO/IEC 18026. For example, "WE".' value="ellipsoid"/>
   <enumeration appinfo='The bounding coordinates for the dataset given in spatial reference frame specified by the coordinateSystem keyword. These are provided in the order eastmost, southmost, westmost, northmost. An example for GD is: "-180.0 -90.0 180.0 90.0".' value="extent"/>
   <enumeration appinfo='SFFloat resolution, or ground sample distance, given in units of length base units. For example, "30".' value="resolution"/>
   <enumeration appinfo='A string defining the originator of the data, for example the author, agency, organization, publisher, etc. For example, "John Doe, Any Corporation, Some Town, Some Country"' value="originator"/>
   <enumeration appinfo='Any appropriate copyright declaration that pertains to the data. For example, "(c) Copyright 2000, Any Corporation. All rights reserved. Freely distributable."' value="copyright"/>
   <enumeration appinfo='A single date/time, or a date/time range, defining the valid time period to which the data pertains. Dates are specified in the format "YYYY MM DD [HH:MM]". Years in the current time period should be specified using four digits (EXAMPLE "1999" or "2001"). Years can have other than four digits and can be negative. A date range is specified by supplying two values separated by a "-" (hyphen) character. An optional time can be supplied should this level of accuracy be required. Times are to be specified in 24-hour format with respect to GMT. For example, "1999 01 01 00:00 - 1999 12 31 23:59".' value="date"/>
   <enumeration appinfo='A string that specifies the format of the external metadata description specified by the url field of the GeoMetadata node. For example, "FGDC", "ISO TC211", "CEN TC287", or "OGC".' value="metadataFormat"/>
   <enumeration appinfo='A hypertext link to the source data used to create the X3D node(s) to which this metadata pertains. Multiple dataUrl keyword/value pairs can be specified in order to provide alternative locations for the same source data. For example, "https://www.foo.bar/data/sf1".' value="dataUrl"/>
   <enumeration appinfo='A free-text string that describes the format of the source data used to create the X3D node(s) to which this metadata pertains. This refers to the source data specified by the dataUrl keyword (if present). For example, "USGS 5.5-min DEM".' value="dataFormat"/>
  </SimpleType>
  <SimpleType appinfo="geoSystemEarthEllipsoidValues are allowed enumeration values of earth ellipsoids, providing second value for any geoSystem field that has first value GD. This list is unbounded, additional enumeration values are allowed.." baseType="MFString" documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/geospatial.html#Specifyingaspatialreference" name="geoSystemEarthEllipsoidValues">
   <enumeration appinfo="Modified Airy" value="AM"/>
   <enumeration appinfo="Australian National" value="AN"/>
   <enumeration appinfo="Bessel 1841 (Namibia)" value="BN"/>
   <enumeration appinfo="Bessel 1841 (Ethiopia Indonesia ...)" value="BR"/>
   <enumeration appinfo="Clarke 1866" value="CC"/>
   <enumeration appinfo="Clarke 1880" value="CD"/>
   <enumeration appinfo="Everest (India 1830)" value="EA"/>
   <enumeration appinfo="Everest (Sabah &amp; Sarawak)" value="EB"/>
   <enumeration appinfo="Everest (India 1956)" value="EC"/>
   <enumeration appinfo="Everest (W. Malaysia 1969)" value="ED"/>
   <enumeration appinfo="Everest (W. Malaysia &amp; Singapore 1948)" value="EE"/>
   <enumeration appinfo="Everest (Pakistan)" value="EF"/>
   <enumeration appinfo="Modified Fischer 1960" value="FA"/>
   <enumeration appinfo="Helmert 1906" value="HE"/>
   <enumeration appinfo="Hough 1960" value="HO"/>
   <enumeration appinfo="Indonesia 1974" value="ID"/>
   <enumeration appinfo="International 1924" value="IN"/>
   <enumeration appinfo="Krassovsky 1940" value="KA"/>
   <enumeration appinfo="Geodetic Reference System 1980 (GRS 80)" value="RF"/>
   <enumeration appinfo="South American 1969" value="SA"/>
   <enumeration appinfo="WGS 72" value="WD"/>
   <enumeration appinfo="WGS 84" value="WE"/>
   <enumeration appinfo="WGS84 geoid" value="WGS84"/>
   <enumeration appinfo="Zone number (1..60) (only used with UTM)" value="Zn"/>
   <enumeration appinfo="Southern hemisphere (only used with UTM)" value="S"/>
  </SimpleType>
  <SimpleType appinfo="geoSystemSpatialReferenceFrameValues are allowed enumeration values of spatial reference frames and earth ellipsoids, providing first value for geoSystem field. This list is unbounded, additional enumeration values are allowed." baseType="xs:NMTOKEN" documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/geospatial.html#Spatialreferenceframes" name="geoSystemSpatialReferenceFrameValues">
   <enumeration appinfo="Geodetic spatial reference frame (latitude/longitude), to be followed by ellipsoid" value="GD"/>
   <enumeration appinfo='Universal Transverse Mercator. One further required argument must be supplied for UTM in order to specify the zone number (1..60) with optional suffix of "S" may be appended in order to specify that the coordinates are in the southern hemisphere. Optional arguments can follow.' value="UTM"/>
   <enumeration appinfo="Earth-fixed Geocentric with respect to the WGS84 ellipsoid. No additional arguments are supported." value="GC"/>
   <enumeration appinfo="Synonymous to GD, but may be subject to future deprecation" value="GDC"/>
   <enumeration appinfo="Synonymous to GC, but may be subject to future deprecation" value="GCC"/>
  </SimpleType>
  <SimpleType appinfo="The first enumeration value of geoSystem is one of geoSystemSpatialReferenceFrameValues. If first value is GD, then second enumeration value is one of geoSystemEarthEllipsoidValues." baseType="MFString" documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/geospatial.html#Specifyingaspatialreference" name="geoSystemType"/>
  <SimpleType appinfo="Glossary terms are defined in X3D Architecture: Extensible 3D (X3D), ISO/IEC 19775-1:2023, 3 Definitions, acronyms, and abbreviations." baseType="xs:NMTOKEN" documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/glossary.html" name="glossaryChoices">
   <enumeration appinfo="cause a #sensorNode to generate an isActive #event" value="activate"/>
   <enumeration appinfo="#node which is an antecedent of another node in the #transformationHierarchy" value="ancestor"/>
   <enumeration alias="audio graph" appinfo="structured collection of nodes that process audio inputs and outputs" value="AudioGraph"/>
   <enumeration appinfo="person or agent that creates an #X3DFile" value="author"/>
   <enumeration alias="authoring tool" appinfo="see #generator" value="AuthoringTool"/>
   <enumeration appinfo="abstract representation of the #user in an X3D #world" value="avatar"/>
   <enumeration appinfo="straight line passing through the #pointer location in the direction of the pointer" value="bearing"/>
   <enumeration alias="bindable node" appinfo="#node that may have many #instances in a #sceneGraph but only one instance may be active at any instant of #time" value="BindableNode"/>
   <enumeration appinfo="computer program that interprets 3X3DFiles, presents their content to a user on a #displayDevice, and allows the user to interact with #worlds defined by X3D files by means of a user interface" value="browser"/>
   <enumeration alias="browser extension" appinfo="#nodes defined using the prototyping mechanism that are understood only by certain #browsers" value="BrowserExtension"/>
   <enumeration alias="built-in node" appinfo="#node of a #type explicitly defined in this document" value="BuiltInNode"/>
   <enumeration appinfo="function defined in a #scriptingLanguage to which #events are passed" value="callback"/>
   <enumeration appinfo="instance of a #ChildrenNode" value="child"/>
   <enumeration alias="children node" appinfo="one of a set of #nodeTypes, instances of which can be collected in a group to share specific properties dependent on the type of the #GroupingNode" value="ChildrenNode"/>
   <enumeration alias="client system" appinfo="computer system, attached to a #network, that relies on another computer (the server) for essential processing functions" value="ClientSystem"/>
   <enumeration alias="collision proxy" appinfo="#node used as a substitute for all of a Collision node's children during collision detection" value="CollisionProxy"/>
   <enumeration alias="colour model color model" appinfo="characterization of a colour space in terms of explicit parameters" value="ColourModel"/>
   <enumeration appinfo="process of identifying #objects or parts of objects which do not need to be processed further by the #browser in order to produce the desired view of a #world" value="culling"/>
   <enumeration appinfo="#node which descends from another node in the #transformationHierarchy (a #ChildrenNode)" value="descendant"/>
   <enumeration alias="display device" appinfo="graphics device on which X3D #worlds may be rendered" value="DisplayDevice"/>
   <enumeration alias="drag sensor" appinfo="#pointingDeviceSensor that causes #events to be generated in response to sensor-dependent pointer motions" value="DragSensor"/>
   <enumeration alias="environmental sensor" appinfo="sensor #node that generates #events based on the location of the viewpoint in the #world or in relation to #objects in the world" value="EnvironmentalSensor"/>
   <enumeration appinfo="message sent from one #node to another as defined by a #ROUTE" value="event"/>
   <enumeration alias="event cascade" appinfo="sequence of @events initiated by a script or sensor event and propagated from #node to node along one or more #routes all of which are considered to have occurred simultaneously" value="EventCascade"/>
   <enumeration alias="execution model" appinfo="rules governing how #events are processed by #browsers and scripts" value="ExecutionModel"/>
   <enumeration alias="external prototype" appinfo="#prototype defined in an external file and referenced by a #URL" value="ExternaPrototype"/>
   <enumeration appinfo="property or attribute of a #node" value="field"/>
   <enumeration alias="field name" appinfo="identifier of a #field" value="FieldName"/>
   <enumeration appinfo="single rendering of a #world on a #displayDevice or a single time-step in a simulation" value="frame"/>
   <enumeration appinfo="computer program which creates #X3DFiles" value="generator"/>
   <enumeration alias="geometric property node" appinfo="#node defining the properties of a specific geometry node" value="GeometricPropertyNode"/>
   <enumeration alias="geometry node" appinfo="#node containing mathematical descriptions of points, lines, surfaces, text strings and solids" value="GeometryNode"/>
   <enumeration appinfo="receive #events from activated #pointingDevices" value="grab"/>
   <enumeration alias="grouping node" appinfo="one of a set of #nodeTypes which include a list of nodes, referred to as its #ChildrenNodes" value="GroupingNode"/>
   <enumeration alias="host application" appinfo="client application with which the #browser communicates using the SAI" value="HostApplication"/>
   <enumeration appinfo="two-dimensional (2D) rectangular array of pixel values" value="image"/>
   <enumeration appinfo="creating the illusion of being inside a computer-generated scene" value="immersive"/>
   <enumeration alias="in-lining" appinfo="mechanism by which one #X3DFile is hierarchically included in another" value="Inlining"/>
   <enumeration appinfo="the #node created by an #instantiation" value="instance"/>
   <enumeration appinfo="the creation of a #node based on its #nodeType" value="instantiation"/>
   <enumeration alias="interpolator node" appinfo="#node that defines a piece-wise or smoothly continuous interpolation" value="InterpolatorNode"/>
   <enumeration appinfo="private #network that uses the same protocols and standards as the Internet" value="intranet"/>
   <enumeration alias="level of detail" appinfo="amount of detail or complexity which is displayed at any particular #time for any particular #object" value="LevelOfDetail"/>
   <enumeration alias="line terminator" appinfo="linefeed character (0x0A) and/or carriage return character (0x0D)" value="LineTerminator"/>
   <enumeration appinfo="sequence of #events which would result in a specific event generator sending more than one event with the same #timestamp" value="loop"/>
   <enumeration appinfo="integrated presentation, typically on a computer, of content of various types, such as computer graphics, audio, and videon" value="multimedia"/>
   <enumeration appinfo="set of interconnected computers" value="network"/>
   <enumeration appinfo="fundamental component of a #sceneGraph that defines model information, such as graph structure, geometry, animation, interaction, object metadata, rendering, or display" value="node"/>
   <enumeration alias="node type" appinfo="characteristic of each node that describes, in general, its particular semantics" value="nodeType"/>
   <enumeration appinfo="collection of data and procedures, packaged according to the rules and syntax defined in this document. NOTE This term is usually synonymous with #node." value="object"/>
   <enumeration alias="order of preference" appinfo="order (specified by the user) in which a list of #field values is processed by the #browser" value="orderOfPreference"/>
   <enumeration appinfo="background texture that is placed behind all geometry in the scene and in front of the ground and sky" value="panorama"/>
   <enumeration appinfo="#node which is an instance of a #GroupingNode" value="parent"/>
   <enumeration appinfo="one element of an #image specified as a matrix of colour elements" value="pixel"/>
   <enumeration appinfo="location and direction in the #virtualWorld defined by the #pointingDevice with which the #user is currently interacting with the virtual world" value="pointer"/>
   <enumeration alias="pointing device" appinfo="hardware device connected to the #user's computer by which the user directly controls the location and direction of the #pointer" value="pointingDevice"/>
   <enumeration alias="pointing device sensor" appinfo="sensor #node that generates #events based on #user actions, such as #pointingDevice motions or button activations" value="pointingDeviceSensor"/>
   <enumeration appinfo="piecewise linear curve" value="polyline"/>
   <enumeration appinfo="named collection of criteria for functionality and conformance that defines an implementable subset of a standard" value="profile"/>
   <enumeration appinfo="definition of a new #nodeType in terms of the nodes defined in this document" value="prototype"/>
   <enumeration appinfo="mechanism for extending the set of #nodeTypes from within a #X3DFile" value="prototyping"/>
   <enumeration appinfo="connection between a #node generating an #event and a node receiving the event" value="ROUTE"/>
   <enumeration alias="scene graph" appinfo="ordered set of #nodes and #statements" value="sceneGraph"/>
   <enumeration appinfo="set of procedural functions normally executed as part of an #eventCascade" value="script"/>
   <enumeration appinfo="process of creating or referring to a #script" value="scripting"/>
   <enumeration alias="sensor node" appinfo="#node that enables the #user to interact with the #world in the scene graph hierarchy" value="sensorNode"/>
   <enumeration alias="separator character" appinfo="#UTF-8 character used to separate syntactical entities in an #X3DFile" value="separatorCharacter"/>
   <enumeration appinfo="#node which shares a #parent with other nodes" value="sibling"/>
   <enumeration alias="simulation tick" appinfo="smallest time unit capable of being identified in a digital simulation of analog time" value="simulationTick"/>
   <enumeration appinfo="spherical linear interpolation for animating 3D rotation values" value="slerp"/>
   <enumeration alias="special group node" appinfo="grouping node that exhibits special behaviour ( e.g., Switch or LOD)" value="specialGroupNode"/>
   <enumeration appinfo="A statement specifies fundamental scene-related information" value="statement"/>
   <enumeration appinfo="#pixel in an #image used as a #texture" value="texel"/>
   <enumeration appinfo="image used to create visual appearance effects when applied to geometry nodes" value="texture"/>
   <enumeration alias="texture coordinates" appinfo="set of coordinates used to map a #texture to geometry" value="textureCoordinates"/>
   <enumeration appinfo="monotonically increasing value generated by a node" value="time"/>
   <enumeration appinfo="that part of an #event that describes the #time the event occurred and that caused the message to be sent" value="timestamp"/>
   <enumeration alias="transformation hierarchy" appinfo="subset of the #sceneGraph consisting of #nodes that have well-defined coordinate systems" value="transformationHierarchy"/>
   <enumeration alias="transparency chunk" appinfo="section of a PNG file containing transparency information (derived from ISO/IEC 15948)" value="transparencyChunk"/>
   <enumeration appinfo="process the nodes in a scene graph in the correct order" value="traverse"/>
   <enumeration appinfo="person or agent who uses and interacts with #X3DFiles by means of a #browser" value="user"/>
   <enumeration appinfo="location, direction, and viewing angle in a #virtualWorld that determines the portion of the virtual world presented by the #browser to the #user" value="viewer"/>
   <enumeration alias="virtual world world" appinfo="See #world." value="virtualWorld"/>
   <enumeration alias="white space" appinfo="one or more consecutive occurrences of a #separatorCharacter" value="whiteSpace"/>
   <enumeration appinfo="collection of one or more #X3DFiles (potentially including other multimedia content) that is interpreted by an X3D #browser to present an interactive experience to the #user that is consistent with the intent of the #author" value="world"/>
   <enumeration alias="world coordinate space" appinfo="coordinate system in which each X3D #world is defined" value="worldCoordinateSpace"/>
   <enumeration alias="X3D browser browser" appinfo="see #browser" value="X3DBrowser"/>
   <enumeration appinfo="computer program that locates and transmits #X3DFiles and supporting files in response to requests from #browsers" value="X3DDocumentServer"/>
   <enumeration alias="X3D file" appinfo="set of X3D nodes and statements as defined in this document" value="X3DFile"/>
   <enumeration alias="XY plane" appinfo="plane perpendicular to the Z-axis that passes through the point Z = 0.0" value="XYPlane"/>
   <enumeration alias="YZ plane" appinfo="plane perpendicular to the X-axis that passes through the point X = 0.0" value="YZPlane"/>
   <enumeration alias="ZX plane" appinfo="plane perpendicular to the Y-axis that passes through the point Y = 0.0" value="ZXPlane"/>
  </SimpleType>
  <SimpleType appinfo="Feature point names for identification of HAnimSite/HAnimDIsplacer nodes as defined in the HAnim Architecture specification. Alternate names are also allowed, aliases from CAESAR and ISO 7250 are provided. HAnimSite/HAnimDisplacer name fields must append suffix _view _tip _pt based on functional purpose, thus strict hanimFeaturePointNameValues validation is turned off by default. CAESAR feature point names, index and description for use by HAnimDisplacer nodes as defined in the HAnim Architecture specification. ISO 7250-1 points are defined at https://www.iso.org/standard/65246.html Wikipedia overview reference https://en.wikipedia.org/wiki/Anatomical_terminology" baseType="xs:NMTOKEN" documentation="https://www.web3d.org/documents/specifications/19774/V2.0/Architecture/FeaturePoints.html" name="hanimFeaturePointNameValues">
   <enumeration alias="skull_tip,vertex" appinfo="CAESAR 2003 skull_vertex matches ISO 7250-1 part 5.22 Vertex (top of head). No corresponding landmark provided in CAESAR 2018." default="0.0050 1.7504 0.0055" documentation="https://en.wikipedia.org/wiki/Vertex_(anatomy)" index="0" loa="1" parent="skull" value="skull_vertex"/>
   <enumeration appinfo="glabella is between the eyebrows and above the nose" documentation="https://en.wikipedia.org/wiki/Glabella" index="1" loa="1" parent="skull" value="glabella"/>
   <enumeration appinfo="osseocartilaginous junction of the nasal dorsum" default="0.0058 1.6316 0.0852" documentation="https://en.wikipedia.org/wiki/Human_head" index="2" loa="1" parent="skull" value="sellion"/>
   <enumeration appinfo="Left Infraorbitale foramen is opening in maxillary bone of skull located below the infraorbital margin of the orbit." default="0.0341 1.6171 0.0752" documentation="https://en.wikipedia.org/wiki/Infraorbital_foramen" index="3" loa="1" parent="skull" value="l_infraorbitale"/>
   <enumeration appinfo="notch just above the tragus of the ear" default="0.0739 1.6348 0.0282" documentation="https://en.wiktionary.org/wiki/tragion" index="4" loa="1" parent="skull" value="l_tragion"/>
   <enumeration appinfo="Left Gonion is midpoint of mandibular angle of the jaw." default="0.0631 1.5530 0.0330" documentation="https://en.wikipedia.org/wiki/Angle_of_the_mandible" index="5" loa="1" parent="skull" value="l_gonion"/>
   <enumeration appinfo="Right Infraorbitale foramen is opening in maxillary bone of skull located below the infraorbital margin of the orbit." default="-0.0237 1.6171 0.0752" documentation="https://en.wikipedia.org/wiki/Infraorbital_foramen" index="6" loa="1" parent="skull" value="r_infraorbitale"/>
   <enumeration appinfo="notch just above the tragus of the ear" default="-0.0646 1.6347 0.0302" documentation="https://en.wiktionary.org/wiki/tragion" index="7" loa="1" parent="skull" value="r_tragion"/>
   <enumeration appinfo="Right Gonion is midpoint of the mandibular angle of the jaw." default="-0.0520 1.5529 0.0347" documentation="https://en.wikipedia.org/wiki/Angle_of_the_mandible" index="8" loa="1" parent="skull" value="r_gonion"/>
   <enumeration appinfo="center point above tip of chin" default="0.0061 1.5410 0.0805" documentation="https://www.cs.uu.nl/groups/MG/multimedia/publications/art/rsfp05.pdf" index="9" loa="3" parent="jaw" value="supramenton"/>
   <enumeration default="0.0064 1.520 -0.0815" documentation="https://www.merriam-webster.com/dictionary/cervicale" index="10" loa="2" parent="t1" value="cervicale"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Adam_s_apple" index="11" loa="2" parent="c2" value="adams_apple"/>
   <enumeration appinfo="Suprasternale" default="0.0084 1.4714 0.0551" documentation="https://medical-dictionary.thefreedictionary.com/spatium+suprasternale" index="12" loa="2" parent="t1" value="suprasternale"/>
   <enumeration default="0.0085 1.2995 0.1147" documentation="https://medical-dictionary.thefreedictionary.com/spatium+substernale" index="13" loa="2" parent="t10" value="substernale"/>
   <enumeration alias="l_clavicale" default="0.0271 1.4943 0.0394" documentation="https://en.wikipedia.org/wiki/Clavicle" index="14" loa="2" parent="l_clavicle" value="l_clavicle"/>
   <enumeration default="0.2032 1.4760 -0.0490" documentation="https://en.wikipedia.org/wiki/Acromion" index="15" loa="2" parent="l_clavicle" value="l_acromion"/>
   <enumeration alias="l_axilla_ant" appinfo="Left Axilla Proximal (Anterior)" default="0.1777 1.4065 -0.0075" documentation="https://en.wikipedia.org/wiki/Axilla" index="16" loa="2" parent="l_clavicle" value="l_axilla_proximal"/>
   <enumeration alias="l_axilla_post" appinfo="Left Axilla Distal (Posterior)" default="0.1706 1.4072 -0.0875" documentation="https://en.wikipedia.org/wiki/Axilla" index="17" loa="2" parent="l_clavicle" value="l_axilla_distal"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Axilla" index="18" loa="2" parent="l_clavicle" value="l_axilla_posterior_folds"/>
   <enumeration alias="r_clavicale" default="-0.0115 1.4943 0.0400" documentation="https://en.wikipedia.org/wiki/Clavicle" index="19" loa="2" parent="r_clavicle" value="r_clavicle"/>
   <enumeration default="-0.1905 1.4791 -0.0431" documentation="https://en.wikipedia.org/wiki/Acromion" index="20" loa="2" parent="r_clavicle" value="r_acromion"/>
   <enumeration alias="r_axilla_ant" appinfo="Right Axilla Proximal (Anterior)" default="-0.1626 1.4072 -0.0031" documentation="https://en.wikipedia.org/wiki/Axilla" index="21" loa="2" parent="r_clavicle" value="r_axilla_proximal"/>
   <enumeration alias="r_axilla_post" appinfo="Right Axilla Distal (Posterior)" default="-0.1603 1.4098 -0.0826" documentation="https://en.wikipedia.org/wiki/Axilla" index="22" loa="2" parent="r_clavicle" value="r_axilla_distal"/>
   <enumeration appinfo="Right Posterior Axillary Folds" documentation="https://en.wikipedia.org/wiki/Axilla" index="23" loa="2" parent="r_clavicle" value="r_axilla_posterior_folds"/>
   <enumeration alias="middle back" documentation="https://en.wikipedia.org/wiki/Vertebral_column" index="24" loa="3" parent="t5" value="spine_1_middle_back"/>
   <enumeration alias="lower back" default="0.0049 1.1908 -0.1113" documentation="https://en.wikipedia.org/wiki/Vertebral_column" index="25" loa="3" parent="l2" value="spine_2_lower_back"/>
   <enumeration alias="waist_preferred_ant" documentation="https://en.wikipedia.org/wiki/Waist" index="26" loa="3" parent="l2" value="waist_preferred_anterior"/>
   <enumeration alias="waist_preferred_post" default="0.2900 1.0915 -0.1091" documentation="https://en.wikipedia.org/wiki/Waist" index="27" loa="3" parent="l2" value="waist_preferred_posterior"/>
   <enumeration alias="l_rib10_midspine" default="0.0871 1.1925 0.0992" documentation="https://en.wikipedia.org/wiki/Rib" index="28" loa="3" parent="l2" value="l_rib10"/>
   <enumeration alias="Left Bustpoint" default="0.0918 1.3382 0.1192" documentation="https://www.cdc.gov/niosh/data/datasets/rd-1008-2016-0/pdfs/EMT-Data-Dictionary-508.pdf" index="29" loa="3" parent="t9" value="l_thelion"/>
   <enumeration alias="r_rib10_midspine" default="-0.0711 1.1941 0.1016" documentation="https://en.wikipedia.org/wiki/Rib" index="30" loa="3" parent="l2" value="r_rib10"/>
   <enumeration alias="Right Bustpoint" default="-0.0736 1.3385 0.1217" documentation="https://www.cdc.gov/niosh/data/datasets/rd-1008-2016-0/pdfs/EMT-Data-Dictionary-508.pdf" index="31" loa="3" parent="t9" value="r_thelion"/>
   <enumeration alias="Left Anterior Superior Iliac Spine" default="0.0925 0.9983 0.1052" documentation="https://en.wikipedia.org/wiki/Anterior_superior_iliac_spine" index="32" loa="1" parent="pelvis" value="l_asis"/>
   <enumeration default="0.1612 1.0537 0.0008" documentation="https://www.topendsports.com/testing/skinfold-iliac-crest.htm" index="33" loa="1" parent="pelvis" value="l_iliocristale"/>
   <enumeration alias="Left Posterior Superior Iliac Spine" default="0.0774 1.0190 -0.1151" documentation="https://en.wikipedia.org/wiki/Posterior_superior_iliac_spine" index="34" loa="1" parent="pelvis" value="l_psis"/>
   <enumeration alias="Right Anterior Superior Iliac Spine" default="-0.0887 1.0021 0.1112" documentation="https://en.wikipedia.org/wiki/Anterior_superior_iliac_spine" index="35" loa="1" parent="pelvis" value="r_asis"/>
   <enumeration default="-0.1525 1.0628 0.0035" documentation="https://www.topendsports.com/testing/skinfold-iliac-crest.htm" index="36" loa="1" parent="pelvis" value="r_iliocristale"/>
   <enumeration alias="Right Posterior Superior Iliac Spine" default="-0.0716 1.0190 -0.1138" documentation="https://en.wikipedia.org/wiki/Posterior_superior_iliac_spine" index="37" loa="1" parent="pelvis" value="r_psis"/>
   <enumeration default="0.0034 0.8266 0.0257" documentation="https://en.wikipedia.org/wiki/Crotch" index="38" loa="1" parent="pelvis" value="crotch"/>
   <enumeration alias="l_femoral_lateral_epicn,l_femoral_lateral_epicondyles" default="0.1598 0.4967 0.0297" documentation="https://en.wikipedia.org/wiki/Lateral_epicondyle_of_the_femur" index="39" loa="1" parent="l_thigh" value="l_femoral_lateral_epicondyle"/>
   <enumeration alias="l_femoral_medial_epicn,l_femoral_medial_epicondyles" default="0.1598 0.4967 0.0297" documentation="https://en.wikipedia.org/wiki/Medial_epicondyle_of_the_femur" index="40" loa="1" parent="l_thigh" value="l_femoral_medial_epicondyle"/>
   <enumeration alias="l_kneecap" documentation="https://en.wikipedia.org/wiki/Patella" index="41" loa="1" parent="l_thigh" value="l_suprapatella"/>
   <enumeration alias="l_trochanter" documentation="https://en.wikipedia.org/wiki/Trochanter" index="42" loa="1" parent="pelvis" value="l_trochanterion"/>
   <enumeration alias="r_femoral_lateral_epicn,r_femoral_lateral_epicondyles" default="-0.1421 0.4992 0.0310" documentation="https://en.wikipedia.org/wiki/Lateral_epicondyle_of_the_femur" index="43" loa="1" parent="r_thigh" value="r_femoral_lateral_epicondyle"/>
   <enumeration alias="r_femoral_medial_epicn,r_femoral_medial_epicondyles" default="-0.0221 0.5014 0.0289" documentation="https://en.wikipedia.org/wiki/Medial_epicondyle_of_the_femur" index="44" loa="1" parent="r_thigh" value="r_femoral_medial_epicondyle"/>
   <enumeration alias="r_kneecap" documentation="https://en.wikipedia.org/wiki/Patella" index="45" loa="1" parent="r_thigh" value="r_suprapatella"/>
   <enumeration alias="r_trochanter" documentation="https://en.wikipedia.org/wiki/Trochanter" index="46" loa="1" parent="pelvis" value="r_trochanterion"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Accessory_navicular_bone" index="47" loa="1" parent="l_calf" value="l_tibiale"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Malleolus" index="48" loa="1" parent="l_calf" value="l_medial_malleolus"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Malleolus" index="49" loa="1" parent="l_calf" value="l_lateral_malleolus"/>
   <enumeration documentation="https://www.oxfordreference.com/view/10.1093/oi/authority.20110803100523385" index="50" loa="1" parent="l_talus" value="l_sphyrion"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Accessory_navicular_bone" index="51" loa="1" parent="r_calf" value="r_tibiale"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Malleolus" index="52" loa="1" parent="r_calf" value="r_medial_malleolus"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Malleolus" index="53" loa="1" parent="r_calf" value="r_lateral_malleolus"/>
   <enumeration documentation="https://www.oxfordreference.com/view/10.1093/oi/authority.20110803100523385" index="54" loa="1" parent="r_talus" value="r_sphyrion"/>
   <enumeration alias="l_metatarsal_pha1" documentation="https://en.wikipedia.org/wiki/Metatarsal_bones" index="55" loa="4" parent="l_tarsal_proximal_phalanx_1" value="l_metatarsal_phalanx_1"/>
   <enumeration alias="l_metatarsal_pha5" documentation="https://en.wikipedia.org/wiki/Metatarsal_bones" index="56" loa="4" parent="l_tarsal_proximal_phalanx_5" value="l_metatarsal_phalanx_5"/>
   <enumeration default="0.2056 0.6743 -0.0482" documentation="https://en.wiktionary.org/wiki/dactylion" index="57" loa="2" parent="l_carpal_distal_phalanx_2" value="l_dactylion"/>
   <enumeration alias="l_calcaneous_post" documentation="https://en.wikipedia.org/wiki/Calcaneus" index="58" loa="1" parent="l_talus" value="l_calcaneus_posterior"/>
   <enumeration alias="r_metatarsal_pha1" documentation="https://en.wikipedia.org/wiki/Metatarsal_bones" index="59" loa="4" parent="r_tarsal_proximal_phalanx_1" value="r_metatarsal_phalanx_1"/>
   <enumeration alias="r_metatarsal_pha5" documentation="https://en.wikipedia.org/wiki/Metatarsal_bones" index="60" loa="4" parent="r_tarsal_proximal_phalanx_5" value="r_metatarsal_phalanx_5"/>
   <enumeration default="-0.1941 0.6772 -0.0423" documentation="https://en.wiktionary.org/wiki/dactylion" index="61" loa="2" parent="r_carpal_distal_phalanx_2" value="r_dactylion"/>
   <enumeration alias="r_calcaneous_post" documentation="https://en.wikipedia.org/wiki/Calcaneus" index="62" loa="1" parent="r_talus" value="r_calcaneus_posterior"/>
   <enumeration alias="l_humeral_lateral_epicn,l_humeral_lateral_epicondyles" default="0.2280 1.1482 -0.1100" documentation="https://en.wikipedia.org/wiki/Lateral_epicondyle_of_the_humerus" index="63" loa="1" parent="l_upperarm" value="l_humeral_lateral_epicondyle"/>
   <enumeration alias="l_humeral_medial_epicn,l_humeral_medial_epicondyles" default="0.1735 1.1272 -0.1113" documentation="https://en.wikipedia.org/wiki/Medial_epicondyle_of_the_humerus" index="64" loa="1" parent="l_forearm" value="l_humeral_medial_epicondyle"/>
   <enumeration default="0.1962 1.1375 -0.1123" documentation="https://en.wikipedia.org/wiki/Olecranon" index="65" loa="1" parent="l_forearm" value="l_olecranon"/>
   <enumeration alias="r_humeral_lateral_epicn,r_humeral_lateral_epicondyles" default="-0.2224 1.1517 -0.1033" documentation="https://en.wikipedia.org/wiki/Lateral_epicondyle_of_the_humerus" index="66" loa="1" parent="r_upperarm" value="r_humeral_lateral_epicondyle"/>
   <enumeration alias="r_humeral_medial_epicn,r_humeral_medial_epicondyles" default="-0.1680 1.1298 -0.1062" documentation="https://en.wikipedia.org/wiki/Medial_epicondyle_of_the_humerus" index="67" loa="1" parent="r_forearm" value="r_humeral_medial_epicondyle"/>
   <enumeration default="-0.1907 1.1405 -0.1065" documentation="https://en.wikipedia.org/wiki/Olecranon" index="68" loa="1" parent="r_forearm" value="r_olecranon"/>
   <enumeration default="0.2182 1.1212 -0.1167" documentation="https://en.wikipedia.org/wiki/Carpal_bones" index="69" loa="1" parent="l_forearm" value="l_radiale"/>
   <enumeration default="0.2142 0.8529 -0.0648" documentation="https://en.wikipedia.org/wiki/Ulnar_styloid_process" index="70" loa="1" parent="l_carpal" value="l_ulnar_styloid"/>
   <enumeration default="0.1901 0.8645 -0.0415" documentation="https://en.wikipedia.org/wiki/Radial_styloid_process" index="71" loa="1" parent="l_forearm" value="l_radial_styloid"/>
   <enumeration default="-0.2130 1.1305 -0.1091" documentation="https://en.wikipedia.org/wiki/Carpal_bones" index="72" loa="1" parent="r_forearm" value="r_radiale"/>
   <enumeration default="-0.2117 0.8562 -0.0584" documentation="https://en.wikipedia.org/wiki/Ulnar_styloid_process" index="73" loa="1" parent="r_carpal" value="r_ulnar_styloid"/>
   <enumeration default="-0.1884 0.8676 -0.0360" documentation="https://en.wikipedia.org/wiki/Radial_styloid_process" index="74" loa="1" parent="r_forearm" value="r_radial_styloid"/>
   <enumeration alias="l_metacarpal_pha2,l_metacarpal_phalanx" documentation="https://en.wikipedia.org/wiki/Metacarpal_bones" index="75" loa="2" parent="l_metacarpal_2" value="l_metacarpal_phalanx_2"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Metacarpal_bones" index="76" loa="2" parent="l_metacarpal_3" value="l_metacarpal_phalanx_3"/>
   <enumeration alias="l_metacarpal_pha5" documentation="https://en.wikipedia.org/wiki/Metacarpal_bones" index="77" loa="2" parent="l_metacarpal_5" value="l_metacarpal_phalanx_5"/>
   <enumeration alias="r_metacarpal_pha2,r_metacarpal_phalanx" documentation="https://en.wikipedia.org/wiki/Metacarpal_bones" index="78" loa="2" parent="r_metacarpal_2" value="r_metacarpal_phalanx_2"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Metacarpal_bones" index="79" loa="2" parent="r_metacarpal_3" value="r_metacarpal_phalanx_3"/>
   <enumeration alias="r_metacarpal_pha5" documentation="https://en.wikipedia.org/wiki/Metacarpal_bones" index="80" loa="2" parent="r_metacarpal_5" value="r_metacarpal_phalanx_5"/>
   <enumeration alias="nuchal" default="0.0039 1.5972 -0.0796" documentation="https://en.wikipedia.org/wiki/Squamous_part_of_occipital_bone" index="81" loa="1" parent="skull" value="nuchale"/>
   <enumeration default="0.0646 1.5141 -0.0380" documentation="https://en.wikipedia.org/wiki/Neck" index="82" loa="3" parent="c7" value="l_neck_base"/>
   <enumeration default="-0.0419 1.5149 -0.0220" documentation="https://en.wikipedia.org/wiki/Neck" index="83" loa="3" parent="c7" value="r_neck_base"/>
   <enumeration alias="belly button" default="0.0069 1.0966 0.1017" documentation="https://en.wikipedia.org/wiki/Navel" index="84" loa="1" parent="l5" value="navel"/>
   <enumeration alias="l_canthus" documentation="https://en.wikipedia.org/wiki/Canthus" index="85" loa="1" parent="skull" value="l_ectocanthus"/>
   <enumeration alias="r_canthus" documentation="https://en.wikipedia.org/wiki/Canthus" index="86" loa="1" parent="skull" value="r_ectocanthus"/>
   <enumeration alias="chin" documentation="https://en.wikipedia.org/wiki/Human_head" index="87" loa="3" parent="jaw" value="menton"/>
   <enumeration alias="mesosternum" documentation="https://en.wiktionary.org/wiki/mesosternum" index="88" loa="2" parent="t6" value="mesosternale"/>
   <enumeration documentation="https://www.columbia.edu/itc/hs/medical/humanAnatomy/yuan/craniologyISlides.pdf" index="89" loa="1" parent="skull" value="opisthocranion"/>
   <enumeration default="0.0993 0.4881 -0.0309" documentation="https://en.wikipedia.org/wiki/Popliteal_fossa" index="90" loa="1" parent="l_thigh" value="l_knee_crease"/>
   <enumeration default="-0.0825 0.4932 -0.0326" documentation="https://en.wikipedia.org/wiki/Popliteal_fossa" index="91" loa="1" parent="r_thigh" value="r_knee_crease"/>
   <enumeration alias="median plane" documentation="https://en.wikipedia.org/wiki/Median_plane" index="92" loa="2" parent="t6" value="rear_center_midsagittal_plane"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Buttocks" index="93" loa="1" parent="pelvis" value="buttocks_standing_wall_contact_point"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Sagittal_plane" index="94" loa="2" parent="t6" value="l_chest_midsagittal_plane"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Sagittal_plane" index="95" loa="2" parent="t6" value="r_chest_midsagittal_plane"/>
   <enumeration documentation="https://en.wiktionary.org/wiki/bideltoid" index="96" loa="1" parent="l_upperarm" value="l_bideltoid"/>
   <enumeration documentation="https://en.wiktionary.org/wiki/bideltoid" index="97" loa="1" parent="r_upperarm" value="r_bideltoid"/>
   <enumeration alias="l_thumb_distal" default="0.1982 0.8061 0.0759" documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="101" loa="2" parent="l_carpal_distal_phalanx_1" value="l_carpal_distal_phalanx_1"/>
   <enumeration alias="l_index_distal" default="0.2089 0.6858 -0.0245" documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="102" loa="2" parent="l_carpal_distal_phalanx_2" value="l_carpal_distal_phalanx_2"/>
   <enumeration alias="l_middle_distal" default="0.2080 0.6731 -0.0491" documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="103" loa="2" parent="l_carpal_distal_phalanx_3" value="l_carpal_distal_phalanx_3"/>
   <enumeration alias="l_ring_distal" default="0.2035 0.6750 -0.0756" documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="104" loa="2" parent="l_carpal_distal_phalanx_4" value="l_carpal_distal_phalanx_4"/>
   <enumeration alias="l_pinky_distal" default="0.2014 0.7009 -0.1012" documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="105" loa="2" parent="l_carpal_distal_phalanx_5" value="l_carpal_distal_phalanx_5"/>
   <enumeration alias="r_thumb_distal" default="-0.1869 0.8090 0.0820" documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="106" loa="2" parent="r_carpal_distal_phalanx_1" value="r_carpal_distal_phalanx_1"/>
   <enumeration alias="r_index_distal" default="-0.1980 0.6883 -0.0180" documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="107" loa="2" parent="r_carpal_distal_phalanx_2" value="r_carpal_distal_phalanx_2"/>
   <enumeration alias="r_middle_distal" default="-0.1969 0.6758 -0.0427" documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="108" loa="2" parent="r_carpal_distal_phalanx_3" value="r_carpal_distal_phalanx_3"/>
   <enumeration alias="r_ring_distal" default="-0.1934 0.6778 -0.0693" documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="109" loa="2" parent="r_carpal_distal_phalanx_4" value="r_carpal_distal_phalanx_4"/>
   <enumeration alias="r_pinky_distal" default="-0.1938 0.7035 -0.0949" documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="110" loa="2" parent="r_carpal_distal_phalanx_5" value="r_carpal_distal_phalanx_5"/>
   <enumeration default="0.090 0.012 0.188" documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="111" loa="4" parent="l_tarsal_distal_phalanx_1" value="l_tarsal_distal_phalanx_1"/>
   <enumeration alias="l_digit2" default="0.110 0.011 0.19" documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="112" loa="2" parent="l_tarsal_distal_phalanx_2" value="l_tarsal_distal_phalanx_2"/>
   <enumeration default="0.128 0.011 0.185" documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="113" loa="4" parent="l_tarsal_distal_phalanx_3" value="l_tarsal_distal_phalanx_3"/>
   <enumeration default="0.142 0.011 0.178" documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="114" loa="4" parent="l_tarsal_distal_phalanx_4" value="l_tarsal_distal_phalanx_4"/>
   <enumeration alias="l_tarsal_distal_pha5" default="0.154 0.010 0.168" documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="115" loa="4" parent="l_tarsal_distal_phalanx_5" value="l_tarsal_distal_phalanx_5"/>
   <enumeration default="-0.090 0.012 0.188" documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="116" loa="4" parent="r_tarsal_distal_phalanx_1" value="r_tarsal_distal_phalanx_1"/>
   <enumeration alias="r_digit2" default="-0.110 0.011 0.19" documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="117" loa="2" parent="r_tarsal_distal_phalanx_2" value="r_tarsal_distal_phalanx_2"/>
   <enumeration default="-0.128 0.011 0.185" documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="118" loa="4" parent="r_tarsal_distal_phalanx_3" value="r_tarsal_distal_phalanx_3"/>
   <enumeration default="-0.142 0.011 0.178" documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="119" loa="4" parent="r_tarsal_distal_phalanx_4" value="r_tarsal_distal_phalanx_4"/>
   <enumeration alias="r_tarsal_distal_pha5" default="-0.154 0.010 0.168" documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="120" loa="4" parent="r_tarsal_distal_phalanx_5" value="r_tarsal_distal_phalanx_5"/>
  </SimpleType>
  <SimpleType appinfo="Enumerated keyword names for keyword=value metadata pairs describing a given HAnimHumanoid. Additional keyword=value pairs may be included as needed for specific applications. This list is unbounded, additional enumeration values are allowed." baseType="xs:NMTOKEN" documentation="https://www.web3d.org/documents/specifications/19774/V2.0/Architecture/ObjectInterfaces.html#Humanoid" name="hanimHumanoidInfoKeyValues">
   <enumeration appinfo="Name of Humanoid author." value="authorName"/>
   <enumeration appinfo="Email address of Humanoid author." value="authorEmail"/>
   <enumeration appinfo="Copyright information for this Humanoid model (if any)." value="copyright"/>
   <enumeration appinfo="Creation data for this for this Humanoid model." value="creationDate"/>
   <enumeration appinfo="Usage restrictions for this Humanoid model (if any)." value="usageRestrictions"/>
   <enumeration appinfo="The humanoidVersion term refers to the version of the humanoid being used, in order to track revisions to the data. It is not the same as the version field of the Humanoid object, which refers to the version of the HAnim specification that was used when building the humanoid." value="humanoidVersion"/>
   <enumeration appinfo="Description of Humanoid age (not necessarily numeric)." value="age"/>
   <enumeration appinfo="The gender term typically has a value of female, male or neuter." value="gender"/>
   <enumeration appinfo="SFFloat Humanoid height in base units (typically meters)." value="height"/>
   <enumeration appinfo="SFFloat Humanoid weight in base units (typically kilograms)." value="weight"/>
  </SimpleType>
  <SimpleType appinfo="CAESAR joint names for identification of HAnimJoint nodes as defined in the HAnim Architecture specification. This list is unbounded, additional enumeration values are allowed." baseType="xs:NMTOKEN" documentation="https://www.web3d.org/documents/specifications/19774/V2.0/Architecture/concepts.html#Hierarchy" name="hanimJointNameValues">
   <enumeration default="0 0.8240 0.0277" documentation="https://en.wikipedia.org/wiki/Outline_of_human_anatomy#Joints" index="1" loa="0" value="humanoid_root"/>
   <enumeration alias="SIJ,SI joint" default="0 0.9149 0.0016" documentation="https://en.wikipedia.org/wiki/Sacroiliac_joint" index="2" loa="1" parent="humanoid_root" value="sacroiliac"/>
   <enumeration default="0.0961 0.9124 -0.0001" documentation="https://en.wikipedia.org/wiki/Hip" index="3" loa="1" parent="sacroiliac" value="l_hip"/>
   <enumeration default="0.1040 0.4867 0.0308" documentation="https://en.wikipedia.org/wiki/Knee" index="4" loa="1" parent="l_hip" value="l_knee"/>
   <enumeration alias="l_ankle" default="0.1101 0.0656 -0.0736" documentation="https://en.wikipedia.org/wiki/Ankle" index="5" loa="1" parent="l_knee" value="l_talocrural"/>
   <enumeration alias="l_talocalcaneal" documentation="https://en.wikipedia.org/wiki/Subtalar_joint" index="6" loa="4" parent="l_talocrural" value="l_talocalcaneonavicular"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Cuneonavicular_joint" index="7" loa="4" parent="l_talocalcaneonavicular" value="l_cuneonavicular_1"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Tarsometatarsal_joints" index="8" loa="4" parent="l_cuneonavicular_1" value="l_tarsometatarsal_1"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Metatarsophalangeal_joints" index="9" loa="4" parent="l_tarsometatarsal_1" value="l_metatarsophalangeal_1"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_foot" index="10" loa="4" parent="l_metatarsophalangeal_1" value="l_tarsal_interphalangeal_1"/>
   <enumeration alias="l_cuneonavicular" documentation="https://en.wikipedia.org/wiki/Cuneonavicular_joint" index="11" loa="4" parent="l_talocalcaneonavicular" value="l_cuneonavicular_2"/>
   <enumeration alias="l_subtalar,l_tarsometatarsal" default="0.1086 0.0001 -0.0368" documentation="https://en.wikipedia.org/wiki/Tarsometatarsal_joints" index="12" loa="2" parent="l_cuneonavicular_2" value="l_tarsometatarsal_2"/>
   <enumeration alias="l_midtarsal,l_metatarsophalangeal" default="0.1086 0.0001 0.0368" documentation="https://en.wikipedia.org/wiki/Metatarsophalangeal_joints" index="13" loa="1" parent="l_tarsometatarsal_2" value="l_metatarsophalangeal_2"/>
   <enumeration alias="l_tarsal_proximal_interphalangeal" documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_foot" index="14" loa="4" parent="l_metatarsophalangeal_2" value="l_tarsal_proximal_interphalangeal_2"/>
   <enumeration alias="l_tarsal_distal_interphalangeal" default="0.1086 0.0000 0.0762" documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_foot" index="15" loa="2" parent="l_tarsal_proximal_interphalangeal_2" value="l_tarsal_distal_interphalangeal_2"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Cuneonavicular_joint" index="16" loa="4" parent="l_talocalcaneonavicular" value="l_cuneonavicular_3"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Tarsometatarsal_joints" index="17" loa="4" parent="l_cuneonavicular_3" value="l_tarsometatarsal_3"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Metatarsophalangeal_joints" index="18" loa="4" parent="l_tarsometatarsal_3" value="l_metatarsophalangeal_3"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_foot" index="19" loa="4" parent="l_metatarsophalangeal_3" value="l_tarsal_proximal_interphalangeal_3"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_foot" index="20" loa="4" parent="l_tarsal_proximal_interphalangeal_3" value="l_tarsal_distal_interphalangeal_3"/>
   <enumeration alias="l_calcaneuscuboid" documentation="https://en.wikipedia.org/wiki/Calcaneocuboid_joint" index="21" loa="4" parent="l_talocrural" value="l_calcaneocuboid"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Transverse_tarsal_joint" index="22" loa="4" parent="l_calcaneocuboid" value="l_transversetarsal"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Tarsometatarsal_joints" index="23" loa="4" parent="l_transversetarsal" value="l_tarsometatarsal_4"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Metatarsophalangeal_joints" index="24" loa="4" parent="l_tarsometatarsal_4" value="l_metatarsophalangeal_4"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_foot" index="25" loa="4" parent="l_metatarsophalangeal_4" value="l_tarsal_proximal_interphalangeal_4"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_foot" index="26" loa="4" parent="l_tarsal_proximal_interphalangeal_4" value="l_tarsal_distal_interphalangeal_4"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Tarsometatarsal_joints" index="27" loa="4" parent="l_transversetarsal" value="l_tarsometatarsal_5"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Metatarsophalangeal_joints" index="28" loa="4" parent="l_tarsometatarsal_5" value="l_metatarsophalangeal_5"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_foot" index="29" loa="4" parent="l_metatarsophalangeal_5" value="l_tarsal_proximal_interphalangeal_5"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_foot" index="30" loa="4" parent="l_tarsal_proximal_interphalangeal_5" value="l_tarsal_distal_interphalangeal_5"/>
   <enumeration default="-0.0950 0.9171 0.0029" documentation="https://en.wikipedia.org/wiki/Hip" index="31" loa="1" parent="sacroiliac" value="r_hip"/>
   <enumeration default="-0.0867 0.4913 0.0318" documentation="https://en.wikipedia.org/wiki/Knee" index="32" loa="1" parent="r_hip" value="r_knee"/>
   <enumeration alias="r_ankle" default="-0.0801 0.0712 -0.0766" documentation="https://en.wikipedia.org/wiki/Ankle" index="33" loa="1" parent="r_knee" value="r_talocrural"/>
   <enumeration alias="r_talocalcaneal" documentation="https://en.wikipedia.org/wiki/Subtalar_joint" index="34" loa="4" parent="r_talocrural" value="r_talocalcaneonavicular"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Cuneonavicular_joint" index="35" loa="4" parent="r_talocalcaneonavicular" value="r_cuneonavicular_1"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Tarsometatarsal_joints" index="36" loa="4" parent="r_cuneonavicular_1" value="r_tarsometatarsal_1"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Metatarsophalangeal_joints" index="37" loa="4" parent="r_tarsometatarsal_1" value="r_metatarsophalangeal_1"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_foot" index="38" loa="4" parent="r_metatarsophalangeal_1" value="r_tarsal_interphalangeal_1"/>
   <enumeration alias="r_cuneonavicular" documentation="https://en.wikipedia.org/wiki/Cuneonavicular_joint" index="39" loa="4" parent="r_talocalcaneonavicular" value="r_cuneonavicular_2"/>
   <enumeration alias="r_subtalar,r_tarsometatarsal" default="-0.0801 0.0000 -0.0368" documentation="https://en.wikipedia.org/wiki/Tarsometatarsal_joints" index="40" loa="2" parent="r_cuneonavicular_2" value="r_tarsometatarsal_2"/>
   <enumeration alias="r_midtarsal,r_metatarsophalangeal" default="-0.0801 0.0000 0.0368" documentation="https://en.wikipedia.org/wiki/Metatarsophalangeal_joints" index="41" loa="1" parent="r_tarsometatarsal_2" value="r_metatarsophalangeal_2"/>
   <enumeration alias="r_tarsal_proximal_interphalangeal" documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_foot" index="42" loa="4" parent="r_metatarsophalangeal_2" value="r_tarsal_proximal_interphalangeal_2"/>
   <enumeration alias="r_metatarsal,r_tarsal_distal_interphalangeal" default="-0.0801 0.0039 0.0732" documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_foot" index="43" loa="2" parent="r_tarsal_proximal_interphalangeal_2" value="r_tarsal_distal_interphalangeal_2"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Cuneonavicular_joint" index="44" loa="4" parent="r_talocalcaneonavicular" value="r_cuneonavicular_3"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Tarsometatarsal_joints" index="45" loa="4" parent="r_cuneonavicular_3" value="r_tarsometatarsal_3"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Metatarsophalangeal_joints" index="46" loa="4" parent="r_tarsometatarsal_3" value="r_metatarsophalangeal_3"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_foot" index="47" loa="4" parent="r_metatarsophalangeal_3" value="r_tarsal_proximal_interphalangeal_3"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_foot" index="48" loa="4" parent="r_tarsal_proximal_interphalangeal_3" value="r_tarsal_distal_interphalangeal_3"/>
   <enumeration alias="r_calcaneuscuboid" documentation="https://en.wikipedia.org/wiki/Calcaneocuboid_joint" index="49" loa="4" parent="r_talocrural" value="r_calcaneocuboid"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Transverse_tarsal_joint" index="50" loa="4" parent="r_calcaneocuboid" value="r_transversetarsal"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Tarsometatarsal_joints" index="51" loa="4" parent="r_transversetarsal" value="r_tarsometatarsal_4"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Metatarsophalangeal_joints" index="52" loa="4" parent="r_tarsometatarsal_4" value="r_metatarsophalangeal_4"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_foot" index="53" loa="4" parent="r_metatarsophalangeal_4" value="r_tarsal_proximal_interphalangeal_4"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_foot" index="54" loa="4" parent="r_tarsal_proximal_interphalangeal_4" value="r_tarsal_distal_interphalangeal_4"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Tarsometatarsal_joints" index="55" loa="4" parent="r_transversetarsal" value="r_tarsometatarsal_5"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Metatarsophalangeal_joints" index="56" loa="4" parent="r_tarsometatarsal_5" value="r_metatarsophalangeal_5"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_foot" index="57" loa="4" parent="r_metatarsophalangeal_5" value="r_tarsal_proximal_interphalangeal_5"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_foot" index="58" loa="4" parent="r_tarsal_proximal_interphalangeal_5" value="r_tarsal_distal_interphalangeal_5"/>
   <enumeration default="0.0028 1.0568 -0.0776" documentation="https://en.wikipedia.org/wiki/Vertebral_column" index="59" loa="1" parent="humanoid_root" value="vl5"/>
   <enumeration default="0.0035 1.0925 -0.0787" documentation="https://en.wikipedia.org/wiki/Vertebral_column" index="60" loa="3" parent="vl5" value="vl4"/>
   <enumeration default="0.0041 1.1276 -0.0796" documentation="https://en.wikipedia.org/wiki/Vertebral_column" index="61" loa="2" parent="vl4" value="vl3"/>
   <enumeration default="0.0045 1.1546 -0.0800" documentation="https://en.wikipedia.org/wiki/Vertebral_column" index="62" loa="3" parent="vl3" value="vl2"/>
   <enumeration default="0.0048 1.1912 -0.0805" documentation="https://en.wikipedia.org/wiki/Vertebral_column" index="63" loa="2" parent="vl2" value="vl1"/>
   <enumeration default="0.0051 1.2278 -0.0808" documentation="https://en.wikipedia.org/wiki/Vertebral_column" index="64" loa="3" parent="vl1" value="vt12"/>
   <enumeration default="0.0053 1.2679 -0.0810" documentation="https://en.wikipedia.org/wiki/Vertebral_column" index="65" loa="3" parent="vt12" value="vt11"/>
   <enumeration default="0.0056 1.2848 -0.0822" documentation="https://en.wikipedia.org/wiki/Vertebral_column" index="66" loa="2" parent="vt11" value="vt10"/>
   <enumeration default="0.0057 1.3126 -0.0838" documentation="https://en.wikipedia.org/wiki/Vertebral_column" index="67" loa="3" parent="vt10" value="vt9"/>
   <enumeration default="0.0057 1.3382 -0.0845" documentation="https://en.wikipedia.org/wiki/Vertebral_column" index="68" loa="3" parent="vt9" value="vt8"/>
   <enumeration default="0.0058 1.3625 -0.0833" documentation="https://en.wikipedia.org/wiki/Vertebral_column" index="69" loa="3" parent="vt8" value="vt7"/>
   <enumeration default="0.0059 1.3866 -0.0800" documentation="https://en.wikipedia.org/wiki/Vertebral_column" index="70" loa="2" parent="vt7" value="vt6"/>
   <enumeration default="0.0060 1.4102 -0.0745" documentation="https://en.wikipedia.org/wiki/Vertebral_column" index="71" loa="3" parent="vt6" value="vt5"/>
   <enumeration default="0.0061 1.4320 -0.0675" documentation="https://en.wikipedia.org/wiki/Vertebral_column" index="72" loa="3" parent="vt5" value="vt4"/>
   <enumeration default="0.0062 1.4583 -0.0570" documentation="https://en.wikipedia.org/wiki/Vertebral_column" index="73" loa="3" parent="vt4" value="vt3"/>
   <enumeration default="0.0063 1.4761 -0.0484" documentation="https://en.wikipedia.org/wiki/Vertebral_column" index="74" loa="3" parent="vt3" value="vt2"/>
   <enumeration default="0.0065 1.4951 -0.0387" documentation="https://en.wikipedia.org/wiki/Vertebral_column" index="75" loa="2" parent="vt2" value="vt1"/>
   <enumeration default="0.0066 1.5132 -0.0301" documentation="https://en.wikipedia.org/wiki/Vertebral_column" index="76" loa="3" parent="vt1" value="vc7"/>
   <enumeration default="0.0066 1.5357 -0.0143" documentation="https://en.wikipedia.org/wiki/Vertebral_column" index="77" loa="3" parent="vc7" value="vc6"/>
   <enumeration default="0.0066 1.5520 -0.0082" documentation="https://en.wikipedia.org/wiki/Vertebral_column" index="78" loa="3" parent="vc6" value="vc5"/>
   <enumeration default="0.0066 1.5662 -0.0084" documentation="https://en.wikipedia.org/wiki/Vertebral_column" index="79" loa="2" parent="vc5" value="vc4"/>
   <enumeration default="0.0066 1.5800 -0.0103" documentation="https://en.wikipedia.org/wiki/Vertebral_column" index="80" loa="3" parent="vc4" value="vc3"/>
   <enumeration default="0.0066 1.5928 -0.0103" documentation="https://en.wikipedia.org/wiki/Vertebral_column" index="81" loa="2" parent="vc3" value="vc2"/>
   <enumeration default="0.0066 1.6144 -0.0034" documentation="https://en.wikipedia.org/wiki/Vertebral_column" index="82" loa="3" parent="vc2" value="vc1"/>
   <enumeration default="0.0044 1.6209 0.0236" documentation="https://en.wikipedia.org/wiki/Skull" index="83" loa="1" parent="vc1" value="skullbase"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Eyelid" index="84" loa="3" parent="skullbase" value="l_eyelid_joint"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Eyelid" index="85" loa="3" parent="skullbase" value="r_eyelid_joint"/>
   <enumeration default="0.0336 1.6332 0.0502" documentation="https://en.wikipedia.org/wiki/Eye" index="86" loa="3" parent="skullbase" value="l_eyeball_joint"/>
   <enumeration default="-0.0236 1.6331 0.0510" documentation="https://en.wikipedia.org/wiki/Eye" index="87" loa="3" parent="skullbase" value="r_eyeball_joint"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Eyebrow" index="88" loa="3" parent="skullbase" value="l_eyebrow_joint"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Eyebrow" index="89" loa="3" parent="skullbase" value="r_eyebrow_joint"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Temporomandibular_joint" index="90" loa="3" parent="skullbase" value="temporomandibular"/>
   <enumeration default="0.0820 1.4488 -0.0353" documentation="https://en.wikipedia.org/wiki/Sternoclavicular_joint" index="91" loa="2" parent="vt1" value="l_sternoclavicular"/>
   <enumeration default="0.0962 1.4269 -0.0424" documentation="https://en.wikipedia.org/wiki/Acromioclavicular_joint" index="92" loa="2" parent="l_sternoclavicular" value="l_acromioclavicular"/>
   <enumeration default="0.2029 1.4376 -0.0387" documentation="https://en.wikipedia.org/wiki/Shoulder" index="93" loa="1" parent="l_acromioclavicular" value="l_shoulder"/>
   <enumeration default="0.2014 1.1357 -0.0682" documentation="https://en.wikipedia.org/wiki/Elbow" index="94" loa="1" parent="l_shoulder" value="l_elbow"/>
   <enumeration alias="l_wrist" default="0.1984 0.8663 -0.0583" documentation="https://en.wikipedia.org/wiki/Wrist" index="95" loa="1" parent="l_elbow" value="l_radiocarpal"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Midcarpal_joint" index="96" loa="4" parent="l_radiocarpal" value="l_midcarpal_1"/>
   <enumeration alias="l_thumb1" default="0.1924 0.8472 -0.0534" documentation="https://en.wikipedia.org/wiki/Carpometacarpal_joint" index="97" loa="2" parent="l_midcarpal_1" value="l_carpometacarpal_1"/>
   <enumeration alias="l_thumb2" default="0.1951 0.8226 0.0246" documentation="https://en.wikipedia.org/wiki/Metacarpophalangeal_joint" index="98" loa="2" parent="l_carpometacarpal_1" value="l_metacarpophalangeal_1"/>
   <enumeration alias="l_thumb3" default="0.1955 0.8159 0.0464" documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_the_hand" index="99" loa="2" parent="l_metacarpophalangeal_1" value="l_carpal_interphalangeal_1"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Midcarpal_joint" index="100" loa="4" parent="l_radiocarpal" value="l_midcarpal_2"/>
   <enumeration alias="l_index0,l_carpometacarpal" default="0.1983 0.8024 -0.0280" documentation="https://en.wikipedia.org/wiki/Carpometacarpal_joint" index="101" loa="2" parent="l_midcarpal_2" value="l_carpometacarpal_2"/>
   <enumeration alias="l_index1,l_metacarpophalangeal" default="0.1983 0.7815 -0.0280" documentation="https://en.wikipedia.org/wiki/Metacarpophalangeal_joint" index="102" loa="2" parent="l_carpometacarpal_2" value="l_metacarpophalangeal_2"/>
   <enumeration alias="l_index2,l_carpal_proximal_interphalangeal" default="0.2017 0.7363 -0.0248" documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_the_hand" index="103" loa="2" parent="l_metacarpophalangeal_2" value="l_carpal_proximal_interphalangeal_2"/>
   <enumeration alias="l_index3,l_carpal_distal_interphalangeal" default="0.2028 0.7139 -0.0236" documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_the_hand" index="104" loa="2" parent="l_carpal_proximal_interphalangeal_2" value="l_carpal_distal_interphalangeal_2"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Midcarpal_joint" index="105" loa="4" parent="l_radiocarpal" value="l_midcarpal_3"/>
   <enumeration alias="l_middle0" default="0.1987 0.8029 -0.0530" documentation="https://en.wikipedia.org/wiki/Carpometacarpal_joint" index="106" loa="2" parent="l_midcarpal_3" value="l_carpometacarpal_3"/>
   <enumeration alias="l_middle1" default="0.1987 0.7818 -0.0530" documentation="https://en.wikipedia.org/wiki/Metacarpophalangeal_joint" index="107" loa="2" parent="l_carpometacarpal_3" value="l_metacarpophalangeal_3"/>
   <enumeration alias="l_middle2" default="0.2013 0.7273 -0.0503" documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_the_hand" index="108" loa="2" parent="l_metacarpophalangeal_3" value="l_carpal_proximal_interphalangeal_3"/>
   <enumeration alias="l_middle3" default="0.2026 0.7011 -0.0494" documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_the_hand" index="109" loa="2" parent="l_carpal_proximal_interphalangeal_3" value="l_carpal_distal_interphalangeal_3"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Midcarpal_joint" index="110" loa="4" parent="l_radiocarpal" value="l_midcarpal_4_5"/>
   <enumeration alias="l_ring0" default="0.1956 0.8019 -0.0794" documentation="https://en.wikipedia.org/wiki/Carpometacarpal_joint" index="111" loa="2" parent="l_midcarpal_4_5" value="l_carpometacarpal_4"/>
   <enumeration alias="l_ring1" default="0.1956 0.7815 -0.0794" documentation="https://en.wikipedia.org/wiki/Metacarpophalangeal_joint" index="112" loa="2" parent="l_carpometacarpal_4" value="l_metacarpophalangeal_4"/>
   <enumeration alias="l_ring2" default="0.1973 0.7287 -0.0777" documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_the_hand" index="113" loa="2" parent="l_metacarpophalangeal_4" value="l_carpal_proximal_interphalangeal_4"/>
   <enumeration alias="l_ring3" documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_the_hand" index="114" loa="2" parent="l_carpal_proximal_interphalangeal_4" value="l_carpal_distal_interphalangeal_4"/>
   <enumeration alias="l_pinky0" default="0.1925 0.8066 -0.1036" documentation="https://en.wikipedia.org/wiki/Carpometacarpal_joint" index="115" loa="2" parent="l_midcarpal_4_5" value="l_carpometacarpal_5"/>
   <enumeration alias="l_pinky1" default="0.1925 0.7866 -0.1036" documentation="https://en.wikipedia.org/wiki/Metacarpophalangeal_joint" index="116" loa="2" parent="l_carpometacarpal_5" value="l_metacarpophalangeal_5"/>
   <enumeration alias="l_pinky2" default="0.1938 0.7452 -0.1024" documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_the_hand" index="117" loa="2" parent="l_metacarpophalangeal_5" value="l_carpal_proximal_interphalangeal_5"/>
   <enumeration alias="l_pinky3" default="0.1948 0.7277 -0.1017" documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_the_hand" index="118" loa="2" parent="l_carpal_proximal_interphalangeal_5" value="l_carpal_distal_interphalangeal_5"/>
   <enumeration default="-0.0694 1.4600 -0.0330" documentation="https://en.wikipedia.org/wiki/Sternoclavicular_joint" index="119" loa="2" parent="vt1" value="r_sternoclavicular"/>
   <enumeration default="-0.0836 1.4281 -0.0401" documentation="https://en.wikipedia.org/wiki/Acromioclavicular_joint" index="120" loa="2" parent="r_sternoclavicular" value="r_acromioclavicular"/>
   <enumeration default="-0.1907 1.4407 -0.0325" documentation="https://en.wikipedia.org/wiki/Shoulder" index="121" loa="1" parent="r_acromioclavicular" value="r_shoulder"/>
   <enumeration default="-0.1949 1.1388 -0.0620" documentation="https://en.wikipedia.org/wiki/Elbow" index="122" loa="1" parent="r_shoulder" value="r_elbow"/>
   <enumeration alias="r_wrist" default="-0.1959 0.8694 -0.0521" documentation="https://en.wikipedia.org/wiki/Wrist" index="123" loa="1" parent="r_elbow" value="r_radiocarpal"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Midcarpal_joint" index="124" loa="4" parent="r_radiocarpal" value="r_midcarpal_1"/>
   <enumeration alias="r_thumb1" default="-0.1899 0.8502 -0.0473" documentation="https://en.wikipedia.org/wiki/Carpometacarpal_joint" index="125" loa="2" parent="r_midcarpal_1" value="r_carpometacarpal_1"/>
   <enumeration alias="r_thumb2" default="-0.1874 0.8256 0.0306" documentation="https://en.wikipedia.org/wiki/Metacarpophalangeal_joint" index="126" loa="2" parent="r_carpometacarpal_1" value="r_metacarpophalangeal_1"/>
   <enumeration alias="r_thumb3" default="-0.1864 0.8190 0.0506" documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_the_hand" index="127" loa="2" parent="r_metacarpophalangeal_1" value="r_carpal_interphalangeal_1"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Midcarpal_joint" index="128" loa="4" parent="r_radiocarpal" value="r_midcarpal_2"/>
   <enumeration alias="r_index0,r_carpometacarpal" documentation="https://en.wikipedia.org/wiki/Carpometacarpal_joint" index="129" loa="2" parent="r_midcarpal_2" value="r_carpometacarpal_2"/>
   <enumeration alias="r_index1,r_metacarpophalangeal" default="-0.1961 0.8055 -0.0218" documentation="https://en.wikipedia.org/wiki/Metacarpophalangeal_joint" index="130" loa="2" parent="r_carpometacarpal_2" value="r_metacarpophalangeal_2"/>
   <enumeration alias="r_index2,r_carpal_proximal_interphalangeal" default="-0.1954 0.7393 -0.0185" documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_the_hand" index="131" loa="2" parent="r_metacarpophalangeal_2" value="r_carpal_proximal_interphalangeal_2"/>
   <enumeration alias="r_index3,r_carpal_distal_interphalangeal" default="-0.1945 0.7169 -0.0173" documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_the_hand" index="132" loa="2" parent="r_carpal_proximal_interphalangeal_2" value="r_carpal_distal_interphalangeal_2"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Midcarpal_joint" index="133" loa="4" parent="r_radiocarpal" value="r_midcarpal_3"/>
   <enumeration alias="r_middle0" default="-0.1972 0.8060 -0.0468" documentation="https://en.wikipedia.org/wiki/Carpometacarpal_joint" index="134" loa="2" parent="r_midcarpal_3" value="r_carpometacarpal_3"/>
   <enumeration alias="r_middle1" default="-0.1972 0.7849 -0.0468" documentation="https://en.wikipedia.org/wiki/Metacarpophalangeal_joint" index="135" loa="2" parent="r_carpometacarpal_3" value="r_metacarpophalangeal_3"/>
   <enumeration alias="r_middle2" default="-0.1950 0.7304 -0.0441" documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_the_hand" index="136" loa="2" parent="r_metacarpophalangeal_3" value="r_carpal_proximal_interphalangeal_3"/>
   <enumeration alias="r_middle3" default="-0.1939 0.7042 -0.0432" documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_the_hand" index="137" loa="2" parent="r_carpal_proximal_interphalangeal_3" value="r_carpal_distal_interphalangeal_3"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Midcarpal_joint" index="138" loa="4" parent="r_radiocarpal" value="r_midcarpal_4_5"/>
   <enumeration alias="r_ring0" default="-0.1951 0.8049 -0.0732" documentation="https://en.wikipedia.org/wiki/Carpometacarpal_joint" index="139" loa="2" parent="r_midcarpal_4_5" value="r_carpometacarpal_4"/>
   <enumeration alias="r_ring1" default="-0.1951 0.7845 -0.0732" documentation="https://en.wikipedia.org/wiki/Metacarpophalangeal_joint" index="140" loa="2" parent="r_carpometacarpal_4" value="r_metacarpophalangeal_4"/>
   <enumeration alias="r_ring2" default="-0.1920 0.7318 -0.0716" documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_the_hand" index="141" loa="2" parent="r_metacarpophalangeal_4" value="r_carpal_proximal_interphalangeal_4"/>
   <enumeration alias="r_ring3" default="-0.1908 0.7077 -0.0706" documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_the_hand" index="142" loa="2" parent="r_carpal_proximal_interphalangeal_4" value="r_carpal_distal_interphalangeal_4"/>
   <enumeration alias="r_pinky0" default="-0.1926 0.8096 -0.0975" documentation="https://en.wikipedia.org/wiki/Carpometacarpal_joint" index="143" loa="2" parent="r_midcarpal_4_5" value="r_carpometacarpal_5"/>
   <enumeration alias="r_pinky1" default="-0.1926 0.7896 -0.0975" documentation="https://en.wikipedia.org/wiki/Metacarpophalangeal_joint" index="144" loa="2" parent="r_carpometacarpal_5" value="r_metacarpophalangeal_5"/>
   <enumeration alias="r_pinky2" default="-0.1902 0.7483 -0.0963" documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_the_hand" index="145" loa="2" parent="r_metacarpophalangeal_5" value="r_carpal_proximal_interphalangeal_5"/>
   <enumeration alias="r_pinky3" default="-0.1908 0.7540 -0.0960" documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_the_hand" index="146" loa="2" parent="r_carpal_proximal_interphalangeal_5" value="r_carpal_distal_interphalangeal_5"/>
  </SimpleType>
  <SimpleType appinfo="CAESAR segment names for identification of HAnimSegment nodes as defined in the HAnim Architecture specification. This list is unbounded, additional enumeration values are allowed." baseType="xs:NMTOKEN" documentation="https://www.web3d.org/documents/specifications/19774/V2.0/Architecture/concepts.html#Hierarchy" name="hanimSegmentNameValues">
   <enumeration documentation="https://en.wikipedia.org/wiki/Sacrum" index="1" loa="1" parent="humanoid_root" value="sacrum"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Pelvis" index="2" loa="1" parent="sacroiliac" value="pelvis"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Thigh" index="3" loa="1" parent="l_hip" value="l_thigh"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Calf_(leg)" index="4" loa="1" parent="l_knee" value="l_calf"/>
   <enumeration alias="l_hindfoot" documentation="https://en.wikipedia.org/wiki/Talus_bone" index="5" loa="1" parent="l_talocrural" value="l_talus"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Navicular_bone" index="6" loa="4" parent="l_talocalcaneonavicular" value="l_navicular"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Cuneiform_bones" index="7" loa="4" parent="l_cuneonavicular_1" value="l_cuneiform_1"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Metatarsal_bones" index="8" loa="4" parent="l_tarsometatarsal_1" value="l_metatarsal_1"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="9" loa="4" parent="l_metatarsophalangeal_1" value="l_tarsal_proximal_phalanx_1"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="10" loa="4" parent="l_tarsal_interphalangeal_1" value="l_tarsal_distal_phalanx_1"/>
   <enumeration alias="l_cuneiform" documentation="https://en.wikipedia.org/wiki/Cuneiform_bones" index="11" loa="4" parent="l_cuneonavicular_2" value="l_cuneiform_2"/>
   <enumeration alias="l_midproximal,l_metatarsal" documentation="https://en.wikipedia.org/wiki/Metatarsal_bones" index="12" loa="2" parent="l_tarsometatarsal_2" value="l_metatarsal_2"/>
   <enumeration alias="l_middistal,l_tarsal_proximal_phalanx" documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="13" loa="1" parent="l_metatarsophalangeal_2" value="l_tarsal_proximal_phalanx_2"/>
   <enumeration alias="l_tarsal_middle_phalanx" documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="14" loa="4" parent="l_tarsal_proximal_interphalangeal_2" value="l_tarsal_middle_phalanx_2"/>
   <enumeration alias="l_forefoot,l_tarsal_distal_phalanx" documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="15" loa="2" parent="l_tarsal_distal_interphalangeal_2" value="l_tarsal_distal_phalanx_2"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Cuneiform_bones" index="16" loa="4" parent="l_cuneonavicular_3" value="l_cuneiform_3"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Metatarsal_bones" index="17" loa="4" parent="l_tarsometatarsal_3" value="l_metatarsal_3"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="18" loa="4" parent="l_metatarsophalangeal_3" value="l_tarsal_proximal_phalanx_3"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="19" loa="4" parent="l_tarsal_proximal_interphalangeal_3" value="l_tarsal_middle_phalanx_3"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="20" loa="4" parent="l_tarsal_distal_interphalangeal_3" value="l_tarsal_distal_phalanx_3"/>
   <enumeration alias="l_calcaneum" documentation="https://en.wikipedia.org/wiki/Calcaneus" index="21" loa="4" parent="l_calcaneocuboid" value="l_calcaneus"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Cuboid" index="22" loa="4" parent="l_transversetarsal" value="l_cuboid"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Metatarsal_bones" index="23" loa="4" parent="l_tarsometatarsal_4" value="l_metatarsal_4"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="24" loa="4" parent="l_metatarsophalangeal_4" value="l_tarsal_proximal_phalanx_4"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="25" loa="4" parent="l_tarsal_proximal_interphalangeal_4" value="l_tarsal_middle_phalanx_4"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="26" loa="4" parent="l_tarsal_distal_interphalangeal_4" value="l_tarsal_distal_phalanx_4"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Metatarsal_bones" index="27" loa="4" parent="l_tarsometatarsal_5" value="l_metatarsal_5"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="28" loa="4" parent="l_metatarsophalangeal_5" value="l_tarsal_proximal_phalanx_5"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="29" loa="4" parent="l_tarsal_proximal_interphalangeal_5" value="l_tarsal_middle_phalanx_5"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="30" loa="4" parent="l_tarsal_distal_interphalangeal_5" value="l_tarsal_distal_phalanx_5"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Thigh" index="31" loa="1" parent="r_hip" value="r_thigh"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Calf_(leg)" index="32" loa="1" parent="r_knee" value="r_calf"/>
   <enumeration alias="r_hindfoot" documentation="https://en.wikipedia.org/wiki/Talus_bone" index="33" loa="1" parent="r_talocrural" value="r_talus"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Navicular_bone" index="34" loa="4" parent="r_talocalcaneonavicular" value="r_navicular"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Cuneiform_bones" index="35" loa="4" parent="r_cuneonavicular_1" value="r_cuneiform_1"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Metatarsal_bones" index="36" loa="4" parent="r_tarsometatarsal_1" value="r_metatarsal_1"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="37" loa="4" parent="r_metatarsophalangeal_1" value="r_tarsal_proximal_phalanx_1"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="38" loa="4" parent="r_tarsal_interphalangeal_1" value="r_tarsal_distal_phalanx_1"/>
   <enumeration alias="r_cuneiform" documentation="https://en.wikipedia.org/wiki/Cuneiform_bones" index="39" loa="4" parent="r_cuneonavicular_2" value="r_cuneiform_2"/>
   <enumeration alias="r_midproximal" documentation="https://en.wikipedia.org/wiki/Metatarsal_bones" index="40" loa="2" parent="r_tarsometatarsal_2" value="r_metatarsal_2"/>
   <enumeration alias="r_middistal,r_tarsal_proximal_phalanx" documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="41" loa="1" parent="r_metatarsophalangeal_2" value="r_tarsal_proximal_phalanx_2"/>
   <enumeration alias="r_tarsal_middle_phalanx" documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="42" loa="4" parent="r_tarsal_proximal_interphalangeal_2" value="r_tarsal_middle_phalanx_2"/>
   <enumeration alias="r_forefoot,r_tarsal_distal_phalanx" documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="43" loa="2" parent="r_tarsal_distal_interphalangeal_2" value="r_tarsal_distal_phalanx_2"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Cuneiform_bones" index="44" loa="4" parent="r_cuneonavicular_3" value="r_cuneiform_3"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Metatarsal_bones" index="45" loa="4" parent="r_tarsometatarsal_3" value="r_metatarsal_3"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="46" loa="4" parent="r_metatarsophalangeal_3" value="r_tarsal_proximal_phalanx_3"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="47" loa="4" parent="r_tarsal_proximal_interphalangeal_3" value="r_tarsal_middle_phalanx_3"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="48" loa="4" parent="r_tarsal_distal_interphalangeal_3" value="r_tarsal_distal_phalanx_3"/>
   <enumeration alias="r_calcaneum" documentation="https://en.wikipedia.org/wiki/Calcaneus" index="49" loa="4" parent="r_calcaneocuboid" value="r_calcaneus"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Cuboid" index="50" loa="4" parent="r_transversetarsal" value="r_cuboid"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Metatarsal_bones" index="51" loa="4" parent="r_tarsometatarsal_4" value="r_metatarsal_4"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="52" loa="4" parent="r_metatarsophalangeal_4" value="r_tarsal_proximal_phalanx_4"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="53" loa="4" parent="r_tarsal_proximal_interphalangeal_4" value="r_tarsal_middle_phalanx_4"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="54" loa="4" parent="r_tarsal_distal_interphalangeal_4" value="r_tarsal_distal_phalanx_4"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Metatarsal_bones" index="55" loa="4" parent="r_tarsometatarsal_5" value="r_metatarsal_5"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="56" loa="4" parent="r_metatarsophalangeal_5" value="r_tarsal_proximal_phalanx_5"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="57" loa="4" parent="r_tarsal_proximal_interphalangeal_5" value="r_tarsal_middle_phalanx_5"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="58" loa="4" parent="r_tarsal_distal_interphalangeal_5" value="r_tarsal_distal_phalanx_5"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Vertebral_column" index="59" loa="1" parent="vl5" value="l5"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Vertebral_column" index="60" loa="3" parent="vl4" value="l4"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Vertebral_column" index="61" loa="2" parent="vl3" value="l3"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Vertebral_column" index="62" loa="3" parent="vl2" value="l2"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Vertebral_column" index="63" loa="2" parent="vl1" value="l1"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Vertebral_column" index="64" loa="3" parent="vt12" value="t12"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Vertebral_column" index="65" loa="3" parent="vt11" value="t11"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Vertebral_column" index="66" loa="2" parent="vt10" value="t10"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Vertebral_column" index="67" loa="3" parent="vt9" value="t9"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Vertebral_column" index="68" loa="3" parent="vt8" value="t8"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Vertebral_column" index="69" loa="3" parent="vt7" value="t7"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Vertebral_column" index="70" loa="2" parent="vt6" value="t6"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Vertebral_column" index="71" loa="3" parent="vt5" value="t5"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Vertebral_column" index="72" loa="3" parent="vt4" value="t4"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Vertebral_column" index="73" loa="3" parent="vt3" value="t3"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Vertebral_column" index="74" loa="3" parent="vt2" value="t2"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Vertebral_column" index="75" loa="2" parent="vt1" value="t1"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Vertebral_column" index="76" loa="3" parent="vc7" value="c7"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Vertebral_column" index="77" loa="3" parent="vc6" value="c6"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Vertebral_column" index="78" loa="3" parent="vc5" value="c5"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Vertebral_column" index="79" loa="2" parent="vc4" value="c4"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Vertebral_column" index="80" loa="3" parent="vc3" value="c3"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Vertebral_column" index="81" loa="2" parent="vc2" value="c2"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Vertebral_column" index="82" loa="3" parent="vc1" value="c1"/>
   <enumeration alias="head" documentation="https://en.wikipedia.org/wiki/Skull" index="83" loa="1" parent="skullbase" value="skull"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Eyelid" index="84" loa="3" parent="l_eyelid_joint" value="l_eyelid"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Eyelid" index="85" loa="3" parent="r_eyelid_joint" value="r_eyelid"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Eye" index="86" loa="3" parent="l_eyeball_joint" value="l_eyeball"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Eye" index="87" loa="3" parent="r_eyeball_joint" value="r_eyeball"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Eyebrow" index="88" loa="3" parent="l_eyebrow_joint" value="l_eyebrow"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Eyebrow" index="89" loa="3" parent="r_eyebrow_joint" value="r_eyebrow"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Jaw" index="90" loa="3" parent="temporomandibular" value="jaw"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Clavicle" index="91" loa="2" parent="l_sternoclavicular" value="l_clavicle"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Scapula" index="92" loa="2" parent="l_acromioclavicular" value="l_scapula"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Arm" index="93" loa="1" parent="l_shoulder" value="l_upperarm"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Forearm" index="94" loa="1" parent="l_elbow" value="l_forearm"/>
   <enumeration alias="l_hand" documentation="https://en.wikipedia.org/wiki/Carpal_bones" index="95" loa="1" parent="l_radiocarpal" value="l_carpal"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Trapezium_(bone)" index="96" loa="4" parent="l_midcarpal_1" value="l_trapezium"/>
   <enumeration alias="l_thumb_metacarpal" documentation="https://en.wikipedia.org/wiki/Metacarpal_bones" index="97" loa="2" parent="l_carpometacarpal_1" value="l_metacarpal_1"/>
   <enumeration alias="l_thumb_proximal" documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="98" loa="2" parent="l_metacarpophalangeal_1" value="l_carpal_proximal_phalanx_1"/>
   <enumeration alias="l_thumb_distal" documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="99" loa="2" parent="l_carpal_interphalangeal_1" value="l_carpal_distal_phalanx_1"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Trapezoid_bone" index="100" loa="4" parent="l_midcarpal_2" value="l_trapezoid"/>
   <enumeration alias="l_index_metacarpal" documentation="https://en.wikipedia.org/wiki/Metacarpal_bones" index="101" loa="2" parent="l_carpometacarpal_2" value="l_metacarpal_2"/>
   <enumeration alias="l_index_proximal,l_carpal_proximal_phalanx" documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="102" loa="2" parent="l_metacarpophalangeal_2" value="l_carpal_proximal_phalanx_2"/>
   <enumeration alias="l_index_middle,l_carpal_middle_phalanx" documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="103" loa="2" parent="l_carpal_proximal_interphalangeal_2" value="l_carpal_middle_phalanx_2"/>
   <enumeration alias="l_index_distal,l_carpal_distal_phalanx" documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="104" loa="2" parent="l_carpal_distal_interphalangeal_2" value="l_carpal_distal_phalanx_2"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Capitate_bone" index="105" loa="4" parent="l_midcarpal_3" value="l_capitate"/>
   <enumeration alias="l_middle_metacarpal" documentation="https://en.wikipedia.org/wiki/Metacarpal_bones" index="106" loa="2" parent="l_carpometacarpal_3" value="l_metacarpal_3"/>
   <enumeration alias="l_middle_proximal" documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="107" loa="2" parent="l_metacarpophalangeal_3" value="l_carpal_proximal_phalanx_3"/>
   <enumeration alias="l_middle_middle" documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="108" loa="2" parent="l_carpal_proximal_interphalangeal_3" value="l_carpal_middle_phalanx_3"/>
   <enumeration alias="l_middle_distal" documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="109" loa="2" parent="l_carpal_distal_interphalangeal_3" value="l_carpal_distal_phalanx_3"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Hamate_bone" index="110" loa="4" parent="l_midcarpal_4_5" value="l_hamate"/>
   <enumeration alias="l_ring_metacarpal" documentation="https://en.wikipedia.org/wiki/Metacarpal_bones" index="111" loa="2" parent="l_carpometacarpal_4" value="l_metacarpal_4"/>
   <enumeration alias="l_ring_proximal" documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="112" loa="2" parent="l_metacarpophalangeal_4" value="l_carpal_proximal_phalanx_4"/>
   <enumeration alias="l_ring_middle" documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="113" loa="2" parent="l_carpal_proximal_interphalangeal_4" value="l_carpal_middle_phalanx_4"/>
   <enumeration alias="l_ring_distal" documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="114" loa="2" parent="l_carpal_distal_interphalangeal_4" value="l_carpal_distal_phalanx_4"/>
   <enumeration alias="l_pinky_metacarpal" documentation="https://en.wikipedia.org/wiki/Metacarpal_bones" index="115" loa="2" parent="l_carpometacarpal_5" value="l_metacarpal_5"/>
   <enumeration alias="l_pinky_proximal" documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="116" loa="2" parent="l_metacarpophalangeal_5" value="l_carpal_proximal_phalanx_5"/>
   <enumeration alias="l_pinky_middle" documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="117" loa="2" parent="l_carpal_proximal_interphalangeal_5" value="l_carpal_middle_phalanx_5"/>
   <enumeration alias="l_pinky_distal" documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="118" loa="2" parent="l_carpal_distal_interphalangeal_5" value="l_carpal_distal_phalanx_5"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Clavicle" index="119" loa="2" parent="r_sternoclavicular" value="r_clavicle"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Scapula" index="120" loa="2" parent="r_acromioclavicular" value="r_scapula"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Arm" index="121" loa="1" parent="r_shoulder" value="r_upperarm"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Forearm" index="122" loa="1" parent="r_elbow" value="r_forearm"/>
   <enumeration alias="r_hand" documentation="https://en.wikipedia.org/wiki/Carpal_bones" index="123" loa="1" parent="r_radiocarpal" value="r_carpal"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Trapezium_(bone)" index="124" loa="4" parent="r_midcarpal_1" value="r_trapezium"/>
   <enumeration alias="r_thumb_metacarpal" documentation="https://en.wikipedia.org/wiki/Metacarpal_bones" index="125" loa="2" parent="r_carpometacarpal_1" value="r_metacarpal_1"/>
   <enumeration alias="r_thumb_proximal" documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="126" loa="2" parent="r_metacarpophalangeal_1" value="r_carpal_proximal_phalanx_1"/>
   <enumeration alias="r_thumb_distal" documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="127" loa="2" parent="r_carpal_interphalangeal_1" value="r_carpal_distal_phalanx_1"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Trapezoid_bone" index="128" loa="4" parent="r_midcarpal_2" value="r_trapezoid"/>
   <enumeration alias="r_index_metacarpal" documentation="https://en.wikipedia.org/wiki/Metacarpal_bones" index="129" loa="2" parent="r_carpometacarpal_2" value="r_metacarpal_2"/>
   <enumeration alias="r_index_proximal,r_carpal_proximal_phalanx" documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="130" loa="2" parent="r_metacarpophalangeal_2" value="r_carpal_proximal_phalanx_2"/>
   <enumeration alias="r_index_middle,r_carpal_middle_phalanx" documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="131" loa="2" parent="r_carpal_proximal_interphalangeal_2" value="r_carpal_middle_phalanx_2"/>
   <enumeration alias="r_index_distal,r_carpal_distal_phalanx" documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="132" loa="2" parent="r_carpal_distal_interphalangeal_2" value="r_carpal_distal_phalanx_2"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Capitate_bone" index="133" loa="4" parent="r_midcarpal_3" value="r_capitate"/>
   <enumeration alias="r_middle_metacarpal" documentation="https://en.wikipedia.org/wiki/Metacarpal_bones" index="134" loa="2" parent="r_carpometacarpal_3" value="r_metacarpal_3"/>
   <enumeration alias="r_middle_proximal" documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="135" loa="2" parent="r_metacarpophalangeal_3" value="r_carpal_proximal_phalanx_3"/>
   <enumeration alias="r_middle_middle" documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="136" loa="2" parent="r_carpal_proximal_interphalangeal_3" value="r_carpal_middle_phalanx_3"/>
   <enumeration alias="r_middle_distal" documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="137" loa="2" parent="r_carpal_distal_interphalangeal_3" value="r_carpal_distal_phalanx_3"/>
   <enumeration documentation="https://en.wikipedia.org/wiki/Hamate_bone" index="138" loa="4" parent="r_midcarpal_4_5" value="r_hamate"/>
   <enumeration alias="r_ring_metacarpal" documentation="https://en.wikipedia.org/wiki/Metacarpal_bones" index="139" loa="2" parent="r_carpometacarpal_4" value="r_metacarpal_4"/>
   <enumeration alias="r_ring_proximal" documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="140" loa="2" parent="r_metacarpophalangeal_4" value="r_carpal_proximal_phalanx_4"/>
   <enumeration alias="r_ring_middle" documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="141" loa="2" parent="r_carpal_proximal_interphalangeal_4" value="r_carpal_middle_phalanx_4"/>
   <enumeration alias="r_ring_distal" documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="142" loa="2" parent="r_carpal_distal_interphalangeal_4" value="r_carpal_distal_phalanx_4"/>
   <enumeration alias="r_pinky_metacarpal" documentation="https://en.wikipedia.org/wiki/Metacarpal_bones" index="143" loa="2" parent="r_carpometacarpal_5" value="r_metacarpal_5"/>
   <enumeration alias="r_pinky_proximal" documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="144" loa="2" parent="r_metacarpophalangeal_5" value="r_carpal_proximal_phalanx_5"/>
   <enumeration alias="r_pinky_middle" documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="145" loa="2" parent="r_carpal_proximal_interphalangeal_5" value="r_carpal_middle_phalanx_5"/>
   <enumeration alias="r_pinky_distal" documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="146" loa="2" parent="r_carpal_distal_interphalangeal_5" value="r_carpal_distal_phalanx_5"/>
  </SimpleType>
  <SimpleType appinfo="hanimVersionChoices enumeration constants are used to identify the allowed versions for an HAnimHumanoid node. Note that default HAnimHumanoid version is 2.0 for X3D version 4, and default is 1.0 for X3D version 3. This list is bounded, no additional values are allowed." baseType="xs:NMTOKEN" documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/hanim.html#HAnimHumanoid" name="hanimVersionChoices">
   <enumeration appinfo="Revised standard HAnim 19774 version 2 (parts 1 and 2) were approved by ISO in November 2019, published by Web3D Consortium May 2020." documentation="https://www.web3d.org/documents/specifications/19774/V2.0" value="2.0"/>
  </SimpleType>
  <SimpleType appinfo="hatchStyle selects a hatch pattern from International Register of Graphical Items." baseType="SFInt32" documentation="https://isotc.iso.org/livelink/livelink/fetch/-8916524/8916549/8916590/6208440/class_pages/hatchstyle.html" name="hatchStyleValues">
   <enumeration alias="HORIZONTAL" appinfo="Horizontal equally spaced parallel lines" value="1"/>
   <enumeration alias="VERTICAL" appinfo="Vertical equally spaced parallel lines" value="2"/>
   <enumeration alias="POSITIVE_SLOPE" appinfo="Positive slope equally spaced parallel lines" value="3"/>
   <enumeration alias="NEGATIVE_SLOPE" appinfo="Negative slope equally spaced parallel lines" value="4"/>
   <enumeration alias="HORIZONTAL_VERTICAL_CROSSHATCH" appinfo="Horizontal/vertical crosshatch" value="5"/>
   <enumeration alias="POSITIVE_NEGATIVE_SLOPE_CROSSHATCH" appinfo="Positive slope/negative slope crosshatch" value="6"/>
   <enumeration alias="CAST_IRON" appinfo="(cast iron or malleable iron and general use for all materials)" value="7"/>
   <enumeration alias="STEEL" appinfo="(steel)" value="8"/>
   <enumeration alias="BRONZE_BRASS_COPPER_COMPOSITIONS" appinfo="(bronze, brass, copper, and compositions)" value="9"/>
   <enumeration alias="WHITE_METAL_ZINC_LEAD_BABBIT_ALLOYS" appinfo="(white metal, zinc, lead, babbit, and alloys)" value="10"/>
   <enumeration alias="MAGNESIUM_ALUMINUM_ALLOYS" appinfo="(magnesium, aluminum, and aluminum alloys)" value="11"/>
   <enumeration alias="RUBBER_PLASTIC_ELECTRICAL_INSULATION" appinfo="(rubber, plastic, and electrical insulation)" value="12"/>
   <enumeration alias="CORK_FELT_FABRIC_LEATHER_FIBRE" appinfo="(cork, felt, fabric, leather, and fibre/fiber)" value="13"/>
   <enumeration alias="THERMAL_INSULATION" appinfo="(thermal insulation)" value="14"/>
   <enumeration alias="TITANIUM" appinfo="(titanium and refi-actory material)" value="15"/>
   <enumeration alias="MARBLE_SLATE_PORCELAIN_GLASS" appinfo="(marble, slate, porcelain, glass, etc.)" value="16"/>
   <enumeration alias="EARTH" appinfo="(earth)" value="17"/>
   <enumeration alias="SAND" appinfo="(sand)" value="18"/>
   <enumeration alias="REPEATING_DOT" appinfo="(repeating dot)" value="19"/>
  </SimpleType>
  <SimpleType appinfo="Table of fields having accessType initializeOnly." baseType="xs:NMTOKEN" documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/concepts.html#FieldSemantics" name="initializeOnlyAccessTypes">
   <enumeration value="autoCalc"/>
   <enumeration value="bboxCenter"/>
   <enumeration value="bboxSize"/>
   <enumeration value="beginCap"/>
   <enumeration value="bottomRadius"/>
   <enumeration value="category"/>
   <enumeration value="ccw"/>
   <enumeration value="child1Url"/>
   <enumeration value="child2Url"/>
   <enumeration value="child3Url"/>
   <enumeration value="child4Url"/>
   <enumeration value="closed"/>
   <enumeration value="closureType"/>
   <enumeration value="colorKey"/>
   <enumeration value="colorIndex"/>
   <enumeration value="colorPerVertex"/>
   <enumeration value="convex"/>
   <enumeration value="coordIndex"/>
   <enumeration value="country"/>
   <enumeration value="creaseAngle"/>
   <enumeration value="crossSection"/>
   <enumeration value="directOutput"/>
   <enumeration value="domain"/>
   <enumeration value="duration"/>
   <enumeration value="endCap"/>
   <enumeration value="endAngle"/>
   <enumeration value="extra"/>
   <enumeration value="forceTransitions"/>
   <enumeration value="generateMipMaps"/>
   <enumeration value="geoGridOrigin"/>
   <enumeration value="geometryType"/>
   <enumeration value="geoSystem"/>
   <enumeration value="height"/>
   <enumeration value="index"/>
   <enumeration value="initialDestination"/>
   <enumeration value="initialValue"/>
   <enumeration value="innerRadius"/>
   <enumeration value="internal"/>
   <enumeration value="intersectionType"/>
   <enumeration value="kind"/>
   <enumeration value="knot"/>
   <enumeration value="language"/>
   <enumeration value="lineSegments"/>
   <enumeration value="mustEvaluate"/>
   <enumeration value="normalIndex"/>
   <enumeration value="normalPerVertex"/>
   <enumeration value="numComponents"/>
   <enumeration value="order"/>
   <enumeration value="outerRadius"/>
   <enumeration value="phaseFunction"/>
   <enumeration value="radius"/>
   <enumeration value="range"/>
   <enumeration value="repeatR"/>
   <enumeration value="repeatS"/>
   <enumeration value="repeatT"/>
   <enumeration value="rootUrl"/>
   <enumeration value="rotateYUp"/>
   <enumeration value="size"/>
   <enumeration value="sortOrder"/>
   <enumeration value="spatialize"/>
   <enumeration value="specific"/>
   <enumeration value="speedFactor"/>
   <enumeration value="spine"/>
   <enumeration value="startAngle"/>
   <enumeration value="subcategory"/>
   <enumeration value="texCoordIndex"/>
   <enumeration value="texCoordKey"/>
   <enumeration value="uClosed"/>
   <enumeration value="uDimension"/>
   <enumeration value="uKnot"/>
   <enumeration value="uOrder"/>
   <enumeration value="vClosed"/>
   <enumeration value="vDimension"/>
   <enumeration value="vKnot"/>
   <enumeration value="vOrder"/>
   <enumeration value="xDimension"/>
   <enumeration value="xSpacing"/>
   <enumeration value="zDimension"/>
   <enumeration value="zSpacing"/>
  </SimpleType>
  <SimpleType appinfo="Table of fields having accessType inputOnly. These are not otherwise listed in element definitions since they cannot be specified in an .x3d file." baseType="xs:NMTOKEN" documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/concepts.html#FieldSemantics" name="inputOnlyAccessTypes">
   <enumeration value="activate"/>
   <enumeration value="set_articulationParameterValue0"/>
   <enumeration value="set_articulationParameterValue1"/>
   <enumeration value="set_articulationParameterValue2"/>
   <enumeration value="set_articulationParameterValue3"/>
   <enumeration value="set_articulationParameterValue4"/>
   <enumeration value="set_articulationParameterValue5"/>
   <enumeration value="set_articulationParameterValue6"/>
   <enumeration value="set_articulationParameterValue7"/>
   <enumeration value="set_boolean"/>
   <enumeration value="set_bind"/>
   <enumeration value="set_colorIndex"/>
   <enumeration value="set_contacts"/>
   <enumeration value="set_coordIndex"/>
   <enumeration value="set_crossSection"/>
   <enumeration value="set_destination"/>
   <enumeration value="set_fraction"/>
   <enumeration value="set_height"/>
   <enumeration value="set_index"/>
   <enumeration value="set_normalIndex"/>
   <enumeration value="set_orientation"/>
   <enumeration value="set_scale"/>
   <enumeration value="set_spine"/>
   <enumeration value="set_texCoordIndex"/>
   <enumeration value="set_triggerTime"/>
  </SimpleType>
  <SimpleType appinfo="Table of fields having accessType inputOutput." baseType="xs:NMTOKEN" documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/concepts.html#FieldSemantics" name="inputOutputAccessTypes">
   <enumeration value="absorption"/>
   <enumeration value="activeLayer"/>
   <enumeration value="address"/>
   <enumeration value="align"/>
   <enumeration value="alpha"/>
   <enumeration value="alphaCutoff"/>
   <enumeration value="alphaMode"/>
   <enumeration value="ambientIntensity"/>
   <enumeration value="ambientTextureMapping"/>
   <enumeration value="anchorPoint"/>
   <enumeration value="angle"/>
   <enumeration value="angularDampingFactor"/>
   <enumeration value="angularVelocity"/>
   <enumeration value="anisotropicDegree"/>
   <enumeration value="antennaLocation"/>
   <enumeration value="applicationID"/>
   <enumeration value="applied"/>
   <enumeration value="appliedParameters"/>
   <enumeration value="antennaPatternType"/>
   <enumeration value="antennaPatternLength"/>
   <enumeration value="articulationParameterArray"/>
   <enumeration value="articulationParameterChangeIndicatorArray"/>
   <enumeration value="articulationParameterCount"/>
   <enumeration value="articulationParameterDesignatorArray"/>
   <enumeration value="articulationParameterIdPartAttachedToArray"/>
   <enumeration value="articulationParameterTypeArray"/>
   <enumeration value="attack"/>
   <enumeration value="attenuation"/>
   <enumeration value="autoDamp"/>
   <enumeration value="autoDisable"/>
   <enumeration value="autoOffset"/>
   <enumeration value="autoRefresh"/>
   <enumeration value="autoRefreshTimeLimit"/>
   <enumeration value="avatarSize"/>
   <enumeration value="axis"/>
   <enumeration value="axis1"/>
   <enumeration value="axis1Angle"/>
   <enumeration value="axis1Torque"/>
   <enumeration value="axis2"/>
   <enumeration value="axis2Angle"/>
   <enumeration value="axis2Torque"/>
   <enumeration value="axis3Angle"/>
   <enumeration value="axis3Torque"/>
   <enumeration value="axisOfRotation"/>
   <enumeration value="axisRotation"/>
   <enumeration value="backAmbientIntensity"/>
   <enumeration value="backDiffuseColor"/>
   <enumeration value="backEmissiveColor"/>
   <enumeration value="backShininess"/>
   <enumeration value="backSpecularColor"/>
   <enumeration value="backTexture"/>
   <enumeration value="backTransparency"/>
   <enumeration value="backUrl"/>
   <enumeration value="baseColor"/>
   <enumeration value="baseTextureMapping"/>
   <enumeration value="beamWidth"/>
   <enumeration value="bottom"/>
   <enumeration value="bottomTexture"/>
   <enumeration value="bottomUrl"/>
   <enumeration value="bounce"/>
   <enumeration value="boundaryOpacity"/>
   <enumeration value="borderColor"/>
   <enumeration value="borderWidth"/>
   <enumeration value="boundaryModeS"/>
   <enumeration value="boundaryModeT"/>
   <enumeration value="boundaryModeR"/>
   <enumeration value="buffer"/>
   <enumeration value="bufferDuration"/>
   <enumeration value="center"/>
   <enumeration value="castShadow"/>
   <enumeration value="centerOfMass"/>
   <enumeration value="centerOfRotation"/>
   <enumeration value="class"/>
   <enumeration value="clipBoundary"/>
   <enumeration value="channels"/>
   <enumeration value="channelCountMode"/>
   <enumeration value="channelInterpretation"/>
   <enumeration value="channelSelection"/>
   <enumeration value="channelsEnabled"/>
   <enumeration value="gain"/>
   <enumeration value="collisionType"/>
   <enumeration value="color"/>
   <enumeration value="colorSteps"/>
   <enumeration value="coneInnerAngle"/>
   <enumeration value="coneOuterAngle"/>
   <enumeration value="coneOuterGain"/>
   <enumeration value="contactNormal"/>
   <enumeration value="contourStepSize"/>
   <enumeration value="controlPoint"/>
   <enumeration value="constantForceMix"/>
   <enumeration value="contactSurfaceThickness"/>
   <enumeration value="coolColor"/>
   <enumeration value="createParticles"/>
   <enumeration value="cryptoSystem"/>
   <enumeration value="cryptoKeyID"/>
   <enumeration value="cutOffAngle"/>
   <enumeration value="cycleInterval"/>
   <enumeration value="data"/>
   <enumeration value="dataLength"/>
   <enumeration value="deadReckoning"/>
   <enumeration value="delayTime"/>
   <enumeration value="deletionAllowed"/>
   <enumeration value="depth"/>
   <enumeration value="description"/>
   <enumeration value="desiredAngularVelocity1"/>
   <enumeration value="desiredAngularVelocity2"/>
   <enumeration value="detonationLocation"/>
   <enumeration value="detonationRelativeLocation"/>
   <enumeration value="detonationResult"/>
   <enumeration value="detune"/>
   <enumeration value="diffuse"/>
   <enumeration value="diffuseColor"/>
   <enumeration value="diffuseTextureMapping"/>
   <enumeration value="dimensions"/>
   <enumeration value="direction"/>
   <enumeration value="disableAngularSpeed"/>
   <enumeration value="disableLinearSpeed"/>
   <enumeration value="disableTime"/>
   <enumeration value="diskAngle"/>
   <enumeration value="displacements"/>
   <enumeration value="bboxDisplay"/>
   <enumeration value="detune"/>
   <enumeration value="displayed"/>
   <enumeration value="distanceModel"/>
   <enumeration value="easeInEaseOut"/>
   <enumeration value="edgeColor"/>
   <enumeration value="emissiveColor"/>
   <enumeration value="emissiveTextureMapping"/>
   <enumeration value="enabled"/>
   <enumeration value="enabledAxes"/>
   <enumeration value="dopplerEnabled"/>
   <enumeration value="enableHRTF"/>
   <enumeration value="encodingScheme"/>
   <enumeration value="endFrame"/>
   <enumeration value="entityID"/>
   <enumeration value="entityKind"/>
   <enumeration value="entityDomain"/>
   <enumeration value="entityCountry"/>
   <enumeration value="entityCategory"/>
   <enumeration value="entitySubcategory"/>
   <enumeration value="entitySpecific"/>
   <enumeration value="entityExtra"/>
   <enumeration value="errorCorrection"/>
   <enumeration value="eventApplicationID"/>
   <enumeration value="eventEntityID"/>
   <enumeration value="eventNumber"/>
   <enumeration value="eventSiteID"/>
   <enumeration value="family"/>
   <enumeration value="fanCount"/>
   <enumeration value="farDistance"/>
   <enumeration value="fftSize"/>
   <enumeration value="fieldOfView"/>
   <enumeration value="filled"/>
   <enumeration value="finiteRotationAxis"/>
   <enumeration value="fired1"/>
   <enumeration value="fired2"/>
   <enumeration value="fireMissionIndex"/>
   <enumeration value="firingRange"/>
   <enumeration value="firingRate"/>
   <enumeration value="fixed"/>
   <enumeration value="fogType"/>
   <enumeration value="force"/>
   <enumeration value="forceID"/>
   <enumeration value="forceOutput"/>
   <enumeration value="forces"/>
   <enumeration value="frameDuration"/>
   <enumeration value="frameIncrement"/>
   <enumeration value="frameIndex"/>
   <enumeration value="frequency"/>
   <enumeration value="frequencyBinCount"/>
   <enumeration value="frictionCoefficients"/>
   <enumeration value="frictionDirection"/>
   <enumeration value="frontTexture"/>
   <enumeration value="frontUrl"/>
   <enumeration value="function"/>
   <enumeration value="fuse"/>
   <enumeration value="gain"/>
   <enumeration value="geoCenter"/>
   <enumeration value="geoCoords"/>
   <enumeration value="global"/>
   <enumeration value="gradientThreshold"/>
   <enumeration value="gravity"/>
   <enumeration value="groundAngle"/>
   <enumeration value="groundColor"/>
   <enumeration value="gustiness"/>
   <enumeration value="hatchColor"/>
   <enumeration value="hatched"/>
   <enumeration value="hatchStyle"/>
   <enumeration value="headlight"/>
   <enumeration value="horizontal"/>
   <enumeration value="id"/>
   <enumeration value="image"/>
   <enumeration value="inertia"/>
   <enumeration value="info"/>
   <enumeration value="inputSource"/>
   <enumeration value="integerKey"/>
   <enumeration value="intensity"/>
   <enumeration value="intensityThreshold"/>
   <enumeration value="interauralDistance"/>
   <enumeration value="iterations"/>
   <enumeration value="jointBindingPositions"/>
   <enumeration value="jointBindingRotations"/>
   <enumeration value="jointBindingScales"/>
   <enumeration value="joints"/>
   <enumeration value="justify"/>
   <enumeration value="key"/>
   <enumeration value="knee"/>
   <enumeration value="keyVelocity"/>
   <enumeration value="jump"/>
   <enumeration value="keyValue"/>
   <enumeration value="language"/>
   <enumeration value="leftTexture"/>
   <enumeration value="leftToRight"/>
   <enumeration value="leftUrl"/>
   <enumeration value="length"/>
   <enumeration value="lengthOfModulationParameters"/>
   <enumeration value="lifetimeVariation"/>
   <enumeration value="lighting"/>
   <enumeration value="limitOrientation"/>
   <enumeration value="linearAcceleration"/>
   <enumeration value="linearDampingFactor"/>
   <enumeration value="linearVelocity"/>
   <enumeration value="linetype"/>
   <enumeration value="linewidthScaleFactor"/>
   <enumeration value="llimit"/>
   <enumeration value="loa"/>
   <enumeration value="load"/>
   <enumeration value="location"/>
   <enumeration value="loop"/>
   <enumeration value="loopEnd"/>
   <enumeration value="loopStart"/>
   <enumeration value="mapping"/>
   <enumeration value="marking"/>
   <enumeration value="mass"/>
   <enumeration value="magnificationFilter"/>
   <enumeration value="matchCriterion"/>
   <enumeration value="matrix"/>
   <enumeration value="maxAngle"/>
   <enumeration value="maxAngle1"/>
   <enumeration value="maxBack"/>
   <enumeration value="maxChannelCount"/>
   <enumeration value="maxCorrectionSpeed"/>
   <enumeration value="maxDecibels"/>
   <enumeration value="maxDelayTime"/>
   <enumeration value="maxDistance"/>
   <enumeration value="maxExtent"/>
   <enumeration value="maxFront"/>
   <enumeration value="maxParticles"/>
   <enumeration value="maxPosition"/>
   <enumeration value="maxSeparation"/>
   <enumeration value="maxTorque1"/>
   <enumeration value="maxTorque2"/>
   <enumeration value="mediaDeviceID"/>
   <enumeration value="metallic"/>
   <enumeration value="metallicRoughnessTextureMapping"/>
   <enumeration value="minAngle"/>
   <enumeration value="minAngle1"/>
   <enumeration value="minBack"/>
   <enumeration value="minBounceSpeed"/>
   <enumeration value="minDecibels"/>
   <enumeration value="minFront"/>
   <enumeration value="minificationFilter"/>
   <enumeration value="minPosition"/>
   <enumeration value="minSeparation"/>
   <enumeration value="mode"/>
   <enumeration value="modulationTypeSpreadSpectrum"/>
   <enumeration value="modulationTypeMajor"/>
   <enumeration value="modulationTypeDetail"/>
   <enumeration value="modulationTypeSystem"/>
   <enumeration value="momentsOfInertia"/>
   <enumeration value="motionsEnabled"/>
   <enumeration value="motor1Axis"/>
   <enumeration value="motor2Axis"/>
   <enumeration value="motor3Axis"/>
   <enumeration value="multicastRelayHost"/>
   <enumeration value="multicastRelayPort"/>
   <enumeration value="munitionEndPoint"/>
   <enumeration value="munitionStartPoint"/>
   <enumeration value="munitionApplicationID"/>
   <enumeration value="munitionEntityID"/>
   <enumeration value="munitionSiteID"/>
   <enumeration value="munitionQuantity"/>
   <enumeration value="name"/>
   <enumeration value="nearDistance"/>
   <enumeration value="networkMode"/>
   <enumeration value="normalScale"/>
   <enumeration value="normalTextureMapping"/>
   <enumeration value="numberOfChannels"/>
   <enumeration value="normalize"/>
   <enumeration value="normalizeVelocity"/>
   <enumeration value="objectType"/>
   <enumeration value="occlusionStrength"/>
   <enumeration value="occlusionTextureMapping"/>
   <enumeration value="offset"/>
   <enumeration value="offsetUnits"/>
   <enumeration value="on"/>
   <enumeration value="opacityFactor"/>
   <enumeration value="optionsImag"/>
   <enumeration value="optionsReal"/>
   <enumeration value="orientation"/>
   <enumeration value="orthogonalColor"/>
   <enumeration value="oversample"/>
   <enumeration value="parallelColor"/>
   <enumeration value="parameter"/>
   <enumeration value="particleLifetime"/>
   <enumeration value="particleSize"/>
   <enumeration value="pauseTime"/>
   <enumeration value="pickable"/>
   <enumeration value="pitch"/>
   <enumeration value="plane"/>
   <enumeration value="playbackRate"/>
   <enumeration value="point"/>
   <enumeration value="pointSize"/>
   <enumeration value="pointSizeScaleFactor"/>
   <enumeration value="pointSizeMinValue"/>
   <enumeration value="pointSizeMaxValue"/>
   <enumeration value="port"/>
   <enumeration value="position"/>
   <enumeration value="power"/>
   <enumeration value="preferAccuracy"/>
   <enumeration value="priority"/>
   <enumeration value="qualityFactor"/>
   <enumeration value="radioID"/>
   <enumeration value="radioEntityTypeKind"/>
   <enumeration value="radioEntityTypeDomain"/>
   <enumeration value="radioEntityTypeCountry"/>
   <enumeration value="radioEntityTypeCategory"/>
   <enumeration value="radioEntityTypeNomenclature"/>
   <enumeration value="radioEntityTypeNomenclatureVersion"/>
   <enumeration value="ratio"/>
   <enumeration value="readInterval"/>
   <enumeration value="receivedPower"/>
   <enumeration value="receiverState"/>
   <enumeration value="reference"/>
   <enumeration value="referenceDistance"/>
   <enumeration value="refraction"/>
   <enumeration value="relativeAntennaLocation"/>
   <enumeration value="release"/>
   <enumeration value="retainedOpacity"/>
   <enumeration value="retainUserOffsets"/>
   <enumeration value="resumeTime"/>
   <enumeration value="rightTexture"/>
   <enumeration value="rightUrl"/>
   <enumeration value="rolloffFactor"/>
   <enumeration value="rotation"/>
   <enumeration value="roughness"/>
   <enumeration value="rtpHeaderExpected"/>
   <enumeration value="sampleRate"/>
   <enumeration value="samples"/>
   <enumeration value="scale"/>
   <enumeration value="scaleMode"/>
   <enumeration value="scaleOrientation"/>
   <enumeration value="segmentEnabled"/>
   <enumeration value="separateBackColor"/>
   <enumeration value="shininess"/>
   <enumeration value="shadowIntensity"/>
   <enumeration value="shadows"/>
   <enumeration value="side"/>
   <enumeration value="shininessTextureMapping"/>
   <enumeration value="silhouetteBoundaryOpacity"/>
   <enumeration value="silhouetteRetainedOpacity"/>
   <enumeration value="silhouetteSharpness"/>
   <enumeration value="siteID"/>
   <enumeration value="size"/>
   <enumeration value="sizeUnits"/>
   <enumeration value="skeletalConfiguration"/>
   <enumeration value="skinCoordIndex"/>
   <enumeration value="skinCoordWeight"/>
   <enumeration value="skyColor"/>
   <enumeration value="skyAngle"/>
   <enumeration value="sliderForce"/>
   <enumeration value="slipCoefficients"/>
   <enumeration value="slipFactors"/>
   <enumeration value="smoothingTimeConstant"/>
   <enumeration value="softnessConstantForceMix"/>
   <enumeration value="softnessErrorCorrection"/>
   <enumeration value="solid"/>
   <enumeration value="source"/>
   <enumeration value="spacing"/>
   <enumeration value="specular"/>
   <enumeration value="specularColor"/>
   <enumeration value="specularTextureMapping"/>
   <enumeration value="speed"/>
   <enumeration value="startFrame"/>
   <enumeration value="startTime"/>
   <enumeration value="stiffness"/>
   <enumeration value="stopBounce"/>
   <enumeration value="stopErrorCorrection"/>
   <enumeration value="stop1ConstantForceMix"/>
   <enumeration value="stop1Bounce"/>
   <enumeration value="stop2Bounce"/>
   <enumeration value="stop3Bounce"/>
   <enumeration value="stop1ErrorCorrection"/>
   <enumeration value="stop2ErrorCorrection"/>
   <enumeration value="stop3ErrorCorrection"/>
   <enumeration value="stopTime"/>
   <enumeration value="streamIdentifier"/>
   <enumeration value="string"/>
   <enumeration value="stripCount"/>
   <enumeration value="style"/>
   <enumeration value="summary"/>
   <enumeration value="surfaceArea"/>
   <enumeration value="surfaceSpeed"/>
   <enumeration value="surfaceTolerance"/>
   <enumeration value="surfaceValues"/>
   <enumeration value="suspensionErrorCorrection"/>
   <enumeration value="suspensionForce"/>
   <enumeration value="tailTime"/>
   <enumeration value="tau"/>
   <enumeration value="tdlType"/>
   <enumeration value="tessellation"/>
   <enumeration value="tessellationScale"/>
   <enumeration value="textureCompression"/>
   <enumeration value="texturePriority"/>
   <enumeration value="threshold"/>
   <enumeration value="timeOut"/>
   <enumeration value="title"/>
   <enumeration value="toggle"/>
   <enumeration value="tolerance"/>
   <enumeration value="top"/>
   <enumeration value="topTexture"/>
   <enumeration value="topToBottom"/>
   <enumeration value="topUrl"/>
   <enumeration value="torques"/>
   <enumeration value="trackCurrentView"/>
   <enumeration value="transitionTime"/>
   <enumeration value="transitionType"/>
   <enumeration value="translation"/>
   <enumeration value="transmitFrequencyBandwidth"/>
   <enumeration value="transmitState"/>
   <enumeration value="transmitterApplicationID"/>
   <enumeration value="transmitterEntityID"/>
   <enumeration value="transmitterRadioID"/>
   <enumeration value="transmitterSiteID"/>
   <enumeration value="transparency"/>
   <enumeration value="turbulence"/>
   <enumeration value="type"/>
   <enumeration value="ulimit"/>
   <enumeration value="upVector"/>
   <enumeration value="update"/>
   <enumeration value="url"/>
   <enumeration value="useFiniteRotation"/>
   <enumeration value="useGeometry"/>
   <enumeration value="useGlobalGravity"/>
   <enumeration value="uTessellation"/>
   <enumeration value="variation"/>
   <enumeration value="value"/>
   <enumeration value="values"/>
   <enumeration value="version"/>
   <enumeration value="vector"/>
   <enumeration value="vertexCount"/>
   <enumeration value="vertices"/>
   <enumeration value="viewAll"/>
   <enumeration value="visibilityLimit"/>
   <enumeration value="visibilityRange"/>
   <enumeration value="visible"/>
   <enumeration value="vTessellation"/>
   <enumeration value="warhead"/>
   <enumeration value="warmColor"/>
   <enumeration value="weight"/>
   <enumeration value="weightConstant1"/>
   <enumeration value="weightConstant2"/>
   <enumeration value="weightFunction1"/>
   <enumeration value="weightFunction2"/>
   <enumeration value="whichChoice"/>
   <enumeration value="whichGeometry"/>
   <enumeration value="writeInterval"/>
   <enumeration value="yScale"/>
  </SimpleType>
  <SimpleType appinfo="intersectionTypeValues are supported enumeration values for X3DPickSensorNode type intersectionType field. This list is unbounded, additional enumeration values are allowed." baseType="xs:NMTOKEN" documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/picking.html#X3DPickSensorNode" name="intersectionTypeValues">
   <enumeration appinfo="TODO undefined in X3D specification" documentation="https://www.web3d.org/member-only/mantis/view.php?id=1294" value="BOUNDS"/>
   <enumeration appinfo="TODO undefined in X3D specification" documentation="https://www.web3d.org/member-only/mantis/view.php?id=1294" value="GEOMETRY"/>
  </SimpleType>
  <SimpleType appinfo="justifyChoices are strictly allowed enumeration values for justify field in FontStyle and ScreenFontStyle nodes determining major and minor axis alignment (typically horizontal and vertical) of text layout. Note that intermediate commas and extraneous whitespace are disallowed by these strictly defined enumeration values. This list is bounded, no additional values are allowed." baseType="MFString" documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/text.html#Directionandjustification" name="justifyChoices">
   <enumeration value='"MIDDLE"'/>
   <enumeration value='"MIDDLE" "BEGIN"'/>
   <enumeration value='"MIDDLE" "END"'/>
   <enumeration value='"MIDDLE" "FIRST"'/>
   <enumeration value='"MIDDLE" "MIDDLE"'/>
   <enumeration value='"BEGIN"'/>
   <enumeration value='"BEGIN" "BEGIN"'/>
   <enumeration value='"BEGIN" "END"'/>
   <enumeration value='"BEGIN" "FIRST"'/>
   <enumeration value='"BEGIN" "MIDDLE"'/>
   <enumeration value='"END"'/>
   <enumeration value='"END" "BEGIN"'/>
   <enumeration value='"END" "END"'/>
   <enumeration value='"END" "FIRST"'/>
   <enumeration value='"END" "MIDDLE"'/>
   <enumeration value='"FIRST"'/>
   <enumeration value='"FIRST" "BEGIN"'/>
   <enumeration value='"FIRST" "END"'/>
   <enumeration value='"FIRST" "FIRST"'/>
   <enumeration value='"FIRST" "MIDDLE"'/>
  </SimpleType>
  <SimpleType appinfo="Permitted combinations of horizontal and vertical values for the align field in the Layout node. Note that intermediate commas and extraneous whitespace are disallowed by these strictly defined enumeration values. This list is bounded, no additional values are allowed." baseType="MFString" documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/layout.html#Layout" name="layoutAlignChoices">
   <enumeration value='"LEFT" "BOTTOM"'/>
   <enumeration value='"LEFT" "CENTER"'/>
   <enumeration value='"LEFT" "TOP"'/>
   <enumeration value='"CENTER" "BOTTOM"'/>
   <enumeration value='"CENTER" "CENTER"'/>
   <enumeration value='"CENTER" "TOP"'/>
   <enumeration value='"RIGHT" "BOTTOM"'/>
   <enumeration value='"RIGHT" "CENTER"'/>
   <enumeration value='"RIGHT" "TOP"'/>
  </SimpleType>
  <SimpleType appinfo="Permitted combinations of horizontal and vertical values for the scaleMode field in the Layout node. Note that intermediate commas and extraneous whitespace are disallowed by these strictly defined enumeration values. This list is bounded, no additional values are allowed." baseType="MFString" documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/layout.html#Layout" name="layoutScaleModeChoices">
   <enumeration value='"NONE" "NONE"'/>
   <enumeration value='"NONE" "FRACTION"'/>
   <enumeration value='"NONE" "STRETCH"'/>
   <enumeration value='"NONE" "PIXEL"'/>
   <enumeration value='"FRACTION" "NONE"'/>
   <enumeration value='"FRACTION" "FRACTION"'/>
   <enumeration value='"FRACTION" "STRETCH"'/>
   <enumeration value='"FRACTION" "PIXEL"'/>
   <enumeration value='"STRETCH" "NONE"'/>
   <enumeration value='"STRETCH" "FRACTION"'/>
   <enumeration value='"STRETCH" "STRETCH"'/>
   <enumeration value='"STRETCH" "PIXEL"'/>
   <enumeration value='"PIXEL" "NONE"'/>
   <enumeration value='"PIXEL" "FRACTION"'/>
   <enumeration value='"PIXEL" "STRETCH"'/>
   <enumeration value='"PIXEL" "PIXEL"'/>
  </SimpleType>
  <SimpleType appinfo="Permitted combinations of horizontal and vertical values for the offsetUnits field in the Layout node. Note that intermediate commas and extraneous whitespace are disallowed by these strictly defined enumeration values. This list is bounded, no additional values are allowed." baseType="MFString" documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/layout.html#Layout" name="layoutUnitsChoices">
   <enumeration value='"WORLD" "WORLD"'/>
   <enumeration value='"WORLD" "FRACTION"'/>
   <enumeration value='"WORLD" "PIXEL"'/>
   <enumeration value='"FRACTION" "WORLD"'/>
   <enumeration value='"FRACTION" "FRACTION"'/>
   <enumeration value='"FRACTION" "PIXEL"'/>
   <enumeration value='"PIXEL" "WORLD"'/>
   <enumeration value='"PIXEL" "FRACTION"'/>
   <enumeration value='"PIXEL" "PIXEL"'/>
  </SimpleType>
  <SimpleType appinfo="linetype selects a hatch pattern from International Register of Graphical Items." baseType="SFInt32" documentation="https://isotc.iso.org/livelink/livelink/fetch/-8916524/8916549/8916590/6208440/class_pages/linetype.html" name="lineTypeValues">
   <enumeration alias="SOLID" appinfo="Solid" value="1"/>
   <enumeration alias="DASHED" appinfo="Dashed" value="2"/>
   <enumeration alias="DOTTED" appinfo="Dotted" value="3"/>
   <enumeration alias="DASHED_DOTTED" appinfo="Dashed-dotted" value="4"/>
   <enumeration alias="DASHED_DOT_DOT" appinfo="Dash-dot-dot" value="5"/>
   <enumeration alias="SINGLE_ARROW" appinfo="(single arrow)" value="6"/>
   <enumeration alias="SINGLE_DOT" appinfo="(single dot)" value="7"/>
   <enumeration alias="DOUBLE_ARROW" appinfo="(double arrow)" value="8"/>
   <enumeration alias="STITCH_LINE" appinfo="(stitch line)" value="9"/>
   <enumeration alias="CHAIN_LINE" appinfo="(chain line)" value="10"/>
   <enumeration alias="CENTER_LINE" appinfo="(center line)" value="11"/>
   <enumeration alias="HIDDEN_LINE" appinfo="(hidden line)" value="12"/>
   <enumeration alias="PHANTOM_LINE" appinfo="(phantom line)" value="13"/>
   <enumeration alias="BREAK_LINE_STYLE_1" appinfo="(break line - style 1)" value="14"/>
   <enumeration alias="BREAK_LINE_STYLE_2" appinfo="(break line - style 2)" value="15"/>
   <enumeration alias="USER_SPECIFIED_DASH_PATTERN" appinfo="User-specified dash pattern" value="16"/>
  </SimpleType>
  <SimpleType appinfo="Level Of Articulation 0..4 indicates complexity and detail of joints for given humanoid skeletal hierarchy. Note that value of -1 indicates that no LOA conformance is provided." baseType="SFInt32" documentation="https://www.web3d.org/documents/specifications/19774/V2.0/Architecture/concepts.html#LevelsOfArticulation" name="loaType"/>
  <SimpleType appinfo="metaDirectionChoices are strictly allowed enumeration values for meta element direction field. This list is bounded, no additional values are allowed." baseType="xs:NMTOKEN" documentation="https://www.w3.org/TR/html4/struct/dirlang.html#adef-dir" name="metaDirectionChoices">
   <enumeration appinfo="right-to-left" value="rtl"/>
   <enumeration appinfo="left-to-right" value="ltr"/>
  </SimpleType>
  <SimpleType appinfo="metaNameValues are supported enumeration values for meta element name field. This list is unbounded, additional enumeration values are allowed." baseType="xs:NMTOKEN" documentation="https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#metaTags" name="metaNameValues">
   <enumeration appinfo="permission required to access resource or security status" documentation="https://www.dublincore.org/documents/dcmi-terms/#terms-accessRights" value="accessRights"/>
   <enumeration appinfo="name of individual author" documentation="https://www.w3.org/TR/html5/document-metadata.html#author" value="author"/>
   <enumeration appinfo="Chemistry Markup Language (CML) version used" documentation="https://www.web3d.org/x3d/content/examples/Basic/ChemicalMarkupLanguage" value="CML-version"/>
   <enumeration appinfo="name of individual contributing to this resource" documentation="https://www.dublincore.org/documents/dcmi-terms/#terms-contributor" value="contributor"/>
   <enumeration appinfo="date of initial version" documentation="https://www.dublincore.org/documents/dcmi-terms/#terms-created" value="created"/>
   <enumeration appinfo="name of original author" documentation="https://www.dublincore.org/documents/dcmi-terms/#terms-creator" value="creator"/>
   <enumeration appinfo="summary overview describing this resource" documentation="https://www.dublincore.org/documents/dcmi-terms/#terms-description" value="description"/>
   <enumeration appinfo="statement of denial or disavowal regarding potential claims or responsiblity" value="disclaimer"/>
   <enumeration appinfo="name or reference link to a supporting drawing or sketch file" value="drawing"/>
   <enumeration appinfo="information about an error (or known problem) that can prevent proper operation" value="error"/>
   <enumeration appinfo="authoring tool or translation tool" documentation="https://www.w3.org/TR/html5/document-metadata.html#generator" value="generator"/>
   <enumeration appinfo="user hint about resource features or operation" value="hint"/>
   <enumeration appinfo="url address or unique Uniform Resource Identifier (URI) for resource" documentation="https://www.dublincore.org/documents/dcmi-terms/#terms-identifier" value="identifier"/>
   <enumeration appinfo="name or reference link to supporting image file" documentation="https://www.dublincore.org/documents/dcmi-terms/#dcmitype-Image" value="Image"/>
   <enumeration appinfo="additional info of interest" value="info"/>
   <enumeration appinfo="additional information of interest" value="information"/>
   <enumeration appinfo="Related resource of which the described resource is a version, edition, or adaptation." documentation="https://www.dublincore.org/documents/dcmi-terms/#terms-isVersionOf" value="isVersionOf"/>
   <enumeration appinfo="comma-separated tokens, each of which is a keyword of interest" documentation="https://www.w3.org/TR/html5/document-metadata.html#keywords" value="keywords"/>
   <enumeration appinfo="content or software license" documentation="https://www.dublincore.org/documents/dcmi-terms/#terms-license" value="license"/>
   <enumeration appinfo="entity that mediates access to resource and for whom resource is intended or useful" documentation="https://www.dublincore.org/documents/dcmi-terms/#terms-mediator" value="mediator"/>
   <enumeration appinfo="date of modified version" documentation="https://www.dublincore.org/documents/dcmi-terms/#terms-modified" value="modified"/>
   <enumeration appinfo="name or reference link to supporting movie file (note that Dublin Core term is MovingImage)" value="movie"/>
   <enumeration appinfo="name or reference link to supporting movie" documentation="https://www.dublincore.org/documents/dcmi-terms/#dcmitype-MovingImage" value="MovingImage"/>
   <enumeration appinfo="name or reference link to original file or resource" value="original"/>
   <enumeration appinfo="name or reference link to supporting photo file (note that Dublin Core term is Image)" value="photo"/>
   <enumeration appinfo="name or reference link to supporting photograph file (note that Dublin Core term is Image)" value="photograph"/>
   <enumeration appinfo="entity responsible for making the resource available" documentation="https://www.dublincore.org/documents/dcmi-terms/#terms-publisher" value="publisher"/>
   <enumeration appinfo="name or reference link to supporting reference" documentation="https://www.dublincore.org/documents/dcmi-terms/#terms-references" value="reference"/>
   <enumeration appinfo="prerequisites for operation or viewing" documentation="https://www.dublincore.org/documents/dcmi-terms/#terms-requires" value="requires"/>
   <enumeration appinfo="intellectual property rights (IPR)" documentation="https://www.dublincore.org/documents/dcmi-terms/#terms-rights" value="rights"/>
   <enumeration appinfo="search engine and web-spider guidance value: noindex to block page indexing, nofollow to block following links" documentation="https://developers.google.com/search/reference/robots_meta_tag" value="robots"/>
   <enumeration appinfo="name or reference link to supporting sound file" documentation="https://www.dublincore.org/documents/dcmi-terms/#dcmitype-Sound" value="Sound"/>
   <enumeration appinfo="related resource from which the described resource is derived" documentation="https://www.dublincore.org/documents/dcmi-terms/#terms-source" value="source"/>
   <enumeration appinfo="title of relevant specification section" value="specificationSection"/>
   <enumeration appinfo="url for relevant specification section" documentation="https://www.web3d.org/standards" value="specificationUrl"/>
   <enumeration appinfo="search-index subject keywords, key phrases, or classification codes" documentation="https://www.dublincore.org/documents/dcmi-terms/#terms-subject" value="subject"/>
   <enumeration appinfo="resource consisting primarily of words for reading" documentation="https://www.dublincore.org/documents/dcmi-terms/#dcmitype-Text" value="Text"/>
   <enumeration appinfo="file name for this resource" documentation="https://www.dublincore.org/documents/dcmi-terms/#terms-title" value="title"/>
   <enumeration appinfo='action item "to do" that still needs to be performed' value="TODO"/>
   <enumeration appinfo="name of person performing translation from another format or language" value="translator"/>
   <enumeration appinfo="date of translation from another format or language" value="translated"/>
   <enumeration appinfo="current version number or ID of this resource" value="version"/>
   <enumeration appinfo="warning information about a known problem that impedes proper operation" value="warning"/>
  </SimpleType>
  <SimpleType appinfo="multiTextureFunctionValues are supported enumeration values for the MultiTexture node function attribute, one per each texture. An empty string indicates no function is applied. Multiple optional values, but cannot be extended." baseType="MFString" documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/texturing.html#t-ValuesForFunctionField" name="multiTextureFunctionValues">
   <enumeration appinfo="Invert argument x as (1 - x)" value='"COMPLEMENT"'/>
   <enumeration appinfo="Replicate alpha information to all color channels before operation completes." value='"ALPHAREPLICATE"'/>
   <enumeration appinfo="No function is applied - empty SFString is allowed value within MFString array" value='""'/>
  </SimpleType>
  <SimpleType appinfo="multiTextureModeValues are supported enumeration values for the MultiTexture mode attribute, one per each texture. Multiple optional values, but cannot be extended." baseType="MFString" documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/texturing.html#t-MultitextureModes" name="multiTextureModeValues">
   <enumeration value='"ADD"'/>
   <enumeration value='"ADDSIGNED"'/>
   <enumeration value='"ADDSIGNED2X"'/>
   <enumeration value='"ADDSMOOTH"'/>
   <enumeration value='"BLENDCURRENTALPHA"'/>
   <enumeration value='"BLENDDIFFUSEALPHA"'/>
   <enumeration value='"BLENDFACTORALPHA"'/>
   <enumeration value='"BLENDTEXTUREALPHA"'/>
   <enumeration value='"DOTPRODUCT3"'/>
   <enumeration value='"MODULATE"'/>
   <enumeration value='"MODULATE2X"'/>
   <enumeration value='"MODULATE4X"'/>
   <enumeration value='"MODULATEALPHA_ADDCOLOR"'/>
   <enumeration value='"MODULATEINVALPHA_ADDCOLOR"'/>
   <enumeration value='"MODULATEINVCOLOR_ADDALPHA"'/>
   <enumeration value='"OFF"'/>
   <enumeration value='"REPLACE"'/>
   <enumeration value='"SELECTARG1"'/>
   <enumeration value='"SELECTARG2"'/>
   <enumeration value='"SUBTRACT"'/>
  </SimpleType>
  <SimpleType appinfo="multiTextureSourceValues are supported enumeration values for the MultiTexture node source attribute, one per each texture. Multiple optional values, but cannot be extended." baseType="MFString" documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/texturing.html#t-ValuesForSourceField" name="multiTextureSourceValues">
   <enumeration value='"DIFFUSE"'/>
   <enumeration value='"FACTOR"'/>
   <enumeration value='"SPECULAR"'/>
   <enumeration value='""'/>
  </SimpleType>
  <SimpleType appinfo="navigationTransitionTypeValues are supported enumeration values for the transitionType field in the NavigationInfo node. This list is unbounded, additional enumeration values are allowed." baseType="MFString" documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/navigation.html#NavigationInfo" name="navigationTransitionTypeValues">
   <enumeration appinfo="immediate transition" value='"TELEPORT"'/>
   <enumeration appinfo="transition may proceed directly through intervening objects" value='"LINEAR"'/>
   <enumeration appinfo="rowser-specific transition" value='"ANIMATE"'/>
  </SimpleType>
  <SimpleType appinfo="navigationTypeValues are supported enumeration values for the type field in the NavigationInfo node. This list is unbounded, additional enumeration values are allowed." baseType="MFString" documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/navigation.html#NavigationInfo" name="navigationTypeValues">
   <enumeration appinfo="browser can offer any type for user to choose" value='"ANY"'/>
   <enumeration appinfo="free navigation, avatar remains on ground, collision detection" value='"WALK"'/>
   <enumeration appinfo="view an individual object by rotating view about center" value='"EXAMINE"'/>
   <enumeration appinfo="free navigation, collision detection" value='"FLY"'/>
   <enumeration appinfo="navigate to particular object" value='"LOOKAT"'/>
   <enumeration appinfo="disables all navigation interfaces" value='"NONE"'/>
   <enumeration appinfo="consistent keystroke navigation for both geospatial and Cartesian modes" value='"EXPLORE"'/>
  </SimpleType>
  <SimpleType appinfo="networkModeChoices are strictly allowed enumeration values for DIS field networkMode. This list is bounded, no additional values are allowed." baseType="xs:NMTOKEN" documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/dis.html#CommonDISfields" name="networkModeChoices">
   <enumeration appinfo="ignore network but still respond to events in local scene" value="standAlone"/>
   <enumeration appinfo="listen to network and read PDU packets at readInterval, act as remotely linked copy of entity" value="networkReader"/>
   <enumeration appinfo="send PDU packets to network at writeInterval, act as master entity" value="networkWriter"/>
  </SimpleType>
  <SimpleType appinfo="Table of fields having accessType outputOnly. These are not otherwise listed in element definitions since they cannot be specified in an .x3d file." baseType="xs:NMTOKEN" documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/concepts.html#FieldSemantics" name="outputOnlyAccessTypes">
   <enumeration value="actionKeyPress"/>
   <enumeration value="actionKeyRelease"/>
   <enumeration value="altKey"/>
   <enumeration value="angle"/>
   <enumeration value="angleRate"/>
   <enumeration value="articulationParameterValue0_changed"/>
   <enumeration value="articulationParameterValue1_changed"/>
   <enumeration value="articulationParameterValue2_changed"/>
   <enumeration value="articulationParameterValue3_changed"/>
   <enumeration value="articulationParameterValue4_changed"/>
   <enumeration value="articulationParameterValue5_changed"/>
   <enumeration value="articulationParameterValue6_changed"/>
   <enumeration value="articulationParameterValue7_changed"/>
   <enumeration value="bindTime"/>
   <enumeration value="body1AnchorPoint"/>
   <enumeration value="body1Axis"/>
   <enumeration value="body2AnchorPoint"/>
   <enumeration value="body2Axis"/>
   <enumeration value="centerOfRotation_changed"/>
   <enumeration value="channelCount"/>
   <enumeration value="collideTime"/>
   <enumeration value="controlKey"/>
   <enumeration value="cycleTime"/>
   <enumeration value="detonateTime"/>
   <enumeration value="duration_changed"/>
   <enumeration value="elapsedTime"/>
   <enumeration value="enteredText"/>
   <enumeration value="enterTime"/>
   <enumeration value="exitTime"/>
   <enumeration value="finalText"/>
   <enumeration value="firedTime"/>
   <enumeration value="fraction_changed"/>
   <enumeration value="frameCount"/>
   <enumeration value="geovalue_changed"/>
   <enumeration value="hinge1Angle"/>
   <enumeration value="hinge1AngleRate"/>
   <enumeration value="hinge2Angle"/>
   <enumeration value="hinge2AngleRate"/>
   <enumeration value="hitGeoCoord_changed"/>
   <enumeration value="hitNormal_changed"/>
   <enumeration value="hitPoint_changed"/>
   <enumeration value="hitTexCoord_changed"/>
   <enumeration value="inputFalse"/>
   <enumeration value="inputNegate"/>
   <enumeration value="inputTrue"/>
   <enumeration value="isActive"/>
   <enumeration value="isBound"/>
   <enumeration value="isCollided"/>
   <enumeration value="isDetonated"/>
   <enumeration value="isLoaded"/>
   <enumeration value="isOver"/>
   <enumeration value="isPaused"/>
   <enumeration value="isNetworkReader"/>
   <enumeration value="isNetworkWriter"/>
   <enumeration value="isRtpHeaderHeard"/>
   <enumeration value="isSelected"/>
   <enumeration value="isStandAlone"/>
   <enumeration value="isValid"/>
   <enumeration value="keyPress"/>
   <enumeration value="keyRelease"/>
   <enumeration value="level_changed"/>
   <enumeration value="lineBounds"/>
   <enumeration value="loadTime"/>
   <enumeration value="modifiedFraction_changed"/>
   <enumeration value="motor1Angle"/>
   <enumeration value="motor1AngleRate"/>
   <enumeration value="motor2Angle"/>
   <enumeration value="motor2AngleRate"/>
   <enumeration value="motor3Angle"/>
   <enumeration value="motor3AngleRate"/>
   <enumeration value="next"/>
   <enumeration value="normal_changed"/>
   <enumeration value="orientation_changed"/>
   <enumeration value="origin"/>
   <enumeration value="pickedGeometry"/>
   <enumeration value="pickedNormal"/>
   <enumeration value="pickedPoint"/>
   <enumeration value="pickedTextureCoordinate"/>
   <enumeration value="position_changed"/>
   <enumeration value="previous"/>
   <enumeration value="progress"/>
   <enumeration value="rotation_changed"/>
   <enumeration value="separation"/>
   <enumeration value="separationRate"/>
   <enumeration value="shiftKey"/>
   <enumeration value="textBounds"/>
   <enumeration value="time"/>
   <enumeration value="timestamp"/>
   <enumeration value="touchTime"/>
   <enumeration value="trackPoint_changed"/>
   <enumeration value="transitionComplete"/>
   <enumeration value="translation_changed"/>
   <enumeration value="triggerTime"/>
   <enumeration value="triggerTrue"/>
   <enumeration value="triggerValue"/>
   <enumeration value="value_changed"/>
  </SimpleType>
  <SimpleType appinfo="particleSystemGeometryTypeValues are supported enumeration values for the ParticleSystem node geometryType field. This list is unbounded, additional enumeration values are allowed." baseType="xs:NMTOKEN" documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/particleSystems.html#ParticleSystem" name="particleSystemGeometryTypeValues">
   <enumeration appinfo="line is drawn along current velocity vector of particle" value="LINE"/>
   <enumeration appinfo="point geometry is rendered at particle position" value="POINT"/>
   <enumeration appinfo="quad geometry is rendered at particle position facing direction traveled" value="QUAD"/>
   <enumeration appinfo="quad geometry is rendered at particle position facing screen" value="SPRITE"/>
   <enumeration appinfo="pair of triangles creating quad geometry is rendered at particle position facing direction traveled" value="TRIANGLE"/>
   <enumeration appinfo="geometry field is used for rendering each particle" value="GEOMETRY"/>
  </SimpleType>
  <SimpleType appinfo="Permitted values for PeriodicWave type. X3D enumeration naming conventions are capitalized versions of Web Audio API enumerations, also changing hyphens to underscores. This list is bounded, no additional values are allowed." baseType="SFString" documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/sound.html#PeriodicWave" name="periodicWaveTypeChoices">
   <enumeration alias="sine" appinfo='X3D version of "sine" in Web Audio API.' documentation="https://www.w3.org/TR/webaudio/#enumdef-oscillatortype" value="SINE"/>
   <enumeration alias="square" appinfo='X3D version of "square" in Web Audio API.' documentation="https://www.w3.org/TR/webaudio/#enumdef-oscillatortype" value="SQUARE"/>
   <enumeration alias="sawtooth" appinfo='X3D version of "sawtooth" in Web Audio API.' documentation="https://www.w3.org/TR/webaudio/#enumdef-oscillatortype" value="SAWTOOTH"/>
   <enumeration alias="triangle" appinfo='X3D version of "triangle" in Web Audio API.' documentation="https://www.w3.org/TR/webaudio/#enumdef-oscillatortype" value="TRIANGLE"/>
   <enumeration alias="custom" appinfo='X3D version of "custom" in Web Audio API.' documentation="https://www.w3.org/TR/webaudio/#enumdef-oscillatortype" value="CUSTOM"/>
  </SimpleType>
  <SimpleType appinfo="phaseFunctionValues are supported enumeration values for the phaseFunction field in the ShadedVolumeStyle. This list is unbounded, additional enumeration values are allowed." baseType="SFString" documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/volume.html#ShadedVolumeStyle" name="phaseFunctionValues">
   <enumeration appinfo="Henyey-Greenstein phase function for scattering model" value="Henyey-Greenstein"/>
   <enumeration appinfo="no scattering" value="NONE"/>
  </SimpleType>
  <SimpleType appinfo="pickableObjectTypeValues are supported enumeration values for the objectType field in the abstract types X3DPickableObject and X3DPickSensorNode. This list is unbounded, additional enumeration values are allowed." baseType="MFString" documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/picking.html#X3DPickableObject" name="pickableObjectTypeValues">
   <enumeration appinfo="each node is available for picking" value='"ALL"'/>
   <enumeration appinfo="no node is available for picking" value='"NONE"'/>
   <enumeration appinfo="TERRAIN is an example value" value='"TERRAIN"'/>
  </SimpleType>
  <SimpleType appinfo="pickSensorMatchCriterionChoices are strictly allowed enumeration values for X3DPickSensorNode node matchCriterion field. This list is bounded, no additional values are allowed." baseType="xs:NMTOKEN" documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/picking.html#X3DPickSensorNode" name="pickSensorMatchCriterionChoices">
   <enumeration appinfo="any match of objectType values is acceptable" value="MATCH_ANY"/>
   <enumeration appinfo="every objectType value in X3DPickSensorNode and X3DPickableObject shall match" value="MATCH_EVERY"/>
   <enumeration appinfo="one and only one objectType value can match" value="MATCH_ONLY_ONE"/>
  </SimpleType>
  <SimpleType appinfo="pickSensorSortOrderValues are supported enumeration values for X3DPickSensorNode node sortOrder field. This list is unbounded, additional enumeration values are allowed." baseType="xs:NMTOKEN" documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/picking.html#X3DPickSensorNode" name="pickSensorSortOrderValues">
   <enumeration appinfo="any single object that can satisfy picking conditions" value="ANY"/>
   <enumeration appinfo="return closest object by distance that satisfies conditions of this pick sensor" value="CLOSEST"/>
   <enumeration appinfo="every object that satisfies picking conditions for this pick sensor is returned" value="ALL"/>
   <enumeration appinfo="every object that satisfies picking conditions for this pick sensor is returned, in sorted order" value="ALL_SORTED"/>
  </SimpleType>
  <SimpleType appinfo="profileNameChoices enumeration constants are used to identify the profile for each scene-graph node, and also utilized by X3D element to identify the profile of a contained Scene. Profiles correspond primarily to subsets of allowed X3D nodes. Some nodes in Interchange profile include fields that are ignored unless Immersive or Full profile is active. This list is bounded, no additional values are allowed." baseType="xs:NMTOKEN" documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/concepts.html#Profiles" name="profileNameChoices">
   <enumeration appinfo="Core Profile includes no nodes and is provided as the basis for custom componentization. Allowed X3D statements for all profiles are: connect ExternProtoDeclare EXPORT field fieldValue IMPORT IS ProtoBody ProtoDeclare ProtoInterface ProtoInstance ROUTE X3D. Allowed X3D nodes for this profile are: MetadataBoolean MetadataDouble MetadataFloat MetadataInteger MetadataSet MetadataString." documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/coreprofile.html" value="Core"/>
   <enumeration appinfo="Interchange Profile equals the minimum subset of nodes needed to display lightweight compelling content. Allowed X3D nodes for this profile are: Appearance Background Box Color ColorInterpolator ColorRGBA Cone Coordinate CoordinateInterpolator Cylinder DirectionalLight Group ImageTexture IndexedFaceSet IndexedLineSet IndexedTriangleFanSet IndexedTriangleSet IndexedTriangleStripSet LineSet Material MetadataBoolean MetadataDouble MetadataFloat MetadataInteger MetadataSet MetadataString MultiTexture MultiTextureCoordinate MultiTextureTransform NavigationInfo Normal NormalInterpolator OrientationInterpolator PixelTexture PointSet PositionInterpolator ScalarInterpolator Shape Sphere TextureCoordinate TextureCoordinateGenerator TextureTransform TimeSensor Transform TriangleFanSet TriangleSet TriangleStripSet Viewpoint WorldInfo." documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/interchange.html" value="Interchange"/>
   <enumeration appinfo="CADInterchange Profile adds support for CADGeometry component nodes to Interchange Profile. Allowed X3D nodes for this profile are: Anchor Appearance CADAssembly CADFace CADLayer CADPart Billboard Collision Color ColorRGBA Coordinate DirectionalLight FragmentShader Group ImageTexture IndexedLineSet IndexedQuadSet IndexedTriangleFanSet IndexedTriangleSet IndexedTriangleStripSet Inline LineProperties LineSet LOD Material MetadataBoolean MetadataDouble MetadataFloat MetadataInteger MetadataSet MetadataString MultiShader MultiTexture MultiTextureCoordinate MultiTextureTransform NavigationInfo Normal PixelTexture PointSet QuadSet Shader ShaderAppearance Shape TextureCoordinate TextureCoordinateGenerator TextureTransform Transform TriangleFanSet TriangleSet TriangleStripSet Viewpoint VertexShader WorldInfo." documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/CADInterchange.html" value="CADInterchange"/>
   <enumeration appinfo="Interactive Profile adds interaction nodes (Anchor, KeySensor) to the minimum subset of nodes needed to display lightweight compelling content. Allowed X3D nodes for this profile are: Anchor Appearance Background BooleanFilter BooleanSequencer BooleanToggle BooleanTrigger Box Color ColorInterpolator ColorRGBA Cone Coordinate CoordinateInterpolator Cylinder CylinderSensor DirectionalLight ElevationGrid Group ImageTexture IndexedFaceSet IndexedLineSet IndexedTriangleFanSet IndexedTriangleSet IndexedTriangleStripSet Inline IntegerSequencer IntegerTrigger KeySensor LineSet Material MetadataBoolean MetadataDouble MetadataFloat MetadataInteger MetadataSet MetadataString MultiTexture MultiTextureCoordinate MultiTextureTransform NavigationInfo Normal NormalInterpolator OrientationInterpolator IndexedTriangleStripSet Inline IntegerSequencer IntegerTrigger KeySensor LineSet Material MetadataBoolean MetadataDouble MetadataFloat MetadataInteger MetadataSet MetadataString MultiTexture MultiTextureCoordinate MultiTextureTransform NavigationInfo Normal NormalInterpolator OrientationInterpolator PixelTexture PlaneSensor PointLight PointSet PositionInterpolator ProximitySensor ScalarInterpolator Shape Sphere SphereSensor SpotLight StringSensor Switch TextureCoordinate TextureCoordinateGenerator TextureTransform TimeSensor TimeTrigger TouchSensor Transform TriangleFanSet TriangleSet TriangleStripSet Viewpoint VisibilitySensor WorldInfo." documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/interactive.html" value="Interactive"/>
   <enumeration appinfo="Immersive Profile equals all of the nodes in the VRML97 Specification, plus various X3D node additions including KeySensor, StringSensor and Scene. Allowed X3D nodes for this profile are: Anchor Appearance AudioClip Background Billboard BooleanFilter BooleanSequencer BooleanToggle BooleanTrigger Box Collision Color ColorInterpolator ColorRGBA Cone Coordinate CoordinateInterpolator Cylinder CylinderSensor DirectionalLight ElevationGrid Extrusion Fog FontStyle Group ImageTexture IndexedFaceSet IndexedLineSet IndexedTriangleFan IndexedTriangleSet IndexedTriangleStripSet Inline IntegerSequencer IntegerTrigger KeySensor LineProperties LineSet LoadSensor LOD Material MetadataBoolean MetadataDouble MetadataFloat MetadataInteger MetadataSet MetadataString MovieTexture MultiTexture MultiTextureCoordinate MultiTextureTransform NavigationInfo Normal NormalInterpolator OrientationInterpolator PixelTexture PlaneSensor PointLight PointSet Polyline2D Polypoint2D PositionInterpolator ProximitySensor Rectangle2D ScalarInterpolator Script Shape Sound Sphere SphereSensor SpotLight StringSensor Switch Text TextureCoordinate TextureCoordinateGenerator TextureTransform TimeSensor TimeTrigger TouchSensor TriangleFanSet TriangleSet TriangleSet2D TriangleStripSet Transform Viewpoint VisibilitySensor WorldInfo." documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/immersive.html" value="Immersive"/>
   <enumeration appinfo="The MedicalInterchange profile adds support for VolumeRendering component to Interchange profile. Allowed X3D nodes for this profile are: Anchor Arc2D ArcClose2D Appearance Background Billboard BlendedVolumeStyle BooleanFilter BooleanSequencer BooleanToggle BooleanTrigger BoundaryEnhancementVolumeStyle Box CartoonVolumeStyle Circle2D ClipPlane Collision Color ColorInterpolator ColorRGBA ComposedVolumeStyle CompositeTexture3D Cone Coordinate CoordinateDouble CoordinateInterpolator Cylinder DirectionalLight Disk2D EdgeEnhancementVolumeStyle FillProperties FontStyle Group ImageTexture ImageTexture3D IndexedFaceSet IndexedLineSet IndexedTriangleFanSet IndexedTriangleSet IndexedTriangleStripSet Inline IntegerSequencer IntegerTrigger IsoSurfaceVolumeData LineProperties LineSet LOD Material MetadataBoolean MetadataDouble MetadataFloat MetadataInteger MetadataSet MetadataString MultiTexture MultiTextureCoordinate MultiTextureTransform NavigationInfo Normal NormalInterpolator OctTree OpacityMapVolumeStyle OrientationInterpolator OrthoViewpoint PixelTexture PixelTexture3D PointSet Polyline2D Polypoint2D PositionInterpolator ProjectionVolumeStyle Rectangle2D ScalarInterpolator SegmentedVolumeData ShadedVolumeStyle Shape SilhouetteEnhancementVolumeStyle Sphere StaticGroup Switch Text TextureCoordinate TextureCoordinate3D TextureCoordinate4D TextureCoordinateGenerator TextureMatrixTransform TextureProperties TextureTransform TextureTransform3D TimeSensor TimeTrigger ToneMappedVolumeStyle Transform TriangleFanSet TriangleSet TriangleStripSet Viewpoint ViewpointGroup VolumeData WorldInfo." documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/MedInterchange.html" value="MedicalInterchange"/>
   <enumeration appinfo="MPEGInteractive Profile defines base interoperability with MPEG4 standards to a small subset of nodes needed to display lightweight compelling content. Allowed X3D nodes for this profile are: Anchor Appearance Background Box Color ColorInterpolator ColorRGBA Cone Coordinate CoordinateInterpolator Cylinder CylinderSensor DirectionalLight ElevationGrid Group ImageTexture IndexedFaceSet IndexedLineSet Inline LineSet Material MetadataBoolean MetadataDouble MetadataFloat MetadataInteger MetadataSet MetadataString NavigationInfo NormalInterpolator OrientationInterpolator PixelTexture PlaneSensor PointLight PointSet PositionInterpolator ProximitySensor ScalarInterpolator Shape Sphere SphereSensor SpotLight Switch TextureCoordinate TextureTransform TimeSensor TouchSensor Transform Viewpoint WorldInfo." documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/MPEG4interactive.html" value="MPEG4Interactive"/>
   <enumeration appinfo="The Full Profile corresponds to all Immersive X3D nodes plus all approved/implemented extensions. All X3D nodes and statements are allowed in this profile." documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/fullProfile.html" value="Full"/>
  </SimpleType>
  <SimpleType appinfo="projectionVolumeStyleTypeChoices are strictly allowed enumeration values for ProjectionVolumeStyle field named 'type'. This list is bounded, no additional values are allowed." baseType="xs:NMTOKEN" documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/volume.html#ProjectionVolumeStyle" name="projectionVolumeStyleTypeChoices">
   <enumeration appinfo="Maximum Intensity Projection (MIP) or Least MIP (LMIP) algorithm is used to generate output color" value="MAX"/>
   <enumeration appinfo="Minimum Intensity Projection algorithm is used to generate output color" value="MIN"/>
   <enumeration appinfo="All voxels along ray are averaged to generate output color" value="AVERAGE"/>
  </SimpleType>
  <SimpleType appinfo='shaderLanguageValues are supported enumeration values for the language field in shader nodes including "Cg" "GLSL" "HLSL", other values are optionally supported by browsers. Used to optionally determine the language type if no MIME-type information is available. This list is unbounded, additional enumeration values are allowed.' baseType="xs:NMTOKEN" documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/shaders.html#X3DShaderNode" name="shaderLanguageValues">
   <enumeration appinfo="nVidia Cg shading language" value="Cg"/>
   <enumeration appinfo="OpenGL shading language (GLSL)" value="GLSL"/>
   <enumeration appinfo="Microsoft High Level Shading Language (HLSL)" value="HLSL"/>
  </SimpleType>
  <SimpleType appinfo="shaderPartTypeValues are allowed enumeration values for ShaderPart type field. This list is unbounded, additional enumeration values are allowed." baseType="xs:NMTOKEN" documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/shaders.html#ShaderPart" name="shaderPartTypeValues">
   <enumeration appinfo="vertex shader" value="VERTEX"/>
   <enumeration appinfo="fragment shader" value="FRAGMENT"/>
  </SimpleType>
  <SimpleType appinfo="textureBoundaryModeChoices are strictly allowed enumeration values for TextureProperties boundaryMode* fields. This list is bounded, no additional values are allowed." baseType="xs:NMTOKEN" documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/texturing.html#t-TextureBoundaryModes" name="textureBoundaryModeChoices">
   <enumeration appinfo="Clamp texture coordinates to range [0,1]" value="CLAMP"/>
   <enumeration appinfo="Clamp texture coordinates such that a border texel is never sampled" value="CLAMP_TO_EDGE"/>
   <enumeration appinfo="Clamp texture coordinates such that texture samples are border texels for fragments" value="CLAMP_TO_BOUNDARY"/>
   <enumeration appinfo="Texture coordinates are mirrored and then clamped as in CLAMP_TO_EDGE" value="MIRRORED_REPEAT"/>
   <enumeration appinfo="Repeat a texture across the fragment" value="REPEAT"/>
  </SimpleType>
  <SimpleType appinfo="textureCompressionModeChoices are strictly allowed enumeration values for TextureProperties field textureCompression. This list is bounded, no additional values are allowed." baseType="xs:NMTOKEN" documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/texturing.html#t-TextureCompressionModes" name="textureCompressionModeChoices">
   <enumeration appinfo="browser-specified default compression mode" value="DEFAULT"/>
   <enumeration appinfo="fastest method available" value="FASTEST"/>
   <enumeration appinfo="greatest amount of compression" value="HIGH"/>
   <enumeration appinfo="least amount of compression" value="LOW"/>
   <enumeration appinfo="moderate amount of compressions" value="MEDIUM"/>
   <enumeration appinfo="highest quality method available" value="NICEST"/>
  </SimpleType>
  <SimpleType appinfo="textureCoordinateGeneratorModeChoices are strictly allowed enumeration values for TextureCoordinateGenerator mode field. This list is bounded, no additional values are allowed." baseType="xs:NMTOKEN" documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/texturing.html#t-Texturecoordgeneration" name="textureCoordinateGeneratorModeChoices">
   <enumeration appinfo="Creates texture coordinates for a spherical environment" value="SPHERE"/>
   <enumeration appinfo="Use vertex normal, transformed to camera space, as input texture coordinates" value="CAMERASPACENORMAL"/>
   <enumeration appinfo="Use vertex position, transformed to camera space, as input texture coordinates" value="CAMERASPACEPOSITION"/>
   <enumeration appinfo="Use reflection vector, transformed to camera space, as input texture coordinates" value="CAMERASPACEREFLECTIONVECTOR"/>
   <enumeration appinfo="Sphere mapping but in local coordinates" value="SPHERE-LOCAL"/>
   <enumeration appinfo="Use vertex coordinates" value="COORD"/>
   <enumeration appinfo="Use vertex coordinates transformed to camera space" value="COORD-EYE"/>
   <enumeration appinfo="Apply Perlin solid noise function on vertex coordinates" value="NOISE"/>
   <enumeration appinfo="Apply Perlin solid noise function on vertex coordinates transformed to camera space" value="NOISE-EYE"/>
   <enumeration appinfo="similar to CAMERASPACEREFLECTIONVECTOR with optional index of refraction" value="SPHERE-REFLECT"/>
   <enumeration appinfo="Similar to SPHERE-REFLECT transformed to camera space" value="SPHERE-REFLECT-LOCAL"/>
  </SimpleType>
  <SimpleType appinfo="textureMagnificationModeChoices are strictly allowed enumeration values for TextureProperties field magnificationFilter. This list is bounded, no additional values are allowed." baseType="xs:NMTOKEN" documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/texturing.html#t-TextureMagnificationModes" name="textureMagnificationModeChoices">
   <enumeration appinfo="weighted average of four texture elements closest to center of pixel being textured" value="AVG_PIXEL"/>
   <enumeration appinfo="browser-specified default magnification mode" value="DEFAULT"/>
   <enumeration appinfo="fastest method available" value="FASTEST"/>
   <enumeration appinfo="texture element nearest to the center of pixel being textured" value="NEAREST_PIXEL"/>
   <enumeration appinfo="highest quality method available" value="NICEST"/>
  </SimpleType>
  <SimpleType appinfo="textureMinificationModeChoices are strictly allowed enumeration values for TextureProperties field minificationFilter. This list is bounded, no additional values are allowed." baseType="xs:NMTOKEN" documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/texturing.html#t-TextureMinificationModes" name="textureMinificationModeChoices">
   <enumeration appinfo="weighted average of four texture elements closest to center of pixel being textured" value="AVG_PIXEL"/>
   <enumeration appinfo="tri-linear mipmap filtering" value="AVG_PIXEL_AVG_MIPMAP"/>
   <enumeration appinfo="choose mipmap that most closely matches size of pixel being textured, use weighted average of four texture elements closest to center of pixel" value="AVG_PIXEL_NEAREST_MIPMAP"/>
   <enumeration appinfo="browser-specified default minification mode" value="DEFAULT"/>
   <enumeration appinfo="fastest method available, use mipmaps if possible" value="FASTEST"/>
   <enumeration appinfo="texture element nearest to center of pixel being textured" value="NEAREST_PIXEL"/>
   <enumeration appinfo="texture element nearest to center of pixel being textured, use average of two nearest mipmaps" value="NEAREST_PIXEL_AVG_MIPMAP"/>
   <enumeration appinfo="texture element nearest to center of pixel being textured, use nearest mipmap" value="NEAREST_PIXEL_NEAREST_MIPMAP"/>
   <enumeration appinfo="highest quality method available" value="NICEST"/>
  </SimpleType>
  <SimpleType appinfo="unitCategoryChoices are strictly allowed enumeration values for standard units in the UNIT statement. This list is bounded, no additional values are allowed." baseType="xs:NMTOKEN" documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/concepts.html#t-Standardunits" name="unitCategoryChoices">
   <enumeration appinfo="angle default is radians" value="angle"/>
   <enumeration appinfo="force default is newtons" value="force"/>
   <enumeration appinfo="length default is meters" value="length"/>
   <enumeration appinfo="mass default is kilograms" value="mass"/>
  </SimpleType>
  <SimpleType appinfo="unitIntervalType value is an SFFloat ranging [0..1]" baseType="SFFloat" defaultValue="0.0" documentation="_Evaluating the X3D Schema with semantic web tools_, Web3D 2012 Conference, Petit, Marc (EDF), Henry Boccon-Gibod (EDF), Mouton, Christophe (EDF)" name="unitIntervalType"/>
  <SimpleType appinfo="volumeRenderingWeightFunctionChoices are strictly allowed enumeration values for BlendedVolumeStyle weightFunction* fields." baseType="xs:NMTOKEN" documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/volume.html#t-WeightFunctionTypes" name="volumeRenderingWeightFunctionChoices">
   <enumeration appinfo="Use weightConstant1" value="CONSTANT"/>
   <enumeration appinfo="Use O_v" value="ALPHA1"/>
   <enumeration appinfo="Use O_blend" value="ALPHA2"/>
   <enumeration appinfo="Use 1 - O_v" value="ONE_MINUS_ALPHA1"/>
   <enumeration appinfo="Use 1 - O_blend" value="ONE_MINUS_ALPHA2"/>
   <enumeration appinfo="Use table lookup value" value="TABLE"/>
  </SimpleType>
  <SimpleType appinfo="Permitted values for WaveShaper oversample field. This list is bounded, no additional values are allowed." baseType="SFString" documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/sound.html#WaveShaper" name="waveShaperOversampleChoices">
   <enumeration alias="none" appinfo='No oversampling. X3D version of "none" in Web Audio API.' documentation="https://www.w3.org/TR/webaudio/#enumdef-oversampletype" value="NONE"/>
   <enumeration alias="2x" appinfo='Double sampling rate. X3D version of "2x" in Web Audio API.' documentation="https://www.w3.org/TR/webaudio/#enumdef-oversampletype" value="2X"/>
   <enumeration alias="4x" appinfo='Quadruple sampling rate. X3D version of "4x" in Web Audio API.' documentation="https://www.w3.org/TR/webaudio/#enumdef-oversampletype" value="4X"/>
  </SimpleType>
  <SimpleType appinfo="x3dVersionChoices enumeration string constants are used to identify the allowed versions for an X3D scene graph. This list is bounded, no additional values are allowed." baseType="xs:NMTOKEN" documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/concepts.html#Profiles" name="x3dVersionChoices">
   <enumeration appinfo="X3D version 3.0 approved by ISO in 2004." documentation="https://www.web3d.org/documents/specifications/19775-1/V3.0/index.html" value="3.0"/>
   <enumeration appinfo="X3D version 3.1 Amendment 1 approved by ISO in 2005. Backwards compatibility maintained with version 3.0." documentation="https://www.web3d.org/documents/specifications/19775-1/V3.1/index.html" value="3.1"/>
   <enumeration appinfo="X3D version 3.2 Amendment 2 approved by ISO in 2007. Backwards compatibility maintained with versions 3.0 and 3.1." documentation="https://www.web3d.org/documents/specifications/19775-1/V3.2/index.html" value="3.2"/>
   <enumeration appinfo="X3D version 3.3 approved by ISO in 2013 as International Standard (IS). Backwards compatibility maintained with versions 3.0, 3.1 and 3.2." documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/X3D.html" value="3.3"/>
   <enumeration appinfo="X3D version 4.0 under final development by Web3D Consortium. Backwards compatibility maintained with versions 3.0, 3.1, 3.2 and 3.3." documentation="https://www.web3d.org/x3d4" value="4.0"/>
  </SimpleType>
 </SimpleTypeEnumerations>
 <FieldTypes>
  <FieldType defaultValue="false" isArray="false" regex="\s*(true|false)\s*" tupleSize="1" type="SFBool">
   <InterfaceDefinition appinfo="SFBool is a logical type with possible values (true|false) to match the XML boolean type. Hint: XML boolean values are lower case (true|false) in order to maintain compatibility with HTML and other XML documents." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/fieldsDef.html#SFBoolAndMFBool">
    <Inheritance baseType="xs:boolean" x3dType="X3DField"/>
   </InterfaceDefinition>
  </FieldType>
  <FieldType defaultValue="" isArray="true" regex="\s*((true|false)\s*,?\s*)*" tupleSize="1" type="MFBool">
   <InterfaceDefinition appinfo="MFBool is an array of boolean values. Type MFBool was previously undefined in the VRML97 Specification, but nevertheless needed for event utilities and scripting. Example use: MFBool is useful for defining a series of behavior states using a BooleanSequencer prototype. Hint: XML boolean values are lower case (true|false) in order to maintain compatibility with HTML and other XML documents." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/fieldsDef.html#SFBoolAndMFBool">
    <Inheritance baseType="xs:string" x3dType="X3DArrayField"/>
   </InterfaceDefinition>
  </FieldType>
  <FieldType defaultValue="0 0 0" isArray="false" regex="\s*(([+]?((0(\.[0-9]*)?|\.[0-9]+)|1(\.0*)?)([Ee][+-]?[0-9]+)?)\s+){2}([+]?((0(\.[0-9]*)?|\.[0-9]+)|1(\.0*)?)([Ee][+-]?[0-9]+)?)\s*" tupleSize="3" type="SFColor">
   <InterfaceDefinition appinfo="SFColor specifies one RGB (red-green-blue) color triple, where each color value is an RGB triple of floating point numbers in range [0,1]. The default value of an uninitialized SFColor field is (0 0 0). Warning: comma characters within singleton values do not pass strict XML validation." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/fieldsDef.html#SFColorAndMFColor">
    <Inheritance baseType="xs:string" x3dType="X3DField"/>
   </InterfaceDefinition>
  </FieldType>
  <FieldType defaultValue="" isArray="true" regex="\s*((([+-]?((0(\.[0-9]*)?|\.[0-9]+)|1(\.0*)?)([Ee][+-]?[0-9]+)?)\s+){2}([+-]?((0(\.[0-9]*)?|\.[0-9]+)|1(\.0*)?)([Ee][+-]?[0-9]+)?)\s*,?\s*)*" tupleSize="3" type="MFColor">
   <InterfaceDefinition appinfo="MFColor specifies zero or more SFColor RGB triples, where each color value is an RGB triple of floating point numbers in range [0,1]. The default value of an uninitialized MFColor field is the empty list. Individual SFColor array values are optionally separated by commas in XML syntax." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/fieldsDef.html#SFColorAndMFColor">
    <Inheritance baseType="xs:string" x3dType="X3DArrayField"/>
   </InterfaceDefinition>
  </FieldType>
  <FieldType defaultValue="0 0 0 0" isArray="false" regex="\s*(([+-]?((0(\.[0-9]*)?|\.[0-9]+)|1(\.0*)?)([Ee][+-]?[0-9]+)?)\s+){3}([+-]?((0(\.[0-9]*)?|\.[0-9]+)|1(\.0*)?)([Ee][+-]?[0-9]+)?)\s*" tupleSize="4" type="SFColorRGBA">
   <InterfaceDefinition appinfo="SFColorRGBA specifies one RGBA (red-green-blue-alpha) color 4-tuple, where each color value is an RGBA 4-tuple of floating point numbers in range [0,1]. Alpha (opacity) values = (1 - transparency). The default value of an uninitialized SFColorRGBA field is (0 0 0 0). Warning: comma characters within singleton values do not pass strict XML validation." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/fieldsDef.html#SFColorRGBAAndMFColorRGBA">
    <Inheritance baseType="xs:string" x3dType="X3DField"/>
   </InterfaceDefinition>
  </FieldType>
  <FieldType defaultValue="" isArray="true" regex="\s*((([+-]?((0(\.[0-9]*)?|\.[0-9]+)|1(\.0*)?)([Ee][+-]?[0-9]+)?)\s+){3}([+-]?((0(\.[0-9]*)?|\.[0-9]+)|1(\.0*)?)([Ee][+-]?[0-9]+)?)\s*,?\s*)*" tupleSize="4" type="MFColorRGBA">
   <InterfaceDefinition appinfo="MFColorRGBA specifies zero or more SFColorRGBA 4-tuples, where each color value is an RGBA 4-tuple of floating point numbers in range [0,1]. Alpha (opacity) values = (1 - transparency). The default value of an uninitialized MFColor field is the empty list. Individual SFColorRGBA array values are optionally separated by commas in XML syntax." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/fieldsDef.html#SFColorRGBAAndMFColorRGBA">
    <Inheritance baseType="xs:string" x3dType="X3DArrayField"/>
   </InterfaceDefinition>
  </FieldType>
  <FieldType defaultValue="0.0" isArray="false" regex="\s*([+-]?((0|[1-9][0-9]*)(\.[0-9]*)?|\.[0-9]+)([Ee][+-]?[0-9]+)?)\s*" tupleSize="1" type="SFDouble">
   <InterfaceDefinition appinfo="SFDouble is a double-precision floating-point type. Array values are optionally separated by commas in XML syntax. See GeoVRML 1.0 Recommended Practice, Section 2.3, Limitations of Single Precision for rationale." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/fieldsDef.html#SFDoubleAndMFDouble">
    <Inheritance baseType="xs:double" x3dType="X3DField"/>
   </InterfaceDefinition>
  </FieldType>
  <FieldType defaultValue="" isArray="true" regex="\s*(([+-]?((0|[1-9][0-9]*)(\.[0-9]*)?|\.[0-9]+)([Ee][+-]?[0-9]+)?)\s*,?\s*)*" tupleSize="1" type="MFDouble">
   <InterfaceDefinition appinfo="MFDouble is an array of Double values, meaning a double-precision floating-point array type. See GeoVRML 1.0 Recommended Practice, Section 2.3, Limitations of Single Precision for rationale. Array values are optionally separated by commas in XML syntax." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/fieldsDef.html#SFDoubleAndMFDouble">
    <Inheritance baseType="xs:string" x3dType="X3DArrayField"/>
   </InterfaceDefinition>
  </FieldType>
  <FieldType defaultValue="0.0" isArray="false" regex="\s*([+-]?((0|[1-9][0-9]*)(\.[0-9]*)?|\.[0-9]+)([Ee][+-]?[0-9]+)?)\s*" tupleSize="1" type="SFFloat">
   <InterfaceDefinition appinfo="SFFloat is a single-precision floating-point type." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/fieldsDef.html#SFFloatAndMFFloat">
    <Inheritance baseType="xs:float" x3dType="X3DField"/>
   </InterfaceDefinition>
  </FieldType>
  <FieldType defaultValue="" isArray="true" regex="\s*(([+-]?((0|[1-9][0-9]*)(\.[0-9]*)?|\.[0-9]+)([Ee][+-]?[0-9]+)?)\s*,?\s*)*" tupleSize="1" type="MFFloat">
   <InterfaceDefinition appinfo="MFFloat is an array of SFFloat values, meaning a single-precision floating-point array type. Array values are optionally separated by commas in XML syntax." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/fieldsDef.html#SFFloatAndMFFloat">
    <Inheritance baseType="xs:string" x3dType="X3DArrayField"/>
   </InterfaceDefinition>
  </FieldType>
  <FieldType defaultValue="0 0 0" isArray="false" regex="\s*([+]?(0|[1-9][0-9]*)([Ee][+]?[0-9]+)?\s+){2}[+]?[0-4](\s+(0x[0-9a-fA-F]{1,16}|[+]?(0|[1-9][0-9]*)([Ee][+]?[0-9]+)?))*\s*" tupleSize="1" type="SFImage">
   <InterfaceDefinition appinfo="SFImage specifies a single uncompressed 2-dimensional pixel image. SFImage fields contain three integers representing the width, height and number of components in the image, followed by (width x height) hexadecimal or integer values representing the pixels in the image." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/fieldsDef.html#SFImageAndMFImage">
    <Inheritance baseType="xs:string" x3dType="X3DField"/>
   </InterfaceDefinition>
  </FieldType>
  <FieldType defaultValue="" isArray="true" regex="\s*(([+]?(0|[1-9][0-9]*)([Ee][+]?[0-9]+)?\s+){2}[+]?[0-4](\s+(0x[0-9a-fA-F]{1,16}|[+]?(0|[1-9][0-9]*)([Ee][+]?[0-9]+)?))*\s*,?\s*)*" tupleSize="1" type="MFImage">
   <InterfaceDefinition appinfo="MFImage is an array of SFImage values." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/fieldsDef.html#SFImageAndMFImage">
    <Inheritance baseType="xs:string" x3dType="X3DArrayField"/>
   </InterfaceDefinition>
  </FieldType>
  <FieldType defaultValue="0" isArray="false" regex="\s*[+-]?(0|[1-9][0-9]*)([Ee][+-]?[0-9]+)?\s*" tupleSize="1" type="SFInt32">
   <InterfaceDefinition appinfo="SFInt32 specifies one 32-bit signed integer." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/fieldsDef.html#SFInt32AndMFInt32">
    <Inheritance baseType="xs:integer" x3dType="X3DField"/>
   </InterfaceDefinition>
  </FieldType>
  <FieldType defaultValue="" isArray="true" regex="\s*([+-]?(0|[1-9][0-9]*)([Ee][+-]?[0-9]+)?\s*,?\s*)*" tupleSize="1" type="MFInt32">
   <InterfaceDefinition appinfo="MFInt32 defines an array of 32-bit signed integers. Array values are optionally separated by commas in XML syntax." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/fieldsDef.html#SFInt32AndMFInt32">
    <Inheritance baseType="xs:string" x3dType="X3DArrayField"/>
   </InterfaceDefinition>
  </FieldType>
  <FieldType defaultValue="1 0 0 0 1 0 0 0 1" isArray="false" regex="\s*(([+-]?((0|[1-9][0-9]*)(\.[0-9]*)?|\.[0-9]+)([Ee][+-]?[0-9]+)?)\s+){8}([+-]?((0|[1-9][0-9]*)(\.[0-9]*)?|\.[0-9]+)([Ee][+-]?[0-9]+)?)\s*" tupleSize="9" type="SFMatrix3d">
   <InterfaceDefinition appinfo="SFMatrix3d specifies a 3x3 matrix of double-precision floating point numbers, organized in row-major fashion. Warning: comma characters within singleton values do not pass strict XML validation." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/fieldsDef.html#SFMatrix3dAndMFMatrix3d">
    <Inheritance baseType="xs:string" x3dType="X3DField"/>
   </InterfaceDefinition>
  </FieldType>
  <FieldType defaultValue="" isArray="true" regex="\s*((([+-]?((0|[1-9][0-9]*)(\.[0-9]*)?|\.[0-9]+)([Ee][+-]?[0-9]+)?)\s+){8}([+-]?((0|[1-9][0-9]*)(\.[0-9]*)?|\.[0-9]+)([Ee][+-]?[0-9]+)?)\s*,?\s*)*" tupleSize="9" type="MFMatrix3d">
   <InterfaceDefinition appinfo="MFMatrix3d specifies zero or more 3x3 matrices of double-precision floating point numbers, organized in row-major fashion. Warning: comma characters can only appear between singleton 9-tuple values." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/fieldsDef.html#SFMatrix3dAndMFMatrix3d">
    <Inheritance baseType="xs:string" x3dType="X3DArrayField"/>
   </InterfaceDefinition>
  </FieldType>
  <FieldType defaultValue="1 0 0 0 1 0 0 0 1" isArray="false" regex="\s*(([+-]?((0|[1-9][0-9]*)(\.[0-9]*)?|\.[0-9]+)([Ee][+-]?[0-9]+)?)\s+){8}([+-]?((0|[1-9][0-9]*)(\.[0-9]*)?|\.[0-9]+)([Ee][+-]?[0-9]+)?)\s*" tupleSize="9" type="SFMatrix3f">
   <InterfaceDefinition appinfo="SFMatrix3f specifies a 3x3 matrix of single-precision floating point numbers, organized in row-major fashion. Warning: comma characters within singleton values do not pass strict XML validation." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/fieldsDef.html#SFMatrix3fAndMFMatrix3f">
    <Inheritance baseType="xs:string" x3dType="X3DField"/>
   </InterfaceDefinition>
  </FieldType>
  <FieldType defaultValue="" isArray="true" regex="\s*((([+-]?((0|[1-9][0-9]*)(\.[0-9]*)?|\.[0-9]+)([Ee][+-]?[0-9]+)?)\s+){8}([+-]?((0|[1-9][0-9]*)(\.[0-9]*)?|\.[0-9]+)([Ee][+-]?[0-9]+)?)\s*,?\s*)*" tupleSize="9" type="MFMatrix3f">
   <InterfaceDefinition appinfo="MFMatrix3f specifies zero or more 3x3 matrices of single-precision floating point numbers, organized in row-major fashion. Warning: comma characters can only appear between singleton 9-tuple values." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/fieldsDef.html#SFMatrix3fAndMFMatrix3f">
    <Inheritance baseType="xs:string" x3dType="X3DArrayField"/>
   </InterfaceDefinition>
  </FieldType>
  <FieldType defaultValue="1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1" isArray="false" regex="\s*(([+-]?((0|[1-9][0-9]*)(\.[0-9]*)?|\.[0-9]+)([Ee][+-]?[0-9]+)?)\s+){15}([+-]?((0|[1-9][0-9]*)(\.[0-9]*)?|\.[0-9]+)([Ee][+-]?[0-9]+)?)\s*" tupleSize="16" type="SFMatrix4d">
   <InterfaceDefinition appinfo="SFMatrix4d specifies a 4x4 matrix of double-precision floating point numbers, organized in row-major fashion. Warning: comma characters within singleton values do not pass strict XML validation." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/fieldsDef.html#SFMatrix4dAndMFMatrix4d">
    <Inheritance baseType="xs:string" x3dType="X3DField"/>
   </InterfaceDefinition>
  </FieldType>
  <FieldType defaultValue="" isArray="true" regex="\s*((([+-]?((0|[1-9][0-9]*)(\.[0-9]*)?|\.[0-9]+)([Ee][+-]?[0-9]+)?)\s+){15}([+-]?((0|[1-9][0-9]*)(\.[0-9]*)?|\.[0-9]+)([Ee][+-]?[0-9]+)?)\s*,?\s*)*" tupleSize="16" type="MFMatrix4d">
   <InterfaceDefinition appinfo="MFMatrix4d specifies zero or more 4x4 matrices of double-precision floating point numbers, organized in row-major fashion. Warning: comma characters can only appear between singleton 16-tuple values." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/fieldsDef.html#SFMatrix4dAndMFMatrix4d">
    <Inheritance baseType="xs:string" x3dType="X3DArrayField"/>
   </InterfaceDefinition>
  </FieldType>
  <FieldType defaultValue="1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1" isArray="false" regex="\s*(([+-]?((0|[1-9][0-9]*)(\.[0-9]*)?|\.[0-9]+)([Ee][+-]?[0-9]+)?)\s+){15}([+-]?((0|[1-9][0-9]*)(\.[0-9]*)?|\.[0-9]+)([Ee][+-]?[0-9]+)?)\s*" tupleSize="16" type="SFMatrix4f">
   <InterfaceDefinition appinfo="SFMatrix4f specifies a 4x4 matrix of single-precision floating point numbers, organized in row-major fashion. Warning: comma characters within singleton values do not pass strict XML validation." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/fieldsDef.html#SFMatrix4fAndMFMatrix4f">
    <Inheritance baseType="xs:string" x3dType="X3DField"/>
   </InterfaceDefinition>
  </FieldType>
  <FieldType defaultValue="" isArray="true" regex="\s*((([+-]?((0|[1-9][0-9]*)(\.[0-9]*)?|\.[0-9]+)([Ee][+-]?[0-9]+)?)\s+){15}([+-]?((0|[1-9][0-9]*)(\.[0-9]*)?|\.[0-9]+)([Ee][+-]?[0-9]+)?)\s*,?\s*)*" tupleSize="16" type="MFMatrix4f">
   <InterfaceDefinition appinfo="MFMatrix4f specifies zero or more 4x4 matrices of single-precision floating point numbers, organized in row-major fashion. Warning: comma characters can only appear between singleton 16-tuple values." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/fieldsDef.html#SFMatrix4fAndMFMatrix4f">
    <Inheritance baseType="xs:string" x3dType="X3DArrayField"/>
   </InterfaceDefinition>
  </FieldType>
  <FieldType defaultValue="" isArray="false" tupleSize="1" type="SFNode">
   <InterfaceDefinition appinfo="SFNode specifies an X3D node; the default empty value of an uninitialized SFNode field is sometimes described as NULL." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/fieldsDef.html#SFNodeAndMFNode">
    <Inheritance baseType="SFString" x3dType="X3DField"/>
   </InterfaceDefinition>
  </FieldType>
  <FieldType defaultValue="" isArray="true" tupleSize="1" type="MFNode">
   <InterfaceDefinition appinfo="MFNode specifies zero or more nodes; the default value of an MFNode field is the empty list." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/fieldsDef.html#SFNodeAndMFNode">
    <Inheritance baseType="SFString" x3dType="X3DArrayField"/>
   </InterfaceDefinition>
  </FieldType>
  <FieldType defaultValue="0 0 1 0" isArray="false" regex="\s*(([+-]?((0|[1-9][0-9]*)(\.[0-9]*)?|\.[0-9]+)([Ee][+-]?[0-9]+)?)\s+){3}([+-]?((0|[1-9][0-9]*)(\.[0-9]*)?|\.[0-9]+)([Ee][+-]?[0-9]+)?)\s*" tupleSize="4" type="SFRotation">
   <InterfaceDefinition appinfo="SFRotation is an axis-angle 4-tuple, indicating X-Y-Z direction axis plus angle orientation about that axis. The first three values specify a normalized axis vector about which the rotation takes place, so the first three values shall be within the range [-1..+1] in order to represent a normalized unit vector. The fourth value specifies the amount of right-handed rotation about that axis in radians. Warning: comma characters within singleton values do not pass strict XML validation." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/fieldsDef.html#SFRotationAndMFRotation">
    <Inheritance baseType="xs:string" x3dType="X3DField"/>
   </InterfaceDefinition>
  </FieldType>
  <FieldType defaultValue="" isArray="true" regex="\s*((([+-]?((0|[1-9][0-9]*)(\.[0-9]*)?|\.[0-9]+)([Ee][+-]?[0-9]+)?)\s+){3}([+-]?((0|[1-9][0-9]*)(\.[0-9]*)?|\.[0-9]+)([Ee][+-]?[0-9]+)?)\s*,?\s*)*" tupleSize="4" type="MFRotation">
   <InterfaceDefinition appinfo="MFRotation is an array of SFRotation values. Individual singleton SFRotation array values are optionally separated by commas in XML syntax." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/fieldsDef.html#SFRotationAndMFRotation">
    <Inheritance baseType="xs:string" x3dType="X3DArrayField"/>
   </InterfaceDefinition>
  </FieldType>
  <FieldType defaultValue="" isArray="false" regex="(\s|\S)*" tupleSize="1" type="SFString">
   <InterfaceDefinition appinfo="SFString defines a single string encoded with the UTF-8 universal character set." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/fieldsDef.html#SFStringAndMFString">
    <Inheritance baseType="xs:string" x3dType="X3DField"/>
   </InterfaceDefinition>
  </FieldType>
  <FieldType defaultValue="" isArray="true" regex="(\s|\S)*" tupleSize="1" type="MFString">
   <InterfaceDefinition appinfo='MFString is an array of SFString values, each "quoted" and separated by whitespace. Individual SFString array values are optionally separated by commas in XML syntax.' specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/fieldsDef.html#SFStringAndMFString"/>
  </FieldType>
  <FieldType defaultValue="-1.0" isArray="false" regex="\s*([+-]?((0|[1-9][0-9]*)(\.[0-9]*)?|\.[0-9]+)([Ee][+-]?[0-9]+)?)\s*" tupleSize="1" type="SFTime">
   <InterfaceDefinition appinfo="SFTime specifies a single time value, expressed as a double-precision floating point number. Typically, SFTime fields represent the number of seconds since Jan 1, 1970, 00:00:00 GMT." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/fieldsDef.html#SFTimeAndMFTime">
    <Inheritance baseType="xs:double" x3dType="X3DField"/>
   </InterfaceDefinition>
  </FieldType>
  <FieldType defaultValue="" isArray="true" regex="\s*(([+-]?((0|[1-9][0-9]*)(\.[0-9]*)?|\.[0-9]+)([Ee][+-]?[0-9]+)?)\s*,?\s*)*" tupleSize="1" type="MFTime">
   <InterfaceDefinition appinfo="MFTime is an array of SFTime values. Array values are optionally separated by commas in XML syntax." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/fieldsDef.html#SFTimeAndMFTime">
    <Inheritance baseType="xs:string" x3dType="X3DArrayField"/>
   </InterfaceDefinition>
  </FieldType>
  <FieldType defaultValue="0.0 0.0" isArray="false" regex="\s*(([+-]?((0|[1-9][0-9]*)(\.[0-9]*)?|\.[0-9]+)([Ee][+-]?[0-9]+)?)\s+){1}([+-]?((0|[1-9][0-9]*)(\.[0-9]*)?|\.[0-9]+)([Ee][+-]?[0-9]+)?)\s*" tupleSize="2" type="SFVec2d">
   <InterfaceDefinition appinfo="SFVec2d is a 2-tuple pair of SFDouble values. Hint: SFVec2d can be used to specify a 2D double-precision coordinate. Warning: comma characters within singleton values do not pass strict XML validation." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/fieldsDef.html#SFVec2dAndMFVec2d">
    <Inheritance baseType="xs:string" x3dType="X3DField"/>
   </InterfaceDefinition>
  </FieldType>
  <FieldType defaultValue="" isArray="true" regex="\s*((([+-]?((0|[1-9][0-9]*)(\.[0-9]*)?|\.[0-9]+)([Ee][+-]?[0-9]+)?)\s+){1}([+-]?((0|[1-9][0-9]*)(\.[0-9]*)?|\.[0-9]+)([Ee][+-]?[0-9]+)?)\s*,?\s*)*" tupleSize="2" type="MFVec2d">
   <InterfaceDefinition appinfo="MFVec2d is an array of SFVec2d values. Individual singleton SFVec2d array values are optionally separated by commas in XML syntax." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/fieldsDef.html#SFVec2dAndMFVec2d">
    <Inheritance baseType="xs:string" x3dType="X3DArrayField"/>
   </InterfaceDefinition>
  </FieldType>
  <FieldType defaultValue="0.0 0.0" isArray="false" regex="\s*(([+-]?((0|[1-9][0-9]*)(\.[0-9]*)?|\.[0-9]+)([Ee][+-]?[0-9]+)?)\s+){1}([+-]?((0|[1-9][0-9]*)(\.[0-9]*)?|\.[0-9]+)([Ee][+-]?[0-9]+)?)\s*" tupleSize="2" type="SFVec2f">
   <InterfaceDefinition appinfo="SFVec2f is a 2-tuple pair of SFFloat values. Hint: SFVec2f can be used to specify a 2D single-precision coordinate. Warning: comma characters within singleton values do not pass strict XML validation." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/fieldsDef.html#SFVec2fAndMFVec2f">
    <Inheritance baseType="xs:string" x3dType="X3DField"/>
   </InterfaceDefinition>
  </FieldType>
  <FieldType defaultValue="" isArray="true" regex="\s*((([+-]?((0|[1-9][0-9]*)(\.[0-9]*)?|\.[0-9]+)([Ee][+-]?[0-9]+)?)\s+){1}([+-]?((0|[1-9][0-9]*)(\.[0-9]*)?|\.[0-9]+)([Ee][+-]?[0-9]+)?)\s*,?\s*)*" tupleSize="2" type="MFVec2f">
   <InterfaceDefinition appinfo="MFVec2f is an array of SFVec2f values. Individual singleton SFVec2f array values are optionally separated by commas in XML syntax." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/fieldsDef.html#SFVec2fAndMFVec2f">
    <Inheritance baseType="xs:string" x3dType="X3DArrayField"/>
   </InterfaceDefinition>
  </FieldType>
  <FieldType defaultValue="0.0 0.0 0.0" isArray="false" regex="\s*(([+-]?((0|[1-9][0-9]*)(\.[0-9]*)?|\.[0-9]+)([Ee][+-]?[0-9]+)?)\s+){2}([+-]?((0|[1-9][0-9]*)(\.[0-9]*)?|\.[0-9]+)([Ee][+-]?[0-9]+)?)\s*" tupleSize="3" type="SFVec3d">
   <InterfaceDefinition appinfo="SFVec3d is a 3-tuple triplet of SFDouble values. See GeoVRML 1.0 Recommended Practice, Section 2.3, Limitations of Single Precision. Hint: SFVec3d can be used to specify a georeferenced 3D coordinate. Warning: comma characters within singleton values do not pass strict XML validation." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/fieldsDef.html#SFVec3dAndMFVec3d">
    <Inheritance baseType="xs:string" x3dType="X3DField"/>
   </InterfaceDefinition>
  </FieldType>
  <FieldType defaultValue="" isArray="true" regex="\s*((([+-]?((0|[1-9][0-9]*)(\.[0-9]*)?|\.[0-9]+)([Ee][+-]?[0-9]+)?)\s+){2}([+-]?((0|[1-9][0-9]*)(\.[0-9]*)?|\.[0-9]+)([Ee][+-]?[0-9]+)?)\s*,?\s*)*" tupleSize="3" type="MFVec3d">
   <InterfaceDefinition appinfo="MFVec3d is an array of SFVec3d values. Individual singleton SFVec3d array values are optionally separated by commas in XML syntax. Original rationale for inclusion: GeoVRML 1.0 Recommended Practice, Section 2.3, Limitations of Single Precision. Hint: MFVec3d can be used to specify a list of georeferenced 3D coordinates." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/fieldsDef.html#SFVec3dAndMFVec3d">
    <Inheritance baseType="xs:string" x3dType="X3DArrayField"/>
   </InterfaceDefinition>
  </FieldType>
  <FieldType defaultValue="0.0 0.0 0.0" isArray="false" regex="\s*(([+-]?((0|[1-9][0-9]*)(\.[0-9]*)?|\.[0-9]+)([Ee][+-]?[0-9]+)?)\s+){2}([+-]?((0|[1-9][0-9]*)(\.[0-9]*)?|\.[0-9]+)([Ee][+-]?[0-9]+)?)\s*" tupleSize="3" type="SFVec3f">
   <InterfaceDefinition appinfo="SFVec3f is a 3-tuple triplet of SFFloat values. Hint: SFVec3f can be used to specify a 3D coordinate or a 3D scale value. Warning: comma characters within singleton values do not pass strict XML validation." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/fieldsDef.html#SFVec3fAndMFVec3f">
    <Inheritance baseType="xs:string" x3dType="X3DField"/>
   </InterfaceDefinition>
  </FieldType>
  <FieldType defaultValue="" isArray="true" regex="\s*((([+-]?((0|[1-9][0-9]*)(\.[0-9]*)?|\.[0-9]+)([Ee][+-]?[0-9]+)?)\s+){2}([+-]?((0|[1-9][0-9]*)(\.[0-9]*)?|\.[0-9]+)([Ee][+-]?[0-9]+)?)\s*,?\s*)*" tupleSize="3" type="MFVec3f">
   <InterfaceDefinition appinfo="MFVec3f is an array of SFVec3f values. Individual singleton SFVec3f array values are optionally separated by commas in XML syntax." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/fieldsDef.html#SFVec3fAndMFVec3f">
    <Inheritance baseType="xs:string" x3dType="X3DArrayField"/>
   </InterfaceDefinition>
  </FieldType>
  <FieldType defaultValue="0.0 0.0 0.0 1.0" isArray="false" regex="\s*(([+-]?((0|[1-9][0-9]*)(\.[0-9]*)?|\.[0-9]+)([Ee][+-]?[0-9]+)?)\s+){3}([+-]?((0|[1-9][0-9]*)(\.[0-9]*)?|\.[0-9]+)([Ee][+-]?[0-9]+)?)\s*" tupleSize="4" type="SFVec4d">
   <InterfaceDefinition appinfo="SFVec4d is a 4-tuple set of double-precision floating-point values, specifying a 3D homogeneous vector. Warning: comma characters within singleton values do not pass strict XML validation." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/fieldsDef.html#SFVec4dAndMFVec4d">
    <Inheritance baseType="xs:string" x3dType="X3DField"/>
   </InterfaceDefinition>
  </FieldType>
  <FieldType defaultValue="" isArray="true" regex="\s*((([+-]?((0|[1-9][0-9]*)(\.[0-9]*)?|\.[0-9]+)([Ee][+-]?[0-9]+)?)\s+){3}([+-]?((0|[1-9][0-9]*)(\.[0-9]*)?|\.[0-9]+)([Ee][+-]?[0-9]+)?)\s*,?\s*)*" tupleSize="4" type="MFVec4d">
   <InterfaceDefinition appinfo="MFVec4d is zero or more SFVec4d values. Individual singleton SFVec4d array values are optionally separated by commas in XML syntax." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/fieldsDef.html#SFVec4dAndMFVec4d">
    <Inheritance baseType="xs:string" x3dType="X3DArrayField"/>
   </InterfaceDefinition>
  </FieldType>
  <FieldType defaultValue="0.0 0.0 0.0 1.0" isArray="false" regex="\s*(([+-]?((0|[1-9][0-9]*)(\.[0-9]*)?|\.[0-9]+)([Ee][+-]?[0-9]+)?)\s+){3}([+-]?((0|[1-9][0-9]*)(\.[0-9]*)?|\.[0-9]+)([Ee][+-]?[0-9]+)?)\s*" tupleSize="4" type="SFVec4f">
   <InterfaceDefinition appinfo="SFVec4f is a 4-tuple set of single-precision floating-point values, specifying a 3D homogeneous vector. Warning: comma characters within singleton values do not pass strict XML validation." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/fieldsDef.html#SFVec4fAndMFVec4f">
    <Inheritance baseType="xs:string" x3dType="X3DField"/>
   </InterfaceDefinition>
  </FieldType>
  <FieldType defaultValue="" isArray="true" regex="\s*((([+-]?((0|[1-9][0-9]*)(\.[0-9]*)?|\.[0-9]+)([Ee][+-]?[0-9]+)?)\s+){3}([+-]?((0|[1-9][0-9]*)(\.[0-9]*)?|\.[0-9]+)([Ee][+-]?[0-9]+)?)\s*,?\s*)*" tupleSize="4" type="MFVec4f">
   <InterfaceDefinition appinfo="MFVec4f is zero or more SFVec4f values. Individual singleton SFVec4f array values are optionally separated by commas in XML syntax." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/fieldsDef.html#SFVec4fAndMFVec4f">
    <Inheritance baseType="xs:string" x3dType="X3DArrayField"/>
   </InterfaceDefinition>
  </FieldType>
 </FieldTypes>
 <AbstractObjectTypes>
  <AbstractObjectType name="X3DBoundedObject">
   <InterfaceDefinition appinfo="X3DBoundedObject indicates that bounding box values can be provided (or computed) to encompass this node and any children." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/grouping.html#X3DBoundedObject">
    <componentInfo level="1" name="Grouping"/>
    <field accessType="initializeOnly" default="0 0 0" name="bboxCenter" type="SFVec3f"/>
    <field accessType="inputOutput" default="false" name="bboxDisplay" type="SFBool"/>
    <field accessType="initializeOnly" baseType="bboxSizeType" default="-1 -1 -1" name="bboxSize" type="SFVec3f"/>
    <field accessType="inputOutput" default="true" name="visible" type="SFBool"/>
   </InterfaceDefinition>
  </AbstractObjectType>
  <AbstractObjectType name="X3DFogObject">
   <InterfaceDefinition appinfo="Abstract type describing a node that influences the lighting equation through the use of fog semantics." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/environmentalEffects.html#X3DFogOjbect">
    <componentInfo level="2" name="EnvironmentalEffects"/>
    <field accessType="inputOutput" default="1 1 1" maxInclusive="1" minInclusive="0" name="color" type="SFColor"/>
    <field accessType="inputOutput" additionalEnumerationValuesAllowed="false" baseType="xs:NMTOKEN" default="LINEAR" name="fogType" simpleType="fogTypeChoices" type="SFString">
     <enumeration appinfo="linear blending as a function of distance." value="LINEAR"/>
     <enumeration appinfo="exponential blending as a function of distance." value="EXPONENTIAL"/>
    </field>
    <field accessType="inputOutput" default="0" minInclusive="0" name="visibilityRange" type="SFFloat"/>
   </InterfaceDefinition>
  </AbstractObjectType>
  <AbstractObjectType name="X3DMetadataObject">
   <InterfaceDefinition appinfo="Each node inheriting the X3DMetadataObject interface contains a single array of strictly typed values: MFBool, MFInt32, MFFloat, MFDouble, MFString, or MFNode, the latter having children that are all Metadata nodes." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/core.html#X3DMetadataObject">
    <componentInfo level="1" name="Core"/>
    <field accessType="inputOutput" name="name" type="SFString"/>
    <field accessType="inputOutput" name="reference" type="SFString"/>
   </InterfaceDefinition>
  </AbstractObjectType>
  <AbstractObjectType name="X3DPickableObject">
   <InterfaceDefinition appinfo="The X3DPickableObject abstract interface marks a node as being capable of having customized picking performed on its contents or children." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/picking.html#X3DPickableObject">
    <componentInfo level="1" name="Picking"/>
    <field accessType="inputOutput" default="true" name="pickable" type="SFBool"/>
   </InterfaceDefinition>
  </AbstractObjectType>
  <AbstractObjectType name="X3DProgrammableShaderObject">
   <InterfaceDefinition appinfo="Base type for all nodes that specify arbitrary fields for interfacing with per-object attribute values." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/shaders.html#X3DProgrammableShaderObject">
    <componentInfo level="1" name="Shaders"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
   </InterfaceDefinition>
  </AbstractObjectType>
  <AbstractObjectType name="X3DUrlObject">
   <InterfaceDefinition appinfo="X3DUrlObject indicates that a node has content loaded from a Uniform Resource Locator (URL) and can be tracked via a LoadSensor. Such child nodes have containerField='children' to indicate their relationship to the parent LoadSensor node." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/networking.html#X3DUrlObject">
    <componentInfo level="1" name="Networking"/>
    <field accessType="inputOutput" default="0" minInclusive="0" name="autoRefresh" type="SFTime"/>
    <field accessType="inputOutput" default="3600" minInclusive="0" name="autoRefreshTimeLimit" type="SFTime"/>
    <field accessType="inputOutput" name="description" type="SFString"/>
    <field accessType="inputOutput" default="true" name="load" type="SFBool"/>
    <field accessType="inputOutput" name="url" type="MFString">
     <componentInfo level="4" name="Networking"/>
    </field>
   </InterfaceDefinition>
  </AbstractObjectType>
 </AbstractObjectTypes>
 <AbstractNodeTypes>
  <AbstractNodeType name="X3DAppearanceChildNode">
   <InterfaceDefinition appinfo="Nodes of this type can be used as child nodes for Appearance." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/shape.html#X3DAppearanceChildNode">
    <componentInfo level="1" name="Shape"/>
    <Inheritance baseType="X3DNode"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </AbstractNodeType>
  <AbstractNodeType name="X3DAppearanceNode">
   <InterfaceDefinition appinfo="Base type for all Appearance nodes." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/shape.html#X3DAppearanceNode">
    <componentInfo level="1" name="Shape"/>
    <Inheritance baseType="X3DNode"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <ContentModel>
     <GroupContentModel maxOccurs="unbounded" minOccurs="0" name="AppearanceChildContentModel"/>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </AbstractNodeType>
  <AbstractNodeType name="X3DArrayField">
   <InterfaceDefinition appinfo="X3DArrayField is the abstract field type from which all field types that can contain multiple values are derived, implementing the X3DField interface. All fields derived from X3DArrayField have names beginning with MF (multiple-valued field). MF fields may zero or more values, each of which shall be of the type indicated by the corresponding SF field type. It is illegal for any MF field to mix values of different SF field types." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/fieldTypes.html#X3DArrayField">
    <Inheritance x3dType="X3DField"/>
   </InterfaceDefinition>
  </AbstractNodeType>
  <AbstractNodeType name="X3DBackgroundNode">
   <InterfaceDefinition appinfo="Abstract type from which all backgrounds inherit, also defining a background binding stack." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/environmentalEffects.html#X3DBackgroundNode">
    <componentInfo level="1" name="EnvironmentalEffects"/>
    <Inheritance baseType="X3DBindableNode"/>
    <field accessType="outputOnly" inheritedFrom="X3DBindableNode" name="bindTime" type="SFTime"/>
    <field accessType="inputOutput" maxInclusive="1.5708" minInclusive="0" name="groundAngle" type="MFFloat">
     <componentInfo level="2" name="EnvironmentalEffects"/>
    </field>
    <field accessType="inputOutput" maxInclusive="1" minInclusive="0" name="groundColor" type="MFColor"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="outputOnly" inheritedFrom="X3DBindableNode" name="isBound" type="SFBool"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOnly" inheritedFrom="X3DBindableNode" name="set_bind" type="SFBool"/>
    <field accessType="inputOutput" maxInclusive="3.1416" minInclusive="0" name="skyAngle" type="MFFloat">
     <componentInfo level="2" name="EnvironmentalEffects"/>
    </field>
    <field accessType="inputOutput" default="0 0 0" maxInclusive="1" minInclusive="0" name="skyColor" type="MFColor">
     <componentInfo level="2" name="EnvironmentalEffects"/>
    </field>
    <field accessType="inputOutput" baseType="unitIntervalType" default="0" maxInclusive="1" minInclusive="0" name="transparency" type="SFFloat"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </AbstractNodeType>
  <AbstractNodeType name="X3DBindableNode">
   <InterfaceDefinition appinfo="Bindable nodes implement the binding stack, so that only one of each node type is active at a given time." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/core.html#X3DBindableNode">
    <componentInfo level="1" name="Core"/>
    <Inheritance baseType="X3DChildNode"/>
    <field accessType="outputOnly" name="bindTime" type="SFTime"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="outputOnly" name="isBound" type="SFBool"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOnly" name="set_bind" type="SFBool"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </AbstractNodeType>
  <AbstractNodeType name="X3DChaserNode">
   <InterfaceDefinition appinfo="The X3DChaserNode abstract node type calculates the output on value_changed as a finite impulse response (FIR) based on the events received on set_destination field." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/followers.html#X3DChaserNode">
    <componentInfo level="1" name="Followers"/>
    <Inheritance baseType="X3DFollowerNode"/>
    <field accessType="initializeOnly" default="1" minInclusive="0" name="duration" type="SFTime"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="outputOnly" inheritedFrom="X3DFollowerNode" name="isActive" type="SFBool"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </AbstractNodeType>
  <AbstractNodeType name="X3DChildNode">
   <InterfaceDefinition appinfo="A node that implements X3DChildNode is one of the legal children for a X3DGroupingNode parent." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/core.html#X3DChildNode">
    <componentInfo level="1" name="Core"/>
    <Inheritance baseType="X3DNode"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </AbstractNodeType>
  <AbstractNodeType name="X3DColorNode">
   <InterfaceDefinition appinfo="Base type for color specifications in X3D." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/rendering.html#X3DColorNode">
    <componentInfo level="1" name="Rendering"/>
    <Inheritance baseType="X3DGeometricPropertyNode"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </AbstractNodeType>
  <AbstractNodeType name="X3DComposableVolumeRenderStyleNode">
   <InterfaceDefinition appinfo="The X3DComposableVolumeRenderStyleNode abstract node type is the base type for all node types that allow rendering styles to be sequentially composed together to form a single renderable output." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/volume.html#X3DComposableVolumeRenderStyleNode">
    <componentInfo level="1" name="VolumeRendering"/>
    <Inheritance baseType="X3DVolumeRenderStyleNode"/>
    <field accessType="inputOutput" default="true" inheritedFrom="X3DVolumeRenderStyleNode" name="enabled" type="SFBool"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </AbstractNodeType>
  <AbstractNodeType name="X3DComposedGeometryNode">
   <InterfaceDefinition appinfo="Composed geometry nodes produce renderable geometry, can contain Color Coordinate Normal TextureCoordinate, and are contained by a Shape node." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/rendering.html#X3DComposedGeometryNode">
    <componentInfo level="1" name="Rendering"/>
    <Inheritance baseType="X3DGeometryNode"/>
    <field acceptableNodeTypes="X3DVertexAttributeNode" accessType="inputOutput" name="attrib" type="MFNode"/>
    <field accessType="initializeOnly" default="true" name="ccw" type="SFBool"/>
    <field acceptableNodeTypes="X3DColorNode" accessType="inputOutput" default="NULL" name="color" type="SFNode"/>
    <field accessType="initializeOnly" default="true" name="colorPerVertex" type="SFBool"/>
    <field acceptableNodeTypes="X3DCoordinateNode" accessType="inputOutput" default="NULL" name="coord" type="SFNode"/>
    <field acceptableNodeTypes="FogCoordinate" accessType="inputOutput" default="NULL" name="fogCoord" type="SFNode"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field acceptableNodeTypes="X3DNormalNode" accessType="inputOutput" default="NULL" name="normal" type="SFNode"/>
    <field accessType="initializeOnly" default="true" name="normalPerVertex" type="SFBool"/>
    <field accessType="initializeOnly" default="true" name="solid" type="SFBool"/>
    <field acceptableNodeTypes="X3DSingleTextureCoordinateNode|MultiTextureCoordinate" accessType="inputOutput" default="NULL" name="texCoord" type="SFNode"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <ContentModel>
     <GroupContentModel maxOccurs="unbounded" minOccurs="0" name="ComposedGeometryContentModel"/>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
   <field acceptableNodeTypes="Tangent" accessType="inputOutput" description="Input/Output field tangent. If there is no Tangent node, the MikkTSpace algorithm is used to generate tangent vectors." name="tangent" type="SFNode"/>
  </AbstractNodeType>
  <AbstractNodeType name="X3DCoordinateNode">
   <InterfaceDefinition appinfo="Base type for all coordinate node types in X3D." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/rendering.html#X3DCoordinateNode">
    <componentInfo level="1" name="Rendering"/>
    <Inheritance baseType="X3DGeometricPropertyNode"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </AbstractNodeType>
  <AbstractNodeType name="X3DDamperNode">
   <InterfaceDefinition appinfo="The X3DDamperNode abstract node type creates an IIR response that approaches the destination value according to the shape of the e-function only asymptotically but very quickly." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/followers.html#X3DDamperNode">
    <componentInfo level="1" name="Followers"/>
    <Inheritance baseType="X3DFollowerNode"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="outputOnly" inheritedFrom="X3DFollowerNode" name="isActive" type="SFBool"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="initializeOnly" default="3" maxInclusive="5" minInclusive="0" name="order" type="SFInt32"/>
    <field accessType="inputOutput" default="0.3" minInclusive="0" name="tau" type="SFTime"/>
    <field accessType="inputOutput" default="-1" name="tolerance" type="SFFloat"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </AbstractNodeType>
  <AbstractNodeType name="X3DDragSensorNode">
   <InterfaceDefinition appinfo="Base type for all drag-style pointing device sensors." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/pointingDeviceSensor.html#X3DDragSensorNode">
    <componentInfo level="1" name="PointingDeviceSensor"/>
    <Inheritance baseType="X3DPointingDeviceSensorNode"/>
    <field accessType="inputOutput" default="true" name="autoOffset" type="SFBool"/>
    <field accessType="inputOutput" inheritedFrom="X3DSensorNode" name="description" type="SFString"/>
    <field accessType="inputOutput" default="true" inheritedFrom="X3DSensorNode" name="enabled" type="SFBool"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="outputOnly" inheritedFrom="X3DSensorNode" name="isActive" type="SFBool"/>
    <field accessType="outputOnly" inheritedFrom="X3DPointingDeviceSensorNode" name="isOver" type="SFBool"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="outputOnly" name="trackPoint_changed" type="SFVec3f"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </AbstractNodeType>
  <AbstractNodeType name="X3DEnvironmentalSensorNode">
   <InterfaceDefinition appinfo="Base type for the environmental sensor nodes ProximitySensor, TransformSensor and VisibilitySensor." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/environmentalSensor.html#X3DEnvironmentalSensorNode">
    <componentInfo level="1" name="EnvironmentalSensor"/>
    <Inheritance baseType="X3DSensorNode"/>
    <field accessType="inputOutput" inheritedFrom="X3DSensorNode" name="description" type="SFString"/>
    <field accessType="inputOutput" default="true" inheritedFrom="X3DSensorNode" name="enabled" type="SFBool"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="outputOnly" inheritedFrom="X3DSensorNode" name="isActive" type="SFBool"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" default="0 0 0" minInclusive="0" name="size" type="SFVec3f"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </AbstractNodeType>
  <AbstractNodeType name="X3DEnvironmentTextureNode">
   <InterfaceDefinition appinfo="Base type for all nodes that specify cubic environment map sources for texture images." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/environmentalTexturing.html#X3DEnvironmentTextureNode">
    <componentInfo level="1" name="CubeMapTexturing"/>
    <Inheritance baseType="X3DTextureNode"/>
    <field accessType="inputOutput" inheritedFrom="X3DTextureNode" name="description" type="SFString"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </AbstractNodeType>
  <AbstractNodeType name="X3DField">
   <InterfaceDefinition appinfo="X3DField is the abstract field type from which all single values field types are derived. All fields directly derived from X3DField have names beginning with SF (single-valued field). SF fields may only contain a single value of the type indicated by the name of the field type." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/fieldTypes.html#X3DField"/>
  </AbstractNodeType>
  <AbstractNodeType name="X3DFollowerNode">
   <InterfaceDefinition appinfo="X3DFollowerNode is the abstract base class for all nodes in the Followers component." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/followers.html#X3DFollowerNode">
    <componentInfo level="1" name="Followers"/>
    <Inheritance baseType="X3DChildNode"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="outputOnly" name="isActive" type="SFBool"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </AbstractNodeType>
  <AbstractNodeType name="X3DFontStyleNode">
   <InterfaceDefinition appinfo="Base type for all font style nodes." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/text.html#X3DFontStyleNode">
    <componentInfo level="1" name="Text"/>
    <Inheritance baseType="X3DNode"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." name="id" type="SFString"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </AbstractNodeType>
  <AbstractNodeType name="X3DGeometricPropertyNode">
   <InterfaceDefinition appinfo="Base type for all geometric property node types." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/rendering.html#X3DGeometricPropertyNode">
    <componentInfo level="1" name="Rendering"/>
    <Inheritance baseType="X3DNode"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </AbstractNodeType>
  <AbstractNodeType name="X3DGeometryNode">
   <InterfaceDefinition appinfo="Geometry nodes produce renderable geometry and are contained by a Shape node." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/rendering.html#X3DGeometryNode">
    <componentInfo level="1" name="Rendering"/>
    <Inheritance baseType="X3DNode"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </AbstractNodeType>
  <AbstractNodeType name="X3DGroupingNode">
   <InterfaceDefinition appinfo="Grouping nodes can contain other nodes as children, thus making up the backbone of a scene graph." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/grouping.html#X3DGroupingNode">
    <componentInfo level="1" name="Grouping"/>
    <Inheritance baseType="X3DChildNode"/>
    <AdditionalInheritance baseType="X3DBoundedObject"/>
    <field acceptableNodeTypes="X3DChildNode" accessType="inputOnly" name="addChildren" type="MFNode">
     <componentInfo level="2" name="Grouping"/>
    </field>
    <field accessType="initializeOnly" default="0 0 0" name="bboxCenter" type="SFVec3f"/>
    <field accessType="inputOutput" default="false" name="bboxDisplay" type="SFBool"/>
    <field accessType="initializeOnly" baseType="bboxSizeType" default="-1 -1 -1" name="bboxSize" type="SFVec3f"/>
    <field acceptableNodeTypes="X3DChildNode" accessType="inputOutput" name="children" type="MFNode"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field acceptableNodeTypes="X3DChildNode" accessType="inputOnly" name="removeChildren" type="MFNode">
     <componentInfo level="2" name="Grouping"/>
    </field>
    <field accessType="inputOutput" default="true" name="visible" type="SFBool"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <ContentModel>
     <GroupContentModel maxOccurs="unbounded" minOccurs="0" name="ChildContentModel"/>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </AbstractNodeType>
  <AbstractNodeType name="X3DInfoNode">
   <InterfaceDefinition appinfo="Base type for all nodes that contain only information without visual semantics." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/grouping.html#X3DInfoNode">
    <componentInfo level="1" name="Core"/>
    <Inheritance baseType="X3DChildNode"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </AbstractNodeType>
  <AbstractNodeType name="X3DInterpolatorNode">
   <InterfaceDefinition appinfo="Interpolator nodes are designed for linear keyframed animation. Interpolators are driven by an input key ranging [0..1] and produce corresponding piecewise-linear output functions." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/interpolators.html#X3DInterpolatorNode">
    <componentInfo level="1" name="Interpolation"/>
    <Inheritance baseType="X3DChildNode"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="inputOutput" name="key" type="MFFloat"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOnly" name="set_fraction" type="SFFloat"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </AbstractNodeType>
  <AbstractNodeType name="X3DKeyDeviceSensorNode">
   <InterfaceDefinition appinfo="Base type for all sensor node types that operate using key devices." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/keyDeviceSensor.html#X3DKeyDeviceSensorNode">
    <componentInfo level="1" name="KeyDeviceSensor"/>
    <Inheritance baseType="X3DSensorNode"/>
    <field accessType="inputOutput" inheritedFrom="X3DSensorNode" name="description" type="SFString"/>
    <field accessType="inputOutput" default="true" inheritedFrom="X3DSensorNode" name="enabled" type="SFBool"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="outputOnly" inheritedFrom="X3DSensorNode" name="isActive" type="SFBool"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </AbstractNodeType>
  <AbstractNodeType name="X3DLayerNode">
   <InterfaceDefinition appinfo="The X3DLayerNode abstract node type is the base node type for layer nodes." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/layering.html#X3DLayerNode">
    <componentInfo level="1" name="Layering"/>
    <Inheritance baseType="X3DNode"/>
    <AdditionalInheritance baseType="X3DPickableObject"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" additionalEnumerationValuesAllowed="true" baseType="MFString" default='"ALL"' name="objectType" simpleType="pickableObjectTypeValues" type="MFString">
     <enumeration appinfo="each node is available for picking." value='"ALL"'/>
     <enumeration appinfo="no node is available for picking." value='"NONE"'/>
     <enumeration appinfo="TERRAIN is an example value." value='"TERRAIN"'/>
    </field>
    <field accessType="inputOutput" default="true" name="pickable" type="SFBool"/>
    <field acceptableNodeTypes="X3DViewportNode" accessType="inputOutput" default="NULL" name="viewport" type="SFNode"/>
    <field accessType="inputOutput" default="true" name="visible" type="SFBool"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </AbstractNodeType>
  <AbstractNodeType name="X3DLayoutNode">
   <InterfaceDefinition appinfo="X3DLayoutNode is the base node type for layout nodes." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/layout.html#X3DLayoutNode">
    <componentInfo level="1" name="Layout"/>
    <Inheritance baseType="X3DChildNode"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </AbstractNodeType>
  <AbstractNodeType name="X3DLightNode">
   <InterfaceDefinition appinfo="Light nodes provide illumination for rendering geometry in the scene. Implementing nodes must include a global field with type SFBool and accessType inputOutput." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/lighting.html#X3DLightNode">
    <componentInfo level="1" name="Lighting"/>
    <Inheritance baseType="X3DChildNode"/>
    <field accessType="inputOutput" baseType="unitIntervalType" default="0" maxInclusive="1" minInclusive="0" name="ambientIntensity" type="SFFloat"/>
    <field accessType="inputOutput" default="1 1 1" maxInclusive="1" minInclusive="0" name="color" type="SFColor"/>
    <field accessType="inputOutput" default="1" minInclusive="0" name="intensity" type="SFFloat"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" default="true" name="on" type="SFBool"/>
    <field accessType="inputOutput" baseType="unitIntervalType" default="1" maxInclusive="1" minInclusive="0" name="shadowIntensity" type="SFFloat"/>
    <field accessType="inputOutput" default="false" name="shadows" type="SFBool"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </AbstractNodeType>
  <AbstractNodeType name="X3DMaterialNode">
   <InterfaceDefinition appinfo="Base type for all Material nodes." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/shape.html#X3DMaterialNode">
    <componentInfo level="1" name="Shape"/>
    <Inheritance baseType="X3DAppearanceChildNode"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </AbstractNodeType>
  <AbstractNodeType name="X3DNBodyCollidableNode">
   <InterfaceDefinition appinfo="The X3DNBodyCollidableNode abstract node type represents objects that act as the interface between the rigid body physics, collision geometry proxy, and renderable objects in the scene graph hierarchy." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/rigidBodyPhysics.html#X3DNBodyCollidableNode">
    <componentInfo level="1" name="RigidBodyPhysics"/>
    <Inheritance baseType="X3DChildNode"/>
    <AdditionalInheritance baseType="X3DBoundedObject"/>
    <field accessType="initializeOnly" default="0 0 0" name="bboxCenter" type="SFVec3f"/>
    <field accessType="inputOutput" default="false" name="bboxDisplay" type="SFBool"/>
    <field accessType="initializeOnly" baseType="bboxSizeType" default="-1 -1 -1" name="bboxSize" type="SFVec3f"/>
    <field accessType="inputOutput" default="true" name="enabled" type="SFBool"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" default="0 0 1 0" name="rotation" type="SFRotation"/>
    <field accessType="inputOutput" default="0 0 0" name="translation" type="SFVec3f"/>
    <field accessType="inputOutput" default="true" name="visible" type="SFBool"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </AbstractNodeType>
  <AbstractNodeType name="X3DNBodyCollisionSpaceNode">
   <InterfaceDefinition appinfo="The X3DNBodyCollisionSpaceNode abstract node type represents objects that act as a self-contained spatial collection of objects that can interact through collision detection routines." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/rigidBodyPhysics.html#X3DNBodyCollisionSpaceNode">
    <componentInfo level="1" name="RigidBodyPhysics"/>
    <Inheritance baseType="X3DNode"/>
    <AdditionalInheritance baseType="X3DBoundedObject"/>
    <field accessType="initializeOnly" default="0 0 0" name="bboxCenter" type="SFVec3f"/>
    <field accessType="inputOutput" default="false" name="bboxDisplay" type="SFBool"/>
    <field accessType="initializeOnly" baseType="bboxSizeType" default="-1 -1 -1" name="bboxSize" type="SFVec3f"/>
    <field accessType="inputOutput" default="true" name="enabled" type="SFBool"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" default="true" name="visible" type="SFBool"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </AbstractNodeType>
  <AbstractNodeType name="X3DNetworkSensorNode">
   <InterfaceDefinition appinfo="Base typefor all sensors that generate events based on network activity." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/networking.html#X3DNetworkSensorNode">
    <componentInfo level="1" name="Networking"/>
    <Inheritance baseType="X3DSensorNode"/>
    <field accessType="inputOutput" inheritedFrom="X3DSensorNode" name="description" type="SFString"/>
    <field accessType="inputOutput" default="true" inheritedFrom="X3DSensorNode" name="enabled" type="SFBool"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="outputOnly" inheritedFrom="X3DSensorNode" name="isActive" type="SFBool"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </AbstractNodeType>
  <AbstractNodeType name="X3DNode">
   <InterfaceDefinition appinfo="All instantiable nodes implement X3DNode, which corresponds to SFNode type in the X3D specification." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/core.html#X3DNode">
    <componentInfo level="1" name="Core"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" description="IS/connect statements define prototype connections between ProtoInterface fields and node fields within a ProtoBody." name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." name="metadata" type="SFNode"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for each node, referenceable by other nodes." name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="The class attribute is a space-separated list of classes, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets. This attribute is only functional if the X3D model is loaded within an HTML page." name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute is a unique identifier, reserved for use by HTML5/DOM pages, independent of DEF labeling and internal X3D node referencing. This attribute is only functional if the X3D model is loaded within an HTML page." name="id" type="SFString"/>
    <field accessType="inputOutput" description="The style attribute provides an inline block of CSS for element styling, reserved for use by Cascading Style Sheets (CSS) and XML stylesheets. This attribute is only functional if the X3D model is loaded within an HTML page." name="style" type="SFString"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </AbstractNodeType>
  <AbstractNodeType name="X3DNormalNode">
   <InterfaceDefinition appinfo="Base type for all normal node types in X3D." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/rendering.html#X3DNormalNode">
    <componentInfo level="2" name="Rendering"/>
    <Inheritance baseType="X3DGeometricPropertyNode"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </AbstractNodeType>
  <AbstractNodeType name="X3DNurbsControlCurveNode">
   <InterfaceDefinition appinfo="Base type for all nodes that provide control curve information in 2D space." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/nurbs.html#X3DNurbsControlCurveNode">
    <componentInfo level="1" name="NURBS"/>
    <Inheritance baseType="X3DNode"/>
    <field accessType="inputOutput" name="controlPoint" type="MFVec2d"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </AbstractNodeType>
  <AbstractNodeType name="X3DNurbsSurfaceGeometryNode">
   <InterfaceDefinition appinfo="Abstract geometry type for all types of NURBS surfaces." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/nurbs.html#X3DNurbsSurfaceGeometryNode">
    <componentInfo level="1" name="NURBS"/>
    <Inheritance baseType="X3DParametricGeometryNode"/>
    <field acceptableNodeTypes="Coordinate|CoordinateDouble" accessType="inputOutput" default="NULL" name="controlPoint" type="SFNode"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="initializeOnly" default="true" name="solid" type="SFBool"/>
    <field acceptableNodeTypes="X3DSingleTextureCoordinateNode|NurbsTextureCoordinate" accessType="inputOutput" default="NULL" name="texCoord" type="SFNode"/>
    <field accessType="initializeOnly" default="false" name="uClosed" type="SFBool"/>
    <field accessType="initializeOnly" default="0" minInclusive="0" name="uDimension" type="SFInt32"/>
    <field accessType="initializeOnly" name="uKnot" type="MFDouble"/>
    <field accessType="initializeOnly" default="3" minInclusive="2" name="uOrder" type="SFInt32"/>
    <field accessType="inputOutput" default="0" name="uTessellation" type="SFInt32"/>
    <field accessType="initializeOnly" default="false" name="vClosed" type="SFBool"/>
    <field accessType="initializeOnly" default="0" minInclusive="0" name="vDimension" type="SFInt32"/>
    <field accessType="initializeOnly" name="vKnot" type="MFDouble"/>
    <field accessType="initializeOnly" default="3" minInclusive="2" name="vOrder" type="SFInt32"/>
    <field accessType="inputOutput" default="0" name="vTessellation" type="SFInt32"/>
    <field accessType="inputOutput" minExclusive="0" name="weight" type="MFDouble"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </AbstractNodeType>
  <AbstractNodeType name="X3DOneSidedMaterialNode">
   <InterfaceDefinition appinfo="Base type for material nodes that describe how the shape looks like from one side. A different number of contanied texture nodes are allowed by each of the implementing nodes." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/shape.html#X3DOneSidedMaterialNode">
    <componentInfo level="4" name="Shape"/>
    <Inheritance baseType="X3DMaterialNode"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" name="emissiveTextureMapping" type="SFString"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" default="1" minInclusive="0" name="normalScale" type="SFFloat">
     <componentInfo level="2" name="Shape"/>
    </field>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" name="normalTextureMapping" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </AbstractNodeType>
  <AbstractNodeType name="X3DParametricGeometryNode">
   <InterfaceDefinition appinfo="Base type for all geometry node types that are created parametrically and use control points to describe the final shape of the surface." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/nurbs.html#X3DParametricGeometryNode">
    <componentInfo level="1" name="NURBS"/>
    <Inheritance baseType="X3DGeometryNode"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </AbstractNodeType>
  <AbstractNodeType name="X3DParticleEmitterNode">
   <InterfaceDefinition appinfo="The X3DParticleEmitterNode abstract type represents any node that is an emitter of particles." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/particleSystems.html#X3DParticleEmitterNode">
    <componentInfo level="1" name="ParticleSystems"/>
    <Inheritance baseType="X3DNode"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="inputOutput" default="0" minInclusive="0" name="mass" type="SFFloat"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" default="true" name="on" type="SFBool"/>
    <field accessType="inputOutput" default="0" minInclusive="0" name="speed" type="SFFloat"/>
    <field accessType="inputOutput" default="0" minInclusive="0" name="surfaceArea" type="SFFloat"/>
    <field accessType="inputOutput" default="0.25" minInclusive="0" name="variation" type="SFFloat"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </AbstractNodeType>
  <AbstractNodeType name="X3DParticlePhysicsModelNode">
   <InterfaceDefinition appinfo="The X3DParticlePhysicsModelNode abstract type represents any node that applies a form of constraints on the particles after they have been generated." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/particleSystems.html#X3DParticlePhysicsModelNode">
    <componentInfo level="1" name="ParticleSystems"/>
    <Inheritance baseType="X3DNode"/>
    <field accessType="inputOutput" default="true" name="enabled" type="SFBool"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </AbstractNodeType>
  <AbstractNodeType name="X3DPickSensorNode">
   <InterfaceDefinition appinfo="The X3DPickSensorNode abstract node type is the base node type that represents the lowest common denominator of picking capabilities." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/picking.html#X3DPickSensorNode">
    <componentInfo level="1" name="Picking"/>
    <Inheritance baseType="X3DSensorNode"/>
    <field accessType="inputOutput" inheritedFrom="X3DSensorNode" name="description" type="SFString"/>
    <field accessType="inputOutput" default="true" inheritedFrom="X3DSensorNode" name="enabled" type="SFBool"/>
    <field accessType="initializeOnly" additionalEnumerationValuesAllowed="true" baseType="xs:NMTOKEN" default="BOUNDS" name="intersectionType" simpleType="intersectionTypeValues" type="SFString">
     <enumeration appinfo="TODO undefined in X3D specification." documentation="https://www.web3d.org/member-only/mantis/view.php?id=1294" value="BOUNDS"/>
     <enumeration appinfo="TODO undefined in X3D specification." documentation="https://www.web3d.org/member-only/mantis/view.php?id=1294" value="GEOMETRY"/>
    </field>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="outputOnly" inheritedFrom="X3DSensorNode" name="isActive" type="SFBool"/>
    <field accessType="inputOutput" additionalEnumerationValuesAllowed="false" baseType="xs:NMTOKEN" default="MATCH_ANY" name="matchCriterion" simpleType="pickSensorMatchCriterionChoices" type="SFString">
     <enumeration appinfo="any match of objectType values is acceptable." value="MATCH_ANY"/>
     <enumeration appinfo="every objectType value in X3DPickSensorNode and X3DPickableObject shall match." value="MATCH_EVERY"/>
     <enumeration appinfo="one and only one objectType value can match." value="MATCH_ONLY_ONE"/>
    </field>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" additionalEnumerationValuesAllowed="true" baseType="MFString" default='"ALL"' name="objectType" simpleType="pickableObjectTypeValues" type="MFString">
     <enumeration appinfo="each node is available for picking." value='"ALL"'/>
     <enumeration appinfo="no node is available for picking." value='"NONE"'/>
     <enumeration appinfo="TERRAIN is an example value." value='"TERRAIN"'/>
    </field>
    <field acceptableNodeTypes="X3DChildNode" accessType="outputOnly" name="pickedGeometry" type="MFNode"/>
    <field acceptableNodeTypes="X3DGeometryNode" accessType="inputOutput" default="NULL" name="pickingGeometry" type="SFNode"/>
    <field acceptableNodeTypes="X3DGroupingNode|X3DShapeNode|Inline" accessType="inputOutput" name="pickTarget" type="MFNode"/>
    <field accessType="initializeOnly" additionalEnumerationValuesAllowed="true" baseType="xs:NMTOKEN" default="CLOSEST" name="sortOrder" simpleType="pickSensorSortOrderValues" type="SFString">
     <enumeration appinfo="any single object that can satisfy picking conditions." value="ANY"/>
     <enumeration appinfo="return closest object by distance that satisfies conditions of this pick sensor." value="CLOSEST"/>
     <enumeration appinfo="every object that satisfies picking conditions for this pick sensor is returned." value="ALL"/>
     <enumeration appinfo="every object that satisfies picking conditions for this pick sensor is returned, in sorted order." value="ALL_SORTED"/>
    </field>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </AbstractNodeType>
  <AbstractNodeType name="X3DPointingDeviceSensorNode">
   <InterfaceDefinition appinfo="Base type for all pointing device sensors." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/pointingDeviceSensor.html#X3DPointingDeviceSensorNode">
    <componentInfo level="1" name="PointingDeviceSensor"/>
    <Inheritance baseType="X3DSensorNode"/>
    <field accessType="inputOutput" inheritedFrom="X3DSensorNode" name="description" type="SFString"/>
    <field accessType="inputOutput" default="true" inheritedFrom="X3DSensorNode" name="enabled" type="SFBool"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="outputOnly" inheritedFrom="X3DSensorNode" name="isActive" type="SFBool"/>
    <field accessType="outputOnly" name="isOver" type="SFBool"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </AbstractNodeType>
  <AbstractNodeType name="X3DProductStructureChildNode">
   <InterfaceDefinition appinfo="Base type marking nodes that are valid product structure children for the CADGeometry component." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/CADGeometry.html#X3DProductStructureChildNode">
    <componentInfo level="2" name="CADGeometry"/>
    <Inheritance baseType="X3DChildNode"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" name="name" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </AbstractNodeType>
  <AbstractNodeType name="X3DPrototypeInstance">
   <InterfaceDefinition appinfo="Base type for all prototype instances. Note that direct children nodes are disallowed, instead let fieldValue with type SFNode/MFNode contain them. Current practice is that, if desired, prototype authors must explicitly add the metadata SFNode field in the ProtoInterface." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/core.html#X3DPrototypeInstance">
    <componentInfo level="2" name="Core"/>
    <Inheritance baseType="X3DNode"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" name="metadata" type="SFNode"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </AbstractNodeType>
  <AbstractNodeType name="X3DRigidJointNode">
   <InterfaceDefinition appinfo="The X3DRigidJointNode abstract node type is the base type for all joint types." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/rigidBodyPhysics.html#X3DRigidJointNode">
    <componentInfo level="2" name="RigidBodyPhysics"/>
    <Inheritance baseType="X3DNode"/>
    <field acceptableNodeTypes="RigidBody" accessType="inputOutput" default="NULL" name="body1" type="SFNode"/>
    <field acceptableNodeTypes="RigidBody" accessType="inputOutput" default="NULL" name="body2" type="SFNode"/>
    <field accessType="inputOutput" additionalEnumerationValuesAllowed="true" baseType="MFString" default='"NONE"' name="forceOutput" simpleType="forceOutputValues" type="MFString">
     <enumeration appinfo="all forceOutput fields computed." value='"ALL"'/>
     <enumeration appinfo="no forceOutput fields computed." value='"NONE"'/>
    </field>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
     <GroupContentModel minOccurs="0" name="RigidJointNodeContentModel"/>
    </ContentModel>
   </InterfaceDefinition>
  </AbstractNodeType>
  <AbstractNodeType name="X3DScriptNode">
   <InterfaceDefinition appinfo="Base type for scripting nodes (but not shader nodes)." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/scripting.html#X3DScriptNode">
    <componentInfo level="1" name="Scripting"/>
    <Inheritance baseType="X3DChildNode"/>
    <AdditionalInheritance baseType="X3DUrlObject"/>
    <field accessType="inputOutput" default="0" minInclusive="0" name="autoRefresh" type="SFTime"/>
    <field accessType="inputOutput" default="3600" minInclusive="0" name="autoRefreshTimeLimit" type="SFTime"/>
    <field accessType="inputOutput" name="description" type="SFString"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" name="IS" type="SFNode"/>
    <field accessType="inputOutput" default="true" name="load" type="SFBool"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" name="url" type="MFString">
     <componentInfo level="4" name="Networking"/>
    </field>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </AbstractNodeType>
  <AbstractNodeType name="X3DSensorNode">
   <InterfaceDefinition appinfo="Base type for all sensors." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/core.html#X3DSensorNode">
    <componentInfo level="1" name="Core"/>
    <Inheritance baseType="X3DChildNode"/>
    <field accessType="inputOutput" name="description" type="SFString"/>
    <field accessType="inputOutput" default="true" name="enabled" type="SFBool"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="outputOnly" name="isActive" type="SFBool"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </AbstractNodeType>
  <AbstractNodeType name="X3DSequencerNode">
   <InterfaceDefinition appinfo="Base type from which all Sequencers are derived." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/eventUtilities.html#X3DSequencerNode">
    <componentInfo level="1" name="EventUtilities"/>
    <Inheritance baseType="X3DChildNode"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="inputOutput" name="key" type="MFFloat"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOnly" name="next" type="SFBool"/>
    <field accessType="inputOnly" name="previous" type="SFBool"/>
    <field accessType="inputOnly" name="set_fraction" type="SFFloat"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </AbstractNodeType>
  <AbstractNodeType name="X3DShaderNode">
   <InterfaceDefinition appinfo="Base type for all nodes that specify a programmable shader." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/shaders.html#X3DShaderNode">
    <componentInfo level="1" name="Shaders"/>
    <Inheritance baseType="X3DAppearanceChildNode"/>
    <field accessType="inputOnly" name="activate" type="SFBool"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="outputOnly" name="isSelected" type="SFBool"/>
    <field accessType="outputOnly" name="isValid" type="SFBool"/>
    <field accessType="initializeOnly" additionalEnumerationValuesAllowed="true" baseType="xs:NMTOKEN" name="language" simpleType="shaderLanguageValues" type="SFString">
     <enumeration appinfo="nVidia Cg shading language." value="Cg"/>
     <enumeration appinfo="OpenGL shading language (GLSL)." value="GLSL"/>
     <enumeration appinfo="Microsoft High Level Shading Language (HLSL)." value="HLSL"/>
    </field>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </AbstractNodeType>
  <AbstractNodeType name="X3DShapeNode">
   <InterfaceDefinition appinfo="Base type for all Shape nodes." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/shape.html#X3DShapeNode">
    <componentInfo level="1" name="Shape"/>
    <Inheritance baseType="X3DChildNode"/>
    <AdditionalInheritance baseType="X3DBoundedObject"/>
    <field acceptableNodeTypes="X3DAppearanceNode" accessType="inputOutput" default="NULL" name="appearance" type="SFNode"/>
    <field accessType="initializeOnly" default="0 0 0" name="bboxCenter" type="SFVec3f"/>
    <field accessType="inputOutput" default="false" name="bboxDisplay" type="SFBool"/>
    <field accessType="initializeOnly" baseType="bboxSizeType" default="-1 -1 -1" name="bboxSize" type="SFVec3f"/>
    <field accessType="inputOutput" default="true" name="castShadow" type="SFBool"/>
    <field acceptableNodeTypes="X3DGeometryNode" accessType="inputOutput" default="NULL" name="geometry" type="SFNode"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" default="true" name="visible" type="SFBool"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
     <GroupContentModel minOccurs="0" name="ShapeChildContentModel"/>
    </ContentModel>
   </InterfaceDefinition>
   <field accessType="inputOutput" default="TRUE" description="pointerEvents defines whether this Shape becomes target for pointer events." name="pointerEvents" type="SFBool"/>
  </AbstractNodeType>
  <AbstractNodeType name="X3DSingleTextureCoordinateNode">
   <InterfaceDefinition appinfo="Base type for all texture coordinate nodes which specify texture coordinates for a single texture." specificationSection="X3D version 4" specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/texturing.html#X3DSingleTextureCoordinateNode">
    <componentInfo level="1" name="Texturing"/>
    <Inheritance baseType="X3DTextureCoordinateNode"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" name="mapping" type="SFString"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </AbstractNodeType>
  <AbstractNodeType name="X3DSingleTextureNode">
   <InterfaceDefinition appinfo="Base type for all texture node types that define a single texture. A single texture can be used to influence a parameter of various material nodes in the Shape component, and it can be a child of MultiTexture." specificationSection="X3D version 4" specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/texturing.html#X3DSingleTextureNode">
    <componentInfo level="1" name="Texturing"/>
    <Inheritance baseType="X3DTextureNode"/>
    <field accessType="inputOutput" inheritedFrom="X3DTextureNode" name="description" type="SFString"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </AbstractNodeType>
  <AbstractNodeType name="X3DSingleTextureTransformNode">
   <InterfaceDefinition appinfo="Base type for all texture transform nodes which specify texture coordinate transformation for a single texture." specificationSection="X3D version 4" specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/texturing.html#X3DSingleTextureTransformNode">
    <componentInfo level="1" name="Texturing"/>
    <Inheritance baseType="X3DTextureTransformNode"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" name="mapping" type="SFString"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </AbstractNodeType>
  <AbstractNodeType name="X3DSoundChannelNode">
   <InterfaceDefinition appinfo="Base type for all sound destination nodes, which represent the final destination of an audio signal and are what the user can ultimately hear." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/sound.html#X3DSoundChannelNode">
    <componentInfo level="2" name="Sound"/>
    <Inheritance baseType="X3DSoundNode"/>
    <field accessType="outputOnly" name="channelCount" type="SFInt32"/>
    <field accessType="inputOutput" additionalEnumerationValuesAllowed="false" baseType="SFString" default="MAX" name="channelCountMode" simpleType="channelCountModeChoices" type="SFString">
     <enumeration alias="max" appinfo='X3D version of "max" in Web Audio API.' documentation="https://www.w3.org/TR/webaudio/#enumdef-channelcountmode" value="MAX"/>
     <enumeration alias="clamped-max" appinfo='X3D version of "clamped-max" in Web Audio API.' documentation="https://www.w3.org/TR/webaudio/#enumdef-channelcountmode" value="CLAMPED_MAX"/>
     <enumeration alias="explicit" appinfo='X3D version of "explicit" in Web Audio API.' documentation="https://www.w3.org/TR/webaudio/#enumdef-channelcountmode" value="EXPLICIT"/>
    </field>
    <field accessType="inputOutput" additionalEnumerationValuesAllowed="false" baseType="SFString" default="SPEAKERS" name="channelInterpretation" simpleType="channelInterpretationChoices" type="SFString">
     <enumeration appinfo='X3D version of "speakers" in Web Audio API.' documentation="https://www.w3.org/TR/webaudio/#enumdef-channelinterpretation" value="SPEAKERS"/>
     <enumeration appinfo='X3D version of "discrete" in Web Audio API.' documentation="https://www.w3.org/TR/webaudio/#enumdef-channelinterpretation" value="DISCRETE"/>
    </field>
    <field accessType="inputOutput" inheritedFrom="X3DSoundNode" name="description" type="SFString"/>
    <field accessType="inputOutput" default="true" inheritedFrom="X3DSoundNode" name="enabled" type="SFBool"/>
    <field accessType="inputOutput" default="1" name="gain" type="SFFloat"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
     <GroupContentModel maxOccurs="unbounded" minOccurs="0" name="AudioGraphContentModel"/>
    </ContentModel>
   </InterfaceDefinition>
  </AbstractNodeType>
  <AbstractNodeType name="X3DSoundDestinationNode">
   <InterfaceDefinition appinfo="Base type for all sound destination nodes, which represent the final destination of an audio signal and are what the user can ultimately hear." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/sound.html#X3DSoundDestinationNode">
    <componentInfo level="2" name="Sound"/>
    <Inheritance baseType="X3DSoundNode"/>
    <field accessType="outputOnly" name="channelCount" type="SFInt32"/>
    <field accessType="inputOutput" additionalEnumerationValuesAllowed="false" baseType="SFString" default="MAX" name="channelCountMode" simpleType="channelCountModeChoices" type="SFString">
     <enumeration alias="max" appinfo='X3D version of "max" in Web Audio API.' documentation="https://www.w3.org/TR/webaudio/#enumdef-channelcountmode" value="MAX"/>
     <enumeration alias="clamped-max" appinfo='X3D version of "clamped-max" in Web Audio API.' documentation="https://www.w3.org/TR/webaudio/#enumdef-channelcountmode" value="CLAMPED_MAX"/>
     <enumeration alias="explicit" appinfo='X3D version of "explicit" in Web Audio API.' documentation="https://www.w3.org/TR/webaudio/#enumdef-channelcountmode" value="EXPLICIT"/>
    </field>
    <field accessType="inputOutput" additionalEnumerationValuesAllowed="false" baseType="SFString" default="SPEAKERS" name="channelInterpretation" simpleType="channelInterpretationChoices" type="SFString">
     <enumeration appinfo='X3D version of "speakers" in Web Audio API.' documentation="https://www.w3.org/TR/webaudio/#enumdef-channelinterpretation" value="SPEAKERS"/>
     <enumeration appinfo='X3D version of "discrete" in Web Audio API.' documentation="https://www.w3.org/TR/webaudio/#enumdef-channelinterpretation" value="DISCRETE"/>
    </field>
    <field accessType="inputOutput" inheritedFrom="X3DSoundNode" name="description" type="SFString"/>
    <field accessType="inputOutput" default="true" inheritedFrom="X3DSoundNode" name="enabled" type="SFBool"/>
    <field accessType="inputOutput" default="1" name="gain" type="SFFloat"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="outputOnly" name="isActive" type="SFBool"/>
    <field accessType="inputOutput" name="mediaDeviceID" type="SFString"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
     <GroupContentModel maxOccurs="unbounded" minOccurs="0" name="AudioGraphContentModel"/>
    </ContentModel>
   </InterfaceDefinition>
  </AbstractNodeType>
  <AbstractNodeType name="X3DSoundNode">
   <InterfaceDefinition appinfo="Base type for all sound nodes." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/sound.html#X3DSoundNode">
    <componentInfo level="1" name="Sound"/>
    <Inheritance baseType="X3DChildNode"/>
    <field accessType="inputOutput" name="description" type="SFString"/>
    <field accessType="inputOutput" default="true" name="enabled" type="SFBool"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </AbstractNodeType>
  <AbstractNodeType name="X3DSoundProcessingNode">
   <InterfaceDefinition appinfo="Base type for all sound processing nodes, which are used to enhance audio with filtering, delaying, changing gain, etc." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/sound.html#X3DSoundProcessingNode">
    <componentInfo level="2" name="Sound"/>
    <Inheritance baseType="X3DTimeDependentNode"/>
    <AdditionalInheritance baseType="X3DSoundNode"/>
    <field accessType="outputOnly" name="channelCount" type="SFInt32"/>
    <field accessType="inputOutput" additionalEnumerationValuesAllowed="false" baseType="SFString" default="MAX" name="channelCountMode" simpleType="channelCountModeChoices" type="SFString">
     <enumeration alias="max" appinfo='X3D version of "max" in Web Audio API.' documentation="https://www.w3.org/TR/webaudio/#enumdef-channelcountmode" value="MAX"/>
     <enumeration alias="clamped-max" appinfo='X3D version of "clamped-max" in Web Audio API.' documentation="https://www.w3.org/TR/webaudio/#enumdef-channelcountmode" value="CLAMPED_MAX"/>
     <enumeration alias="explicit" appinfo='X3D version of "explicit" in Web Audio API.' documentation="https://www.w3.org/TR/webaudio/#enumdef-channelcountmode" value="EXPLICIT"/>
    </field>
    <field accessType="inputOutput" additionalEnumerationValuesAllowed="false" baseType="SFString" default="SPEAKERS" name="channelInterpretation" simpleType="channelInterpretationChoices" type="SFString">
     <enumeration appinfo='X3D version of "speakers" in Web Audio API.' documentation="https://www.w3.org/TR/webaudio/#enumdef-channelinterpretation" value="SPEAKERS"/>
     <enumeration appinfo='X3D version of "discrete" in Web Audio API.' documentation="https://www.w3.org/TR/webaudio/#enumdef-channelinterpretation" value="DISCRETE"/>
    </field>
    <field accessType="inputOutput" inheritedFrom="X3DTimeDependentNode" name="description" type="SFString"/>
    <field accessType="outputOnly" inheritedFrom="X3DTimeDependentNode" minInclusive="0" name="elapsedTime" type="SFTime"/>
    <field accessType="inputOutput" default="true" name="enabled" type="SFBool"/>
    <field accessType="inputOutput" default="1" name="gain" type="SFFloat"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="outputOnly" inheritedFrom="X3DTimeDependentNode" name="isActive" type="SFBool"/>
    <field accessType="outputOnly" inheritedFrom="X3DTimeDependentNode" name="isPaused" type="SFBool">
     <componentInfo level="2" name="Time"/>
    </field>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" default="0" inheritedFrom="X3DTimeDependentNode" name="pauseTime" type="SFTime">
     <componentInfo level="2" name="Time"/>
    </field>
    <field accessType="inputOutput" default="0" inheritedFrom="X3DTimeDependentNode" name="resumeTime" type="SFTime">
     <componentInfo level="2" name="Time"/>
    </field>
    <field accessType="inputOutput" default="0" inheritedFrom="X3DTimeDependentNode" name="startTime" type="SFTime"/>
    <field accessType="inputOutput" default="0" inheritedFrom="X3DTimeDependentNode" name="stopTime" type="SFTime"/>
    <field accessType="inputOutput" default="0" minInclusive="0" name="tailTime" type="SFTime"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
     <GroupContentModel maxOccurs="unbounded" minOccurs="0" name="AudioGraphContentModel"/>
    </ContentModel>
   </InterfaceDefinition>
  </AbstractNodeType>
  <AbstractNodeType name="X3DSoundSourceNode">
   <InterfaceDefinition appinfo="Nodes implementing X3DSoundSourceNode provide signal inputs to the audio graph." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/sound.html#X3DSoundSourceNode">
    <componentInfo level="1" name="Sound"/>
    <Inheritance baseType="X3DTimeDependentNode"/>
    <AdditionalInheritance baseType="X3DSoundNode"/>
    <field accessType="inputOutput" inheritedFrom="X3DTimeDependentNode" name="description" type="SFString"/>
    <field accessType="outputOnly" inheritedFrom="X3DTimeDependentNode" minInclusive="0" name="elapsedTime" type="SFTime"/>
    <field accessType="inputOutput" default="true" name="enabled" type="SFBool"/>
    <field accessType="inputOutput" default="1" name="gain" type="SFFloat"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="outputOnly" inheritedFrom="X3DTimeDependentNode" name="isActive" type="SFBool"/>
    <field accessType="outputOnly" inheritedFrom="X3DTimeDependentNode" name="isPaused" type="SFBool">
     <componentInfo level="2" name="Time"/>
    </field>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" default="0" inheritedFrom="X3DTimeDependentNode" name="pauseTime" type="SFTime">
     <componentInfo level="2" name="Time"/>
    </field>
    <field accessType="inputOutput" default="0" inheritedFrom="X3DTimeDependentNode" name="resumeTime" type="SFTime">
     <componentInfo level="2" name="Time"/>
    </field>
    <field accessType="inputOutput" default="0" inheritedFrom="X3DTimeDependentNode" name="startTime" type="SFTime"/>
    <field accessType="inputOutput" default="0" inheritedFrom="X3DTimeDependentNode" name="stopTime" type="SFTime"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </AbstractNodeType>
  <AbstractNodeType name="X3DStatement">
   <InterfaceDefinition appinfo="X3DStatement is a marker interface that identifies statements relating to nonrenderable scene graph structure. X3DStatement does not extend from any other node type since it is not an explicit part of the X3D node interface hierarchy, and DEF/USE is not appropriate for such statements." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/concepts.html#scenegraph">
    <componentInfo level="1" name="Core"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
   </InterfaceDefinition>
  </AbstractNodeType>
  <AbstractNodeType name="X3DTexture2DNode">
   <InterfaceDefinition appinfo="Base type for all nodes which specify 2D sources for texture images." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/texturing.html#X3DTexture2DNode">
    <componentInfo level="1" name="Texturing"/>
    <Inheritance baseType="X3DSingleTextureNode"/>
    <field accessType="inputOutput" inheritedFrom="X3DTextureNode" name="description" type="SFString"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="initializeOnly" default="true" name="repeatS" type="SFBool"/>
    <field accessType="initializeOnly" default="true" name="repeatT" type="SFBool"/>
    <field acceptableNodeTypes="TextureProperties" accessType="initializeOnly" default="NULL" name="textureProperties" type="SFNode"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
     <NodeContentModel name="TextureProperties"/>
     <NodeContentModel name="ProtoInstance"/>
    </ContentModel>
   </InterfaceDefinition>
  </AbstractNodeType>
  <AbstractNodeType name="X3DTexture3DNode">
   <InterfaceDefinition appinfo="Base type for all nodes that specify 3D sources for texture images." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/texture3D.html#X3DTexture3DNode">
    <componentInfo level="1" name="Texturing3D"/>
    <Inheritance baseType="X3DTextureNode"/>
    <field accessType="inputOutput" inheritedFrom="X3DTextureNode" name="description" type="SFString"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="initializeOnly" default="false" name="repeatR" type="SFBool"/>
    <field accessType="initializeOnly" default="false" name="repeatS" type="SFBool"/>
    <field accessType="initializeOnly" default="false" name="repeatT" type="SFBool"/>
    <field acceptableNodeTypes="TextureProperties" accessType="initializeOnly" default="NULL" name="textureProperties" type="SFNode"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
     <NodeContentModel name="TextureProperties"/>
     <NodeContentModel name="ProtoInstance"/>
    </ContentModel>
   </InterfaceDefinition>
  </AbstractNodeType>
  <AbstractNodeType name="X3DTextureCoordinateNode">
   <InterfaceDefinition appinfo="Base type for all nodes which specify texture coordinates." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/texturing.html#X3DTextureCoordinateNode">
    <componentInfo level="1" name="Texturing"/>
    <Inheritance baseType="X3DGeometricPropertyNode"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </AbstractNodeType>
  <AbstractNodeType name="X3DTextureNode">
   <InterfaceDefinition appinfo="Base type for all nodes which specify sources for texture images." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/texturing.html#X3DTextureNode">
    <componentInfo level="1" name="Texturing"/>
    <Inheritance baseType="X3DAppearanceChildNode"/>
    <field accessType="inputOutput" name="description" type="SFString"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </AbstractNodeType>
  <AbstractNodeType name="X3DTextureProjectorNode">
   <InterfaceDefinition appinfo="Base type for all node types that specify texture projector nodes, which provide a form of lighting." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/textureProjector.html#X3DTextureProjectorNode">
    <componentInfo level="4" name="TextureProjection"/>
    <Inheritance baseType="X3DLightNode"/>
    <field accessType="inputOutput" baseType="unitIntervalType" default="0" inheritedFrom="X3DLightNode" maxInclusive="1" minInclusive="0" name="ambientIntensity" type="SFFloat"/>
    <field accessType="outputOnly" minExclusive="0" name="aspectRatio" type="SFFloat"/>
    <field accessType="inputOutput" default="1 1 1" inheritedFrom="X3DLightNode" maxInclusive="1" minInclusive="0" name="color" type="SFColor"/>
    <field accessType="inputOutput" name="description" type="SFString"/>
    <field accessType="inputOutput" default="0 0 1" name="direction" type="SFVec3f"/>
    <field accessType="inputOutput" default="-1" minInclusive="-1" name="farDistance" type="SFFloat"/>
    <field accessType="inputOutput" default="true" name="global" type="SFBool"/>
    <field accessType="inputOutput" default="1" inheritedFrom="X3DLightNode" minInclusive="0" name="intensity" type="SFFloat"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="inputOutput" default="0 0 0" name="location" type="SFVec3f"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" default="-1" minInclusive="-1" name="nearDistance" type="SFFloat"/>
    <field accessType="inputOutput" default="true" inheritedFrom="X3DLightNode" name="on" type="SFBool"/>
    <field accessType="inputOutput" baseType="unitIntervalType" default="1" inheritedFrom="X3DLightNode" maxInclusive="1" minInclusive="0" name="shadowIntensity" type="SFFloat"/>
    <field accessType="inputOutput" default="false" inheritedFrom="X3DLightNode" name="shadows" type="SFBool"/>
    <field acceptableNodeTypes="X3DTexture2DNode" accessType="inputOutput" default="NULL" name="texture" type="SFNode"/>
    <field accessType="inputOutput" default="0 1 0" name="upVector" type="SFVec3f"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
     <NodeContentModel name="ImageTexture"/>
     <NodeContentModel name="MovieTexture"/>
     <NodeContentModel name="PixelTexture"/>
     <NodeContentModel name="ProtoInstance"/>
    </ContentModel>
   </InterfaceDefinition>
  </AbstractNodeType>
  <AbstractNodeType name="X3DTextureTransformNode">
   <InterfaceDefinition appinfo="Base type for all nodes which specify a transformation of texture coordinates." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/texturing.html#X3DTextureTransformNode">
    <componentInfo level="1" name="Texturing"/>
    <Inheritance baseType="X3DAppearanceChildNode"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </AbstractNodeType>
  <AbstractNodeType name="X3DTimeDependentNode">
   <InterfaceDefinition appinfo="Base type from which all time-dependent nodes are derived." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/time.html#X3DTimeDependentNode">
    <componentInfo level="1" name="Time"/>
    <Inheritance baseType="X3DChildNode"/>
    <field accessType="inputOutput" name="description" type="SFString"/>
    <field accessType="outputOnly" minInclusive="0" name="elapsedTime" type="SFTime"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="outputOnly" name="isActive" type="SFBool"/>
    <field accessType="outputOnly" name="isPaused" type="SFBool">
     <componentInfo level="2" name="Time"/>
    </field>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" default="0" name="pauseTime" type="SFTime">
     <componentInfo level="2" name="Time"/>
    </field>
    <field accessType="inputOutput" default="0" name="resumeTime" type="SFTime">
     <componentInfo level="2" name="Time"/>
    </field>
    <field accessType="inputOutput" default="0" name="startTime" type="SFTime"/>
    <field accessType="inputOutput" default="0" name="stopTime" type="SFTime"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </AbstractNodeType>
  <AbstractNodeType name="X3DTouchSensorNode">
   <InterfaceDefinition appinfo="Base type for all touch-style pointing device sensors." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/pointingDeviceSensor.html#X3DTouchSensorNode">
    <componentInfo level="1" name="PointingDeviceSensor"/>
    <Inheritance baseType="X3DPointingDeviceSensorNode"/>
    <field accessType="inputOutput" inheritedFrom="X3DSensorNode" name="description" type="SFString"/>
    <field accessType="inputOutput" default="true" inheritedFrom="X3DSensorNode" name="enabled" type="SFBool"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="outputOnly" inheritedFrom="X3DSensorNode" name="isActive" type="SFBool"/>
    <field accessType="outputOnly" inheritedFrom="X3DPointingDeviceSensorNode" name="isOver" type="SFBool"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="outputOnly" name="touchTime" type="SFTime"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </AbstractNodeType>
  <AbstractNodeType name="X3DTriggerNode">
   <InterfaceDefinition appinfo="Base type from which all trigger nodes are derived." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/eventUtilities.html#X3DTriggerNode">
    <componentInfo level="1" name="EventUtilities"/>
    <Inheritance baseType="X3DChildNode"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </AbstractNodeType>
  <AbstractNodeType name="X3DVertexAttributeNode">
   <InterfaceDefinition appinfo="Base type for all nodes that specify per-vertex attribute information to the shader." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/shaders.html#X3DVertexAttributeNode">
    <componentInfo level="1" name="Shaders"/>
    <Inheritance baseType="X3DGeometricPropertyNode"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="initializeOnly" baseType="xs:NMTOKEN" name="name" type="xs:NMTOKEN"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </AbstractNodeType>
  <AbstractNodeType name="X3DViewpointNode">
   <InterfaceDefinition appinfo="Node type X3DViewpointNode defines a specific location in the local coordinate system from which the user may view the scene, and also defines a viewpoint binding stack." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/navigation.html#X3DViewpointNode">
    <componentInfo level="1" name="Navigation"/>
    <Inheritance baseType="X3DBindableNode"/>
    <field accessType="outputOnly" inheritedFrom="X3DBindableNode" name="bindTime" type="SFTime"/>
    <field accessType="inputOutput" name="description" type="SFString">
     <componentInfo level="2" name="Navigation"/>
    </field>
    <field accessType="inputOutput" default="-1" name="farDistance" type="SFFloat"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="outputOnly" inheritedFrom="X3DBindableNode" name="isBound" type="SFBool"/>
    <field accessType="inputOutput" default="true" name="jump" type="SFBool"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field acceptableNodeTypes="NavigationInfo" accessType="inputOutput" default="NULL" name="navigationInfo" type="SFNode"/>
    <field accessType="inputOutput" default="-1" name="nearDistance" type="SFFloat"/>
    <field accessType="inputOutput" default="0 0 1 0" name="orientation" type="SFRotation"/>
    <field accessType="inputOutput" default="false" name="retainUserOffsets" type="SFBool">
     <componentInfo level="2" name="Navigation"/>
    </field>
    <field accessType="inputOnly" inheritedFrom="X3DBindableNode" name="set_bind" type="SFBool"/>
    <field accessType="inputOutput" default="false" name="viewAll" type="SFBool"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
     <NodeContentModel name="NavigationInfo"/>
    </ContentModel>
   </InterfaceDefinition>
  </AbstractNodeType>
  <AbstractNodeType name="X3DViewportNode">
   <InterfaceDefinition appinfo="The X3DViewportNode abstract node type is the base node type for viewport nodes." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/layering.html#X3DViewportNode">
    <componentInfo level="1" name="Layering"/>
    <Inheritance baseType="X3DGroupingNode"/>
    <field acceptableNodeTypes="X3DChildNode" accessType="inputOnly" inheritedFrom="X3DGroupingNode" name="addChildren" type="MFNode">
     <componentInfo level="2" name="Grouping"/>
    </field>
    <field accessType="initializeOnly" default="0 0 0" inheritedFrom="X3DGroupingNode" name="bboxCenter" type="SFVec3f"/>
    <field accessType="inputOutput" default="false" inheritedFrom="X3DGroupingNode" name="bboxDisplay" type="SFBool"/>
    <field accessType="initializeOnly" baseType="bboxSizeType" default="-1 -1 -1" inheritedFrom="X3DGroupingNode" name="bboxSize" type="SFVec3f"/>
    <field acceptableNodeTypes="X3DChildNode" accessType="inputOutput" inheritedFrom="X3DGroupingNode" name="children" type="MFNode"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field acceptableNodeTypes="X3DChildNode" accessType="inputOnly" inheritedFrom="X3DGroupingNode" name="removeChildren" type="MFNode">
     <componentInfo level="2" name="Grouping"/>
    </field>
    <field accessType="inputOutput" default="true" inheritedFrom="X3DGroupingNode" name="visible" type="SFBool"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <ContentModel>
     <GroupContentModel maxOccurs="unbounded" minOccurs="0" name="ChildContentModel"/>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </AbstractNodeType>
  <AbstractNodeType name="X3DVolumeDataNode">
   <InterfaceDefinition appinfo="The X3DVolumeDataNode abstract node type is the base type for all node types that describe volumetric data to be rendered." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/volume.html#X3DVolumeDataNode">
    <componentInfo level="1" name="VolumeRendering"/>
    <Inheritance baseType="X3DChildNode"/>
    <AdditionalInheritance baseType="X3DBoundedObject"/>
    <field accessType="initializeOnly" default="0 0 0" name="bboxCenter" type="SFVec3f"/>
    <field accessType="inputOutput" default="false" name="bboxDisplay" type="SFBool"/>
    <field accessType="initializeOnly" baseType="bboxSizeType" default="-1 -1 -1" name="bboxSize" type="SFVec3f"/>
    <field accessType="inputOutput" default="1 1 1" minExclusive="0" name="dimensions" type="SFVec3f"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" default="true" name="visible" type="SFBool"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </AbstractNodeType>
  <AbstractNodeType name="X3DVolumeRenderStyleNode">
   <InterfaceDefinition appinfo="The X3DVolumeRenderStyleNode abstract node type is the base type for all node types that specify a specific visual rendering style to be used when rendering volume data." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/volume.html#X3DVolumeRenderStyleNode">
    <componentInfo level="1" name="VolumeRendering"/>
    <Inheritance baseType="X3DNode"/>
    <field accessType="inputOutput" default="true" name="enabled" type="SFBool"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </AbstractNodeType>
  <AbstractNodeType name="X3DMaterialExtensionNode">
   <InterfaceDefinition appinfo="Nodes of this type can be used for material extensions.">
    <componentInfo level="1" name="X_ITE"/>
    <Inheritance baseType="X3DNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
   </InterfaceDefinition>
  </AbstractNodeType>
 </AbstractNodeTypes>
 <ConcreteNodes>
  <ConcreteNode name="AcousticProperties">
   <InterfaceDefinition appinfo="AcousticProperties specifies the interaction of sound waves with characteristics of geometric objects in the scene." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/shape.html#AcousticProperties">
    <componentInfo level="5" name="Shape"/>
    <Inheritance baseType="X3DAppearanceChildNode"/>
    <field accessType="inputOutput" default="0" description="specifies the sound absorption coefficient of a surface, meaning the ratio of sound intensity not reflected by a surface." maxInclusive="1" minInclusive="0" name="absorption" type="SFFloat"/>
    <field accessType="inputOutput" description="Author-provided prose that describes intended purpose of the url asset." name="description" type="SFString"/>
    <field accessType="inputOutput" default="0" description="diffuse coefficient of sound reflection indicates how much of the incident sound energy is reflected back in multiple directions." maxInclusive="1" minInclusive="0" name="diffuse" type="SFFloat"/>
    <field accessType="inputOutput" default="true" description="Enables/disables node operation." name="enabled" type="SFBool"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" default="0" description="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." maxInclusive="1" minInclusive="0" name="refraction" type="SFFloat"/>
    <field accessType="inputOutput" default="0" description="specular coefficient of sound reflection striking a plane surface, directly reflected back into space, where angle of reflection equals angle of incidence." maxInclusive="1" minInclusive="0" name="specular" type="SFFloat"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="acousticProperties" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="Analyser">
   <InterfaceDefinition appinfo="Analyser provides real-time frequency and time-domain analysis information, without any change to the input." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/sound.html#Analyser">
    <componentInfo level="2" name="Sound"/>
    <Inheritance baseType="X3DSoundProcessingNode"/>
    <field accessType="outputOnly" description="channelCount reports number of channels provided by input nodes." inheritedFrom="X3DSoundProcessingNode" name="channelCount" type="SFInt32"/>
    <field accessType="inputOutput" additionalEnumerationValuesAllowed="false" baseType="SFString" default="MAX" description="channelCountMode determines how individual channels are counted when up-mixing and down-mixing connections to any inputs." inheritedFrom="X3DSoundProcessingNode" name="channelCountMode" simpleType="channelCountModeChoices" type="SFString">
     <enumeration alias="max" appinfo='X3D version of "max" in Web Audio API.' documentation="https://www.w3.org/TR/webaudio/#enumdef-channelcountmode" value="MAX"/>
     <enumeration alias="clamped-max" appinfo='X3D version of "clamped-max" in Web Audio API.' documentation="https://www.w3.org/TR/webaudio/#enumdef-channelcountmode" value="CLAMPED_MAX"/>
     <enumeration alias="explicit" appinfo='X3D version of "explicit" in Web Audio API.' documentation="https://www.w3.org/TR/webaudio/#enumdef-channelcountmode" value="EXPLICIT"/>
    </field>
    <field accessType="inputOutput" additionalEnumerationValuesAllowed="false" baseType="SFString" default="SPEAKERS" description="channelInterpretation determines how individual channels are treated when up-mixing and down-mixing connections to any inputs." inheritedFrom="X3DSoundProcessingNode" name="channelInterpretation" simpleType="channelInterpretationChoices" type="SFString">
     <enumeration appinfo='X3D version of "speakers" in Web Audio API.' documentation="https://www.w3.org/TR/webaudio/#enumdef-channelinterpretation" value="SPEAKERS"/>
     <enumeration appinfo='X3D version of "discrete" in Web Audio API.' documentation="https://www.w3.org/TR/webaudio/#enumdef-channelinterpretation" value="DISCRETE"/>
    </field>
    <field acceptableNodeTypes="Analyser|AudioClip|AudioDestination|BiquadFilter|BufferAudioSource|ChannelMerger|ChannelSelector|ChannelSplitter|Convolver|Delay|DynamicsCompressor|Gain|ListenerPointSource|MicrophoneSource|MovieTexture|OscillatorSource|Sound|SpatialSound|StreamAudioDestination|StreamAudioSource|WaveShaper" accessType="inputOutput" description="The children field specifies audio-graph sound sources providing input signals for this node." name="children" type="MFNode"/>
    <field accessType="inputOutput" description="Author-provided prose that describes intended purpose of the url asset." inheritedFrom="X3DTimeDependentNode" name="description" type="SFString"/>
    <field accessType="outputOnly" description="Current elapsed time since AudioClip activated/running, cumulative in seconds, and not counting any paused time." inheritedFrom="X3DTimeDependentNode" minInclusive="0" name="elapsedTime" type="SFTime"/>
    <field accessType="inputOutput" default="true" description="Enables/disables node operation." inheritedFrom="X3DSoundProcessingNode" name="enabled" type="SFBool"/>
    <field accessType="inputOutput" default="2048" description="fftSize represents size of Fast Fourier Transform (FFT) used to determine frequency domain." minInclusive="0" name="fftSize" type="SFInt32"/>
    <field accessType="inputOutput" default="1024" description="frequencyBinCount is half of fftSize and generally equates to number of data values available for the visualization." minInclusive="0" name="frequencyBinCount" type="SFInt32"/>
    <field accessType="inputOutput" default="1" description="The gain field is a factor that represents the amount of linear amplification to apply to the output of the node." inheritedFrom="X3DSoundProcessingNode" name="gain" type="SFFloat"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="outputOnly" description="isActive true/false events are sent when playback starts/stops." inheritedFrom="X3DTimeDependentNode" name="isActive" type="SFBool"/>
    <field accessType="outputOnly" description="isPaused true/false events are sent when AudioClip is paused/resumed." inheritedFrom="X3DTimeDependentNode" name="isPaused" type="SFBool">
     <componentInfo level="2" name="Time"/>
    </field>
    <field accessType="inputOutput" default="-30" description="maxDecibels represents maximum power value in scaling range for FFT analysis data." name="maxDecibels" type="SFFloat"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" default="-100" description="minDecibels represents minimum power value in scaling range for FFT analysis data." name="minDecibels" type="SFFloat"/>
    <field accessType="inputOutput" default="0" description="When time now &gt;= pauseTime, isPaused becomes true and AudioClip becomes paused." inheritedFrom="X3DTimeDependentNode" name="pauseTime" type="SFTime">
     <componentInfo level="2" name="Time"/>
    </field>
    <field accessType="inputOutput" default="0" description="When resumeTime becomes &lt;= time now, isPaused becomes false and AudioClip becomes active." inheritedFrom="X3DTimeDependentNode" name="resumeTime" type="SFTime">
     <componentInfo level="2" name="Time"/>
    </field>
    <field accessType="inputOutput" default="0.8" description="smoothingTimeConstant represents averaging constant during last analysis frame." minInclusive="0" name="smoothingTimeConstant" type="SFFloat"/>
    <field accessType="inputOutput" default="0" description="Absolute time: number of seconds since January 1, 1970, 00:00:00 GMT." inheritedFrom="X3DTimeDependentNode" name="startTime" type="SFTime"/>
    <field accessType="inputOutput" default="0" description="Absolute time: number of seconds since January 1, 1970, 00:00:00 GMT." inheritedFrom="X3DTimeDependentNode" name="stopTime" type="SFTime"/>
    <field accessType="inputOutput" default="0" description="tailTime is duration of time that a node continues to provide output signal after the input signal becomes silent." inheritedFrom="X3DSoundProcessingNode" minInclusive="0" name="tailTime" type="SFTime"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="containerFieldChoicesAudioGraph"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
     <GroupContentModel maxOccurs="unbounded" minOccurs="0" name="AudioGraphContentModel"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="Anchor">
   <InterfaceDefinition appinfo="Anchor is a Grouping node that can contain most nodes." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/networking.html#Anchor">
    <componentInfo level="2" name="Networking"/>
    <Inheritance baseType="X3DGroupingNode"/>
    <AdditionalInheritance baseType="X3DUrlObject"/>
    <field acceptableNodeTypes="X3DChildNode" accessType="inputOnly" inheritedFrom="X3DGroupingNode" name="addChildren" type="MFNode">
     <componentInfo level="2" name="Grouping"/>
    </field>
    <field accessType="inputOutput" default="0" description="The [autoRefresh field has no effect, Anchor operation is only triggered by user selection." inheritedFrom="X3DUrlObject" minInclusive="0" name="autoRefresh" type="SFTime"/>
    <field accessType="inputOutput" default="3600" description="The [autoRefreshTimeLimit field has no effect, Anchor operation is only triggered by user selection." inheritedFrom="X3DUrlObject" minInclusive="0" name="autoRefreshTimeLimit" type="SFTime"/>
    <field accessType="initializeOnly" default="0 0 0" description="Bounding box center accompanies bboxSize and provides an optional hint for bounding box position offset from origin of local coordinate system." inheritedFrom="X3DGroupingNode" name="bboxCenter" type="SFVec3f"/>
    <field accessType="inputOutput" default="false" description="Whether to display bounding box for associated geometry, aligned with world coordinates." inheritedFrom="X3DGroupingNode" name="bboxDisplay" type="SFBool"/>
    <field accessType="initializeOnly" baseType="bboxSizeType" default="-1 -1 -1" description="Bounding box size is usually omitted, and can easily be calculated automatically by an X3D player at scene-loading time with minimal computational cost." inheritedFrom="X3DGroupingNode" name="bboxSize" type="SFVec3f"/>
    <field acceptableNodeTypes="X3DChildNode" accessType="inputOutput" description="Grouping nodes contain an ordered list of children nodes." inheritedFrom="X3DGroupingNode" name="children" type="MFNode"/>
    <field accessType="inputOutput" description="Author-provided prose that describes intended purpose of the url asset." inheritedFrom="X3DUrlObject" name="description" type="SFString"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="inputOutput" default="true" description="The load field has no effect, Anchor operation is only triggered by user selection." inheritedFrom="X3DUrlObject" name="load" type="SFBool"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" description="If provided, parameter tells the X3D player where to to redirect the loaded url." name="parameter" type="MFString"/>
    <field acceptableNodeTypes="X3DChildNode" accessType="inputOnly" inheritedFrom="X3DGroupingNode" name="removeChildren" type="MFNode">
     <componentInfo level="2" name="Grouping"/>
    </field>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DUrlObject" name="url" type="MFString">
     <componentInfo level="4" name="Networking"/>
    </field>
    <field accessType="inputOutput" default="true" description="Whether or not renderable content within this node is visually displayed." inheritedFrom="X3DGroupingNode" name="visible" type="SFBool"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="containerFieldChoicesX3DUrlObject"/>
    <ContentModel>
     <GroupContentModel maxOccurs="unbounded" minOccurs="0" name="ChildContentModel"/>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="Appearance">
   <InterfaceDefinition appinfo="Appearance specifies the visual properties of geometry by containing the Material, ImageTexture/MovieTexture/PixelTexture, FillProperties, LineProperties, programmable shader nodes (ComposedShader, PackagedShader, ProgramShader) and TextureTransform nodes." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/shape.html#Appearance">
    <componentInfo level="1" name="Shape"/>
    <Inheritance baseType="X3DAppearanceNode"/>
    <field acceptableNodeTypes="AcousticProperties" accessType="inputOutput" default="NULL" description="Single contained acousticProperties node that can specify additional acoustic attributes applied to associated surface geometry." name="acousticProperties" type="SFNode">
     <componentInfo level="5" name="Shape"/>
    </field>
    <field accessType="inputOutput" baseType="unitIntervalType" default="0.5" description='Threshold value used for pixel rendering either transparent or opaque, used when alphaMode="MASK".' maxInclusive="1" minInclusive="0" name="alphaCutoff" type="SFFloat"/>
    <field accessType="inputOutput" additionalEnumerationValuesAllowed="false" baseType="SFString" default="AUTO" description="Provides options for control of alpha transparency handling for textures." name="alphaMode" simpleType="alphaModeChoices" type="SFString">
     <enumeration appinfo="Material transparency is applied to texture transparency." value="AUTO"/>
     <enumeration appinfo="Ignore alpha channel texture transparency, opaque." value="OPAQUE"/>
     <enumeration appinfo="Alpha-testing mode for transparent when alpha value less than 0.5 and opaque when greater than or equal to 0.5." value="MASK"/>
     <enumeration appinfo="Blend combines partial transparency of textures and materials." value="BLEND"/>
    </field>
    <field acceptableNodeTypes="X3DMaterialNode" accessType="inputOutput" default="NULL" description="Single contained Material, PhysicalMaterial or UnlitMaterial node that can specify visual attributes for lighting response (color types, transparency, etc." name="backMaterial" type="SFNode"/>
    <field acceptableNodeTypes="FillProperties" accessType="inputOutput" default="NULL" description="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" type="SFNode">
     <componentInfo level="3" name="Shape"/>
    </field>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="LineProperties" accessType="inputOutput" default="NULL" description="Single contained LineProperties node that can specify additional visual attributes applied to corresponding line geometry." name="lineProperties" type="SFNode">
     <componentInfo level="2" name="Shape"/>
    </field>
    <field acceptableNodeTypes="X3DMaterialNode" accessType="inputOutput" default="NULL" description="Single contained Material, PhysicalMaterial, TwoSidedMaterial (deprecated), or UnlitMaterial node that can specify visual attributes for lighting response (color types, transparency, etc." name="material" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field acceptableNodeTypes="PointProperties" accessType="inputOutput" default="NULL" description="Single contained PointProperties node that can specify additional visual attributes applied to corresponding point geometry." name="pointProperties" type="SFNode">
     <componentInfo level="5" name="Shape"/>
    </field>
    <field acceptableNodeTypes="X3DShaderNode" accessType="inputOutput" description="Zero or more contained programmable shader nodes (ComposedShader, PackagedShader, ProgramShader) that specify, in order of preference, author-programmed rendering characteristics." name="shaders" type="MFNode">
     <componentInfo level="3" name="Shape"/>
    </field>
    <field acceptableNodeTypes="X3DTextureNode" accessType="inputOutput" default="NULL" description="Single contained texture node (ImageTexture, MovieTexture, PixelTexture, MultiTexture) that maps image(s) to surface geometry." name="texture" type="SFNode"/>
    <field acceptableNodeTypes="X3DTextureTransformNode" accessType="inputOutput" default="NULL" description="Single contained TextureTransform node that defines 2D transformation applied to texture coordinates." name="textureTransform" type="SFNode">
     <componentInfo level="2" name="Shape"/>
    </field>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="appearance" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel maxOccurs="unbounded" minOccurs="0" name="AppearanceChildContentModel"/>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
    <field acceptableNodeTypes="BlendMode" accessType="inputOutput" description="Input/Output field blendMode." name="blendMode" type="SFNode"/>
    <field acceptableNodeTypes="DepthMode" accessType="inputOutput" description="Input/Output field depthMode." name="depthMode" type="SFNode"/>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="Arc2D">
   <InterfaceDefinition appinfo="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." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/geometry2D.html#Arc2D">
    <componentInfo level="2" name="Geometry2D"/>
    <Inheritance baseType="X3DGeometryNode"/>
    <field accessType="initializeOnly" default="1.570796" description="Arc extends from startAngle counterclockwise to endAngle, in radians." maxExclusive="6.2832" minExclusive="-6.2832" name="endAngle" type="SFFloat"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="initializeOnly" default="1" description="circle radius, of which the arc is a portion." minExclusive="0" name="radius" type="SFFloat"/>
    <field accessType="initializeOnly" default="0" description="Arc extends from startAngle counterclockwise to endAngle, in radians." maxExclusive="6.2832" minExclusive="-6.2832" name="startAngle" type="SFFloat"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="geometry" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="ArcClose2D">
   <InterfaceDefinition appinfo="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." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/geometry2D.html#ArcClose2D">
    <componentInfo level="2" name="Geometry2D"/>
    <Inheritance baseType="X3DGeometryNode"/>
    <field accessType="initializeOnly" additionalEnumerationValuesAllowed="false" baseType="xs:NMTOKEN" default="PIE" description="Defines whether pair of line segments connect to center (PIE), or single line-segment chord connects arc endpoints (CHORD)." name="closureType" simpleType="closureTypeChoices" type="SFString">
     <enumeration appinfo="Connects arc endpoints to center, forming a pie wedge." value="PIE"/>
     <enumeration appinfo="Connects arc endpoints directly to each other, as in chord on a circle." value="CHORD"/>
    </field>
    <field accessType="initializeOnly" default="1.570796" description="Arc extends from startAngle counterclockwise to endAngle, in radians." maxExclusive="6.2832" minExclusive="-6.2832" name="endAngle" type="SFFloat"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="initializeOnly" default="1" description="circle radius, of which the arc is a portion." minExclusive="0" name="radius" type="SFFloat"/>
    <field accessType="initializeOnly" default="false" description="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)." name="solid" type="SFBool"/>
    <field accessType="initializeOnly" default="0" description="Arc extends from startAngle counterclockwise to endAngle, in radians." maxExclusive="6.2832" minExclusive="-6.2832" name="startAngle" type="SFFloat"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="geometry" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="AudioClip">
   <InterfaceDefinition appinfo="AudioClip provides audio data used by parent Sound nodes." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/sound.html#AudioClip">
    <componentInfo level="1" name="Sound"/>
    <Inheritance baseType="X3DSoundSourceNode"/>
    <AdditionalInheritance baseType="X3DUrlObject"/>
    <field accessType="inputOutput" default="0" description="autoRefresh defines interval in seconds before automatic reload of current url asset is performed." inheritedFrom="X3DUrlObject" minInclusive="0" name="autoRefresh" type="SFTime"/>
    <field accessType="inputOutput" default="3600" description="autoRefreshTimeLimit defines maximum duration that automatic refresh activity can occur." inheritedFrom="X3DUrlObject" minInclusive="0" name="autoRefreshTimeLimit" type="SFTime"/>
    <field accessType="inputOutput" description="Author-provided prose that describes intended purpose of the url asset." inheritedFrom="X3DTimeDependentNode" name="description" type="SFString"/>
    <field accessType="outputOnly" description="or -1." minInclusive="-1" name="duration_changed" type="SFTime"/>
    <field accessType="outputOnly" description="Current elapsed time since AudioClip activated/running, cumulative in seconds, and not counting any paused time." inheritedFrom="X3DTimeDependentNode" minInclusive="0" name="elapsedTime" type="SFTime"/>
    <field accessType="inputOutput" default="true" description="Enables/disables node operation." inheritedFrom="X3DSoundSourceNode" name="enabled" type="SFBool"/>
    <field accessType="inputOutput" default="1" description="The gain field is a factor that represents the amount of linear amplification to apply to the output of the node." inheritedFrom="X3DSoundSourceNode" name="gain" type="SFFloat"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="outputOnly" description="isActive true/false events are sent when playback starts/stops." inheritedFrom="X3DTimeDependentNode" name="isActive" type="SFBool"/>
    <field accessType="outputOnly" description="isPaused true/false events are sent when AudioClip is paused/resumed." inheritedFrom="X3DTimeDependentNode" name="isPaused" type="SFBool">
     <componentInfo level="2" name="Time"/>
    </field>
    <field accessType="inputOutput" default="true" description="load=true means load immediately, load=false means defer loading or else unload a previously loaded scene." inheritedFrom="X3DUrlObject" name="load" type="SFBool"/>
    <field accessType="inputOutput" default="false" description="Repeat indefinitely when loop=true, repeat only once when loop=false." name="loop" type="SFBool"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" default="0" description="When time now &gt;= pauseTime, isPaused becomes true and AudioClip becomes paused." inheritedFrom="X3DTimeDependentNode" name="pauseTime" type="SFTime">
     <componentInfo level="2" name="Time"/>
    </field>
    <field accessType="inputOutput" default="1.0" description="Multiplier for the rate at which sampled sound is played." minExclusive="0" name="pitch" type="SFFloat"/>
    <field accessType="inputOutput" default="0" description="When resumeTime becomes &lt;= time now, isPaused becomes false and AudioClip becomes active." inheritedFrom="X3DTimeDependentNode" name="resumeTime" type="SFTime">
     <componentInfo level="2" name="Time"/>
    </field>
    <field accessType="inputOutput" default="0" description="Absolute time: number of seconds since January 1, 1970, 00:00:00 GMT." inheritedFrom="X3DTimeDependentNode" name="startTime" type="SFTime"/>
    <field accessType="inputOutput" default="0" description="Absolute time: number of seconds since January 1, 1970, 00:00:00 GMT." inheritedFrom="X3DTimeDependentNode" name="stopTime" type="SFTime"/>
    <field accessType="inputOutput" description="Location and filename of sound file or stream." inheritedFrom="X3DUrlObject" name="url" type="MFString">
     <componentInfo level="4" name="Networking"/>
    </field>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="source" type="containerFieldChoicesAudioClip"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="AudioDestination">
   <InterfaceDefinition appinfo="AudioDestination node represents the final audio destination and is what user ultimately hears, typically from the speakers of user device." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/sound.html#AudioDestination">
    <componentInfo level="2" name="Sound"/>
    <Inheritance baseType="X3DSoundDestinationNode"/>
    <field accessType="outputOnly" description="channelCount reports number of channels provided by input nodes." inheritedFrom="X3DSoundDestinationNode" name="channelCount" type="SFInt32"/>
    <field accessType="inputOutput" additionalEnumerationValuesAllowed="false" baseType="SFString" default="MAX" description="channelCountMode determines how individual channels are counted when up-mixing and down-mixing connections to any inputs." inheritedFrom="X3DSoundDestinationNode" name="channelCountMode" simpleType="channelCountModeChoices" type="SFString">
     <enumeration alias="max" appinfo='X3D version of "max" in Web Audio API.' documentation="https://www.w3.org/TR/webaudio/#enumdef-channelcountmode" value="MAX"/>
     <enumeration alias="clamped-max" appinfo='X3D version of "clamped-max" in Web Audio API.' documentation="https://www.w3.org/TR/webaudio/#enumdef-channelcountmode" value="CLAMPED_MAX"/>
     <enumeration alias="explicit" appinfo='X3D version of "explicit" in Web Audio API.' documentation="https://www.w3.org/TR/webaudio/#enumdef-channelcountmode" value="EXPLICIT"/>
    </field>
    <field accessType="inputOutput" additionalEnumerationValuesAllowed="false" baseType="SFString" default="SPEAKERS" description="channelInterpretation determines how individual channels are treated when up-mixing and down-mixing connections to any inputs." inheritedFrom="X3DSoundDestinationNode" name="channelInterpretation" simpleType="channelInterpretationChoices" type="SFString">
     <enumeration appinfo='X3D version of "speakers" in Web Audio API.' documentation="https://www.w3.org/TR/webaudio/#enumdef-channelinterpretation" value="SPEAKERS"/>
     <enumeration appinfo='X3D version of "discrete" in Web Audio API.' documentation="https://www.w3.org/TR/webaudio/#enumdef-channelinterpretation" value="DISCRETE"/>
    </field>
    <field acceptableNodeTypes="Analyser|AudioClip|AudioDestination|BiquadFilter|BufferAudioSource|ChannelMerger|ChannelSelector|ChannelSplitter|Convolver|Delay|DynamicsCompressor|Gain|ListenerPointSource|MicrophoneSource|MovieTexture|OscillatorSource|Sound|SpatialSound|StreamAudioDestination|StreamAudioSource|WaveShaper" accessType="inputOutput" description="The children field specifies audio-graph sound sources providing input signals for this node." name="children" type="MFNode"/>
    <field accessType="inputOutput" description="Author-provided prose that describes intended purpose of the url asset." inheritedFrom="X3DSoundNode" name="description" type="SFString"/>
    <field accessType="inputOutput" default="true" description="Enables/disables node operation." inheritedFrom="X3DSoundNode" name="enabled" type="SFBool"/>
    <field accessType="inputOutput" default="1" description="The gain field is a factor that represents the amount of linear amplification to apply to the output of the node." inheritedFrom="X3DSoundDestinationNode" name="gain" type="SFFloat"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="outputOnly" description="isActive true/false events are sent when playback starts/stops." inheritedFrom="X3DSoundDestinationNode" name="isActive" type="SFBool"/>
    <field accessType="inputOutput" default="2" description="[maxChannelCount." minInclusive="0" name="maxChannelCount" type="SFInt32"/>
    <field accessType="inputOutput" description="mediaDeviceID field provides ID parameter functionality." inheritedFrom="X3DSoundDestinationNode" name="mediaDeviceID" type="SFString"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="containerFieldChoicesAudioGraph"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
     <GroupContentModel maxOccurs="unbounded" minOccurs="0" name="AudioGraphContentModel"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="Background">
   <InterfaceDefinition appinfo="Background simulates ground and sky, using vertical arrays of wraparound color values." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/environmentalEffects.html#Background">
    <componentInfo level="1" name="EnvironmentalEffects"/>
    <Inheritance baseType="X3DBackgroundNode"/>
    <field accessType="inputOutput" description="Image background panorama between ground/sky backdrop and scene's geometry." name="backUrl" type="MFString">
     <componentInfo level="4" name="Networking"/>
     <componentInfo level="2" name="EnvironmentalEffects"/>
    </field>
    <field accessType="outputOnly" description="event sent when node becomes active/inactive." inheritedFrom="X3DBindableNode" name="bindTime" type="SFTime"/>
    <field accessType="inputOutput" description="Image background panorama between ground/sky backdrop and scene's geometry." name="bottomUrl" type="MFString">
     <componentInfo level="4" name="Networking"/>
     <componentInfo level="2" name="EnvironmentalEffects"/>
    </field>
    <field accessType="inputOutput" description="Image background panorama between ground/sky backdrop and scene's geometry." name="frontUrl" type="MFString">
     <componentInfo level="4" name="Networking"/>
     <componentInfo level="2" name="EnvironmentalEffects"/>
    </field>
    <field accessType="inputOutput" description="The angle array values increase from 0." inheritedFrom="X3DBackgroundNode" maxInclusive="1.5708" minInclusive="0" name="groundAngle" type="MFFloat">
     <componentInfo level="2" name="EnvironmentalEffects"/>
    </field>
    <field accessType="inputOutput" description="Color of the ground at the various angles on the ground partial sphere." inheritedFrom="X3DBackgroundNode" maxInclusive="1" minInclusive="0" name="groundColor" type="MFColor"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="outputOnly" description="event true sent when node becomes active, event false sent when unbound by another node." inheritedFrom="X3DBindableNode" name="isBound" type="SFBool"/>
    <field accessType="inputOutput" description="Image background panorama between ground/sky backdrop and scene's geometry." name="leftUrl" type="MFString">
     <componentInfo level="4" name="Networking"/>
     <componentInfo level="2" name="EnvironmentalEffects"/>
    </field>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" description="Image background panorama between ground/sky backdrop and scene's geometry." name="rightUrl" type="MFString">
     <componentInfo level="4" name="Networking"/>
     <componentInfo level="2" name="EnvironmentalEffects"/>
    </field>
    <field accessType="inputOnly" description="Input event set_bind=true makes this node active, input event set_bind=false makes this node inactive." inheritedFrom="X3DBindableNode" name="set_bind" type="SFBool"/>
    <field accessType="inputOutput" description="The angle array values increase from 0." inheritedFrom="X3DBackgroundNode" maxInclusive="3.1416" minInclusive="0" name="skyAngle" type="MFFloat">
     <componentInfo level="2" name="EnvironmentalEffects"/>
    </field>
    <field accessType="inputOutput" default="0 0 0" description="Color of the sky at various angles on the sky sphere." inheritedFrom="X3DBackgroundNode" maxInclusive="1" minInclusive="0" name="skyColor" type="MFColor">
     <componentInfo level="2" name="EnvironmentalEffects"/>
    </field>
    <field accessType="inputOutput" description="Image background panorama between ground/sky backdrop and scene's geometry." name="topUrl" type="MFString">
     <componentInfo level="4" name="Networking"/>
     <componentInfo level="2" name="EnvironmentalEffects"/>
    </field>
    <field accessType="inputOutput" baseType="unitIntervalType" default="0" description='how "clear" the background is, allows underlying page to show through: 1.' inheritedFrom="X3DBackgroundNode" maxInclusive="1" minInclusive="0" name="transparency" type="SFFloat"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="BallJoint">
   <InterfaceDefinition appinfo="BallJoint represents an unconstrained joint between two bodies that pivot about a common anchor point." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/rigidBodyPhysics.html#BallJoint">
    <componentInfo level="2" name="RigidBodyPhysics"/>
    <Inheritance baseType="X3DRigidJointNode"/>
    <field accessType="inputOutput" default="0 0 0" description="anchorPoint is joint center, specified in world coordinates." name="anchorPoint" type="SFVec3f"/>
    <field acceptableNodeTypes="RigidBody" accessType="inputOutput" default="NULL" description="The body1 and body2 fields indicate the two RigidBody nodes connected by this joint." inheritedFrom="X3DRigidJointNode" name="body1" type="SFNode"/>
    <field accessType="outputOnly" description="body1AnchorPoint describes anchorPoint position relative to local coordinate reference frame." name="body1AnchorPoint" type="SFVec3f"/>
    <field acceptableNodeTypes="RigidBody" accessType="inputOutput" default="NULL" description="The body1 and body2 fields indicate the two RigidBody nodes connected by this joint." inheritedFrom="X3DRigidJointNode" name="body2" type="SFNode"/>
    <field accessType="outputOnly" description="body2AnchorPoint describes anchorPoint position relative to local coordinate reference frame." name="body2AnchorPoint" type="SFVec3f"/>
    <field accessType="inputOutput" additionalEnumerationValuesAllowed="true" baseType="MFString" default='"NONE"' description="forceOutput controls which output fields are generated for the next frame." inheritedFrom="X3DRigidJointNode" name="forceOutput" simpleType="forceOutputValues" type="MFString">
     <enumeration appinfo="all forceOutput fields computed." value='"ALL"'/>
     <enumeration appinfo="no forceOutput fields computed." value='"NONE"'/>
    </field>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="joints" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
     <GroupContentModel minOccurs="0" name="RigidJointNodeContentModel"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="Billboard">
   <InterfaceDefinition appinfo="Billboard is a Grouping node that can contain most nodes." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/navigation.html#Billboard">
    <componentInfo level="2" name="Navigation"/>
    <Inheritance baseType="X3DGroupingNode"/>
    <field acceptableNodeTypes="X3DChildNode" accessType="inputOnly" inheritedFrom="X3DGroupingNode" name="addChildren" type="MFNode">
     <componentInfo level="2" name="Grouping"/>
    </field>
    <field accessType="inputOutput" default="0 1 0" description="axisOfRotation direction is relative to local coordinate system." name="axisOfRotation" type="SFVec3f"/>
    <field accessType="initializeOnly" default="0 0 0" description="Bounding box center accompanies bboxSize and provides an optional hint for bounding box position offset from origin of local coordinate system." inheritedFrom="X3DGroupingNode" name="bboxCenter" type="SFVec3f"/>
    <field accessType="inputOutput" default="false" description="Whether to display bounding box for associated geometry, aligned with world coordinates." inheritedFrom="X3DGroupingNode" name="bboxDisplay" type="SFBool"/>
    <field accessType="initializeOnly" baseType="bboxSizeType" default="-1 -1 -1" description="Bounding box size is usually omitted, and can easily be calculated automatically by an X3D player at scene-loading time with minimal computational cost." inheritedFrom="X3DGroupingNode" name="bboxSize" type="SFVec3f"/>
    <field acceptableNodeTypes="X3DChildNode" accessType="inputOutput" description="Grouping nodes contain an ordered list of children nodes." inheritedFrom="X3DGroupingNode" name="children" type="MFNode"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field acceptableNodeTypes="X3DChildNode" accessType="inputOnly" inheritedFrom="X3DGroupingNode" name="removeChildren" type="MFNode">
     <componentInfo level="2" name="Grouping"/>
    </field>
    <field accessType="inputOutput" default="true" description="Whether or not renderable content within this node is visually displayed." inheritedFrom="X3DGroupingNode" name="visible" type="SFBool"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel maxOccurs="unbounded" minOccurs="0" name="ChildContentModel"/>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="BiquadFilter">
   <InterfaceDefinition appinfo="BiquadFilter node is an AudioNode processor implementing common low-order filters." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/sound.html#BiquadFilter">
    <componentInfo level="2" name="Sound"/>
    <Inheritance baseType="X3DSoundProcessingNode"/>
    <field accessType="outputOnly" description="channelCount reports number of channels provided by input nodes." inheritedFrom="X3DSoundProcessingNode" name="channelCount" type="SFInt32"/>
    <field accessType="inputOutput" additionalEnumerationValuesAllowed="false" baseType="SFString" default="MAX" description="channelCountMode determines how individual channels are counted when up-mixing and down-mixing connections to any inputs." inheritedFrom="X3DSoundProcessingNode" name="channelCountMode" simpleType="channelCountModeChoices" type="SFString">
     <enumeration alias="max" appinfo='X3D version of "max" in Web Audio API.' documentation="https://www.w3.org/TR/webaudio/#enumdef-channelcountmode" value="MAX"/>
     <enumeration alias="clamped-max" appinfo='X3D version of "clamped-max" in Web Audio API.' documentation="https://www.w3.org/TR/webaudio/#enumdef-channelcountmode" value="CLAMPED_MAX"/>
     <enumeration alias="explicit" appinfo='X3D version of "explicit" in Web Audio API.' documentation="https://www.w3.org/TR/webaudio/#enumdef-channelcountmode" value="EXPLICIT"/>
    </field>
    <field accessType="inputOutput" additionalEnumerationValuesAllowed="false" baseType="SFString" default="SPEAKERS" description="channelInterpretation determines how individual channels are treated when up-mixing and down-mixing connections to any inputs." inheritedFrom="X3DSoundProcessingNode" name="channelInterpretation" simpleType="channelInterpretationChoices" type="SFString">
     <enumeration appinfo='X3D version of "speakers" in Web Audio API.' documentation="https://www.w3.org/TR/webaudio/#enumdef-channelinterpretation" value="SPEAKERS"/>
     <enumeration appinfo='X3D version of "discrete" in Web Audio API.' documentation="https://www.w3.org/TR/webaudio/#enumdef-channelinterpretation" value="DISCRETE"/>
    </field>
    <field acceptableNodeTypes="Analyser|AudioClip|AudioDestination|BiquadFilter|BufferAudioSource|ChannelMerger|ChannelSelector|ChannelSplitter|Convolver|Delay|DynamicsCompressor|Gain|ListenerPointSource|MicrophoneSource|MovieTexture|OscillatorSource|Sound|SpatialSound|StreamAudioDestination|StreamAudioSource|WaveShaper" accessType="inputOutput" description="The children field specifies audio-graph sound sources providing input signals for this node." name="children" type="MFNode"/>
    <field accessType="inputOutput" description="Author-provided prose that describes intended purpose of the url asset." inheritedFrom="X3DTimeDependentNode" name="description" type="SFString"/>
    <field accessType="inputOutput" default="0" description="The detune field forms a compound field together with playbackRate that together determine a computedPlaybackRate value." minInclusive="0" name="detune" type="SFFloat"/>
    <field accessType="outputOnly" description="Current elapsed time since AudioClip activated/running, cumulative in seconds, and not counting any paused time." inheritedFrom="X3DTimeDependentNode" minInclusive="0" name="elapsedTime" type="SFTime"/>
    <field accessType="inputOutput" default="true" description="Enables/disables node operation." inheritedFrom="X3DSoundProcessingNode" name="enabled" type="SFBool"/>
    <field accessType="inputOutput" default="350" description="frequency at which the BiquadFilterNode operates, in Hz." minInclusive="0" name="frequency" type="SFFloat"/>
    <field accessType="inputOutput" default="1" description="The gain field is a factor that represents the amount of linear amplification to apply to the output of the node." inheritedFrom="X3DSoundProcessingNode" name="gain" type="SFFloat"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="outputOnly" description="isActive true/false events are sent when playback starts/stops." inheritedFrom="X3DTimeDependentNode" name="isActive" type="SFBool"/>
    <field accessType="outputOnly" description="isPaused true/false events are sent when AudioClip is paused/resumed." inheritedFrom="X3DTimeDependentNode" name="isPaused" type="SFBool">
     <componentInfo level="2" name="Time"/>
    </field>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" default="0" description="When time now &gt;= pauseTime, isPaused becomes true and AudioClip becomes paused." inheritedFrom="X3DTimeDependentNode" name="pauseTime" type="SFTime">
     <componentInfo level="2" name="Time"/>
    </field>
    <field accessType="inputOutput" default="1" description="qualityFactor is Quality Factor (Q) of the respective filter algorithm." minInclusive="0" name="qualityFactor" type="SFFloat"/>
    <field accessType="inputOutput" default="0" description="When resumeTime becomes &lt;= time now, isPaused becomes false and AudioClip becomes active." inheritedFrom="X3DTimeDependentNode" name="resumeTime" type="SFTime">
     <componentInfo level="2" name="Time"/>
    </field>
    <field accessType="inputOutput" default="0" description="Absolute time: number of seconds since January 1, 1970, 00:00:00 GMT." inheritedFrom="X3DTimeDependentNode" name="startTime" type="SFTime"/>
    <field accessType="inputOutput" default="0" description="Absolute time: number of seconds since January 1, 1970, 00:00:00 GMT." inheritedFrom="X3DTimeDependentNode" name="stopTime" type="SFTime"/>
    <field accessType="inputOutput" default="0" description="tailTime is duration of time that a node continues to provide output signal after the input signal becomes silent." inheritedFrom="X3DSoundProcessingNode" minInclusive="0" name="tailTime" type="SFTime"/>
    <field accessType="inputOutput" additionalEnumerationValuesAllowed="false" baseType="SFString" default="LOWPASS" description="type selects which BiquadFilter algorithm is used." name="type" simpleType="biquadTypeFilterChoices" type="SFString">
     <enumeration alias="lowpass" appinfo='X3D version of "lowpass" in Web Audio API.' documentation="https://www.w3.org/TR/webaudio/#enumdef-biquadfiltertype" value="LOWPASS"/>
     <enumeration alias="highpass" appinfo='X3D version of "highpass" in Web Audio API.' documentation="https://www.w3.org/TR/webaudio/#enumdef-biquadfiltertype" value="HIGHPASS"/>
     <enumeration alias="bandpass" appinfo='X3D version of "bandpass" in Web Audio API.' documentation="https://www.w3.org/TR/webaudio/#enumdef-biquadfiltertype" value="BANDPASS"/>
     <enumeration alias="lowshelf" appinfo='X3D version of "lowshelf" in Web Audio API.' documentation="https://www.w3.org/TR/webaudio/#enumdef-biquadfiltertype" value="LOWSHELF"/>
     <enumeration alias="highshelf" appinfo='X3D version of "highshelf" in Web Audio API.' documentation="https://www.w3.org/TR/webaudio/#enumdef-biquadfiltertype" value="HIGHSHELF"/>
     <enumeration alias="peaking" appinfo='X3D version of "peaking" in Web Audio API.' documentation="https://www.w3.org/TR/webaudio/#enumdef-biquadfiltertype" value="PEAKING"/>
     <enumeration alias="notch" appinfo='X3D version of "notch" in Web Audio API.' documentation="https://www.w3.org/TR/webaudio/#enumdef-biquadfiltertype" value="NOTCH"/>
     <enumeration alias="allpass" appinfo='X3D version of "allpass" in Web Audio API.' documentation="https://www.w3.org/TR/webaudio/#enumdef-biquadfiltertype" value="ALLPASS"/>
    </field>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="containerFieldChoicesAudioGraph"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
     <GroupContentModel maxOccurs="unbounded" minOccurs="0" name="AudioGraphContentModel"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="BlendedVolumeStyle">
   <InterfaceDefinition appinfo="BlendedVolumeStyle combines rendering of two voxel data sets into one by blending voxel values." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/volume.html#BlendedVolumeStyle">
    <componentInfo level="3" name="VolumeRendering"/>
    <Inheritance baseType="X3DComposableVolumeRenderStyleNode"/>
    <field accessType="inputOutput" default="true" description="Enables/disables node operation." inheritedFrom="X3DVolumeRenderStyleNode" name="enabled" type="SFBool"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field acceptableNodeTypes="X3DComposableVolumeRenderStyleNode" accessType="inputOutput" default="NULL" description="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" type="SFNode"/>
    <field acceptableNodeTypes="X3DTexture3DNode" accessType="inputOutput" default="NULL" description="Single contained X3DTexture3DNode (ComposedTexture3D, ImageTexture3D, PixelTexture3D) that provides second set of raw voxel information utilized by corresponding rendering styles." name="voxels" type="SFNode"/>
    <field accessType="inputOutput" default="0.5" description="weightConstant1 is used when weightFunction1=CONSTANT." maxInclusive="1" minInclusive="0" name="weightConstant1" type="SFFloat"/>
    <field accessType="inputOutput" default="0.5" description="weightConstant2 is used when weightFunction2=CONSTANT." maxInclusive="1" minInclusive="0" name="weightConstant2" type="SFFloat"/>
    <field accessType="inputOutput" additionalEnumerationValuesAllowed="false" baseType="xs:NMTOKEN" default="CONSTANT" description="specifies 2D textures used to determine weight values when weight function is set to TABLE." name="weightFunction1" simpleType="volumeRenderingWeightFunctionChoices" type="SFString">
     <enumeration appinfo="Use weightConstant1." value="CONSTANT"/>
     <enumeration appinfo="Use O_v." value="ALPHA1"/>
     <enumeration appinfo="Use O_blend." value="ALPHA2"/>
     <enumeration appinfo="Use 1 - O_v." value="ONE_MINUS_ALPHA1"/>
     <enumeration appinfo="Use 1 - O_blend." value="ONE_MINUS_ALPHA2"/>
     <enumeration appinfo="Use table lookup value." value="TABLE"/>
    </field>
    <field accessType="inputOutput" additionalEnumerationValuesAllowed="false" baseType="xs:NMTOKEN" default="CONSTANT" description="specifies 2D textures used to determine weight values when weight function is set to TABLE." name="weightFunction2" simpleType="volumeRenderingWeightFunctionChoices" type="SFString">
     <enumeration appinfo="Use weightConstant1." value="CONSTANT"/>
     <enumeration appinfo="Use O_v." value="ALPHA1"/>
     <enumeration appinfo="Use O_blend." value="ALPHA2"/>
     <enumeration appinfo="Use 1 - O_v." value="ONE_MINUS_ALPHA1"/>
     <enumeration appinfo="Use 1 - O_blend." value="ONE_MINUS_ALPHA2"/>
     <enumeration appinfo="Use table lookup value." value="TABLE"/>
    </field>
    <field acceptableNodeTypes="X3DTexture2DNode" accessType="inputOutput" default="NULL" description='The weightTransferFunction1 and weightTransferFunction2 fields specify two-dimensional textures that are used to determine the weight values when the weight function is set to "TABLE".' name="weightTransferFunction1" type="SFNode"/>
    <field acceptableNodeTypes="X3DTexture2DNode" accessType="inputOutput" default="NULL" description='The weightTransferFunction1 and weightTransferFunction2 fields specify two-dimensional textures that are used to determine the weight values when the weight function is set to "TABLE".' name="weightTransferFunction2" type="SFNode"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="renderStyle" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
     <GroupContentModel name="Texture2DContentModel"/>
     <GroupContentModel name="VolumeRenderStyleContentModel"/>
     <GroupContentModel name="Texture3DContentModel"/>
     <NodeContentModel name="ProtoInstance"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="BooleanFilter">
   <InterfaceDefinition appinfo="BooleanFilter selectively passes true, false or negated events." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/eventUtilities.html#BooleanFilter">
    <componentInfo level="1" name="EventUtilities"/>
    <Inheritance baseType="X3DChildNode"/>
    <field accessType="outputOnly" description="inputFalse only passes a false value, which occurs when set_boolean is false." name="inputFalse" type="SFBool"/>
    <field accessType="outputOnly" description="inputNegate is an output event that provides an opposite value by negating set_boolean input." name="inputNegate" type="SFBool"/>
    <field accessType="outputOnly" description="inputTrue only passes a true value, which occurs when set_boolean input is true." name="inputTrue" type="SFBool"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOnly" description="set_boolean is the input value to be filtered." name="set_boolean" type="SFBool"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="BooleanSequencer">
   <InterfaceDefinition appinfo="BooleanSequencer generates periodic discrete Boolean values." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/eventUtilities.html#BooleanSequencer">
    <componentInfo level="1" name="EventUtilities"/>
    <Inheritance baseType="X3DSequencerNode"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="inputOutput" description="Definition values for linear-interpolation function input intervals, listed in non-decreasing order and corresponding to a value in the keyValue array." inheritedFrom="X3DSequencerNode" name="key" type="MFFloat"/>
    <field accessType="inputOutput" description="Output values for linear sequencing, each corresponding to an input-fraction value in the key array." name="keyValue" type="MFBool"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOnly" description="Send next output value in keyValue array, and reset internal fraction field to match corresponding value in key array." inheritedFrom="X3DSequencerNode" name="next" type="SFBool"/>
    <field accessType="inputOnly" description="Send previous output value in keyValue array, and reset internal fraction field to match corresponding value in key array." inheritedFrom="X3DSequencerNode" name="previous" type="SFBool"/>
    <field accessType="inputOnly" description="set_fraction selects input key for corresponding keyValue output." inheritedFrom="X3DSequencerNode" name="set_fraction" type="SFFloat"/>
    <field accessType="outputOnly" description="Single intermittent output value determined by current key time and corresponding keyValue entry." name="value_changed" type="SFBool"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="BooleanToggle">
   <InterfaceDefinition appinfo="BooleanToggle maintains state and negates output when a true input is provided." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/eventUtilities.html#BooleanToggle">
    <componentInfo level="1" name="EventUtilities"/>
    <Inheritance baseType="X3DChildNode"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOnly" description="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)." name="set_boolean" type="SFBool"/>
    <field accessType="inputOutput" default="false" description="Persistent state value that gets toggled or reset." name="toggle" type="SFBool"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="BooleanTrigger">
   <InterfaceDefinition appinfo="BooleanTrigger converts time events to boolean true events." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/eventUtilities.html#BooleanTrigger">
    <componentInfo level="1" name="EventUtilities"/>
    <Inheritance baseType="X3DTriggerNode"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOnly" description="set_triggerTime provides input time event, typical event sent is TouchSensor touchTime." name="set_triggerTime" type="SFTime"/>
    <field accessType="outputOnly" description="triggerTrue outputs a true value whenever a triggerTime event is received." name="triggerTrue" type="SFBool"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="BoundaryEnhancementVolumeStyle">
   <InterfaceDefinition appinfo="BoundaryEnhancementVolumeStyle provides boundary enhancement for the volume rendering style." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/volume.html#BoundaryEnhancementVolumeStyle">
    <componentInfo level="2" name="VolumeRendering"/>
    <Inheritance baseType="X3DComposableVolumeRenderStyleNode"/>
    <field accessType="inputOutput" default="0.9" description="boundaryOpacity k_gs is the factored amount of the gradient enhancement to use." maxInclusive="1" minInclusive="0" name="boundaryOpacity" type="SFFloat"/>
    <field accessType="inputOutput" default="true" description="Enables/disables node operation." inheritedFrom="X3DVolumeRenderStyleNode" name="enabled" type="SFBool"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" default="2" description="opacityFactor k_ge is the power function to control the slope of the opacity curve to highlight the set of data." minInclusive="0" name="opacityFactor" type="SFFloat"/>
    <field accessType="inputOutput" default="0.2" description="retainedOpacity k_gc is the amount of initial opacity to mix into the output." maxInclusive="1" minInclusive="0" name="retainedOpacity" type="SFFloat"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="renderStyle" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="BoundedPhysicsModel">
   <InterfaceDefinition appinfo="BoundedPhysicsModel provides user-defined geometrical boundaries for particle motion." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/particleSystems.html#BoundedPhysicsModel">
    <componentInfo level="2" name="ParticleSystems"/>
    <Inheritance baseType="X3DParticlePhysicsModelNode"/>
    <field accessType="inputOutput" default="true" description="Enables/disables node operation." inheritedFrom="X3DParticlePhysicsModelNode" name="enabled" type="SFBool"/>
    <field acceptableNodeTypes="X3DGeometryNode" accessType="inputOutput" default="NULL" description="Single contained geometry node provides the geometry used for each particle when the parent ParticleSystem node has geometryType=GEOMETRY." name="geometry" type="SFNode"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="physics" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
     <GroupContentModel name="GeometryContentModel"/>
     <NodeContentModel name="ProtoInstance"/>
    </ContentModel>
    <field accessType="inputOutput" default="1" description="Damping that particles experience in the event of a collision." minInclusive="0" name="damping" type="SFFloat"/>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="Box">
   <InterfaceDefinition appinfo="Box is a geometry node specifying a rectangular cuboid." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/geometry3D.html#Box">
    <componentInfo level="1" name="Geometry3D"/>
    <Inheritance baseType="X3DGeometryNode"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="initializeOnly" default="2 2 2" description="size x y z in meters." name="size" type="SFVec3f"/>
    <field accessType="initializeOnly" default="true" description="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)." name="solid" type="SFBool"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="geometry" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="BufferAudioSource">
   <InterfaceDefinition appinfo="BufferAudioSource node represents a memory-resident audio asset that can contain one or more channels." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/sound.html#BufferAudioSource">
    <componentInfo level="2" name="Sound"/>
    <Inheritance baseType="X3DSoundSourceNode"/>
    <AdditionalInheritance baseType="X3DUrlObject"/>
    <field accessType="inputOutput" default="0" description="autoRefresh defines interval in seconds before automatic reload of current url asset is performed." inheritedFrom="X3DUrlObject" minInclusive="0" name="autoRefresh" type="SFTime"/>
    <field accessType="inputOutput" default="3600" description="autoRefreshTimeLimit defines maximum duration that automatic refresh activity can occur." inheritedFrom="X3DUrlObject" minInclusive="0" name="autoRefreshTimeLimit" type="SFTime"/>
    <field accessType="inputOutput" description="buffer is a memory-resident audio asset that can contain one or more channels." maxInclusive="1" minInclusive="-1" name="buffer" type="MFFloat"/>
    <field accessType="inputOutput" default="0" description="bufferDuration is duration in seconds to use from buffer field." minInclusive="0" name="bufferDuration" type="SFTime"/>
    <field accessType="outputOnly" name="bufferlength" type="SFInt32"/>
    <field accessType="outputOnly" description="channelCount reports number of channels provided by input nodes." name="channelCount" type="SFInt32"/>
    <field accessType="inputOutput" additionalEnumerationValuesAllowed="false" baseType="SFString" default="MAX" description="channelCountMode determines how individual channels are counted when up-mixing and down-mixing connections to any inputs." name="channelCountMode" simpleType="channelCountModeChoices" type="SFString">
     <enumeration alias="max" appinfo='X3D version of "max" in Web Audio API.' documentation="https://www.w3.org/TR/webaudio/#enumdef-channelcountmode" value="MAX"/>
     <enumeration alias="clamped-max" appinfo='X3D version of "clamped-max" in Web Audio API.' documentation="https://www.w3.org/TR/webaudio/#enumdef-channelcountmode" value="CLAMPED_MAX"/>
     <enumeration alias="explicit" appinfo='X3D version of "explicit" in Web Audio API.' documentation="https://www.w3.org/TR/webaudio/#enumdef-channelcountmode" value="EXPLICIT"/>
    </field>
    <field accessType="inputOutput" additionalEnumerationValuesAllowed="false" baseType="SFString" default="SPEAKERS" description="channelInterpretation determines how individual channels are treated when up-mixing and down-mixing connections to any inputs." name="channelInterpretation" simpleType="channelInterpretationChoices" type="SFString">
     <enumeration appinfo='X3D version of "speakers" in Web Audio API.' documentation="https://www.w3.org/TR/webaudio/#enumdef-channelinterpretation" value="SPEAKERS"/>
     <enumeration appinfo='X3D version of "discrete" in Web Audio API.' documentation="https://www.w3.org/TR/webaudio/#enumdef-channelinterpretation" value="DISCRETE"/>
    </field>
    <field accessType="inputOutput" description="Author-provided prose that describes intended purpose of the url asset." inheritedFrom="X3DTimeDependentNode" name="description" type="SFString"/>
    <field accessType="inputOutput" default="0" description="The detune field forms a compound field together with playbackRate that together determine a computedPlaybackRate value." minInclusive="0" name="detune" type="SFFloat"/>
    <field accessType="outputOnly" description="Current elapsed time since AudioClip activated/running, cumulative in seconds, and not counting any paused time." inheritedFrom="X3DTimeDependentNode" minInclusive="0" name="elapsedTime" type="SFTime"/>
    <field accessType="inputOutput" default="true" description="Enables/disables node operation." inheritedFrom="X3DSoundSourceNode" name="enabled" type="SFBool"/>
    <field accessType="inputOutput" default="1" description="The gain field is a factor that represents the amount of linear amplification to apply to the output of the node." inheritedFrom="X3DSoundSourceNode" name="gain" type="SFFloat"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="outputOnly" description="isActive true/false events are sent when playback starts/stops." inheritedFrom="X3DTimeDependentNode" name="isActive" type="SFBool"/>
    <field accessType="outputOnly" description="isPaused true/false events are sent when AudioClip is paused/resumed." inheritedFrom="X3DTimeDependentNode" name="isPaused" type="SFBool">
     <componentInfo level="2" name="Time"/>
    </field>
    <field accessType="outputOnly" minInclusive="0" name="length" type="SFInt32"/>
    <field accessType="inputOutput" default="true" description="load=true means load immediately, load=false means defer loading or else unload a previously loaded scene." inheritedFrom="X3DUrlObject" name="load" type="SFBool"/>
    <field accessType="inputOutput" default="false" description="Repeat indefinitely when loop=true, repeat only once when loop=false." name="loop" type="SFBool"/>
    <field accessType="inputOutput" default="0" description="loopEnd field is optional playhead position where looping ends if loop=true." minInclusive="0" name="loopEnd" type="SFFloat"/>
    <field accessType="inputOutput" default="0" description="loopStart field is optional playhead position where looping begins if loop=true." minInclusive="0" name="loopStart" type="SFFloat"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" default="0" description="numberOfChannels is number of audio channels found in this buffer source." minInclusive="0" name="numberOfChannels" type="SFInt32"/>
    <field accessType="inputOutput" default="0" description="When time now &gt;= pauseTime, isPaused becomes true and AudioClip becomes paused." inheritedFrom="X3DTimeDependentNode" name="pauseTime" type="SFTime">
     <componentInfo level="2" name="Time"/>
    </field>
    <field accessType="inputOutput" default="1" description="playbackRate field is speed at which to render the audio stream, and forms a compound field together with detune field Hint: negative values play in reverse." name="playbackRate" type="SFFloat"/>
    <field accessType="inputOutput" default="0" description="When resumeTime becomes &lt;= time now, isPaused becomes false and AudioClip becomes active." inheritedFrom="X3DTimeDependentNode" name="resumeTime" type="SFTime">
     <componentInfo level="2" name="Time"/>
    </field>
    <field accessType="inputOutput" default="0" description="sampleRate field is sample-frames per second." minInclusive="0" name="sampleRate" type="SFFloat"/>
    <field accessType="inputOutput" default="0" description="Absolute time: number of seconds since January 1, 1970, 00:00:00 GMT." inheritedFrom="X3DTimeDependentNode" name="startTime" type="SFTime"/>
    <field accessType="inputOutput" default="0" description="Absolute time: number of seconds since January 1, 1970, 00:00:00 GMT." inheritedFrom="X3DTimeDependentNode" name="stopTime" type="SFTime"/>
    <field accessType="inputOutput" description="Location and filename of sound file." inheritedFrom="X3DUrlObject" name="url" type="MFString">
     <componentInfo level="4" name="Networking"/>
    </field>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="containerFieldChoicesSoundSource"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="CADAssembly">
   <InterfaceDefinition appinfo="CADAssembly holds a set of Computer-Aided Design (CAD) assemblies or parts grouped together." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/CADGeometry.html#CADAssembly">
    <componentInfo level="2" name="CADGeometry"/>
    <Inheritance baseType="X3DGroupingNode"/>
    <AdditionalInheritance baseType="X3DProductStructureChildNode"/>
    <field acceptableNodeTypes="X3DChildNode" accessType="inputOnly" inheritedFrom="X3DGroupingNode" name="addChildren" type="MFNode">
     <componentInfo level="2" name="Grouping"/>
    </field>
    <field accessType="initializeOnly" default="0 0 0" description="Bounding box center accompanies bboxSize and provides an optional hint for bounding box position offset from origin of local coordinate system." inheritedFrom="X3DGroupingNode" name="bboxCenter" type="SFVec3f"/>
    <field accessType="inputOutput" default="false" description="Whether to display bounding box for associated geometry, aligned with world coordinates." inheritedFrom="X3DGroupingNode" name="bboxDisplay" type="SFBool"/>
    <field accessType="initializeOnly" baseType="bboxSizeType" default="-1 -1 -1" description="Bounding box size is usually omitted, and can easily be calculated automatically by an X3D player at scene-loading time with minimal computational cost." inheritedFrom="X3DGroupingNode" name="bboxSize" type="SFVec3f"/>
    <field acceptableNodeTypes="X3DChildNode" accessType="inputOutput" description="Grouping nodes contain an ordered list of children nodes." inheritedFrom="X3DGroupingNode" name="children" type="MFNode"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" description="Optional name for this particular CAD node." inheritedFrom="X3DProductStructureChildNode" name="name" type="SFString"/>
    <field acceptableNodeTypes="X3DChildNode" accessType="inputOnly" inheritedFrom="X3DGroupingNode" name="removeChildren" type="MFNode">
     <componentInfo level="2" name="Grouping"/>
    </field>
    <field accessType="inputOutput" default="true" description="Whether or not renderable content within this node is visually displayed." inheritedFrom="X3DGroupingNode" name="visible" type="SFBool"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel maxOccurs="unbounded" minOccurs="0" name="ChildContentModel"/>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="CADFace">
   <InterfaceDefinition appinfo="CADFace holds geometry representing one face in a Computer-Aided Design (CAD) CADPart." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/CADGeometry.html#CADFace">
    <componentInfo level="2" name="CADGeometry"/>
    <Inheritance baseType="X3DProductStructureChildNode"/>
    <AdditionalInheritance baseType="X3DBoundedObject"/>
    <field accessType="initializeOnly" default="0 0 0" description="Bounding box center accompanies bboxSize and provides an optional hint for bounding box position offset from origin of local coordinate system." inheritedFrom="X3DBoundedObject" name="bboxCenter" type="SFVec3f"/>
    <field accessType="inputOutput" default="false" description="Whether to display bounding box for associated geometry, aligned with world coordinates." inheritedFrom="X3DBoundedObject" name="bboxDisplay" type="SFBool"/>
    <field accessType="initializeOnly" baseType="bboxSizeType" default="-1 -1 -1" description="Bounding box size is usually omitted, and can easily be calculated automatically by an X3D player at scene-loading time with minimal computational cost." inheritedFrom="X3DBoundedObject" name="bboxSize" type="SFVec3f"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" description="Optional name for this particular CAD node." inheritedFrom="X3DProductStructureChildNode" name="name" type="SFString"/>
    <field acceptableNodeTypes="Shape|LOD|Transform" accessType="inputOutput" default="NULL" description="Contained Shape for this CADPart." name="shape" type="SFNode"/>
    <field accessType="inputOutput" default="true" description="Whether or not renderable content within this node is visually displayed." inheritedFrom="X3DBoundedObject" name="visible" type="SFBool"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
     <NodeContentModel name="Shape"/>
     <NodeContentModel name="LOD"/>
     <NodeContentModel name="Transform"/>
     <NodeContentModel name="ProtoInstance"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="CADLayer">
   <InterfaceDefinition appinfo="CADLayer nodes define a hierarchy that shows layer structure for a Computer-Aided Design (CAD) model." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/CADGeometry.html#CADLayer">
    <componentInfo level="2" name="CADGeometry"/>
    <Inheritance baseType="X3DGroupingNode"/>
    <field acceptableNodeTypes="X3DChildNode" accessType="inputOnly" inheritedFrom="X3DGroupingNode" name="addChildren" type="MFNode">
     <componentInfo level="2" name="Grouping"/>
    </field>
    <field accessType="initializeOnly" default="0 0 0" description="Bounding box center accompanies bboxSize and provides an optional hint for bounding box position offset from origin of local coordinate system." inheritedFrom="X3DGroupingNode" name="bboxCenter" type="SFVec3f"/>
    <field accessType="inputOutput" default="false" description="Whether to display bounding box for associated geometry, aligned with world coordinates." inheritedFrom="X3DGroupingNode" name="bboxDisplay" type="SFBool"/>
    <field accessType="initializeOnly" baseType="bboxSizeType" default="-1 -1 -1" description="Bounding box size is usually omitted, and can easily be calculated automatically by an X3D player at scene-loading time with minimal computational cost." inheritedFrom="X3DGroupingNode" name="bboxSize" type="SFVec3f"/>
    <field acceptableNodeTypes="X3DChildNode" accessType="inputOutput" description="Grouping nodes contain an ordered list of children nodes." inheritedFrom="X3DGroupingNode" name="children" type="MFNode"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" description="Optional name for this particular CAD node." name="name" type="SFString"/>
    <field acceptableNodeTypes="X3DChildNode" accessType="inputOnly" inheritedFrom="X3DGroupingNode" name="removeChildren" type="MFNode">
     <componentInfo level="2" name="Grouping"/>
    </field>
    <field accessType="inputOutput" default="true" description="Whether or not renderable content within this node is visually displayed." inheritedFrom="X3DGroupingNode" name="visible" type="SFBool"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel maxOccurs="unbounded" minOccurs="0" name="ChildContentModel"/>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="CADPart">
   <InterfaceDefinition appinfo="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." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/CADGeometry.html#CADPart">
    <componentInfo level="2" name="CADGeometry"/>
    <Inheritance baseType="X3DProductStructureChildNode"/>
    <AdditionalInheritance baseType="X3DGroupingNode"/>
    <field acceptableNodeTypes="CADFace" accessType="inputOnly" name="addChildren" type="MFNode"/>
    <field accessType="initializeOnly" default="0 0 0" description="Bounding box center accompanies bboxSize and provides an optional hint for bounding box position offset from origin of local coordinate system." inheritedFrom="X3DGroupingNode" name="bboxCenter" type="SFVec3f"/>
    <field accessType="inputOutput" default="false" description="Whether to display bounding box for associated geometry, aligned with world coordinates." inheritedFrom="X3DGroupingNode" name="bboxDisplay" type="SFBool"/>
    <field accessType="initializeOnly" baseType="bboxSizeType" default="-1 -1 -1" description="Bounding box size is usually omitted, and can easily be calculated automatically by an X3D player at scene-loading time with minimal computational cost." inheritedFrom="X3DGroupingNode" name="bboxSize" type="SFVec3f"/>
    <field accessType="inputOutput" default="0 0 0" description="Translation offset from origin of local coordinate system, applied prior to rotation or scaling." name="center" type="SFVec3f"/>
    <field acceptableNodeTypes="CADFace" accessType="inputOutput" description="Grouping nodes contain an ordered list of children nodes." name="children" type="MFNode"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" description="Optional name for this particular CAD node." inheritedFrom="X3DProductStructureChildNode" name="name" type="SFString"/>
    <field acceptableNodeTypes="CADFace" accessType="inputOnly" name="removeChildren" type="MFNode"/>
    <field accessType="inputOutput" default="0 0 1 0" description="Orientation (axis, angle in radians) of children relative to local coordinate system." name="rotation" type="SFRotation"/>
    <field accessType="inputOutput" default="1 1 1" description="Non-uniform x-y-z scale of child coordinate system, adjusted by center and scaleOrientation." name="scale" type="SFVec3f"/>
    <field accessType="inputOutput" default="0 0 1 0" description="Preliminary rotation of coordinate system before scaling (to allow scaling around arbitrary orientations)." name="scaleOrientation" type="SFRotation"/>
    <field accessType="inputOutput" default="0 0 0" description="Position (x, y, z in meters) of children relative to local coordinate system." name="translation" type="SFVec3f"/>
    <field accessType="inputOutput" default="true" description="Whether or not renderable content within this node is visually displayed." inheritedFrom="X3DGroupingNode" name="visible" type="SFBool"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
     <NodeContentModel name="CADFace"/>
     <NodeContentModel name="ProtoInstance"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="CartoonVolumeStyle">
   <InterfaceDefinition appinfo="CartoonVolumeStyle generates cartoon-style non-photorealistic rendering of associated volumetric data." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/volume.html#CartoonVolumeStyle">
    <componentInfo level="3" name="VolumeRendering"/>
    <Inheritance baseType="X3DComposableVolumeRenderStyleNode"/>
    <field accessType="inputOutput" default="4" description="Number of distinct colors taken from interpolated colors and used to render the object." maxInclusive="64" minInclusive="1" name="colorSteps" type="SFInt32"/>
    <field accessType="inputOutput" default="true" description="Enables/disables node operation." inheritedFrom="X3DVolumeRenderStyleNode" name="enabled" type="SFBool"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" default="1 1 1 1" description="orthogonalColor is used for surface normals that are orthogonal (perpendicular) to viewer's current location." maxInclusive="1" minInclusive="0" name="orthogonalColor" type="SFColorRGBA"/>
    <field accessType="inputOutput" default="0 0 0 1" description="parallelColor is used for surface normals that are orthogonal to viewer's current location." maxInclusive="1" minInclusive="0" name="parallelColor" type="SFColorRGBA"/>
    <field acceptableNodeTypes="X3DTexture3DNode" accessType="inputOutput" default="NULL" description="The surfaceNormals field contains a 3D texture with at least three component values." name="surfaceNormals" type="SFNode"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="renderStyle" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
     <GroupContentModel name="Texture3DContentModel"/>
     <NodeContentModel name="ProtoInstance"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="ChannelMerger">
   <InterfaceDefinition appinfo="ChannelMerger unites different input channels into a single output channel." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/sound.html#ChannelMerger">
    <componentInfo level="2" name="Sound"/>
    <Inheritance baseType="X3DSoundChannelNode"/>
    <field accessType="outputOnly" description="channelCount reports number of channels provided by input nodes." inheritedFrom="X3DSoundChannelNode" name="channelCount" type="SFInt32"/>
    <field accessType="inputOutput" additionalEnumerationValuesAllowed="false" baseType="SFString" default="MAX" description="channelCountMode determines how individual channels are counted when up-mixing and down-mixing connections to any inputs." inheritedFrom="X3DSoundChannelNode" name="channelCountMode" simpleType="channelCountModeChoices" type="SFString">
     <enumeration alias="max" appinfo='X3D version of "max" in Web Audio API.' documentation="https://www.w3.org/TR/webaudio/#enumdef-channelcountmode" value="MAX"/>
     <enumeration alias="clamped-max" appinfo='X3D version of "clamped-max" in Web Audio API.' documentation="https://www.w3.org/TR/webaudio/#enumdef-channelcountmode" value="CLAMPED_MAX"/>
     <enumeration alias="explicit" appinfo='X3D version of "explicit" in Web Audio API.' documentation="https://www.w3.org/TR/webaudio/#enumdef-channelcountmode" value="EXPLICIT"/>
    </field>
    <field accessType="inputOutput" additionalEnumerationValuesAllowed="false" baseType="SFString" default="SPEAKERS" description="channelInterpretation determines how individual channels are treated when up-mixing and down-mixing connections to any inputs." inheritedFrom="X3DSoundChannelNode" name="channelInterpretation" simpleType="channelInterpretationChoices" type="SFString">
     <enumeration appinfo='X3D version of "speakers" in Web Audio API.' documentation="https://www.w3.org/TR/webaudio/#enumdef-channelinterpretation" value="SPEAKERS"/>
     <enumeration appinfo='X3D version of "discrete" in Web Audio API.' documentation="https://www.w3.org/TR/webaudio/#enumdef-channelinterpretation" value="DISCRETE"/>
    </field>
    <field acceptableNodeTypes="Analyser|AudioClip|AudioDestination|BiquadFilter|BufferAudioSource|ChannelMerger|ChannelSelector|ChannelSplitter|Convolver|Delay|DynamicsCompressor|Gain|ListenerPointSource|MicrophoneSource|MovieTexture|OscillatorSource|Sound|SpatialSound|StreamAudioDestination|StreamAudioSource|WaveShaper" accessType="inputOutput" description="The children field specifies audio-graph sound sources providing input signals for this node." name="children" type="MFNode"/>
    <field accessType="inputOutput" description="Author-provided prose that describes intended purpose of the url asset." inheritedFrom="X3DSoundNode" name="description" type="SFString"/>
    <field accessType="inputOutput" default="true" description="Enables/disables node operation." inheritedFrom="X3DSoundNode" name="enabled" type="SFBool"/>
    <field accessType="inputOutput" default="1" description="The gain field is a factor that represents the amount of linear amplification to apply to the output of the node." inheritedFrom="X3DSoundChannelNode" name="gain" type="SFFloat"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="containerFieldChoicesAudioGraph"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
     <GroupContentModel maxOccurs="unbounded" minOccurs="0" name="AudioGraphContentModel"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="ChannelSelector">
   <InterfaceDefinition appinfo="ChannelSelector selects a single channel output from all input channels." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/sound.html#ChannelSelector">
    <componentInfo level="2" name="Sound"/>
    <Inheritance baseType="X3DSoundChannelNode"/>
    <field accessType="outputOnly" description="channelCount reports number of channels provided by input nodes." inheritedFrom="X3DSoundChannelNode" name="channelCount" type="SFInt32"/>
    <field accessType="inputOutput" additionalEnumerationValuesAllowed="false" baseType="SFString" default="MAX" description="channelCountMode determines how individual channels are counted when up-mixing and down-mixing connections to any inputs." inheritedFrom="X3DSoundChannelNode" name="channelCountMode" simpleType="channelCountModeChoices" type="SFString">
     <enumeration alias="max" appinfo='X3D version of "max" in Web Audio API.' documentation="https://www.w3.org/TR/webaudio/#enumdef-channelcountmode" value="MAX"/>
     <enumeration alias="clamped-max" appinfo='X3D version of "clamped-max" in Web Audio API.' documentation="https://www.w3.org/TR/webaudio/#enumdef-channelcountmode" value="CLAMPED_MAX"/>
     <enumeration alias="explicit" appinfo='X3D version of "explicit" in Web Audio API.' documentation="https://www.w3.org/TR/webaudio/#enumdef-channelcountmode" value="EXPLICIT"/>
    </field>
    <field accessType="inputOutput" additionalEnumerationValuesAllowed="false" baseType="SFString" default="SPEAKERS" description="channelInterpretation determines how individual channels are treated when up-mixing and down-mixing connections to any inputs." inheritedFrom="X3DSoundChannelNode" name="channelInterpretation" simpleType="channelInterpretationChoices" type="SFString">
     <enumeration appinfo='X3D version of "speakers" in Web Audio API.' documentation="https://www.w3.org/TR/webaudio/#enumdef-channelinterpretation" value="SPEAKERS"/>
     <enumeration appinfo='X3D version of "discrete" in Web Audio API.' documentation="https://www.w3.org/TR/webaudio/#enumdef-channelinterpretation" value="DISCRETE"/>
    </field>
    <field accessType="inputOutput" default="0" description="channelSelection is single channel of interest from those provided by input nodes." minInclusive="0" name="channelSelection" type="SFInt32"/>
    <field acceptableNodeTypes="Analyser|AudioClip|AudioDestination|BiquadFilter|BufferAudioSource|ChannelMerger|ChannelSelector|ChannelSplitter|Convolver|Delay|DynamicsCompressor|Gain|ListenerPointSource|MicrophoneSource|MovieTexture|OscillatorSource|Sound|SpatialSound|StreamAudioDestination|StreamAudioSource|WaveShaper" accessType="inputOutput" description="The children field specifies audio-graph sound sources providing input signals for this node." name="children" type="MFNode"/>
    <field accessType="inputOutput" description="Author-provided prose that describes intended purpose of the url asset." inheritedFrom="X3DSoundNode" name="description" type="SFString"/>
    <field accessType="inputOutput" default="true" description="Enables/disables node operation." inheritedFrom="X3DSoundNode" name="enabled" type="SFBool"/>
    <field accessType="inputOutput" default="1" description="The gain field is a factor that represents the amount of linear amplification to apply to the output of the node." inheritedFrom="X3DSoundChannelNode" name="gain" type="SFFloat"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="containerFieldChoicesAudioGraph"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
     <GroupContentModel maxOccurs="unbounded" minOccurs="0" name="AudioGraphContentModel"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="ChannelSplitter">
   <InterfaceDefinition appinfo="ChannelSplitter separates the different channels of a single audio source into a set of monophonic output channels." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/sound.html#ChannelSplitter">
    <componentInfo level="2" name="Sound"/>
    <Inheritance baseType="X3DSoundChannelNode"/>
    <field accessType="outputOnly" description="channelCount reports number of channels provided by input nodes." inheritedFrom="X3DSoundChannelNode" name="channelCount" type="SFInt32"/>
    <field accessType="inputOutput" additionalEnumerationValuesAllowed="false" baseType="SFString" default="MAX" description="channelCountMode determines how individual channels are counted when up-mixing and down-mixing connections to any inputs." inheritedFrom="X3DSoundChannelNode" name="channelCountMode" simpleType="channelCountModeChoices" type="SFString">
     <enumeration alias="max" appinfo='X3D version of "max" in Web Audio API.' documentation="https://www.w3.org/TR/webaudio/#enumdef-channelcountmode" value="MAX"/>
     <enumeration alias="clamped-max" appinfo='X3D version of "clamped-max" in Web Audio API.' documentation="https://www.w3.org/TR/webaudio/#enumdef-channelcountmode" value="CLAMPED_MAX"/>
     <enumeration alias="explicit" appinfo='X3D version of "explicit" in Web Audio API.' documentation="https://www.w3.org/TR/webaudio/#enumdef-channelcountmode" value="EXPLICIT"/>
    </field>
    <field accessType="inputOutput" additionalEnumerationValuesAllowed="false" baseType="SFString" default="SPEAKERS" description="channelInterpretation determines how individual channels are treated when up-mixing and down-mixing connections to any inputs." inheritedFrom="X3DSoundChannelNode" name="channelInterpretation" simpleType="channelInterpretationChoices" type="SFString">
     <enumeration appinfo='X3D version of "speakers" in Web Audio API.' documentation="https://www.w3.org/TR/webaudio/#enumdef-channelinterpretation" value="SPEAKERS"/>
     <enumeration appinfo='X3D version of "discrete" in Web Audio API.' documentation="https://www.w3.org/TR/webaudio/#enumdef-channelinterpretation" value="DISCRETE"/>
    </field>
    <field acceptableNodeTypes="Analyser|AudioClip|AudioDestination|BiquadFilter|BufferAudioSource|ChannelMerger|ChannelSelector|ChannelSplitter|Convolver|Delay|DynamicsCompressor|Gain|ListenerPointSource|MicrophoneSource|MovieTexture|OscillatorSource|Sound|SpatialSound|StreamAudioDestination|StreamAudioSource|WaveShaper" accessType="inputOutput" description="The children field specifies audio-graph sound sources providing input signals for this node, making up a section of the audio graph." name="children" type="MFNode"/>
    <field accessType="inputOutput" description="Author-provided prose that describes intended purpose of the url asset." inheritedFrom="X3DSoundNode" name="description" type="SFString"/>
    <field accessType="inputOutput" default="true" description="Enables/disables node operation." inheritedFrom="X3DSoundNode" name="enabled" type="SFBool"/>
    <field accessType="inputOutput" default="1" description="The gain field is a factor that represents the amount of linear amplification to apply to the output of the node." inheritedFrom="X3DSoundChannelNode" name="gain" type="SFFloat"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field acceptableNodeTypes="X3DSoundChannelNode|X3DSoundProcessingNode|X3DSoundSourceNode" accessType="inputOutput" description="The outputs field is a set of output nodes receiving the split channels, and making up a section of the audio graph." name="outputs" type="MFNode"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="containerFieldChoicesAudioGraph"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
     <GroupContentModel maxOccurs="unbounded" minOccurs="0" name="AudioGraphContentModel"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="Circle2D">
   <InterfaceDefinition appinfo="Circle2D is a geometry node that defines a linear X-Y circle with center (0,0) in X-Y plane." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/geometry2D.html#Circle2D">
    <componentInfo level="2" name="Geometry2D"/>
    <Inheritance baseType="X3DGeometryNode"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="initializeOnly" default="1" description="circle radius." minExclusive="0" name="radius" type="SFFloat"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="geometry" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="ClipPlane">
   <InterfaceDefinition appinfo="ClipPlane specifies a single plane equation used to clip (i." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/rendering.html#ClipPlane">
    <componentInfo level="5" name="Rendering"/>
    <Inheritance baseType="X3DChildNode"/>
    <field accessType="inputOutput" default="true" description="Enables/disables node operation." name="enabled" type="SFBool"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" default="0 1 0 0" description="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." maxInclusive="1" minInclusive="-1" name="plane" type="SFVec4f"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="CollidableOffset">
   <InterfaceDefinition appinfo="CollidableOffset repositions geometry relative to center of owning body." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/rigidBodyPhysics.html#CollidableOffset">
    <componentInfo level="1" name="RigidBodyPhysics"/>
    <Inheritance baseType="X3DNBodyCollidableNode"/>
    <field accessType="initializeOnly" default="0 0 0" description="Bounding box center accompanies bboxSize and provides an optional hint for bounding box position offset from origin of local coordinate system." inheritedFrom="X3DNBodyCollidableNode" name="bboxCenter" type="SFVec3f"/>
    <field accessType="inputOutput" default="false" description="Whether to display bounding box for associated geometry, aligned with world coordinates." inheritedFrom="X3DNBodyCollidableNode" name="bboxDisplay" type="SFBool"/>
    <field accessType="initializeOnly" baseType="bboxSizeType" default="-1 -1 -1" description="Bounding box size is usually omitted, and can easily be calculated automatically by an X3D player at scene-loading time with minimal computational cost." inheritedFrom="X3DNBodyCollidableNode" name="bboxSize" type="SFVec3f"/>
    <field acceptableNodeTypes="X3DNBodyCollidableNode" accessType="initializeOnly" default="NULL" description="The collidable field holds a reference to a single nested item of a collidable scene graph." name="collidable" type="SFNode"/>
    <field accessType="inputOutput" default="true" description="Enables/disables node operation." inheritedFrom="X3DNBodyCollidableNode" name="enabled" type="SFBool"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" default="0 0 1 0" description="Orientation (axis, angle in radians) of children relative to local coordinate system." inheritedFrom="X3DNBodyCollidableNode" name="rotation" type="SFRotation"/>
    <field accessType="inputOutput" default="0 0 0" description="Position (x, y, z in meters) of children relative to local coordinate system." inheritedFrom="X3DNBodyCollidableNode" name="translation" type="SFVec3f"/>
    <field accessType="inputOutput" default="true" description="Whether or not renderable content within this node is visually displayed." inheritedFrom="X3DNBodyCollidableNode" name="visible" type="SFBool"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
     <NodeContentModel name="CollidableOffset"/>
     <NodeContentModel name="CollidableShape"/>
     <NodeContentModel name="ProtoInstance"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="CollidableShape">
   <InterfaceDefinition appinfo="CollidableShape connects the collision detection system, the rigid body model, and the renderable scene graph." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/rigidBodyPhysics.html#CollidableShape">
    <componentInfo level="1" name="RigidBodyPhysics"/>
    <Inheritance baseType="X3DNBodyCollidableNode"/>
    <field accessType="initializeOnly" default="0 0 0" description="Bounding box center accompanies bboxSize and provides an optional hint for bounding box position offset from origin of local coordinate system." inheritedFrom="X3DNBodyCollidableNode" name="bboxCenter" type="SFVec3f"/>
    <field accessType="inputOutput" default="false" description="Whether to display bounding box for associated geometry, aligned with world coordinates." inheritedFrom="X3DNBodyCollidableNode" name="bboxDisplay" type="SFBool"/>
    <field accessType="initializeOnly" baseType="bboxSizeType" default="-1 -1 -1" description="Bounding box size is usually omitted, and can easily be calculated automatically by an X3D player at scene-loading time with minimal computational cost." inheritedFrom="X3DNBodyCollidableNode" name="bboxSize" type="SFVec3f"/>
    <field accessType="inputOutput" default="true" description="Enables/disables node operation." inheritedFrom="X3DNBodyCollidableNode" name="enabled" type="SFBool"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" default="0 0 1 0" description="Orientation (axis, angle in radians) of children relative to local coordinate system." inheritedFrom="X3DNBodyCollidableNode" name="rotation" type="SFRotation"/>
    <field acceptableNodeTypes="Shape" accessType="initializeOnly" default="NULL" description="The shape field provides a geometry proxy for specifying which geometry best represents the collidable object." name="shape" type="SFNode"/>
    <field accessType="inputOutput" default="0 0 0" description="Position (x, y, z in meters) of children relative to local coordinate system." inheritedFrom="X3DNBodyCollidableNode" name="translation" type="SFVec3f"/>
    <field accessType="inputOutput" default="true" description="Whether or not renderable content within this node is visually displayed." inheritedFrom="X3DNBodyCollidableNode" name="visible" type="SFBool"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
     <NodeContentModel name="Shape"/>
     <NodeContentModel name="ProtoInstance"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="Collision">
   <InterfaceDefinition appinfo="Collision detects camera-to-object contact using current view and NavigationInfo avatarSize." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/navigation.html#Collision">
    <componentInfo level="2" name="Navigation"/>
    <Inheritance baseType="X3DGroupingNode"/>
    <AdditionalInheritance baseType="X3DSensorNode"/>
    <field acceptableNodeTypes="X3DChildNode" accessType="inputOnly" inheritedFrom="X3DGroupingNode" name="addChildren" type="MFNode">
     <componentInfo level="2" name="Grouping"/>
    </field>
    <field accessType="initializeOnly" default="0 0 0" description="Bounding box center accompanies bboxSize and provides an optional hint for bounding box position offset from origin of local coordinate system." inheritedFrom="X3DGroupingNode" name="bboxCenter" type="SFVec3f"/>
    <field accessType="inputOutput" default="false" description="Whether to display bounding box for associated geometry, aligned with world coordinates." inheritedFrom="X3DGroupingNode" name="bboxDisplay" type="SFBool"/>
    <field accessType="initializeOnly" baseType="bboxSizeType" default="-1 -1 -1" description="Bounding box size is usually omitted, and can easily be calculated automatically by an X3D player at scene-loading time with minimal computational cost." inheritedFrom="X3DGroupingNode" name="bboxSize" type="SFVec3f"/>
    <field acceptableNodeTypes="X3DChildNode" accessType="inputOutput" description="Grouping nodes contain an ordered list of children nodes." inheritedFrom="X3DGroupingNode" name="children" type="MFNode"/>
    <field accessType="outputOnly" description="Time of collision between camera (avatar) and geometry." name="collideTime" type="SFTime"/>
    <field accessType="inputOutput" description="Author-provided prose that describes intended purpose of the node." inheritedFrom="X3DSensorNode" name="description" type="SFString"/>
    <field accessType="inputOutput" default="true" description="Enables/disables collision detection for children and all descendants." inheritedFrom="X3DSensorNode" name="enabled" type="SFBool"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="outputOnly" description="isActive true/false events are sent when triggering the sensor." inheritedFrom="X3DSensorNode" name="isActive" type="SFBool"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field acceptableNodeTypes="X3DChildNode" accessType="initializeOnly" default="NULL" description="The proxy node is used as a substitute for Collision children during collision detection, simplifying collision-intersection computations." name="proxy" type="SFNode"/>
    <field acceptableNodeTypes="X3DChildNode" accessType="inputOnly" inheritedFrom="X3DGroupingNode" name="removeChildren" type="MFNode">
     <componentInfo level="2" name="Grouping"/>
    </field>
    <field accessType="inputOutput" default="true" description="Whether or not renderable content within this node is visually displayed." inheritedFrom="X3DGroupingNode" name="visible" type="SFBool"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel maxOccurs="unbounded" minOccurs="0" name="ChildContentModel"/>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="CollisionCollection">
   <InterfaceDefinition appinfo="CollisionCollection holds a collection of objects that can be managed as a single entity for resolution of inter-object collisions." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/rigidBodyPhysics.html#CollisionCollection">
    <componentInfo level="1" name="RigidBodyPhysics"/>
    <Inheritance baseType="X3DChildNode"/>
    <AdditionalInheritance baseType="X3DBoundedObject"/>
    <field accessType="inputOutput" additionalEnumerationValuesAllowed="false" baseType="MFString" default='"BOUNCE"' description="Default global parameters for collision outputs of rigid body physics system." name="appliedParameters" simpleType="appliedParametersChoices" type="MFString">
     <enumeration appinfo="The bounce field value is used." value='"BOUNCE"'/>
     <enumeration appinfo="The system will normally calculate the friction direction vector that is perpendicular to the contact normal. This setting indicates that the user-supplied value in this contact should be used." value='"USER_FRICTION"'/>
     <enumeration appinfo="Apply frictionCoefficients values." value='"FRICTION_COEFFICIENT-2"'/>
     <enumeration appinfo="Apply softnessErrorCorrection value." value='"ERROR_REDUCTION"'/>
     <enumeration appinfo="Apply softnessConstantForceMix value." value='"CONSTANT_FORCE"'/>
     <enumeration appinfo="Apply first component of surfaceSpeed array." value='"SPEED-1"'/>
     <enumeration appinfo="Apply second component of surfaceSpeed array." value='"SPEED-2"'/>
     <enumeration appinfo="Apply first component of slipFactors array." value='"SLIP-1"'/>
     <enumeration appinfo="Apply second component of slipFactors array." value='"SLIP-2"'/>
    </field>
    <field accessType="initializeOnly" default="0 0 0" description="Bounding box center accompanies bboxSize and provides an optional hint for bounding box position offset from origin of local coordinate system." inheritedFrom="X3DBoundedObject" name="bboxCenter" type="SFVec3f"/>
    <field accessType="inputOutput" default="false" description="Whether to display bounding box for associated geometry, aligned with world coordinates." inheritedFrom="X3DBoundedObject" name="bboxDisplay" type="SFBool"/>
    <field accessType="initializeOnly" baseType="bboxSizeType" default="-1 -1 -1" description="Bounding box size is usually omitted, and can easily be calculated automatically by an X3D player at scene-loading time with minimal computational cost." inheritedFrom="X3DBoundedObject" name="bboxSize" type="SFVec3f"/>
    <field accessType="inputOutput" default="0" description="bounce indicates bounciness (0 = no bounce at all, 1 = maximum bounce)." maxInclusive="1" minInclusive="0" name="bounce" type="SFFloat"/>
    <field acceptableNodeTypes="X3DNBodyCollisionSpaceNode|X3DNBodyCollidableNode" accessType="inputOutput" description="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." name="collidables" type="MFNode"/>
    <field accessType="inputOutput" description="Author-provided prose that describes intended purpose of the node." name="description" type="SFString"/>
    <field accessType="inputOutput" default="true" description="Enables/disables node operation." name="enabled" type="SFBool"/>
    <field accessType="inputOutput" default="0 0" description="frictionCoefficients used for computing surface drag." minInclusive="0" name="frictionCoefficients" type="SFVec2f"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" default="0.1" description="minBounceSpeed m/s needed to bounce." minInclusive="0" name="minBounceSpeed" type="SFFloat"/>
    <field accessType="inputOutput" default="0 0" description="slipFactors used for computing surface drag." name="slipFactors" type="SFVec2f"/>
    <field accessType="inputOutput" default="0.0001" description="softnessConstantForceMix value applies a constant force value to make colliding surfaces appear to be somewhat soft." maxInclusive="1" minInclusive="0" name="softnessConstantForceMix" type="SFFloat"/>
    <field accessType="inputOutput" default="0.8" description="softnessErrorCorrection indicates fraction of collision error fixed in a set of evaluations (0 = no error correction, 1 = all errors corrected in single step)." maxInclusive="1" minInclusive="0" name="softnessErrorCorrection" type="SFFloat"/>
    <field accessType="inputOutput" default="0 0" description="surfaceSpeed defines speed vectors for computing surface drag, if contact surfaces move independently of bodies." name="surfaceSpeed" type="SFVec2f"/>
    <field accessType="inputOutput" default="true" description="Whether or not renderable content within this node is visually displayed." inheritedFrom="X3DBoundedObject" name="visible" type="SFBool"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="collider" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
     <NodeContentModel name="CollidableOffset"/>
     <NodeContentModel name="CollidableShape"/>
     <NodeContentModel name="CollisionSpace"/>
     <NodeContentModel name="ProtoInstance"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="CollisionSensor">
   <InterfaceDefinition appinfo="CollisionSensor generates collision-detection events." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/rigidBodyPhysics.html#CollisionSensor">
    <componentInfo level="1" name="RigidBodyPhysics"/>
    <Inheritance baseType="X3DSensorNode"/>
    <field acceptableNodeTypes="CollisionCollection" accessType="inputOutput" default="NULL" description="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" type="SFNode"/>
    <field acceptableNodeTypes="Contact" accessType="outputOnly" name="contacts" type="MFNode">
     <componentInfo level="2" name="RigidBodyPhysics"/>
    </field>
    <field accessType="inputOutput" description="Author-provided prose that describes intended purpose of the node." inheritedFrom="X3DSensorNode" name="description" type="SFString"/>
    <field accessType="inputOutput" default="true" description="Enables/disables node operation." inheritedFrom="X3DSensorNode" name="enabled" type="SFBool"/>
    <field acceptableNodeTypes="X3DNBodyCollidableNode" accessType="outputOnly" name="intersections" type="MFNode"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="outputOnly" description="isActive true/false events are sent when sensing starts/stops." inheritedFrom="X3DSensorNode" name="isActive" type="SFBool"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
     <NodeContentModel name="CollisionCollection"/>
     <NodeContentModel name="ProtoInstance"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="CollisionSpace">
   <InterfaceDefinition appinfo="CollisionSpace holds collection of objects considered together for resolution of inter-object collisions." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/rigidBodyPhysics.html#CollisionSpace">
    <componentInfo level="1" name="RigidBodyPhysics"/>
    <Inheritance baseType="X3DNBodyCollisionSpaceNode"/>
    <field accessType="initializeOnly" default="0 0 0" description="Bounding box center accompanies bboxSize and provides an optional hint for bounding box position offset from origin of local coordinate system." inheritedFrom="X3DNBodyCollisionSpaceNode" name="bboxCenter" type="SFVec3f"/>
    <field accessType="inputOutput" default="false" description="Whether to display bounding box for associated geometry, aligned with world coordinates." inheritedFrom="X3DNBodyCollisionSpaceNode" name="bboxDisplay" type="SFBool"/>
    <field accessType="initializeOnly" baseType="bboxSizeType" default="-1 -1 -1" description="Bounding box size is usually omitted, and can easily be calculated automatically by an X3D player at scene-loading time with minimal computational cost." inheritedFrom="X3DNBodyCollisionSpaceNode" name="bboxSize" type="SFVec3f"/>
    <field acceptableNodeTypes="X3DNBodyCollisionSpaceNode|X3DNBodyCollidableNode" accessType="inputOutput" description="Collection of collidable objects as well as nested CollisionSpace collections." name="collidables" type="MFNode"/>
    <field accessType="inputOutput" default="true" description="Enables/disables node operation." inheritedFrom="X3DNBodyCollisionSpaceNode" name="enabled" type="SFBool"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" default="false" description="useGeometry indicates whether collision-detection code checks down to level of geometry, or only make approximations using geometry bounds." name="useGeometry" type="SFBool"/>
    <field accessType="inputOutput" default="true" description="Whether or not renderable content within this node is visually displayed." inheritedFrom="X3DNBodyCollisionSpaceNode" name="visible" type="SFBool"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
     <NodeContentModel name="CollidableOffset"/>
     <NodeContentModel name="CollidableShape"/>
     <NodeContentModel name="CollisionSpace"/>
     <NodeContentModel name="ProtoInstance"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="Color">
   <InterfaceDefinition appinfo="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." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/rendering.html#Color">
    <componentInfo level="1" name="Rendering"/>
    <Inheritance baseType="X3DColorNode"/>
    <field accessType="inputOutput" description="The color field defines an array of 3-tuple RGB colors." maxInclusive="1" minInclusive="0" name="color" type="MFColor"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="color" type="containerFieldChoicesColor"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="ColorChaser">
   <InterfaceDefinition appinfo="ColorChaser generates a series of SFColor values that progressively change from initial value to destination value." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/followers.html#ColorChaser">
    <componentInfo level="1" name="Followers"/>
    <Inheritance baseType="X3DChaserNode"/>
    <field accessType="initializeOnly" default="1" description="duration is the time interval for filter response in seconds." inheritedFrom="X3DChaserNode" minInclusive="0" name="duration" type="SFTime"/>
    <field accessType="initializeOnly" default="0.8 0.8 0.8" description="Initial destination value for this node." maxInclusive="1" minInclusive="0" name="initialDestination" type="SFColor"/>
    <field accessType="initializeOnly" default="0.8 0.8 0.8" description="Initial starting value for this node." maxInclusive="1" minInclusive="0" name="initialValue" type="SFColor"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="outputOnly" description="isActive true/false events are sent when follower-node computation starts/stops." inheritedFrom="X3DFollowerNode" name="isActive" type="SFBool"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOnly" description="set_destination resets destination value of this node." maxInclusive="1" minInclusive="0" name="set_destination" type="SFColor"/>
    <field accessType="inputOnly" description="set_value resets current value of this node." maxInclusive="1" minInclusive="0" name="set_value" type="SFColor"/>
    <field accessType="outputOnly" description="Computed output value that approaches within tolerance of destination value, as determined by elapsed time, order and tau." maxInclusive="1" minInclusive="0" name="value_changed" type="SFColor"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="ColorDamper">
   <InterfaceDefinition appinfo="ColorDamper generates a series of RGB color values that progressively change from initial value to destination value." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/followers.html#ColorDamper">
    <componentInfo level="1" name="Followers"/>
    <Inheritance baseType="X3DDamperNode"/>
    <field accessType="initializeOnly" default="0.8 0.8 0.8" description="Initial destination value for this node." maxInclusive="1" minInclusive="0" name="initialDestination" type="SFColor"/>
    <field accessType="initializeOnly" default="0.8 0.8 0.8" description="Initial starting value for this node." maxInclusive="1" minInclusive="0" name="initialValue" type="SFColor"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="outputOnly" description="isActive true/false events are sent when follower-node computation starts/stops." inheritedFrom="X3DFollowerNode" name="isActive" type="SFBool"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="initializeOnly" default="3" description="order defines the number of internal filters (larger means smoother response, longer delay)." inheritedFrom="X3DDamperNode" maxInclusive="5" minInclusive="0" name="order" type="SFInt32"/>
    <field accessType="inputOnly" description="set_destination resets destination value of this node." maxInclusive="1" minInclusive="0" name="set_destination" type="SFColor"/>
    <field accessType="inputOnly" description="set_value resets current value of this node." maxInclusive="1" minInclusive="0" name="set_value" type="SFColor"/>
    <field accessType="inputOutput" default="0.3" description="tau is the exponential-decay time constant for filter response in seconds." inheritedFrom="X3DDamperNode" minInclusive="0" name="tau" type="SFTime"/>
    <field accessType="inputOutput" default="-1" description="or -1." inheritedFrom="X3DDamperNode" name="tolerance" type="SFFloat"/>
    <field accessType="outputOnly" description="Computed output value that approaches within tolerance of destination value, as determined by elapsed time, order and tau." maxInclusive="1" minInclusive="0" name="value_changed" type="SFColor"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="ColorInterpolator">
   <InterfaceDefinition appinfo="ColorInterpolator generates a range of color values." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/interpolators.html#ColorInterpolator">
    <componentInfo level="2" name="Interpolation"/>
    <Inheritance baseType="X3DInterpolatorNode"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="inputOutput" description="Definition values for linear-interpolation function input intervals, listed in non-decreasing order and corresponding to a value in the keyValue array." inheritedFrom="X3DInterpolatorNode" name="key" type="MFFloat"/>
    <field accessType="inputOutput" description="Output values for linear interpolation, each corresponding to an input-fraction value in the key array." maxInclusive="1" minInclusive="0" name="keyValue" type="MFColor"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOnly" description="set_fraction selects input key for corresponding keyValue output." inheritedFrom="X3DInterpolatorNode" name="set_fraction" type="SFFloat"/>
    <field accessType="outputOnly" description="Linearly interpolated output value determined by current key time and corresponding keyValue pair." maxInclusive="1" minInclusive="0" name="value_changed" type="SFColor"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="ColorRGBA">
   <InterfaceDefinition appinfo="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." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/rendering.html#ColorRGBA">
    <componentInfo level="1" name="Rendering"/>
    <Inheritance baseType="X3DColorNode"/>
    <field accessType="inputOutput" description="The color field defines an array of 4-tuple RGBA colors." maxInclusive="1" minInclusive="0" name="color" type="MFColorRGBA">
     <componentInfo level="4" name="Rendering"/>
    </field>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="color" type="containerFieldChoicesColor"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="ComposedCubeMapTexture">
   <InterfaceDefinition appinfo="ComposedCubeMapTexture is a texture node that defines a cubic environment map source as an explicit set of images drawn from individual 2D texture nodes." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/environmentalTexturing.html#ComposedCubeMapTexture">
    <componentInfo level="1" name="CubeMapTexturing"/>
    <Inheritance baseType="X3DEnvironmentTextureNode"/>
    <field acceptableNodeTypes="X3DTexture2DNode" accessType="inputOutput" default="NULL" description="Parent ComposedCubeMapTexture element can contain up to six image nodes (ImageTexture PixelTexture MovieTexture, other texture nodes)." name="backTexture" synonym="back" type="SFNode"/>
    <field acceptableNodeTypes="X3DTexture2DNode" accessType="inputOutput" default="NULL" description="Parent ComposedCubeMapTexture element can contain up to six image nodes (ImageTexture PixelTexture, other texture nodes)." name="bottomTexture" synonym="bottom" type="SFNode"/>
    <field accessType="inputOutput" description="Author-provided prose that describes intended purpose of the url asset." inheritedFrom="X3DTextureNode" name="description" type="SFString"/>
    <field acceptableNodeTypes="X3DTexture2DNode" accessType="inputOutput" default="NULL" description="Parent ComposedCubeMapTexture element can contain up to six image nodes (ImageTexture PixelTexture MovieTexture, other texture nodes)." name="frontTexture" synonym="front" type="SFNode"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DTexture2DNode" accessType="inputOutput" default="NULL" description="Parent ComposedCubeMapTexture element can contain up to six image nodes (ImageTexture PixelTexture MovieTexture, other texture nodese)." name="leftTexture" synonym="left" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field acceptableNodeTypes="X3DTexture2DNode" accessType="inputOutput" default="NULL" description="Parent ComposedCubeMapTexture element can contain up to six image nodes (ImageTexture PixelTexture MovieTexture, other texture nodes)." name="rightTexture" synonym="right" type="SFNode"/>
    <field acceptableNodeTypes="TextureProperties" accessType="initializeOnly" default="NULL" description="Single contained TextureProperties node that can specify additional visual attributes applied to corresponding texture images." name="textureProperties" type="SFNode"/>
    <field acceptableNodeTypes="X3DTexture2DNode" accessType="inputOutput" default="NULL" description="Parent ComposedCubeMapTexture element can contain up to six image nodes (ImageTexture PixelTexture MovieTexture, other texture nodes)." name="topTexture" synonym="top" type="SFNode"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="texture" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
     <NodeContentModel name="ImageTexture"/>
     <NodeContentModel name="PixelTexture"/>
     <NodeContentModel name="MovieTexture"/>
     <NodeContentModel name="ProtoInstance"/>
     <NodeContentModel name="TextureProperties"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="ComposedShader">
   <InterfaceDefinition appinfo="ComposedShader can contain field declarations, but no CDATA section of plain-text source code, since programs are composed from child ShaderPart nodes." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/shaders.html#ComposedShader">
    <componentInfo level="1" name="Shaders"/>
    <Inheritance baseType="X3DShaderNode"/>
    <AdditionalInheritance baseType="X3DProgrammableShaderObject"/>
    <field accessType="inputOnly" description="activate forces the shader to activate the contained objects." inheritedFrom="X3DShaderNode" name="activate" type="SFBool"/>
    <field acceptableNodeTypes="field" accessType="inputOutput" description="Include a field statement for each field declaration in the ComposedShader node." name="field" type="MFNode"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" name="IS" type="SFNode"/>
    <field accessType="outputOnly" description="isSelected indicates this shader instance is selected for use by browser Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." inheritedFrom="X3DShaderNode" name="isSelected" type="SFBool"/>
    <field accessType="outputOnly" description="isValid indicates whether current shader objects can be run as a shader program." inheritedFrom="X3DShaderNode" name="isValid" type="SFBool"/>
    <field accessType="initializeOnly" additionalEnumerationValuesAllowed="true" baseType="xs:NMTOKEN" description="The language field indicates to the X3D player which shading language is used." inheritedFrom="X3DShaderNode" name="language" simpleType="shaderLanguageValues" type="SFString">
     <enumeration appinfo="nVidia Cg shading language." value="Cg"/>
     <enumeration appinfo="OpenGL shading language (GLSL)." value="GLSL"/>
     <enumeration appinfo="Microsoft High Level Shading Language (HLSL)." value="HLSL"/>
    </field>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." name="metadata" type="SFNode"/>
    <field acceptableNodeTypes="ShaderPart" accessType="inputOutput" description="ComposedShader can contain multiple ShaderPart nodes in the parts field." name="parts" type="MFNode"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="shaders" type="xs:NMTOKEN"/>
    <ContentModel>
     <FieldDeclaration maxOccurs="unbounded" minOccurs="0"/>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
     <NodeContentModel name="ShaderPart"/>
     <NodeContentModel name="ProtoInstance"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="ComposedTexture3D">
   <InterfaceDefinition appinfo="ComposedTexture3D defines a 3D image-based texture map as a collection of 2D texture sources at various depths." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/texture3D.html#ComposedTexture3D">
    <componentInfo level="1" name="Texturing3D"/>
    <Inheritance baseType="X3DTexture3DNode"/>
    <field accessType="inputOutput" description="Author-provided prose that describes intended purpose of the url asset." inheritedFrom="X3DTextureNode" name="description" type="SFString"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="initializeOnly" default="false" description="Whether to repeat texture along R axis from front to back." inheritedFrom="X3DTexture3DNode" name="repeatR" type="SFBool"/>
    <field accessType="initializeOnly" default="false" description="Whether to repeat texture along S axis horizontally from left to right." inheritedFrom="X3DTexture3DNode" name="repeatS" type="SFBool"/>
    <field accessType="initializeOnly" default="false" description="Whether to repeat texture along T axis vertically from top to bottom." inheritedFrom="X3DTexture3DNode" name="repeatT" type="SFBool"/>
    <field acceptableNodeTypes="X3DTexture2DNode" accessType="inputOutput" description="collection of 2D texture sources." name="texture" type="MFNode"/>
    <field acceptableNodeTypes="TextureProperties" accessType="initializeOnly" default="NULL" description="Single contained TextureProperties node that can specify additional visual attributes applied to corresponding texture images." inheritedFrom="X3DTexture3DNode" name="textureProperties" type="SFNode"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="texture" type="containerFieldChoicesX3DTexture3DNode"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
     <NodeContentModel name="TextureProperties"/>
     <NodeContentModel name="ProtoInstance"/>
     <NodeContentModel name="ImageTexture"/>
     <NodeContentModel name="PixelTexture"/>
     <NodeContentModel name="MovieTexture"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="ComposedVolumeStyle">
   <InterfaceDefinition appinfo="ComposedVolumeStyle allows compositing multiple rendering styles into single rendering pass." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/volume.html#ComposedVolumeStyle">
    <componentInfo level="3" name="VolumeRendering"/>
    <Inheritance baseType="X3DComposableVolumeRenderStyleNode"/>
    <field accessType="inputOutput" default="true" description="Enables/disables node operation." inheritedFrom="X3DVolumeRenderStyleNode" name="enabled" type="SFBool"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field acceptableNodeTypes="X3DComposableVolumeRenderStyleNode" accessType="inputOutput" description="List of contributing rendering style nodes or node references that can be applied to the object." name="renderStyle" type="MFNode"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="renderStyle" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
     <GroupContentModel name="VolumeRenderStyleContentModel"/>
     <NodeContentModel name="ProtoInstance"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="Cone">
   <InterfaceDefinition appinfo="Cone is a geometry node." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/geometry3D.html#Cone">
    <componentInfo level="1" name="Geometry3D"/>
    <Inheritance baseType="X3DGeometryNode"/>
    <field accessType="inputOutput" default="true" description="Whether to draw bottom (other inside faces are not drawn)." name="bottom" type="SFBool"/>
    <field accessType="initializeOnly" default="1" description="Size in meters." minExclusive="0" name="bottomRadius" type="SFFloat"/>
    <field accessType="initializeOnly" default="2" description="Size in meters." minExclusive="0" name="height" type="SFFloat"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" default="true" description="Whether to draw sides (other inside faces are not drawn)." name="side" type="SFBool"/>
    <field accessType="initializeOnly" default="true" description="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)." name="solid" type="SFBool"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="geometry" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="ConeEmitter">
   <InterfaceDefinition appinfo="ConeEmitter generates all available particles from a specific point in space." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/particleSystems.html#ConeEmitter">
    <componentInfo level="1" name="ParticleSystems"/>
    <Inheritance baseType="X3DParticleEmitterNode"/>
    <field accessType="inputOutput" default="0.7854" description="Cone boundary for random distribution of particles about initial direction." maxInclusive="3.1416" minInclusive="0" name="angle" type="SFFloat"/>
    <field accessType="inputOutput" default="0 1 0" description="Initial direction from which particles emanate." maxInclusive="1" minInclusive="-1" name="direction" type="SFVec3f"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="inputOutput" default="0" description="Basic mass of each particle, defined in mass base units (default is kilograms)." inheritedFrom="X3DParticleEmitterNode" minInclusive="0" name="mass" type="SFFloat"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" default="true" description="Enables/disables production of particles from this emitter node." inheritedFrom="X3DParticleEmitterNode" name="on" type="SFBool"/>
    <field accessType="inputOutput" default="0 0 0" description="Point from which particles emanate." name="position" type="SFVec3f"/>
    <field accessType="inputOutput" default="0" description="Initial linear speed (default is m/s) imparted to all particles along their direction of movement." inheritedFrom="X3DParticleEmitterNode" minInclusive="0" name="speed" type="SFFloat"/>
    <field accessType="inputOutput" default="0" description="Particle surface area in area base units (default is meters squared)." inheritedFrom="X3DParticleEmitterNode" minInclusive="0" name="surfaceArea" type="SFFloat"/>
    <field accessType="inputOutput" default="0.25" description="Multiplier for the randomness used to control the range of possible output values." inheritedFrom="X3DParticleEmitterNode" minInclusive="0" name="variation" type="SFFloat"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="emitter" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="Contact">
   <InterfaceDefinition appinfo="Contact nodes are produced as output events when two collidable objects or spaces make contact." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/rigidBodyPhysics.html#Contact">
    <componentInfo level="2" name="RigidBodyPhysics"/>
    <Inheritance baseType="X3DNode"/>
    <field accessType="inputOutput" additionalEnumerationValuesAllowed="false" baseType="MFString" default='"BOUNCE"' description="Default global parameters for collision outputs of rigid body physics system." name="appliedParameters" simpleType="appliedParametersChoices" type="MFString">
     <enumeration appinfo="The bounce field value is used." value='"BOUNCE"'/>
     <enumeration appinfo="The system will normally calculate the friction direction vector that is perpendicular to the contact normal. This setting indicates that the user-supplied value in this contact should be used." value='"USER_FRICTION"'/>
     <enumeration appinfo="Apply frictionCoefficients values." value='"FRICTION_COEFFICIENT-2"'/>
     <enumeration appinfo="Apply softnessErrorCorrection value." value='"ERROR_REDUCTION"'/>
     <enumeration appinfo="Apply softnessConstantForceMix value." value='"CONSTANT_FORCE"'/>
     <enumeration appinfo="Apply first component of surfaceSpeed array." value='"SPEED-1"'/>
     <enumeration appinfo="Apply second component of surfaceSpeed array." value='"SPEED-2"'/>
     <enumeration appinfo="Apply first component of slipFactors array." value='"SLIP-1"'/>
     <enumeration appinfo="Apply second component of slipFactors array." value='"SLIP-2"'/>
    </field>
    <field acceptableNodeTypes="RigidBody" accessType="inputOutput" default="NULL" description="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" type="SFNode"/>
    <field acceptableNodeTypes="RigidBody" accessType="inputOutput" default="NULL" description="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" type="SFNode"/>
    <field accessType="inputOutput" default="0" description="bounce indicates bounciness (0 = no bounce at all, 1 = maximum bounce)." maxInclusive="1" minInclusive="0" name="bounce" type="SFFloat"/>
    <field accessType="inputOutput" default="0 1 0" description="contactNormal is unit vector describing normal between two colliding bodies." name="contactNormal" type="SFVec3f"/>
    <field accessType="inputOutput" default="0" description="depth indicates how deep the current intersection is along normal vector." name="depth" type="SFFloat"/>
    <field accessType="inputOutput" default="0 0" description="frictionCoefficients used for computing surface drag." minInclusive="0" name="frictionCoefficients" type="SFVec2f"/>
    <field accessType="inputOutput" default="0 1 0" description="frictionDirection controls friction vector." name="frictionDirection" type="SFVec3f"/>
    <field acceptableNodeTypes="X3DNBodyCollidableNode" accessType="inputOutput" default="NULL" description="The geometry1 and geometry2 fields specify collision-related information about body1 and body2." name="geometry1" type="SFNode"/>
    <field acceptableNodeTypes="X3DNBodyCollidableNode" accessType="inputOutput" default="NULL" description="The geometry1 and geometry2 fields specify collision-related information about body1 and body2." name="geometry2" type="SFNode"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" default="0" description="minBounceSpeed m/s needed to bounce." minInclusive="0" name="minBounceSpeed" type="SFFloat"/>
    <field accessType="inputOutput" default="0 0 0" description="position (x, y, z in meters) of exact location of collision." name="position" type="SFVec3f"/>
    <field accessType="inputOutput" default="0 0" description="slipCoefficients used for computing surface drag." name="slipCoefficients" type="SFVec2f"/>
    <field accessType="inputOutput" default="0.0001" description="softnessConstantForceMix value applies a constant force value to make colliding surfaces appear to be somewhat soft." maxInclusive="1" minInclusive="0" name="softnessConstantForceMix" type="SFFloat"/>
    <field accessType="inputOutput" default="0.8" description="softnessErrorCorrection indicates fraction of collision error fixed in a set of evaluations (0 = no error correction, 1 = all errors corrected in single step)." maxInclusive="1" minInclusive="0" name="softnessErrorCorrection" type="SFFloat"/>
    <field accessType="inputOutput" default="0 0" description="surfaceSpeed defines speed vectors for computing surface drag, if contact surfaces move independently of bodies." name="surfaceSpeed" type="SFVec2f"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="contacts" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
     <NodeContentModel name="RigidBody"/>
     <NodeContentModel name="CollidableOffset"/>
     <NodeContentModel name="CollidableShape"/>
     <NodeContentModel name="ProtoInstance"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="Contour2D">
   <InterfaceDefinition appinfo="Contour2D groups a set of curve segments into a composite contour." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/nurbs.html#Contour2D">
    <componentInfo level="4" name="NURBS"/>
    <Inheritance baseType="X3DNode"/>
    <field acceptableNodeTypes="NurbsCurve2D|ContourPolyline2D" accessType="inputOnly" name="addChildren" type="MFNode"/>
    <field acceptableNodeTypes="NurbsCurve2D|ContourPolyline2D" accessType="inputOutput" description="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." name="children" type="MFNode"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field acceptableNodeTypes="NurbsCurve2D|ContourPolyline2D" accessType="inputOnly" name="removeChildren" type="MFNode"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="trimmingContour" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
     <NodeContentModel name="NurbsCurve2D"/>
     <NodeContentModel name="ContourPolyline2D"/>
     <NodeContentModel name="ProtoInstance"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="ContourPolyline2D">
   <InterfaceDefinition appinfo="ContourPolyline2D defines a linear curve segment as part of a trimming contour in the u-v domain of a NURBS surface." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/nurbs.html#ContourPolyline2D">
    <componentInfo level="3" name="NURBS"/>
    <Inheritance baseType="X3DNurbsControlCurveNode"/>
    <field accessType="inputOutput" description="controlPoint specifies the end points of each segment of the piecewise linear curve." inheritedFrom="X3DNurbsControlCurveNode" name="controlPoint" type="MFVec2d"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="Convolver">
   <InterfaceDefinition appinfo="Convolver performs a linear convolution on a given AudioBuffer, often used to achieve a reverberation effect." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/sound.html#Convolver">
    <componentInfo level="2" name="Sound"/>
    <Inheritance baseType="X3DSoundProcessingNode"/>
    <field accessType="inputOutput" description="buffer is a memory-resident audio asset that can contain one or more channels." maxInclusive="1" minInclusive="-1" name="buffer" type="MFFloat"/>
    <field accessType="outputOnly" description="channelCount reports number of channels provided by input nodes." inheritedFrom="X3DSoundProcessingNode" name="channelCount" type="SFInt32"/>
    <field accessType="inputOutput" additionalEnumerationValuesAllowed="false" baseType="SFString" default="MAX" description="channelCountMode determines how individual channels are counted when up-mixing and down-mixing connections to any inputs." inheritedFrom="X3DSoundProcessingNode" name="channelCountMode" simpleType="channelCountModeChoices" type="SFString">
     <enumeration alias="max" appinfo='X3D version of "max" in Web Audio API.' documentation="https://www.w3.org/TR/webaudio/#enumdef-channelcountmode" value="MAX"/>
     <enumeration alias="clamped-max" appinfo='X3D version of "clamped-max" in Web Audio API.' documentation="https://www.w3.org/TR/webaudio/#enumdef-channelcountmode" value="CLAMPED_MAX"/>
     <enumeration alias="explicit" appinfo='X3D version of "explicit" in Web Audio API.' documentation="https://www.w3.org/TR/webaudio/#enumdef-channelcountmode" value="EXPLICIT"/>
    </field>
    <field accessType="inputOutput" additionalEnumerationValuesAllowed="false" baseType="SFString" default="SPEAKERS" description="channelInterpretation determines how individual channels are treated when up-mixing and down-mixing connections to any inputs." inheritedFrom="X3DSoundProcessingNode" name="channelInterpretation" simpleType="channelInterpretationChoices" type="SFString">
     <enumeration appinfo='X3D version of "speakers" in Web Audio API.' documentation="https://www.w3.org/TR/webaudio/#enumdef-channelinterpretation" value="SPEAKERS"/>
     <enumeration appinfo='X3D version of "discrete" in Web Audio API.' documentation="https://www.w3.org/TR/webaudio/#enumdef-channelinterpretation" value="DISCRETE"/>
    </field>
    <field acceptableNodeTypes="Analyser|AudioClip|AudioDestination|BiquadFilter|BufferAudioSource|ChannelMerger|ChannelSelector|ChannelSplitter|Convolver|Delay|DynamicsCompressor|Gain|ListenerPointSource|MicrophoneSource|MovieTexture|OscillatorSource|Sound|SpatialSound|StreamAudioDestination|StreamAudioSource|WaveShaper" accessType="inputOutput" description="The children field specifies audio-graph sound sources providing input signals for this node." name="children" type="MFNode"/>
    <field accessType="inputOutput" description="Author-provided prose that describes intended purpose of the url asset." inheritedFrom="X3DTimeDependentNode" name="description" type="SFString"/>
    <field accessType="outputOnly" description="Current elapsed time since AudioClip activated/running, cumulative in seconds, and not counting any paused time." inheritedFrom="X3DTimeDependentNode" minInclusive="0" name="elapsedTime" type="SFTime"/>
    <field accessType="inputOutput" default="true" description="Enables/disables node operation." inheritedFrom="X3DSoundProcessingNode" name="enabled" type="SFBool"/>
    <field accessType="inputOutput" default="1" description="The gain field is a factor that represents the amount of linear amplification to apply to the output of the node." inheritedFrom="X3DSoundProcessingNode" name="gain" type="SFFloat"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="outputOnly" description="isActive true/false events are sent when playback starts/stops." inheritedFrom="X3DTimeDependentNode" name="isActive" type="SFBool"/>
    <field accessType="outputOnly" description="isPaused true/false events are sent when AudioClip is paused/resumed." inheritedFrom="X3DTimeDependentNode" name="isPaused" type="SFBool">
     <componentInfo level="2" name="Time"/>
    </field>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" default="false" description="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" type="SFBool"/>
    <field accessType="inputOutput" default="0" description="When time now &gt;= pauseTime, isPaused becomes true and AudioClip becomes paused." inheritedFrom="X3DTimeDependentNode" name="pauseTime" type="SFTime">
     <componentInfo level="2" name="Time"/>
    </field>
    <field accessType="inputOutput" default="0" description="When resumeTime becomes &lt;= time now, isPaused becomes false and AudioClip becomes active." inheritedFrom="X3DTimeDependentNode" name="resumeTime" type="SFTime">
     <componentInfo level="2" name="Time"/>
    </field>
    <field accessType="inputOutput" default="0" description="Absolute time: number of seconds since January 1, 1970, 00:00:00 GMT." inheritedFrom="X3DTimeDependentNode" name="startTime" type="SFTime"/>
    <field accessType="inputOutput" default="0" description="Absolute time: number of seconds since January 1, 1970, 00:00:00 GMT." inheritedFrom="X3DTimeDependentNode" name="stopTime" type="SFTime"/>
    <field accessType="inputOutput" default="0" description="tailTime is duration of time that a node continues to provide output signal after the input signal becomes silent." inheritedFrom="X3DSoundProcessingNode" minInclusive="0" name="tailTime" type="SFTime"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="containerFieldChoicesAudioGraph"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
     <GroupContentModel maxOccurs="unbounded" minOccurs="0" name="AudioGraphContentModel"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="Coordinate">
   <InterfaceDefinition appinfo="Coordinate builds geometry by defining a set of 3D coordinate (triplet) point values." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/rendering.html#Coordinate">
    <componentInfo level="1" name="Rendering"/>
    <Inheritance baseType="X3DCoordinateNode"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" description="point contains a set of 3D coordinate (triplet) point values." name="point" type="MFVec3f"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="coord" type="containerFieldChoicesX3DCoordinateNode"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="CoordinateChaser">
   <InterfaceDefinition appinfo="CoordinateChaser generates a series of coordinate arrays that progressively change from initial value to destination value." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/followers.html#CoordinateChaser">
    <componentInfo level="1" name="Followers"/>
    <Inheritance baseType="X3DChaserNode"/>
    <field accessType="initializeOnly" default="1" description="duration is the time interval for filter response in seconds." inheritedFrom="X3DChaserNode" minInclusive="0" name="duration" type="SFTime"/>
    <field accessType="initializeOnly" default="0 0 0" description="Initial destination value for this node." name="initialDestination" type="MFVec3f"/>
    <field accessType="initializeOnly" default="0 0 0" description="Initial starting value for this node." name="initialValue" type="MFVec3f"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="outputOnly" description="isActive true/false events are sent when follower-node computation starts/stops." inheritedFrom="X3DFollowerNode" name="isActive" type="SFBool"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOnly" description="set_destination resets destination value of this node." name="set_destination" type="MFVec3f"/>
    <field accessType="inputOnly" description="set_value resets current value of this node." name="set_value" type="MFVec3f"/>
    <field accessType="outputOnly" description="Computed output value that approaches within tolerance of destination value, as determined by elapsed time, order and tau." name="value_changed" type="MFVec3f"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="CoordinateDamper">
   <InterfaceDefinition appinfo="CoordinateDamper generates a series of coordinate arrays that progressively change from initial value to destination value." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/followers.html#CoordinateDamper">
    <componentInfo level="1" name="Followers"/>
    <Inheritance baseType="X3DDamperNode"/>
    <field accessType="initializeOnly" default="0 0 0" description="Initial destination value for this node." name="initialDestination" type="MFVec3f"/>
    <field accessType="initializeOnly" default="0 0 0" description="Initial starting value for this node." name="initialValue" type="MFVec3f"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="outputOnly" description="isActive true/false events are sent when follower-node computation starts/stops." inheritedFrom="X3DFollowerNode" name="isActive" type="SFBool"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="initializeOnly" default="3" description="order defines the number of internal filters (larger means smoother response, longer delay)." inheritedFrom="X3DDamperNode" maxInclusive="5" minInclusive="0" name="order" type="SFInt32"/>
    <field accessType="inputOnly" description="set_destination resets destination value of this node." name="set_destination" type="MFVec3f"/>
    <field accessType="inputOnly" description="set_value resets current value of this node." name="set_value" type="MFVec3f"/>
    <field accessType="inputOutput" default="0.3" description="tau is the exponential-decay time constant for filter response in seconds." inheritedFrom="X3DDamperNode" minInclusive="0" name="tau" type="SFTime"/>
    <field accessType="inputOutput" default="-1" description="or -1." inheritedFrom="X3DDamperNode" name="tolerance" type="SFFloat"/>
    <field accessType="outputOnly" description="Computed output value that approaches within tolerance of destination value, as determined by elapsed time, order and tau." name="value_changed" type="MFVec3f"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="CoordinateDouble">
   <InterfaceDefinition appinfo="CoordinateDouble builds geometry by defining a set of 3D coordinate (triplet) point values." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/nurbs.html#CoordinateDouble">
    <componentInfo level="1" name="Rendering"/>
    <Inheritance baseType="X3DCoordinateNode"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" description="point contains a set of 3D coordinate (triplet) point values." name="point" type="MFVec3d"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="coord" type="containerFieldChoicesX3DCoordinateNode"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="CoordinateInterpolator">
   <InterfaceDefinition appinfo="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." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/interpolators.html#CoordinateInterpolator">
    <componentInfo level="1" name="Interpolation"/>
    <Inheritance baseType="X3DInterpolatorNode"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="inputOutput" description="Definition values for linear-interpolation function input intervals, listed in non-decreasing order and corresponding to a value in the keyValue array." inheritedFrom="X3DInterpolatorNode" name="key" type="MFFloat"/>
    <field accessType="inputOutput" description="Output values for linear interpolation, each corresponding to an input-fraction value in the key array." name="keyValue" type="MFVec3f"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOnly" description="set_fraction selects input key for corresponding keyValue output." inheritedFrom="X3DInterpolatorNode" name="set_fraction" type="SFFloat"/>
    <field accessType="outputOnly" description="Linearly interpolated output value determined by current key time and corresponding keyValue pair." name="value_changed" type="MFVec3f"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="CoordinateInterpolator2D">
   <InterfaceDefinition appinfo="CoordinateInterpolator2D generates a series of SFVec2f or MFVec2f 2-tuple float values." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/interpolators.html#CoordinateInterpolator2D">
    <componentInfo level="3" name="Interpolation"/>
    <Inheritance baseType="X3DInterpolatorNode"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="inputOutput" description="Definition values for linear-interpolation function input intervals, listed in non-decreasing order and corresponding to a value in the keyValue array." inheritedFrom="X3DInterpolatorNode" name="key" type="MFFloat"/>
    <field accessType="inputOutput" description="Output values for linear interpolation, each corresponding to an input-fraction value in the key array." name="keyValue" type="MFVec2f"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOnly" description="set_fraction selects input key for corresponding keyValue output." inheritedFrom="X3DInterpolatorNode" name="set_fraction" type="SFFloat"/>
    <field accessType="outputOnly" description="Linearly interpolated output value determined by current key time and corresponding keyValue pair." name="value_changed" type="MFVec2f"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="Cylinder">
   <InterfaceDefinition appinfo="Cylinder is a geometry node." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/geometry3D.html#Cylinder">
    <componentInfo level="1" name="Geometry3D"/>
    <Inheritance baseType="X3DGeometryNode"/>
    <field accessType="inputOutput" default="true" description="Whether to draw bottom (inside faces are never drawn)." name="bottom" type="SFBool"/>
    <field accessType="initializeOnly" default="2" description="Size in meters." minExclusive="0" name="height" type="SFFloat"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="initializeOnly" default="1" description="Size in meters." minExclusive="0" name="radius" type="SFFloat"/>
    <field accessType="inputOutput" default="true" description="Whether to draw sides (inside faces are never drawn)." name="side" type="SFBool"/>
    <field accessType="initializeOnly" default="true" description="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)." name="solid" type="SFBool"/>
    <field accessType="inputOutput" default="true" description="Whether to draw top (inside faces are never drawn)." name="top" type="SFBool"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="geometry" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="CylinderSensor">
   <InterfaceDefinition appinfo="CylinderSensor converts pointer motion (for example, a mouse or wand) into rotation values using an invisible cylinder aligned with local Y-axis." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/pointingDeviceSensor.html#CylinderSensor">
    <componentInfo level="1" name="PointingDeviceSensor"/>
    <Inheritance baseType="X3DDragSensorNode"/>
    <field accessType="inputOutput" default="true" description="determines whether previous offset values are remembered/accumulated." inheritedFrom="X3DDragSensorNode" name="autoOffset" type="SFBool"/>
    <field accessType="inputOutput" default="0 0 1 0" description="axisRotation determines local sensor coordinate system by rotating the local coordinate system." name="axisRotation" type="SFRotation"/>
    <field accessType="inputOutput" description="Author-provided prose that describes intended purpose of this node." inheritedFrom="X3DSensorNode" name="description" type="SFString"/>
    <field accessType="inputOutput" default="0.26179167" description="Help decide rotation behavior from initial relative bearing of pointer drag: acute angle whether cylinder sides or end-cap disks of virtual-geometry sensor are used for manipulation." maxInclusive="1.5708" minInclusive="0" name="diskAngle" type="SFFloat"/>
    <field accessType="inputOutput" default="true" description="Enables/disables node operation." inheritedFrom="X3DSensorNode" name="enabled" type="SFBool"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="outputOnly" description="Select geometry by activating the pointing device (for example, clicking the mouse) to generate isActive events." inheritedFrom="X3DSensorNode" name="isActive" type="SFBool"/>
    <field accessType="outputOnly" description="Hover over geometry by aiming the mouse (or pointing device) to generate isOver events." inheritedFrom="X3DPointingDeviceSensorNode" name="isOver" type="SFBool"/>
    <field accessType="inputOutput" default="-1" description="clamps rotation_changed events within range of min/max values Hint: if minAngle &gt; maxAngle, rotation is not clamped." maxExclusive="6.2832" minExclusive="-6.2832" name="maxAngle" type="SFFloat"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" default="0" description="clamps rotation_changed events within range of min/max values Hint: if minAngle &gt; maxAngle, rotation is not clamped." maxExclusive="6.2832" minExclusive="-6.2832" name="minAngle" type="SFFloat"/>
    <field accessType="inputOutput" default="0" description="Sends event and remembers last value sensed." name="offset" type="SFFloat"/>
    <field accessType="outputOnly" description="rotation_changed events equal sum of relative bearing changes plus offset value about Y-axis in local coordinate system." name="rotation_changed" type="SFRotation"/>
    <field accessType="outputOnly" description="trackPoint_changed events give intersection point of bearing with sensor's virtual geometry." inheritedFrom="X3DDragSensorNode" name="trackPoint_changed" type="SFVec3f"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="Delay">
   <InterfaceDefinition appinfo="Delay causes a time delay between the arrival of input data and subsequent propagation to the output." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/sound.html#Delay">
    <componentInfo level="2" name="Sound"/>
    <Inheritance baseType="X3DSoundProcessingNode"/>
    <field accessType="outputOnly" description="channelCount reports number of channels provided by input nodes." inheritedFrom="X3DSoundProcessingNode" name="channelCount" type="SFInt32"/>
    <field accessType="inputOutput" additionalEnumerationValuesAllowed="false" baseType="SFString" default="MAX" description="channelCountMode determines how individual channels are counted when up-mixing and down-mixing connections to any inputs." inheritedFrom="X3DSoundProcessingNode" name="channelCountMode" simpleType="channelCountModeChoices" type="SFString">
     <enumeration alias="max" appinfo='X3D version of "max" in Web Audio API.' documentation="https://www.w3.org/TR/webaudio/#enumdef-channelcountmode" value="MAX"/>
     <enumeration alias="clamped-max" appinfo='X3D version of "clamped-max" in Web Audio API.' documentation="https://www.w3.org/TR/webaudio/#enumdef-channelcountmode" value="CLAMPED_MAX"/>
     <enumeration alias="explicit" appinfo='X3D version of "explicit" in Web Audio API.' documentation="https://www.w3.org/TR/webaudio/#enumdef-channelcountmode" value="EXPLICIT"/>
    </field>
    <field accessType="inputOutput" additionalEnumerationValuesAllowed="false" baseType="SFString" default="SPEAKERS" description="channelInterpretation determines how individual channels are treated when up-mixing and down-mixing connections to any inputs." inheritedFrom="X3DSoundProcessingNode" name="channelInterpretation" simpleType="channelInterpretationChoices" type="SFString">
     <enumeration appinfo='X3D version of "speakers" in Web Audio API.' documentation="https://www.w3.org/TR/webaudio/#enumdef-channelinterpretation" value="SPEAKERS"/>
     <enumeration appinfo='X3D version of "discrete" in Web Audio API.' documentation="https://www.w3.org/TR/webaudio/#enumdef-channelinterpretation" value="DISCRETE"/>
    </field>
    <field acceptableNodeTypes="Analyser|AudioClip|AudioDestination|BiquadFilter|BufferAudioSource|ChannelMerger|ChannelSelector|ChannelSplitter|Convolver|Delay|DynamicsCompressor|Gain|ListenerPointSource|MicrophoneSource|MovieTexture|OscillatorSource|Sound|SpatialSound|StreamAudioDestination|StreamAudioSource|WaveShaper" accessType="inputOutput" description="The children field specifies audio-graph sound sources providing input signals for this node." name="children" type="MFNode"/>
    <field accessType="inputOutput" default="0" description="delayTime is duration of delay (in seconds) to apply." minInclusive="0" name="delayTime" type="SFTime"/>
    <field accessType="inputOutput" description="Author-provided prose that describes intended purpose of the url asset." inheritedFrom="X3DTimeDependentNode" name="description" type="SFString"/>
    <field accessType="outputOnly" description="Current elapsed time since AudioClip activated/running, cumulative in seconds, and not counting any paused time." inheritedFrom="X3DTimeDependentNode" minInclusive="0" name="elapsedTime" type="SFTime"/>
    <field accessType="inputOutput" default="true" description="Enables/disables node operation." inheritedFrom="X3DSoundProcessingNode" name="enabled" type="SFBool"/>
    <field accessType="inputOutput" default="1" description="The gain field is a factor that represents the amount of linear amplification to apply to the output of the node." inheritedFrom="X3DSoundProcessingNode" name="gain" type="SFFloat"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="outputOnly" description="isActive true/false events are sent when playback starts/stops." inheritedFrom="X3DTimeDependentNode" name="isActive" type="SFBool"/>
    <field accessType="outputOnly" description="isPaused true/false events are sent when AudioClip is paused/resumed." inheritedFrom="X3DTimeDependentNode" name="isPaused" type="SFBool">
     <componentInfo level="2" name="Time"/>
    </field>
    <field accessType="inputOutput" default="1" description="maxDelayTime is duration of maximum amount of delay (in seconds) that can be applied." minInclusive="0" name="maxDelayTime" type="SFTime"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" default="0" description="When time now &gt;= pauseTime, isPaused becomes true and AudioClip becomes paused." inheritedFrom="X3DTimeDependentNode" name="pauseTime" type="SFTime">
     <componentInfo level="2" name="Time"/>
    </field>
    <field accessType="inputOutput" default="0" description="When resumeTime becomes &lt;= time now, isPaused becomes false and AudioClip becomes active." inheritedFrom="X3DTimeDependentNode" name="resumeTime" type="SFTime">
     <componentInfo level="2" name="Time"/>
    </field>
    <field accessType="inputOutput" default="0" description="Absolute time: number of seconds since January 1, 1970, 00:00:00 GMT." inheritedFrom="X3DTimeDependentNode" name="startTime" type="SFTime"/>
    <field accessType="inputOutput" default="0" description="Absolute time: number of seconds since January 1, 1970, 00:00:00 GMT." inheritedFrom="X3DTimeDependentNode" name="stopTime" type="SFTime"/>
    <field accessType="inputOutput" default="0" description="tailTime is duration of time that a node continues to provide output signal after the input signal becomes silent." inheritedFrom="X3DSoundProcessingNode" minInclusive="0" name="tailTime" type="SFTime"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="containerFieldChoicesAudioGraph"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
     <GroupContentModel maxOccurs="unbounded" minOccurs="0" name="AudioGraphContentModel"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="DirectionalLight">
   <InterfaceDefinition appinfo="DirectionalLight might not be scoped by parent Group or Transform at levels 1 or 2." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/lighting.html#DirectionalLight">
    <componentInfo level="1" name="Lighting"/>
    <Inheritance baseType="X3DLightNode"/>
    <field accessType="inputOutput" baseType="unitIntervalType" default="0" description="Brightness of ambient (nondirectional background) emission from the light." inheritedFrom="X3DLightNode" maxInclusive="1" minInclusive="0" name="ambientIntensity" type="SFFloat"/>
    <field accessType="inputOutput" default="1 1 1" description="color of light, applied to colors of objects." inheritedFrom="X3DLightNode" maxInclusive="1" minInclusive="0" name="color" type="SFColor"/>
    <field accessType="inputOutput" default="0 0 -1" description="Orientation vector of light relative to local coordinate system." name="direction" type="SFVec3f"/>
    <field accessType="inputOutput" default="false" description="Global lights illuminate all objects within their volume of lighting influence." name="global" type="SFBool"/>
    <field accessType="inputOutput" default="1" description="Brightness of direct emission from the light." inheritedFrom="X3DLightNode" minInclusive="0" name="intensity" type="SFFloat"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" default="true" description="Enables/disables this light source." inheritedFrom="X3DLightNode" name="on" type="SFBool"/>
    <field accessType="inputOutput" baseType="unitIntervalType" default="1" description="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)." inheritedFrom="X3DLightNode" maxInclusive="1" minInclusive="0" name="shadowIntensity" type="SFFloat"/>
    <field accessType="inputOutput" default="false" description="shadows field indicates whether or not this light casts a shadow behind illuminated X3DShapeNode geometry." inheritedFrom="X3DLightNode" name="shadows" type="SFBool"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="DISEntityManager">
   <InterfaceDefinition appinfo="DISEntityManager notifies a scene when new DIS ESPDU entities arrive or current entities leave." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/dis.html#DISEntityManager">
    <componentInfo level="2" name="DIS"/>
    <Inheritance baseType="X3DChildNode"/>
    <field acceptableNodeTypes="EspduTransform" accessType="outputOnly" description="addedEntities array contains any new entities added during the last frame." name="addedEntities" type="MFNode"/>
    <field accessType="inputOutput" default="localhost" description="Multicast network address, or else 'localhost'." name="address" type="SFString"/>
    <field accessType="inputOutput" default="0" description="Each simulation application that can respond to simulation management PDUs needs to have a unique applicationID." name="applicationID" type="SFInt32"/>
    <field acceptableNodeTypes="DISEntityTypeMapping" accessType="inputOutput" description="mapping field provides a mechanism for automatically creating an X3D model when a new entity arrives over the network." name="children" synonym="mapping" type="MFNode"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" default="0" description="Multicast network port, for example: 3000." name="port" type="SFInt32"/>
    <field acceptableNodeTypes="EspduTransform" accessType="outputOnly" description="removedEntities output array provides EspduTransform references to any entities removed during last frame, either due to a timeout or from an explicit RemoveEntityPDU action." name="removedEntities" type="MFNode"/>
    <field accessType="inputOutput" default="0" description="Simulation/exercise siteID of the participating LAN or organization." name="siteID" type="SFInt32"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="containerFieldChoicesDISEntityTypeMapping"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
     <NodeContentModel name="DISEntityTypeMapping"/>
     <NodeContentModel name="ProtoInstance"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="DISEntityTypeMapping">
   <InterfaceDefinition appinfo="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." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/dis.html#DISEntityTypeMapping">
    <componentInfo level="2" name="DIS"/>
    <Inheritance baseType="X3DInfoNode"/>
    <AdditionalInheritance baseType="X3DUrlObject"/>
    <field accessType="inputOutput" default="0" description="autoRefresh defines interval in seconds before automatic reload of current url asset is performed." inheritedFrom="X3DUrlObject" minInclusive="0" name="autoRefresh" type="SFTime"/>
    <field accessType="inputOutput" default="3600" description="autoRefreshTimeLimit defines maximum duration that automatic refresh activity can occur." inheritedFrom="X3DUrlObject" minInclusive="0" name="autoRefreshTimeLimit" type="SFTime"/>
    <field accessType="initializeOnly" default="0" description="Integer enumerations value for main category that describes the entity, semantics of each code varies according to domain." maxInclusive="255" minInclusive="0" name="category" type="SFInt32"/>
    <field accessType="initializeOnly" default="0" description="Integer enumerations value for country to which the design of the entity or its design specification is attributed." maxInclusive="65535" minInclusive="0" name="country" type="SFInt32"/>
    <field accessType="inputOutput" description="Author-provided prose that describes intended purpose of the url asset." inheritedFrom="X3DUrlObject" name="description" type="SFString"/>
    <field accessType="initializeOnly" default="0" description="Integer enumerations value for domain in which the entity operates: LAND, AIR, SURFACE, SUBSURFACE, SPACE or OTHER." maxInclusive="255" minInclusive="0" name="domain" type="SFInt32"/>
    <field accessType="initializeOnly" default="0" description="Any extra information required to describe a particular entity." maxInclusive="255" minInclusive="0" name="extra" type="SFInt32"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="initializeOnly" default="0" description="Integer enumerations value for whether entity is a PLATFORM, MUNITION, LIFE_FORM, ENVIRONMENTAL, CULTURAL_FEATURE, SUPPLY, RADIO, EXPENDABLE, SENSOR_EMITTER or OTHER." maxInclusive="255" minInclusive="0" name="kind" type="SFInt32"/>
    <field accessType="inputOutput" default="true" description="load=true means load immediately, load=false means defer loading or else unload a previously loaded scene." inheritedFrom="X3DUrlObject" name="load" type="SFBool"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="initializeOnly" default="0" description="Specific information about an entity based on the subcategory field." maxInclusive="255" minInclusive="0" name="specific" type="SFInt32"/>
    <field accessType="initializeOnly" default="0" description="Integer enumerations value for particular subcategory to which an entity belongs based on the category field." maxInclusive="255" minInclusive="0" name="subcategory" type="SFInt32"/>
    <field accessType="inputOutput" description='Local and/or online addresses of X3D model of interest, for example: "ExtrusionExampleShip.' inheritedFrom="X3DUrlObject" name="url" type="MFString">
     <componentInfo level="4" name="Networking"/>
    </field>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="containerFieldChoicesDISEntityTypeMapping"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="Disk2D">
   <InterfaceDefinition appinfo="Disk2D is a geometry node that defines a filled (or partially filled) planar circle with center (0,0)." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/geometry2D.html#Disk2D">
    <componentInfo level="2" name="Geometry2D"/>
    <Inheritance baseType="X3DGeometryNode"/>
    <field accessType="initializeOnly" default="0" description="Inner circle radius, greater than or equal to 0." minInclusive="0" name="innerRadius" type="SFFloat"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="initializeOnly" default="1" description="Outer radius of circle, greater than or equal to inner radius." minExclusive="0" name="outerRadius" type="SFFloat"/>
    <field accessType="initializeOnly" default="false" description="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)." name="solid" type="SFBool"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="geometry" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="DoubleAxisHingeJoint">
   <InterfaceDefinition appinfo="DoubleAxisHingeJoint has two independent axes located around a common anchor point." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/rigidBodyPhysics.html#DoubleAxisHingeJoint">
    <componentInfo level="2" name="RigidBodyPhysics"/>
    <Inheritance baseType="X3DRigidJointNode"/>
    <field accessType="inputOutput" default="0 0 0" description="anchorPoint is joint center, specified in world coordinates." name="anchorPoint" type="SFVec3f"/>
    <field accessType="inputOutput" default="1 0 0" description="axis1 defines axis vector of joint connection to body1." name="axis1" type="SFVec3f"/>
    <field accessType="inputOutput" default="0 1 0" description="axis2 defines axis vector of joint connection to body2." name="axis2" type="SFVec3f"/>
    <field acceptableNodeTypes="RigidBody" accessType="inputOutput" default="NULL" description="The body1 and body2 fields indicate the two RigidBody nodes connected by this joint." inheritedFrom="X3DRigidJointNode" name="body1" type="SFNode"/>
    <field accessType="outputOnly" description="body1AnchorPoint describes anchorPoint position relative to local coordinate reference frame." name="body1AnchorPoint" type="SFVec3f"/>
    <field accessType="outputOnly" description="body1Axis describes report the current location of the anchor point relative to the corresponding body." name="body1Axis" type="SFVec3f"/>
    <field acceptableNodeTypes="RigidBody" accessType="inputOutput" default="NULL" description="The body1 and body2 fields indicate the two RigidBody nodes connected by this joint." inheritedFrom="X3DRigidJointNode" name="body2" type="SFNode"/>
    <field accessType="outputOnly" description="body2AnchorPoint describes anchorPoint position relative to local coordinate reference frame." name="body2AnchorPoint" type="SFVec3f"/>
    <field accessType="outputOnly" description="body1Axis describes report the current location of the anchor point relative to the corresponding body." name="body2Axis" type="SFVec3f"/>
    <field accessType="inputOutput" default="0" description="desiredAngularVelocity1 is goal rotation rate for hinge connection to body1." name="desiredAngularVelocity1" type="SFFloat"/>
    <field accessType="inputOutput" default="0" description="desiredAngularVelocity2 is goal rotation rate for hinge connection to body2." name="desiredAngularVelocity2" type="SFFloat"/>
    <field accessType="inputOutput" additionalEnumerationValuesAllowed="true" baseType="MFString" default='"NONE"' description="forceOutput controls which output fields are generated for the next frame." inheritedFrom="X3DRigidJointNode" name="forceOutput" simpleType="forceOutputValues" type="MFString">
     <enumeration appinfo="all forceOutput fields computed." value='"ALL"'/>
     <enumeration appinfo="no forceOutput fields computed." value='"NONE"'/>
    </field>
    <field accessType="outputOnly" name="hinge1Angle" type="SFFloat"/>
    <field accessType="outputOnly" name="hinge1AngleRate" type="SFFloat"/>
    <field accessType="outputOnly" name="hinge2Angle" type="SFFloat"/>
    <field accessType="outputOnly" name="hinge2AngleRate" type="SFFloat"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="inputOutput" default="3.141592653" description="maxAngle1 is maximum rotation angle for hinge." name="maxAngle1" type="SFFloat"/>
    <field accessType="inputOutput" default="0" description="maxTorque1 is maximum rotational torque applied by corresponding motor axis to achieve desiredAngularVelocity1." name="maxTorque1" type="SFFloat"/>
    <field accessType="inputOutput" default="0" description="maxTorque2 is maximum rotational torque applied by corresponding motor axis to achieve desiredAngularVelocity2." name="maxTorque2" type="SFFloat"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" default="-3.141592653" description="minAngle1 is minimum rotation angle for hinge." name="minAngle1" type="SFFloat"/>
    <field accessType="inputOutput" default="0" description="stop1Bounce is velocity factor for bounce back once stop point is reached." name="stop1Bounce" type="SFFloat"/>
    <field accessType="inputOutput" default="0.001" description="stop1ConstantForceMix value applies a constant force value to make colliding surfaces appear to be somewhat soft." name="stop1ConstantForceMix" type="SFFloat"/>
    <field accessType="inputOutput" default="0.8" description="stop1ErrorCorrection is fraction of error correction performed during time step once stop point is reached." name="stop1ErrorCorrection" type="SFFloat"/>
    <field accessType="inputOutput" default="0.8" description="suspensionErrorCorrection describes how quickly the system resolves intersection errors due to floating-point inaccuracies." name="suspensionErrorCorrection" type="SFFloat"/>
    <field accessType="inputOutput" default="0" description="suspensionForce describes how quickly the system resolves intersection errors due to floating-point inaccuracies." name="suspensionForce" type="SFFloat"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="joints" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
     <GroupContentModel minOccurs="0" name="RigidJointNodeContentModel"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="DynamicsCompressor">
   <InterfaceDefinition appinfo="DynamicsCompressor node implements a dynamics compression effect, lowering volume of loudest parts of signal and raising volume of softest parts." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/sound.html#DynamicsCompressor">
    <componentInfo level="2" name="Sound"/>
    <Inheritance baseType="X3DSoundProcessingNode"/>
    <field accessType="inputOutput" default="0.003" description="The attack field is the duration of time (in seconds) to reduce the gain by 10dB." minInclusive="0" name="attack" type="SFTime"/>
    <field accessType="outputOnly" description="channelCount reports number of channels provided by input nodes." inheritedFrom="X3DSoundProcessingNode" name="channelCount" type="SFInt32"/>
    <field accessType="inputOutput" additionalEnumerationValuesAllowed="false" baseType="SFString" default="MAX" description="channelCountMode determines how individual channels are counted when up-mixing and down-mixing connections to any inputs." inheritedFrom="X3DSoundProcessingNode" name="channelCountMode" simpleType="channelCountModeChoices" type="SFString">
     <enumeration alias="max" appinfo='X3D version of "max" in Web Audio API.' documentation="https://www.w3.org/TR/webaudio/#enumdef-channelcountmode" value="MAX"/>
     <enumeration alias="clamped-max" appinfo='X3D version of "clamped-max" in Web Audio API.' documentation="https://www.w3.org/TR/webaudio/#enumdef-channelcountmode" value="CLAMPED_MAX"/>
     <enumeration alias="explicit" appinfo='X3D version of "explicit" in Web Audio API.' documentation="https://www.w3.org/TR/webaudio/#enumdef-channelcountmode" value="EXPLICIT"/>
    </field>
    <field accessType="inputOutput" additionalEnumerationValuesAllowed="false" baseType="SFString" default="SPEAKERS" description="channelInterpretation determines how individual channels are treated when up-mixing and down-mixing connections to any inputs." inheritedFrom="X3DSoundProcessingNode" name="channelInterpretation" simpleType="channelInterpretationChoices" type="SFString">
     <enumeration appinfo='X3D version of "speakers" in Web Audio API.' documentation="https://www.w3.org/TR/webaudio/#enumdef-channelinterpretation" value="SPEAKERS"/>
     <enumeration appinfo='X3D version of "discrete" in Web Audio API.' documentation="https://www.w3.org/TR/webaudio/#enumdef-channelinterpretation" value="DISCRETE"/>
    </field>
    <field acceptableNodeTypes="Analyser|AudioClip|AudioDestination|BiquadFilter|BufferAudioSource|ChannelMerger|ChannelSelector|ChannelSplitter|Convolver|Delay|DynamicsCompressor|Gain|ListenerPointSource|MicrophoneSource|MovieTexture|OscillatorSource|Sound|SpatialSound|StreamAudioDestination|StreamAudioSource|WaveShaper" accessType="inputOutput" description="The children field specifies audio-graph sound sources providing input signals for this node." name="children" type="MFNode"/>
    <field accessType="inputOutput" description="Author-provided prose that describes intended purpose of the url asset." inheritedFrom="X3DTimeDependentNode" name="description" type="SFString"/>
    <field accessType="outputOnly" description="Current elapsed time since AudioClip activated/running, cumulative in seconds, and not counting any paused time." inheritedFrom="X3DTimeDependentNode" minInclusive="0" name="elapsedTime" type="SFTime"/>
    <field accessType="inputOutput" default="true" description="Enables/disables node operation." inheritedFrom="X3DSoundProcessingNode" name="enabled" type="SFBool"/>
    <field accessType="inputOutput" default="1" description="The gain field is a factor that represents the amount of linear amplification to apply to the output of the node." inheritedFrom="X3DSoundProcessingNode" name="gain" type="SFFloat"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="outputOnly" description="isActive true/false events are sent when playback starts/stops." inheritedFrom="X3DTimeDependentNode" name="isActive" type="SFBool"/>
    <field accessType="outputOnly" description="isPaused true/false events are sent when AudioClip is paused/resumed." inheritedFrom="X3DTimeDependentNode" name="isPaused" type="SFBool">
     <componentInfo level="2" name="Time"/>
    </field>
    <field accessType="inputOutput" default="30" description="knee field contains a decibel value representing range above threshold where the curve smoothly transitions to compressed portion." minInclusive="0" name="knee" type="SFFloat"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" default="0" description="When time now &gt;= pauseTime, isPaused becomes true and AudioClip becomes paused." inheritedFrom="X3DTimeDependentNode" name="pauseTime" type="SFTime">
     <componentInfo level="2" name="Time"/>
    </field>
    <field accessType="inputOutput" default="12" description="ratio field represents amount of input change, in dB, needed for 1 dB change in output." maxInclusive="20" minInclusive="1" name="ratio" type="SFFloat"/>
    <field accessType="outputOnly" description="reduction field provides amount of gain reduction in dB currently applied by compressor to signal." maxInclusive="0" name="reduction" type="SFFloat"/>
    <field accessType="inputOutput" default="0.25" description="release field represents amount of time (in seconds) to increase gain by 10dB." minInclusive="0" name="release" type="SFTime"/>
    <field accessType="inputOutput" default="0" description="When resumeTime becomes &lt;= time now, isPaused becomes false and AudioClip becomes active." inheritedFrom="X3DTimeDependentNode" name="resumeTime" type="SFTime">
     <componentInfo level="2" name="Time"/>
    </field>
    <field accessType="inputOutput" default="0" description="Absolute time: number of seconds since January 1, 1970, 00:00:00 GMT." inheritedFrom="X3DTimeDependentNode" name="startTime" type="SFTime"/>
    <field accessType="inputOutput" default="0" description="Absolute time: number of seconds since January 1, 1970, 00:00:00 GMT." inheritedFrom="X3DTimeDependentNode" name="stopTime" type="SFTime"/>
    <field accessType="inputOutput" default="0" description="tailTime is duration of time that a node continues to provide output signal after the input signal becomes silent." inheritedFrom="X3DSoundProcessingNode" minInclusive="0" name="tailTime" type="SFTime"/>
    <field accessType="inputOutput" default="-24" description="threshold field represents decibel value above which compression starts taking effect." maxInclusive="0" minInclusive="-100" name="threshold" type="SFFloat"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="containerFieldChoicesAudioGraph"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
     <GroupContentModel maxOccurs="unbounded" minOccurs="0" name="AudioGraphContentModel"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="EaseInEaseOut">
   <InterfaceDefinition appinfo="EaseInEaseOut enables gradual animation transitions by modifying TimeSensor fraction outputs." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/interpolators.html#EaseInEaseOut">
    <componentInfo level="4" name="Interpolation"/>
    <Inheritance baseType="X3DChildNode"/>
    <field accessType="inputOutput" description="Array of paired values for easeOut fraction and easeIn fraction within each key interval." name="easeInEaseOut" type="MFVec2f"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="inputOutput" description="Definition values for linear-interpolation function input intervals, listed in non-decreasing order and corresponding to easeInEaseOut array." name="key" type="MFFloat"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="outputOnly" description="Interpolated output value determined by current key time, corresponding easeInEaseOut smoothing intervals, and corresponding key pair." name="modifiedFraction_changed" type="SFFloat"/>
    <field accessType="inputOnly" description="set_fraction selects input fraction for computation of corresponding easeInEaseOut output value, modifiedFraction_changed." name="set_fraction" type="SFFloat"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="EdgeEnhancementVolumeStyle">
   <InterfaceDefinition appinfo="EdgeEnhancementVolumeStyle specifies edge enhancement for the volume rendering style." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/volume.html#EdgeEnhancementVolumeStyle">
    <componentInfo level="2" name="VolumeRendering"/>
    <Inheritance baseType="X3DComposableVolumeRenderStyleNode"/>
    <field accessType="inputOutput" default="0 0 0 1" description="color used to highlight edges." maxInclusive="1" minInclusive="0" name="edgeColor" type="SFColorRGBA"/>
    <field accessType="inputOutput" default="true" description="Enables/disables node operation." inheritedFrom="X3DVolumeRenderStyleNode" name="enabled" type="SFBool"/>
    <field accessType="inputOutput" default="0.4" description="minimum angle (in radians) away from view-direction vector for surface normal before applying enhancement." maxInclusive="3.1416" minInclusive="0" name="gradientThreshold" type="SFFloat"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field acceptableNodeTypes="X3DTexture3DNode" accessType="inputOutput" default="NULL" description="The surfaceNormals field contains a 3D texture with at least three component values." name="surfaceNormals" type="SFNode"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="renderStyle" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
     <GroupContentModel name="Texture3DContentModel"/>
     <NodeContentModel name="ProtoInstance"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="ElevationGrid">
   <InterfaceDefinition appinfo="ElevationGrid is a geometry node defining a rectangular height field, with default values for a 1m by 1m square at height 0." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/geometry3D.html#ElevationGrid">
    <componentInfo level="3" name="Geometry3D"/>
    <Inheritance baseType="X3DGeometryNode"/>
    <field acceptableNodeTypes="X3DVertexAttributeNode" accessType="inputOutput" description="Single contained FloatVertexAttribute node that can specify list of per-vertex attribute information for programmable shaders." name="attrib" type="MFNode"/>
    <field accessType="initializeOnly" default="true" description="ccw defines clockwise/counterclockwise ordering of vertex coordinates, which in turn defines front/back orientation of polygon normals according to Right-Hand Rule (RHR)." name="ccw" type="SFBool">
     <componentInfo level="4" name="Geometry3D"/>
    </field>
    <field acceptableNodeTypes="X3DColorNode" accessType="inputOutput" default="NULL" description="Single contained Color or ColorRGBA node that can specify color values applied to corresponding vertices according to colorPerVertex field." name="color" type="SFNode"/>
    <field accessType="initializeOnly" default="true" description="Whether Color node color values are applied to each point vertex (true) or per quadrilateral (false)." name="colorPerVertex" type="SFBool"/>
    <field accessType="initializeOnly" default="0" description="creaseAngle defines angle (in radians) for determining whether adjacent polygons are drawn with sharp edges or smooth shading." minInclusive="0" name="creaseAngle" type="SFFloat"/>
    <field acceptableNodeTypes="FogCoordinate" accessType="inputOutput" default="NULL" description="Single contained FogCoordinate node that can specify depth parameters for fog in corresponding geometry." name="fogCoord" type="SFNode"/>
    <field accessType="initializeOnly" description="Grid array of height vertices with upward direction along +Y axis, with xDimension rows and zDimension columns." name="height" type="MFFloat"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field acceptableNodeTypes="X3DNormalNode" accessType="inputOutput" default="NULL" description="Single contained Normal node that can specify perpendicular vectors for corresponding vertices to support rendering computations, applied according to the normalPerVertex field." name="normal" type="SFNode"/>
    <field accessType="initializeOnly" default="true" description="Whether Normal node vector values are applied to each point vertex (true) or per quadrilateral (false)." name="normalPerVertex" type="SFBool"/>
    <field accessType="inputOnly" description="Grid array of height vertices with upward direction along +Y axis, with xDimension rows and zDimension columns." name="set_height" type="MFFloat"/>
    <field accessType="initializeOnly" default="true" description="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)." name="solid" type="SFBool"/>
    <field acceptableNodeTypes="X3DSingleTextureCoordinateNode" accessType="inputOutput" default="NULL" description="Single contained TextureCoordinate, TextureCoordinateGenerator or MultiTextureCoordinate node that can specify coordinates for texture mapping onto corresponding geometry." name="texCoord" type="SFNode"/>
    <field accessType="initializeOnly" default="0" description="Number of elements in the height array along X direction." minInclusive="0" name="xDimension" type="SFInt32"/>
    <field accessType="initializeOnly" default="1.0" description="Meters distance between grid-array vertices along X direction." minExclusive="0" name="xSpacing" type="SFFloat"/>
    <field accessType="initializeOnly" default="0" description="Number of elements in the height array along Z direction." minInclusive="0" name="zDimension" type="SFInt32"/>
    <field accessType="initializeOnly" default="1.0" description="Meters distance between grid-array vertices along Z direction." minExclusive="0" name="zSpacing" type="SFFloat"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="geometry" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
     <NodeContentModel name="FloatVertexAttribute"/>
     <NodeContentModel name="Matrix3VertexAttribute"/>
     <NodeContentModel name="Matrix4VertexAttribute"/>
     <NodeContentModel name="Color"/>
     <NodeContentModel name="ColorRGBA"/>
     <NodeContentModel name="FogCoordinate"/>
     <NodeContentModel name="Normal"/>
     <NodeContentModel name="TextureCoordinate"/>
     <NodeContentModel name="TextureCoordinate3D"/>
     <NodeContentModel name="TextureCoordinate4D"/>
     <NodeContentModel name="TextureCoordinateGenerator"/>
     <NodeContentModel name="MultiTextureCoordinate"/>
     <NodeContentModel name="ProtoInstance"/>
    </ContentModel>
    <field acceptableNodeTypes="Tangent" accessType="inputOutput" description="Input/Output field tangent. If there is no Tangent node, the MikkTSpace algorithm is used to generate tangent vectors." name="tangent" type="SFNode"/>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="EspduTransform">
   <InterfaceDefinition appinfo="EspduTransform is a networked Transform node that can contain most nodes." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/dis.html#EspduTransform">
    <componentInfo level="1" name="DIS"/>
    <Inheritance baseType="X3DGroupingNode"/>
    <AdditionalInheritance baseType="X3DNetworkSensorNode"/>
    <field acceptableNodeTypes="X3DChildNode" accessType="inputOnly" inheritedFrom="X3DGroupingNode" name="addChildren" type="MFNode">
     <componentInfo level="2" name="Grouping"/>
    </field>
    <field accessType="inputOutput" default="localhost" description="Multicast network address, or else 'localhost'; Example: 224." name="address" type="SFString"/>
    <field accessType="inputOutput" default="0" description="Simulation/exercise applicationID is unique for application at that site." name="applicationID" type="SFInt32"/>
    <field accessType="inputOutput" description="Information required for representation of the entity's visual appearance and position of its articulated parts." name="articulationParameterArray" type="MFFloat"/>
    <field accessType="inputOutput" description="Array of change counters, each incremented when an articulated parameter is updated." name="articulationParameterChangeIndicatorArray" type="MFInt32"/>
    <field accessType="inputOutput" default="0" description="Number of articulated parameters attached to this entity state PDU." name="articulationParameterCount" type="SFInt32"/>
    <field accessType="inputOutput" description="Array of designators for each articulated parameter." name="articulationParameterDesignatorArray" type="MFInt32"/>
    <field accessType="inputOutput" description="Array of ID parts that each articulated parameter is attached to." name="articulationParameterIdPartAttachedToArray" type="MFInt32"/>
    <field accessType="inputOutput" description="Array of type enumerations for each articulated parameter element." name="articulationParameterTypeArray" type="MFInt32"/>
    <field accessType="outputOnly" description="Get element of user-defined payload array." name="articulationParameterValue0_changed" type="SFFloat"/>
    <field accessType="outputOnly" description="Get element of user-defined payload array." name="articulationParameterValue1_changed" type="SFFloat"/>
    <field accessType="outputOnly" description="Get element of user-defined payload array." name="articulationParameterValue2_changed" type="SFFloat"/>
    <field accessType="outputOnly" description="Get element of user-defined payload array." name="articulationParameterValue3_changed" type="SFFloat"/>
    <field accessType="outputOnly" description="Get element of user-defined payload array." name="articulationParameterValue4_changed" type="SFFloat"/>
    <field accessType="outputOnly" description="Get element of user-defined payload array." name="articulationParameterValue5_changed" type="SFFloat"/>
    <field accessType="outputOnly" description="Get element of user-defined payload array." name="articulationParameterValue6_changed" type="SFFloat"/>
    <field accessType="outputOnly" description="Get element of user-defined payload array." name="articulationParameterValue7_changed" type="SFFloat"/>
    <field accessType="initializeOnly" default="0 0 0" description="Bounding box center accompanies bboxSize and provides an optional hint for bounding box position offset from origin of local coordinate system." inheritedFrom="X3DGroupingNode" name="bboxCenter" type="SFVec3f"/>
    <field accessType="inputOutput" default="false" description="Whether to display bounding box for associated geometry, aligned with world coordinates." inheritedFrom="X3DGroupingNode" name="bboxDisplay" type="SFBool"/>
    <field accessType="initializeOnly" baseType="bboxSizeType" default="-1 -1 -1" description="Bounding box size is usually omitted, and can easily be calculated automatically by an X3D player at scene-loading time with minimal computational cost." inheritedFrom="X3DGroupingNode" name="bboxSize" type="SFVec3f"/>
    <field accessType="inputOutput" default="0 0 0" description="Translation offset from origin of local coordinate system." name="center" type="SFVec3f"/>
    <field acceptableNodeTypes="X3DChildNode" accessType="inputOutput" description="Grouping nodes contain an ordered list of children nodes." inheritedFrom="X3DGroupingNode" name="children" type="MFNode"/>
    <field accessType="outputOnly" description="When were we collided with? 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" type="SFTime"/>
    <field accessType="inputOutput" default="0" description="Integer enumeration for type of collision: ELASTIC or INELASTIC." name="collisionType" type="SFInt32"/>
    <field accessType="inputOutput" default="0" description="Dead reckoning algorithm being used to project position/orientation with velocities/accelerations." name="deadReckoning" type="SFInt32"/>
    <field accessType="inputOutput" description="Author-provided prose that describes intended purpose of the node." name="description" type="SFString"/>
    <field accessType="outputOnly" description="When were we detonated?." name="detonateTime" type="SFTime"/>
    <field accessType="inputOutput" default="0 0 0" description="World coordinates for detonationLocation." name="detonationLocation" type="SFVec3f"/>
    <field accessType="inputOutput" default="0 0 0" description="Relative coordinates for detonation location." name="detonationRelativeLocation" type="SFVec3f"/>
    <field accessType="inputOutput" default="0" description="Integer enumeration for type of detonation and result that occurred." name="detonationResult" type="SFInt32"/>
    <field accessType="inputOutput" default="true" description="Enables/disables the sensor node." name="enabled" type="SFBool"/>
    <field accessType="inputOutput" default="0" description="Integer enumerations value for main category that describes the entity, semantics of each code varies according to domain." name="entityCategory" type="SFInt32"/>
    <field accessType="inputOutput" default="0" description="Integer enumerations value for country to which the design of the entity or its design specification is attributed." name="entityCountry" type="SFInt32"/>
    <field accessType="inputOutput" default="0" description="Integer enumerations value for domain in which the entity operates: LAND, AIR, SURFACE, SUBSURFACE, SPACE or OTHER." name="entityDomain" type="SFInt32"/>
    <field accessType="inputOutput" default="0" description="Any extra information required to describe a particular entity." name="entityExtra" type="SFInt32"/>
    <field accessType="inputOutput" default="0" description="Simulation/exercise entityID is a unique ID for a single entity within that application." name="entityID" type="SFInt32"/>
    <field accessType="inputOutput" default="0" description="Integer enumerations value for whether entity is a PLATFORM, MUNITION, LIFE_FORM, ENVIRONMENTAL, CULTURAL_FEATURE, SUPPLY, RADIO, EXPENDABLE, SENSOR_EMITTER or OTHER." name="entityKind" type="SFInt32"/>
    <field accessType="inputOutput" default="0" description="Specific information about an entity based on the Subcategory field." name="entitySpecific" type="SFInt32"/>
    <field accessType="inputOutput" default="0" description="Integer enumerations value for particular subcategory to which an entity belongs based on the category field." name="entitySubcategory" type="SFInt32"/>
    <field accessType="inputOutput" default="0" description="Simulation/exercise eventApplicationID is unique for events generated from application at that site." name="eventApplicationID" type="SFInt32"/>
    <field accessType="inputOutput" default="0" description="For a given event, simulation/exercise entityID is a unique ID for a single entity within that application." name="eventEntityID" type="SFInt32"/>
    <field accessType="inputOutput" default="0" description="Sequential number of each event issued by an application." name="eventNumber" type="SFInt32"/>
    <field accessType="inputOutput" default="0" description="Simulation/exercise siteID of the participating LAN or organization." name="eventSiteID" type="SFInt32"/>
    <field accessType="inputOutput" default="false" description="Has the primary weapon (Fire PDU) been fired?." name="fired1" type="SFBool"/>
    <field accessType="inputOutput" default="false" description="Has the secondary weapon (Fire PDU) been fired?." name="fired2" type="SFBool"/>
    <field accessType="outputOnly" description="When did we shoot a weapon (Fire PDU)? 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" type="SFTime"/>
    <field accessType="inputOutput" default="0" description="." name="fireMissionIndex" type="SFInt32"/>
    <field accessType="inputOutput" default="0" description="Range (three dimension, straight-line distance) that the firing entity's fire control system has assumed for computing the fire control solution if a weapon and if the value is known." name="firingRange" type="SFFloat"/>
    <field accessType="inputOutput" default="0" description="Rate at which munitions are fired." name="firingRate" type="SFInt32"/>
    <field accessType="inputOutput" default="0" description="forceID determines the team membership of the issuing entity, and whether FRIENDLY OPPOSING or NEUTRAL or OTHER." name="forceID" type="SFInt32"/>
    <field accessType="inputOutput" default="0" description="Integer enumerations value for type of fuse on the munition." name="fuse" type="SFInt32"/>
    <field accessType="inputOutput" default="0 0 0" description="Geographic location (specified in current geoSystem coordinates) for children geometry (specified in relative coordinate system, in meters)." name="geoCoords" type="SFVec3d"/>
    <field accessType="initializeOnly" additionalEnumerationValuesAllowed="true" baseType="geoSystemType" default='"GD" "WE"' description="Identifies spatial reference frame: Geodetic (GD), Geocentric (GC), Universal Transverse Mercator (UTM)." name="geoSystem" type="MFString"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="outputOnly" description="Have we received a network update recently? 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" type="SFBool"/>
    <field accessType="outputOnly" description="Has a matching CollisionPDU reported a collision? 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" type="SFBool"/>
    <field accessType="outputOnly" description="Has a matching DetonationPDU reported a detonation? 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" type="SFBool"/>
    <field accessType="outputOnly" description="Whether networkMode='remote' (listen to network as copy of remote entity)." name="isNetworkReader" type="SFBool"/>
    <field accessType="outputOnly" description="Whether networkMode='master' (output to network as master entity at writeInterval)." name="isNetworkWriter" type="SFBool"/>
    <field accessType="outputOnly" description="Whether incoming DIS packets have an RTP header prepended." name="isRtpHeaderHeard" type="SFBool"/>
    <field accessType="outputOnly" description="Whether networkMode='local' (ignore network but still respond to local events)." name="isStandAlone" type="SFBool"/>
    <field accessType="inputOutput" default="0 0 0" description="Acceleration of the entity relative to the rotating Earth in either world or entity coordinates, depending on the dead reckoning algorithm used." name="linearAcceleration" type="SFVec3f"/>
    <field accessType="inputOutput" default="0 0 0" description="Velocity of the entity relative to the rotating Earth in either world or entity coordinates, depending on the dead reckoning algorithm used." name="linearVelocity" type="SFVec3f"/>
    <field accessType="inputOutput" description="Maximum of 11 characters for simple entity label." name="marking" type="SFString"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" description="Fallback server address if multicast not available locally." name="multicastRelayHost" type="SFString"/>
    <field accessType="inputOutput" default="0" description="Fallback server port if multicast not available locally." name="multicastRelayPort" type="SFInt32"/>
    <field accessType="inputOutput" default="0" description="munitionApplicationID, unique for application at that site." name="munitionApplicationID" type="SFInt32"/>
    <field accessType="inputOutput" default="0 0 0" description="Final point of the munition path from firing weapon to detonation or impact, in exercise coordinates." name="munitionEndPoint" type="SFVec3f"/>
    <field accessType="inputOutput" default="0" description="munitionEntityID is unique ID for entity firing munition within that application." name="munitionEntityID" type="SFInt32"/>
    <field accessType="inputOutput" default="0" description="Quantity of munitions fired." name="munitionQuantity" type="SFInt32"/>
    <field accessType="inputOutput" default="0" description="Munition siteID of the participating LAN or organization." name="munitionSiteID" type="SFInt32"/>
    <field accessType="inputOutput" default="0 0 0" description="Initial point of the munition path from firing weapon to detonation or impact, in exercise coordinates." name="munitionStartPoint" type="SFVec3f"/>
    <field accessType="inputOutput" additionalEnumerationValuesAllowed="false" baseType="xs:NMTOKEN" default="standAlone" description="Whether this entity is ignoring the network, sending DIS packets to the network, or receiving DIS packets from the network." name="networkMode" simpleType="networkModeChoices" type="SFString">
     <enumeration appinfo="ignore network but still respond to events in local scene." value="standAlone"/>
     <enumeration appinfo="listen to network and read PDU packets at readInterval, act as remotely linked copy of entity." value="networkReader"/>
     <enumeration appinfo="send PDU packets to network at writeInterval, act as master entity." value="networkWriter"/>
    </field>
    <field accessType="inputOutput" default="0" description="Network connection port number (EXAMPLE 3000) for sending or receiving DIS messages." name="port" type="SFInt32"/>
    <field accessType="inputOutput" default="0.1" description="Seconds between read updates, 0 means no reading." minInclusive="0" name="readInterval" type="SFTime"/>
    <field acceptableNodeTypes="X3DChildNode" accessType="inputOnly" inheritedFrom="X3DGroupingNode" name="removeChildren" type="MFNode">
     <componentInfo level="2" name="Grouping"/>
    </field>
    <field accessType="inputOutput" default="0 0 1 0" description="Orientation of children relative to local coordinate system, usually read from (or written to) remote, networked EspduTransform nodes." name="rotation" type="SFRotation"/>
    <field accessType="inputOutput" default="false" description="Whether RTP headers are prepended to DIS PDUs." name="rtpHeaderExpected" type="SFBool"/>
    <field accessType="inputOutput" default="1 1 1" description="Non-uniform x-y-z scale of child coordinate system, adjusted by center and scaleOrientation." name="scale" type="SFVec3f"/>
    <field accessType="inputOutput" default="0 0 1 0" description="Preliminary rotation of coordinate system before scaling (to allow scaling around arbitrary orientations)." name="scaleOrientation" type="SFRotation"/>
    <field accessType="inputOnly" description="Set element of user-defined payload array." name="set_articulationParameterValue0" type="SFFloat"/>
    <field accessType="inputOnly" description="Set element of user-defined payload array." name="set_articulationParameterValue1" type="SFFloat"/>
    <field accessType="inputOnly" description="Set element of user-defined payload array." name="set_articulationParameterValue2" type="SFFloat"/>
    <field accessType="inputOnly" description="Set element of user-defined payload array." name="set_articulationParameterValue3" type="SFFloat"/>
    <field accessType="inputOnly" description="Set element of user-defined payload array." name="set_articulationParameterValue4" type="SFFloat"/>
    <field accessType="inputOnly" description="Set element of user-defined payload array." name="set_articulationParameterValue5" type="SFFloat"/>
    <field accessType="inputOnly" description="Set element of user-defined payload array." name="set_articulationParameterValue6" type="SFFloat"/>
    <field accessType="inputOnly" description="Set element of user-defined payload array." name="set_articulationParameterValue7" type="SFFloat"/>
    <field accessType="inputOutput" default="0" description="Simulation/exercise siteID of the participating LAN or organization." name="siteID" type="SFInt32"/>
    <field accessType="outputOnly" description="DIS timestamp received from latest PDU update, converted to X3D SFTime units." minInclusive="0" name="timestamp" type="SFTime"/>
    <field accessType="inputOutput" default="0 0 0" description="Position of children relative to local coordinate system, usually read from (or written to) remote, networked EspduTransform nodes." name="translation" type="SFVec3f"/>
    <field accessType="inputOutput" default="true" description="Whether or not renderable content within this node is visually displayed." inheritedFrom="X3DGroupingNode" name="visible" type="SFBool"/>
    <field accessType="inputOutput" default="0" description="Integer enumerations value for type of warhead on the munition." name="warhead" type="SFInt32"/>
    <field accessType="inputOutput" default="1.0" description="Seconds between write updates, 0 means no writing (sending)." minInclusive="0" name="writeInterval" type="SFTime"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel maxOccurs="unbounded" minOccurs="0" name="ChildContentModel"/>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="ExplosionEmitter">
   <InterfaceDefinition appinfo="ExplosionEmitter generates all particles from a specific point in space at the initial time enabled." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/particleSystems.html#ExplosionEmitter">
    <componentInfo level="1" name="ParticleSystems"/>
    <Inheritance baseType="X3DParticleEmitterNode"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="inputOutput" default="0" description="Basic mass of each particle, defined in mass base units (default is kilograms)." inheritedFrom="X3DParticleEmitterNode" minInclusive="0" name="mass" type="SFFloat"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" default="true" description="Enables/disables production of particles from this emitter node." inheritedFrom="X3DParticleEmitterNode" name="on" type="SFBool"/>
    <field accessType="inputOutput" default="0 0 0" description="Point from which particles emanate." name="position" type="SFVec3f"/>
    <field accessType="inputOutput" default="0" description="Initial linear speed (default is m/s) imparted to all particles along their direction of movement." inheritedFrom="X3DParticleEmitterNode" minInclusive="0" name="speed" type="SFFloat"/>
    <field accessType="inputOutput" default="0" description="Particle surface area in area base units (default is meters squared)." inheritedFrom="X3DParticleEmitterNode" minInclusive="0" name="surfaceArea" type="SFFloat"/>
    <field accessType="inputOutput" default="0.25" description="Multiplier for the randomness used to control the range of possible output values." inheritedFrom="X3DParticleEmitterNode" minInclusive="0" name="variation" type="SFFloat"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="emitter" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="Extrusion">
   <InterfaceDefinition appinfo="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." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/geometry3D.html#Extrusion">
    <componentInfo level="4" name="Geometry3D"/>
    <Inheritance baseType="X3DGeometryNode"/>
    <field accessType="initializeOnly" default="true" description="Whether beginning cap is drawn (similar to Cylinder top cap)." name="beginCap" type="SFBool"/>
    <field accessType="initializeOnly" default="true" description="The ccw field indicates counterclockwise ordering of vertex-coordinates orientation." name="ccw" type="SFBool"/>
    <field accessType="initializeOnly" default="true" description="The convex field is a hint to renderers whether all polygons in a shape are convex (true), or possibly concave (false)." name="convex" type="SFBool"/>
    <field accessType="initializeOnly" default="0" description="creaseAngle defines angle (in radians) where adjacent polygons are drawn with sharp edges or smooth shading." minInclusive="0" name="creaseAngle" type="SFFloat"/>
    <field accessType="initializeOnly" default="1 1 1 -1 -1 -1 -1 1 1 1" description="The crossSection array defines a silhouette outline of the outer Extrusion surface." name="crossSection" type="MFVec2f"/>
    <field accessType="initializeOnly" default="true" description="Whether end cap is drawn (similar to Cylinder bottom cap)." name="endCap" type="SFBool"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="initializeOnly" default="0 0 1 0" description="The orientation array is a list of axis-angle 4-tuple values applied at each spine-aligned cross-section plane." name="orientation" type="MFRotation"/>
    <field accessType="initializeOnly" default="1 1" description="scale is a list of 2D-scale parameters applied at each spine-aligned cross-section plane." name="scale" type="MFVec2f"/>
    <field accessType="inputOnly" description="The crossSection array defines a silhouette outline of the outer Extrusion surface." name="set_crossSection" type="MFVec2f"/>
    <field accessType="inputOnly" description="The orientation array is a list of axis-angle 4-tuple values applied at each spine-aligned cross-section plane." name="set_orientation" type="MFRotation"/>
    <field accessType="inputOnly" description="scale is a list of 2D-scale parameters applied at each spine-aligned cross-section plane." name="set_scale" type="MFVec2f"/>
    <field accessType="inputOnly" description="The spine array defines a center-line sequence of 3D points that define a piecewise-linear curve forming a series of connected vertices." name="set_spine" type="MFVec3f"/>
    <field accessType="initializeOnly" default="true" description="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)." name="solid" type="SFBool"/>
    <field accessType="initializeOnly" default="0 0 0 0 1 0" description="The spine array defines a center-line sequence of 3D points that define a piecewise-linear curve forming a series of connected vertices." name="spine" type="MFVec3f"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="geometry" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="FillProperties">
   <InterfaceDefinition appinfo="FillProperties indicates whether appearance is filled or hatched for associated geometry nodes inside the same Shape." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/shape.html#FillProperties">
    <componentInfo level="3" name="Shape"/>
    <Inheritance baseType="X3DAppearanceChildNode"/>
    <field accessType="inputOutput" default="true" description="Whether or not associated geometry is filled." name="filled" type="SFBool"/>
    <field accessType="inputOutput" default="1 1 1" description="Color of the hatch pattern." maxInclusive="1" minInclusive="0" name="hatchColor" type="SFColor"/>
    <field accessType="inputOutput" default="true" description="Whether or not associated geometry is hatched." name="hatched" type="SFBool"/>
    <field accessType="inputOutput" baseType="SFInt32" default="1" description="hatchStyle selects a hatch pattern from ISO/IEC 9973 International Register of Graphical Items." minInclusive="0" name="hatchStyle" simpleType="hatchStyleValues" type="SFInt32">
     <enumeration alias="HORIZONTAL" appinfo="Horizontal equally spaced parallel lines." value="1"/>
     <enumeration alias="VERTICAL" appinfo="Vertical equally spaced parallel lines." value="2"/>
     <enumeration alias="POSITIVE_SLOPE" appinfo="Positive slope equally spaced parallel lines." value="3"/>
     <enumeration alias="NEGATIVE_SLOPE" appinfo="Negative slope equally spaced parallel lines." value="4"/>
     <enumeration alias="HORIZONTAL_VERTICAL_CROSSHATCH" appinfo="Horizontal/vertical crosshatch." value="5"/>
     <enumeration alias="POSITIVE_NEGATIVE_SLOPE_CROSSHATCH" appinfo="Positive slope/negative slope crosshatch." value="6"/>
     <enumeration alias="CAST_IRON" appinfo="(cast iron or malleable iron and general use for all materials)." value="7"/>
     <enumeration alias="STEEL" appinfo="(steel)." value="8"/>
     <enumeration alias="BRONZE_BRASS_COPPER_COMPOSITIONS" appinfo="(bronze, brass, copper, and compositions)." value="9"/>
     <enumeration alias="WHITE_METAL_ZINC_LEAD_BABBIT_ALLOYS" appinfo="(white metal, zinc, lead, babbit, and alloys)." value="10"/>
     <enumeration alias="MAGNESIUM_ALUMINUM_ALLOYS" appinfo="(magnesium, aluminum, and aluminum alloys)." value="11"/>
     <enumeration alias="RUBBER_PLASTIC_ELECTRICAL_INSULATION" appinfo="(rubber, plastic, and electrical insulation)." value="12"/>
     <enumeration alias="CORK_FELT_FABRIC_LEATHER_FIBRE" appinfo="(cork, felt, fabric, leather, and fibre/fiber)." value="13"/>
     <enumeration alias="THERMAL_INSULATION" appinfo="(thermal insulation)." value="14"/>
     <enumeration alias="TITANIUM" appinfo="(titanium and refi-actory material)." value="15"/>
     <enumeration alias="MARBLE_SLATE_PORCELAIN_GLASS" appinfo="(marble, slate, porcelain, glass, etc.)." value="16"/>
     <enumeration alias="EARTH" appinfo="(earth)." value="17"/>
     <enumeration alias="SAND" appinfo="(sand)." value="18"/>
     <enumeration alias="REPEATING_DOT" appinfo="(repeating dot)." value="19"/>
    </field>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="fillProperties" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="FloatVertexAttribute">
   <InterfaceDefinition appinfo="FloatVertexAttribute defines a set of per-vertex single-precision floating-point attributes." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/shaders.html#FloatVertexAttribute">
    <componentInfo level="1" name="Shaders"/>
    <Inheritance baseType="X3DVertexAttributeNode"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="initializeOnly" baseType="xs:NMTOKEN" description="Required name for this particular VertexAttribute instance." inheritedFrom="X3DVertexAttributeNode" name="name" type="xs:NMTOKEN"/>
    <field accessType="initializeOnly" default="4" description="numComponents specifies how many consecutive floating-point values should be grouped together per vertex." maxInclusive="4" minInclusive="1" name="numComponents" type="SFInt32"/>
    <field accessType="inputOutput" description="value specifies an arbitrary collection of floating-point values that will be passed to the shader as per-vertex information." name="value" type="MFFloat"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="attrib" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="Fog">
   <InterfaceDefinition appinfo="Fog simulates atmospheric effects by blending distant objects with fog color." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/environmentalEffects.html#Fog">
    <componentInfo level="2" name="EnvironmentalEffects"/>
    <Inheritance baseType="X3DBindableNode"/>
    <AdditionalInheritance baseType="X3DFogObject"/>
    <field accessType="outputOnly" description="Event sent reporting timestamp when node becomes active/inactive." inheritedFrom="X3DBindableNode" name="bindTime" type="SFTime"/>
    <field accessType="inputOutput" default="1 1 1" description="Fog color." inheritedFrom="X3DFogObject" maxInclusive="1" minInclusive="0" name="color" type="SFColor"/>
    <field accessType="inputOutput" additionalEnumerationValuesAllowed="false" baseType="xs:NMTOKEN" default="LINEAR" description="Specifies algorithm for rate of increasing Fog, either LINEAR or EXPONENTIAL." inheritedFrom="X3DFogObject" name="fogType" simpleType="fogTypeChoices" type="SFString">
     <enumeration appinfo="linear blending as a function of distance." value="LINEAR"/>
     <enumeration appinfo="exponential blending as a function of distance." value="EXPONENTIAL"/>
    </field>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="outputOnly" description="Output event true gets sent when node becomes bound and activated, otherwise output event false gets sent when node becomes unbound and deactivated." inheritedFrom="X3DBindableNode" name="isBound" type="SFBool"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOnly" description="Receiving event set_bind=true activates and binds this node at the top of the binding stack." inheritedFrom="X3DBindableNode" name="set_bind" type="SFBool"/>
    <field accessType="inputOutput" default="0" description="Distance in meters where objects are totally obscured by the fog, using local coordinate system." inheritedFrom="X3DFogObject" minInclusive="0" name="visibilityRange" type="SFFloat"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="FogCoordinate">
   <InterfaceDefinition appinfo="FogCoordinate defines a set of explicit fog depths on a per-vertex basis, overriding Fog visibilityRange." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/environmentalEffects.html#FogCoordinate">
    <componentInfo level="4" name="EnvironmentalEffects"/>
    <Inheritance baseType="X3DGeometricPropertyNode"/>
    <field accessType="inputOutput" description="depth contains a set of 3D coordinate (triplet) point values." maxInclusive="1" minInclusive="0" name="depth" type="MFFloat"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="fogCoord" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="FontStyle">
   <InterfaceDefinition appinfo="FontStyle is an X3DFontStyleNode that defines the size, family, justification, and other styles used by Text nodes." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/text.html#FontStyle">
    <componentInfo level="1" name="Text"/>
    <Inheritance baseType="X3DFontStyleNode"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" additionalEnumerationValuesAllowed="true" baseType="MFString" default='"SERIF"' description="Array of quoted font family names in preference order, browsers use the first supported family." name="family" simpleType="fontFamilyValues" type="MFString">
     <enumeration appinfo="default font family for sans-serif font such as Helvetica." value='"SANS"'/>
     <enumeration appinfo="default font family for serif font such as Times-Roman." value='"SERIF"'/>
     <enumeration appinfo="default font family for a fixed-pitch font such as Courier." value='"TYPEWRITER"'/>
    </field>
    <field accessType="inputOutput" default="true" description="Whether text direction is horizontal (true) or vertical (false)." name="horizontal" type="SFBool"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="inputOutput" additionalEnumerationValuesAllowed="false" baseType="MFString" default='"BEGIN"' description="The justify field determines horizontal and vertical alignment of text layout, relative to the origin of the object coordinate system." name="justify" simpleType="justifyChoices" type="MFString">
     <enumeration value='"MIDDLE"'/>
     <enumeration value='"MIDDLE" "BEGIN"'/>
     <enumeration value='"MIDDLE" "END"'/>
     <enumeration value='"MIDDLE" "FIRST"'/>
     <enumeration value='"MIDDLE" "MIDDLE"'/>
     <enumeration value='"BEGIN"'/>
     <enumeration value='"BEGIN" "BEGIN"'/>
     <enumeration value='"BEGIN" "END"'/>
     <enumeration value='"BEGIN" "FIRST"'/>
     <enumeration value='"BEGIN" "MIDDLE"'/>
     <enumeration value='"END"'/>
     <enumeration value='"END" "BEGIN"'/>
     <enumeration value='"END" "END"'/>
     <enumeration value='"END" "FIRST"'/>
     <enumeration value='"END" "MIDDLE"'/>
     <enumeration value='"FIRST"'/>
     <enumeration value='"FIRST" "BEGIN"'/>
     <enumeration value='"FIRST" "END"'/>
     <enumeration value='"FIRST" "FIRST"'/>
     <enumeration value='"FIRST" "MIDDLE"'/>
    </field>
    <field accessType="inputOutput" description="Language codes consist of a primary code and a (possibly empty) series of subcodes." name="language" type="SFString"/>
    <field accessType="inputOutput" default="true" description="Whether text direction is left-to-right (true) or right-to-left (false)." name="leftToRight" type="SFBool"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" default="1.0" description="Nominal height (in local coordinate system) of text glyphs, also sets default spacing between adjacent lines of text." minExclusive="0" name="size" type="SFFloat"/>
    <field accessType="inputOutput" default="1.0" description="Adjustment factor for line spacing between adjacent lines of text." minInclusive="0" name="spacing" type="SFFloat"/>
    <field accessType="inputOutput" additionalEnumerationValuesAllowed="false" baseType="xs:NMTOKEN" default="PLAIN" description="Pick one of four values for text style (PLAIN|BOLD|ITALIC|BOLDITALIC)." name="style" simpleType="fontStyleChoices" type="SFString">
     <enumeration appinfo="default plain type." value="PLAIN"/>
     <enumeration appinfo="boldface type." value="BOLD"/>
     <enumeration appinfo="italic type." value="ITALIC"/>
     <enumeration appinfo="bold and italic type." value="BOLDITALIC"/>
    </field>
    <field accessType="inputOutput" default="true" description="Whether text direction is top-to-bottom (true) or bottom-to-top (false)." name="topToBottom" type="SFBool"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <containerField default="fontStyle" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="ForcePhysicsModel">
   <InterfaceDefinition appinfo="ForcePhysicsModel applies a constant force value to the particles." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/particleSystems.html#ForcePhysicsModel">
    <componentInfo level="1" name="ParticleSystems"/>
    <Inheritance baseType="X3DParticlePhysicsModelNode"/>
    <field accessType="inputOutput" default="true" description="Enables/disables node operation." inheritedFrom="X3DParticlePhysicsModelNode" name="enabled" type="SFBool"/>
    <field accessType="inputOutput" default="0 -9.8 0" description="force field indicates strength and direction of the propelling force on the particles (for example, default is Earth's gravity)." name="force" type="SFVec3f"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="physics" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="Gain">
   <InterfaceDefinition appinfo="The Gain node amplifies or deamplifies the input signal." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/sound.html#Gain">
    <componentInfo level="2" name="Sound"/>
    <Inheritance baseType="X3DSoundProcessingNode"/>
    <field accessType="outputOnly" description="channelCount reports number of channels provided by input nodes." inheritedFrom="X3DSoundProcessingNode" name="channelCount" type="SFInt32"/>
    <field accessType="inputOutput" additionalEnumerationValuesAllowed="false" baseType="SFString" default="MAX" description="channelCountMode determines how individual channels are counted when up-mixing and down-mixing connections to any inputs." inheritedFrom="X3DSoundProcessingNode" name="channelCountMode" simpleType="channelCountModeChoices" type="SFString">
     <enumeration alias="max" appinfo='X3D version of "max" in Web Audio API.' documentation="https://www.w3.org/TR/webaudio/#enumdef-channelcountmode" value="MAX"/>
     <enumeration alias="clamped-max" appinfo='X3D version of "clamped-max" in Web Audio API.' documentation="https://www.w3.org/TR/webaudio/#enumdef-channelcountmode" value="CLAMPED_MAX"/>
     <enumeration alias="explicit" appinfo='X3D version of "explicit" in Web Audio API.' documentation="https://www.w3.org/TR/webaudio/#enumdef-channelcountmode" value="EXPLICIT"/>
    </field>
    <field accessType="inputOutput" additionalEnumerationValuesAllowed="false" baseType="SFString" default="SPEAKERS" description="channelInterpretation determines how individual channels are treated when up-mixing and down-mixing connections to any inputs." inheritedFrom="X3DSoundProcessingNode" name="channelInterpretation" simpleType="channelInterpretationChoices" type="SFString">
     <enumeration appinfo='X3D version of "speakers" in Web Audio API.' documentation="https://www.w3.org/TR/webaudio/#enumdef-channelinterpretation" value="SPEAKERS"/>
     <enumeration appinfo='X3D version of "discrete" in Web Audio API.' documentation="https://www.w3.org/TR/webaudio/#enumdef-channelinterpretation" value="DISCRETE"/>
    </field>
    <field acceptableNodeTypes="Analyser|AudioClip|AudioDestination|BiquadFilter|BufferAudioSource|ChannelMerger|ChannelSelector|ChannelSplitter|Convolver|Delay|DynamicsCompressor|Gain|ListenerPointSource|MicrophoneSource|MovieTexture|OscillatorSource|Sound|SpatialSound|StreamAudioDestination|StreamAudioSource|WaveShaper" accessType="inputOutput" description="The children field specifies audio-graph sound sources providing input signals for this node." name="children" type="MFNode"/>
    <field accessType="inputOutput" description="Author-provided prose that describes intended purpose of the url asset." inheritedFrom="X3DTimeDependentNode" name="description" type="SFString"/>
    <field accessType="outputOnly" description="Current elapsed time since AudioClip activated/running, cumulative in seconds, and not counting any paused time." inheritedFrom="X3DTimeDependentNode" minInclusive="0" name="elapsedTime" type="SFTime"/>
    <field accessType="inputOutput" default="true" description="Enables/disables node operation." inheritedFrom="X3DSoundProcessingNode" name="enabled" type="SFBool"/>
    <field accessType="inputOutput" default="1" description="The gain field is a factor that represents the amount of linear amplification to apply to the output of the node." inheritedFrom="X3DSoundProcessingNode" name="gain" type="SFFloat"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="outputOnly" description="isActive true/false events are sent when playback starts/stops." inheritedFrom="X3DTimeDependentNode" name="isActive" type="SFBool"/>
    <field accessType="outputOnly" description="isPaused true/false events are sent when AudioClip is paused/resumed." inheritedFrom="X3DTimeDependentNode" name="isPaused" type="SFBool">
     <componentInfo level="2" name="Time"/>
    </field>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" default="0" description="When time now &gt;= pauseTime, isPaused becomes true and AudioClip becomes paused." inheritedFrom="X3DTimeDependentNode" name="pauseTime" type="SFTime">
     <componentInfo level="2" name="Time"/>
    </field>
    <field accessType="inputOutput" default="0" description="When resumeTime becomes &lt;= time now, isPaused becomes false and AudioClip becomes active." inheritedFrom="X3DTimeDependentNode" name="resumeTime" type="SFTime">
     <componentInfo level="2" name="Time"/>
    </field>
    <field accessType="inputOutput" default="0" description="Absolute time: number of seconds since January 1, 1970, 00:00:00 GMT." inheritedFrom="X3DTimeDependentNode" name="startTime" type="SFTime"/>
    <field accessType="inputOutput" default="0" description="Absolute time: number of seconds since January 1, 1970, 00:00:00 GMT." inheritedFrom="X3DTimeDependentNode" name="stopTime" type="SFTime"/>
    <field accessType="inputOutput" default="0" description="tailTime is duration of time that a node continues to provide output signal after the input signal becomes silent." inheritedFrom="X3DSoundProcessingNode" minInclusive="0" name="tailTime" type="SFTime"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="containerFieldChoicesAudioGraph"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
     <GroupContentModel maxOccurs="unbounded" minOccurs="0" name="AudioGraphContentModel"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="GeneratedCubeMapTexture">
   <InterfaceDefinition appinfo="GeneratedCubeMapTexture is a texture node that defines a cubic environment map that sources its data from internally generated images." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/environmentalTexturing.html#GeneratedCubeMapTexture">
    <componentInfo level="3" name="CubeMapTexturing"/>
    <Inheritance baseType="X3DEnvironmentTextureNode"/>
    <field accessType="inputOutput" description="Author-provided prose that describes intended purpose of the url asset." inheritedFrom="X3DTextureNode" name="description" type="SFString"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="initializeOnly" default="128" description="size indicates the resolution of the generated images in number of pixels per side." minExclusive="0" name="size" type="SFInt32"/>
    <field acceptableNodeTypes="TextureProperties" accessType="initializeOnly" default="NULL" description="Single contained TextureProperties node that can specify additional visual attributes applied to corresponding texture images." name="textureProperties" type="SFNode"/>
    <field accessType="inputOutput" additionalEnumerationValuesAllowed="false" baseType="xs:NMTOKEN" default="NONE" description="update controls regeneration of the texture." name="update" simpleType="generatedCubeMapTextureUpdateChoices" type="SFString">
     <enumeration appinfo="no further texture updates are rendered." value="NONE"/>
     <enumeration appinfo="render texture once at end of frame." value="NEXT_FRAME_ONLY"/>
     <enumeration appinfo="texture to be rendered every frame." value="ALWAYS"/>
    </field>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="texture" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
     <NodeContentModel name="TextureProperties"/>
     <NodeContentModel name="ProtoInstance"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="GeoCoordinate">
   <InterfaceDefinition appinfo="GeoCoordinate builds geometry as a set of geographic 3D coordinates." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/geospatial.html#GeoCoordinate">
    <componentInfo level="1" name="Geospatial"/>
    <Inheritance baseType="X3DCoordinateNode"/>
    <field acceptableNodeTypes="GeoOrigin" accessType="initializeOnly" default="NULL" description="Single contained GeoOrigin node that can specify a local coordinate frame for extended precision." name="geoOrigin" type="SFNode"/>
    <field accessType="initializeOnly" additionalEnumerationValuesAllowed="true" baseType="geoSystemType" default='"GD" "WE"' description="Identifies spatial reference frame: Geodetic (GD), Geocentric (GC), Universal Transverse Mercator (UTM)." name="geoSystem" type="MFString"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" description='point contains a set of actual 3D geographic coordinates, provided in geoSystem format can split strings if desired: "x1 y1 z1 x2 y2 z2" or "x1 y1 z1", "x2 y2 z2".' name="point" type="MFVec3d"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="coord" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
     <NodeContentModel name="GeoOrigin"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="GeoElevationGrid">
   <InterfaceDefinition appinfo="GeoElevationGrid is a geometry node defining a rectangular height field, with default values for a 1m by 1m square at height 0." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/geospatial.html#GeoElevationGrid">
    <componentInfo level="1" name="Geospatial"/>
    <Inheritance baseType="X3DGeometryNode"/>
    <field accessType="initializeOnly" default="true" description="ccw defines clockwise/counterclockwise ordering of vertex coordinates, which in turn defines front/back orientation of polygon normals according to Right-Hand Rule (RHR)." name="ccw" type="SFBool"/>
    <field acceptableNodeTypes="X3DColorNode" accessType="inputOutput" default="NULL" description="Single contained Color or ColorRGBA node that can specify color values applied to corresponding vertices according to colorPerVertex field." name="color" type="SFNode"/>
    <field accessType="initializeOnly" default="true" description="Whether Color node color values are applied to each point vertex (true) or per quadrilateral (false)." name="colorPerVertex" type="SFBool"/>
    <field accessType="initializeOnly" default="0" description="creaseAngle defines angle (in radians) for determining whether adjacent polygons are drawn with sharp edges or smooth shading." minInclusive="0" name="creaseAngle" type="SFDouble"/>
    <field accessType="initializeOnly" default="0 0 0" description="Geographic coordinate for southwest (lower-left) corner of height dataset." name="geoGridOrigin" type="SFVec3d"/>
    <field acceptableNodeTypes="GeoOrigin" accessType="initializeOnly" default="NULL" description="Single contained GeoOrigin node that can specify a local coordinate frame for extended precision." name="geoOrigin" type="SFNode"/>
    <field accessType="initializeOnly" additionalEnumerationValuesAllowed="true" baseType="geoSystemType" default='"GD" "WE"' description="Identifies spatial reference frame: Geodetic (GD), Geocentric (GC), Universal Transverse Mercator (UTM)." name="geoSystem" type="MFString"/>
    <field accessType="initializeOnly" default="0 0" description="Contains xDimension rows * zDimension columns floating-point values for elevation above ellipsoid." name="height" type="MFDouble"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field acceptableNodeTypes="X3DNormalNode" accessType="inputOutput" default="NULL" description="Single contained Normal node that can specify perpendicular vectors for corresponding vertices to support rendering computations, applied according to the normalPerVertex field." name="normal" type="SFNode"/>
    <field accessType="initializeOnly" default="true" description="Whether Normal node vector values are applied to each point vertex (true) or per quadrilateral (false)." name="normalPerVertex" type="SFBool"/>
    <field accessType="inputOnly" description="Contains xDimension rows * zDimension columns floating-point values for elevation above ellipsoid." name="set_height" type="MFDouble"/>
    <field accessType="initializeOnly" default="true" description="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)." name="solid" type="SFBool"/>
    <field acceptableNodeTypes="X3DSingleTextureCoordinateNode" accessType="inputOutput" default="NULL" description="Single contained TextureCoordinate, TextureCoordinateGenerator or MultiTextureCoordinate node that can specify coordinates for texture mapping onto corresponding geometry." name="texCoord" type="SFNode"/>
    <field accessType="initializeOnly" default="0" description="Number of elements in the height array along east-west X direction." minInclusive="0" name="xDimension" type="SFInt32"/>
    <field accessType="initializeOnly" default="1.0" description="Distance between grid-array vertices along east-west X direction." minExclusive="0" name="xSpacing" type="SFDouble"/>
    <field accessType="inputOutput" default="1" description="Vertical exaggeration of displayed data produced from the height array." minInclusive="0" name="yScale" type="SFFloat"/>
    <field accessType="initializeOnly" default="0" description="Number of elements in the height array along north-south Z direction." minInclusive="0" name="zDimension" type="SFInt32"/>
    <field accessType="initializeOnly" default="1.0" description="Distance between grid-array vertices along north-south Z direction." minExclusive="0" name="zSpacing" type="SFDouble"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="geometry" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
     <GroupContentModel minOccurs="0" name="ColorNormalTexCoordContentModel"/>
     <NodeContentModel name="GeoOrigin"/>
    </ContentModel>
    <field acceptableNodeTypes="Tangent" accessType="inputOutput" description="Input/Output field tangent. If there is no Tangent node, the MikkTSpace algorithm is used to generate tangent vectors." name="tangent" type="SFNode"/>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="GeoLocation">
   <InterfaceDefinition appinfo="GeoLocation positions a regular X3D model onto earth's surface." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/geospatial.html#GeoLocation">
    <componentInfo level="1" name="Geospatial"/>
    <Inheritance baseType="X3DGroupingNode"/>
    <field acceptableNodeTypes="X3DChildNode" accessType="inputOnly" inheritedFrom="X3DGroupingNode" name="addChildren" type="MFNode">
     <componentInfo level="2" name="Grouping"/>
    </field>
    <field accessType="initializeOnly" default="0 0 0" description="Bounding box center accompanies bboxSize and provides an optional hint for bounding box position offset from origin of local coordinate system." inheritedFrom="X3DGroupingNode" name="bboxCenter" type="SFVec3f"/>
    <field accessType="inputOutput" default="false" description="Whether to display bounding box for associated geometry, aligned with world coordinates." inheritedFrom="X3DGroupingNode" name="bboxDisplay" type="SFBool"/>
    <field accessType="initializeOnly" baseType="bboxSizeType" default="-1 -1 -1" description="Bounding box size is usually omitted, and can easily be calculated automatically by an X3D player at scene-loading time with minimal computational cost." inheritedFrom="X3DGroupingNode" name="bboxSize" type="SFVec3f"/>
    <field acceptableNodeTypes="X3DChildNode" accessType="inputOutput" description="Grouping nodes contain an ordered list of children nodes." inheritedFrom="X3DGroupingNode" name="children" type="MFNode"/>
    <field accessType="inputOutput" default="0 0 0" description="Geographic location (specified in current geoSystem coordinates) for children geometry (specified in relative coordinate system, in meters)." name="geoCoords" type="SFVec3d"/>
    <field acceptableNodeTypes="GeoOrigin" accessType="initializeOnly" default="NULL" description="Single contained GeoOrigin node that can specify a local coordinate frame for extended precision." name="geoOrigin" type="SFNode"/>
    <field accessType="initializeOnly" additionalEnumerationValuesAllowed="true" baseType="geoSystemType" default='"GD" "WE"' description="Identifies spatial reference frame: Geodetic (GD), Geocentric (GC), Universal Transverse Mercator (UTM)." name="geoSystem" type="MFString"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field acceptableNodeTypes="X3DChildNode" accessType="inputOnly" inheritedFrom="X3DGroupingNode" name="removeChildren" type="MFNode">
     <componentInfo level="2" name="Grouping"/>
    </field>
    <field accessType="inputOutput" default="true" description="Whether or not renderable content within this node is visually displayed." inheritedFrom="X3DGroupingNode" name="visible" type="SFBool"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel maxOccurs="unbounded" minOccurs="0" name="ChildContentModel"/>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
     <GroupContentModel name="GroupingNodeChildContentModel"/>
     <NodeContentModel name="GeoOrigin"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="GeoLOD">
   <InterfaceDefinition appinfo="Note that MFNode rootNode field can contain multiple nodes and has accessType inputOutput. Meanwhile MFNode children field is outputOnly, unlike other X3DGroupingNode exemplars." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/geospatial.html#GeoLOD">
    <componentInfo level="1" name="Geospatial"/>
    <Inheritance baseType="X3DChildNode"/>
    <AdditionalInheritance baseType="X3DBoundedObject"/>
    <field accessType="initializeOnly" default="0 0 0" description="Bounding box center accompanies bboxSize and provides an optional hint for bounding box position offset from origin of local coordinate system." inheritedFrom="X3DBoundedObject" name="bboxCenter" type="SFVec3f"/>
    <field accessType="inputOutput" default="false" description="Whether to display bounding box for associated geometry, aligned with world coordinates." inheritedFrom="X3DBoundedObject" name="bboxDisplay" type="SFBool"/>
    <field accessType="initializeOnly" baseType="bboxSizeType" default="-1 -1 -1" description="Bounding box size is usually omitted, and can easily be calculated automatically by an X3D player at scene-loading time with minimal computational cost." inheritedFrom="X3DBoundedObject" name="bboxSize" type="SFVec3f"/>
    <field accessType="initializeOnly" default="0 0 0" description="Viewer range from geographic-coordinates center triggers quadtree loading/unloading." name="center" type="SFVec3d"/>
    <field accessType="initializeOnly" description="quadtree geometry loaded when viewer is within range." name="child1Url" type="MFString">
     <componentInfo level="4" name="Networking"/>
    </field>
    <field accessType="initializeOnly" description="quadtree geometry loaded when viewer is within range." name="child2Url" type="MFString">
     <componentInfo level="4" name="Networking"/>
    </field>
    <field accessType="initializeOnly" description="quadtree geometry loaded when viewer is within range." name="child3Url" type="MFString">
     <componentInfo level="4" name="Networking"/>
    </field>
    <field accessType="initializeOnly" description="quadtree geometry loaded when viewer is within range." name="child4Url" type="MFString">
     <componentInfo level="4" name="Networking"/>
    </field>
    <field acceptableNodeTypes="X3DChildNode" accessType="outputOnly" description="The outputOnly children field exposes a portion of the scene graph for the currently loaded set of nodes." name="children" type="MFNode"/>
    <field acceptableNodeTypes="GeoOrigin" accessType="initializeOnly" default="NULL" description="Single contained GeoOrigin node that can specify a local coordinate frame for extended precision." name="geoOrigin" type="SFNode"/>
    <field accessType="initializeOnly" additionalEnumerationValuesAllowed="true" baseType="geoSystemType" default='"GD" "WE"' description="Identifies spatial reference frame: Geodetic (GD), Geocentric (GC), Universal Transverse Mercator (UTM)." name="geoSystem" type="MFString"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="outputOnly" description="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." maxInclusive="1" minInclusive="0" name="level_changed" type="SFInt32"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="initializeOnly" default="10" description="Viewer range from geographic-coordinates center triggers quadtree loading/unloading." minInclusive="0" name="range" type="SFFloat"/>
    <field acceptableNodeTypes="X3DChildNode" accessType="initializeOnly" description="Geometry for the root tile." name="rootNode" type="MFNode"/>
    <field accessType="initializeOnly" description="url for scene providing geometry for the root tile." name="rootUrl" type="MFString">
     <componentInfo level="4" name="Networking"/>
    </field>
    <field accessType="inputOutput" default="true" description="Whether or not renderable content within this node is visually displayed." inheritedFrom="X3DBoundedObject" name="visible" type="SFBool"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
     <GroupContentModel name="GroupingNodeChildContentModel"/>
     <NodeContentModel name="GeoOrigin"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="GeoMetadata">
   <InterfaceDefinition appinfo="GeoMetadata includes a generic subset of metadata about the geographic data." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/geospatial.html#GeoMetadata">
    <componentInfo level="1" name="Geospatial"/>
    <Inheritance baseType="X3DInfoNode"/>
    <AdditionalInheritance baseType="X3DUrlObject"/>
    <field accessType="inputOutput" default="0" description="autoRefresh defines interval in seconds before automatic reload of current url asset is performed." inheritedFrom="X3DUrlObject" minInclusive="0" name="autoRefresh" type="SFTime"/>
    <field accessType="inputOutput" default="3600" description="autoRefreshTimeLimit defines maximum duration that automatic refresh activity can occur." inheritedFrom="X3DUrlObject" minInclusive="0" name="autoRefreshTimeLimit" type="SFTime"/>
    <field acceptableNodeTypes="X3DNode" accessType="inputOutput" description="DEF list of all nodes that implement this data." name="data" type="MFNode"/>
    <field accessType="inputOutput" description="Author-provided prose that describes intended purpose of the url asset." inheritedFrom="X3DUrlObject" name="description" type="SFString"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="inputOutput" default="true" description="load=true means load immediately, load=false means defer loading or else unload a previously loaded scene." inheritedFrom="X3DUrlObject" name="load" type="SFBool"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" description="The summary string array contains a set of keyword/value pairs, with each keyword and its subsequent value contained in separate strings." name="summary" type="MFString"/>
    <field accessType="inputOutput" description="Hypertext link to an external, complete metadata description." inheritedFrom="X3DUrlObject" name="url" type="MFString">
     <componentInfo level="4" name="Networking"/>
    </field>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="containerFieldChoicesX3DUrlObject"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
     <NodeContentModel name="GeoCoordinate"/>
     <NodeContentModel name="GeoElevationGrid"/>
     <NodeContentModel name="GeoLocation"/>
     <NodeContentModel name="GeoLOD"/>
     <NodeContentModel name="GeoPositionInterpolator"/>
     <NodeContentModel name="GeoProximitySensor"/>
     <NodeContentModel name="GeoTouchSensor"/>
     <NodeContentModel name="GeoTransform"/>
     <NodeContentModel name="GeoViewpoint"/>
     <NodeContentModel name="ProtoInstance"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="GeoOrigin">
   <InterfaceDefinition appinfo="GeoOrigin is deprecated and discouraged (but nevertheless allowed) in X3D version 3.3. GeoOrigin is restored in X3D version 4.0 for special use on devices with limited floating-point resolution." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/geospatial.html#GeoOrigin">
    <componentInfo level="1" name="Geospatial"/>
    <Inheritance baseType="X3DNode"/>
    <field accessType="inputOutput" default="0 0 0" description="Defines absolute geographic location (and implicit local coordinate frame)." name="geoCoords" type="SFVec3d"/>
    <field accessType="initializeOnly" additionalEnumerationValuesAllowed="true" baseType="geoSystemType" default='"GD" "WE"' description="Identifies spatial reference frame: Geodetic (GD), Geocentric (GC), Universal Transverse Mercator (UTM)." name="geoSystem" type="MFString"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="initializeOnly" default="false" description="Whether to rotate coordinates of nodes using this GeoOrigin so that local-up direction aligns with VRML Y axis rotateYUp false means local up-direction is relative to planet surface rotateYUp true allows proper operation of NavigationInfo modes FLY, WALK." name="rotateYUp" type="SFBool"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="geoOrigin" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="GeoPositionInterpolator">
   <InterfaceDefinition appinfo="GeoPositionInterpolator animates objects within a geographic coordinate system." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/geospatial.html#GeoPositionInterpolator">
    <componentInfo level="1" name="Geospatial"/>
    <Inheritance baseType="X3DInterpolatorNode"/>
    <field acceptableNodeTypes="GeoOrigin" accessType="initializeOnly" default="NULL" description="Single contained GeoOrigin node that can specify a local coordinate frame for extended precision." name="geoOrigin" type="SFNode"/>
    <field accessType="initializeOnly" additionalEnumerationValuesAllowed="true" baseType="geoSystemType" default='"GD" "WE"' description="Identifies spatial reference frame: Geodetic (GD), Geocentric (GC), Universal Transverse Mercator (UTM)." name="geoSystem" type="MFString"/>
    <field accessType="outputOnly" description="interpolated coordinate in the geographic coordinate system specified by geoSystem Hint: X3D for Advanced Modeling (X3D4AM) slideset https://x3dgraphics." name="geovalue_changed" type="SFVec3d"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="inputOutput" description="Definition values for linear-interpolation function input intervals, listed in non-decreasing order and corresponding to a value in the keyValue array." inheritedFrom="X3DInterpolatorNode" name="key" type="MFFloat"/>
    <field accessType="inputOutput" description="Output values for linear interpolation, each corresponding to an input-fraction value in the key array." name="keyValue" type="MFVec3d"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOnly" description="set_fraction selects input key for corresponding keyValue output." inheritedFrom="X3DInterpolatorNode" name="set_fraction" type="SFFloat"/>
    <field accessType="outputOnly" description="Linearly interpolated output value determined by current key time and corresponding keyValue pair." name="value_changed" type="SFVec3f"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
     <NodeContentModel name="GeoOrigin"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="GeoProximitySensor">
   <InterfaceDefinition appinfo="GeoProximitySensor generates events when the viewer enters, exits and moves within a region of space (defined by a box)." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/geospatial.html#GeoProximitySensor">
    <componentInfo level="2" name="Geospatial"/>
    <Inheritance baseType="X3DEnvironmentalSensorNode"/>
    <field accessType="inputOutput" default="0 0 0" description="Position offset from origin of local coordinate system." name="center" type="SFVec3d"/>
    <field accessType="outputOnly" description="Sends changed centerOfRotation values, likely caused by user interaction." name="centerOfRotation_changed" type="SFVec3f"/>
    <field accessType="inputOutput" description="Author-provided prose that describes intended purpose of the node." inheritedFrom="X3DSensorNode" name="description" type="SFString"/>
    <field accessType="inputOutput" default="true" description="Enables/disables node operation." inheritedFrom="X3DSensorNode" name="enabled" type="SFBool"/>
    <field accessType="outputOnly" description="Time event generated when user's camera enters the box." name="enterTime" type="SFTime"/>
    <field accessType="outputOnly" description="Time event generated when user's camera exits the box." name="exitTime" type="SFTime"/>
    <field accessType="inputOutput" default="0 0 0" description="Position offset from origin of local coordinate system." name="geoCenter" type="SFVec3d"/>
    <field accessType="outputOnly" description="Sends geospatial coordinates of viewer's position corresponding to world position returned by position_changed." name="geoCoord_changed" type="SFVec3d"/>
    <field acceptableNodeTypes="GeoOrigin" accessType="initializeOnly" default="NULL" description="Single contained GeoOrigin node that can specify a local coordinate frame for extended precision." name="geoOrigin" type="SFNode"/>
    <field accessType="initializeOnly" additionalEnumerationValuesAllowed="true" baseType="geoSystemType" default='"GD" "WE"' description="Identifies spatial reference frame: Geodetic (GD), Geocentric (GC), Universal Transverse Mercator (UTM)." name="geoSystem" type="MFString"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="outputOnly" description="isActive true/false events are sent as viewer enters/exits Proximity box." inheritedFrom="X3DSensorNode" name="isActive" type="SFBool"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="outputOnly" description="Sends rotation event relative to center." name="orientation_changed" type="SFRotation"/>
    <field accessType="outputOnly" description="Sends translation event relative to center." name="position_changed" type="SFVec3f"/>
    <field accessType="inputOutput" default="0 0 0" description="size of Proximity box around center location, oriented within local transformation frame." inheritedFrom="X3DEnvironmentalSensorNode" minInclusive="0" name="size" type="SFVec3f"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
     <NodeContentModel name="GeoOrigin"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="GeoTouchSensor">
   <InterfaceDefinition appinfo="GeoTouchSensor returns geographic coordinates for the object being selected." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/geospatial.html#GeoTouchSensor">
    <componentInfo level="1" name="Geospatial"/>
    <Inheritance baseType="X3DTouchSensorNode"/>
    <field accessType="inputOutput" description="Author-provided prose that describes intended purpose of this node." inheritedFrom="X3DSensorNode" name="description" type="SFString"/>
    <field accessType="inputOutput" default="true" description="Enables/disables node operation." inheritedFrom="X3DSensorNode" name="enabled" type="SFBool"/>
    <field acceptableNodeTypes="GeoOrigin" accessType="initializeOnly" default="NULL" description="Single contained GeoOrigin node that can specify a local coordinate frame for extended precision." name="geoOrigin" type="SFNode"/>
    <field accessType="initializeOnly" additionalEnumerationValuesAllowed="true" baseType="geoSystemType" default='"GD" "WE"' description="Identifies spatial reference frame: Geodetic (G D), Geocentric (GC), Universal Transverse Mercator (UTM)." name="geoSystem" type="MFString"/>
    <field accessType="outputOnly" description="Output event containing 3D point on surface of underlying geometry, given in GeoTouchSensor's local coordinate system." name="hitGeoCoord_changed" type="SFVec3d"/>
    <field accessType="outputOnly" description="Output event containing surface normal vector at the hitGeoCoordinate." name="hitNormal_changed" type="SFVec3f"/>
    <field accessType="outputOnly" description="Output event containing 3D point on surface of underlying geometry, given in geometry coordinates (not geographic coordinates)." name="hitPoint_changed" type="SFVec3f"/>
    <field accessType="outputOnly" description="Output event containing texture coordinates of surface at the hitGeoCoordinate." name="hitTexCoord_changed" type="SFVec2f"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="outputOnly" description="Select geometry by activating the pointing device (for example, clicking the mouse) to generate isActive events." inheritedFrom="X3DSensorNode" name="isActive" type="SFBool"/>
    <field accessType="outputOnly" description="Is pointing device over sensor's geometry?." inheritedFrom="X3DPointingDeviceSensorNode" name="isOver" type="SFBool"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="outputOnly" description="Time event generated when touched." inheritedFrom="X3DTouchSensorNode" name="touchTime" type="SFTime"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
     <NodeContentModel name="GeoOrigin"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="GeoTransform">
   <InterfaceDefinition appinfo="GeoTransform is a Grouping node that can contain most nodes." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/geospatial.html#GeoTransform">
    <componentInfo level="2" name="Geospatial"/>
    <Inheritance baseType="X3DGroupingNode"/>
    <field acceptableNodeTypes="X3DChildNode" accessType="inputOnly" inheritedFrom="X3DGroupingNode" name="addChildren" type="MFNode">
     <componentInfo level="2" name="Grouping"/>
    </field>
    <field accessType="initializeOnly" default="0 0 0" description="Bounding box center accompanies bboxSize and provides an optional hint for bounding box position offset from origin of local coordinate system." inheritedFrom="X3DGroupingNode" name="bboxCenter" type="SFVec3f"/>
    <field accessType="inputOutput" default="false" description="Whether to display bounding box for associated geometry, aligned with world coordinates." inheritedFrom="X3DGroupingNode" name="bboxDisplay" type="SFBool"/>
    <field accessType="initializeOnly" baseType="bboxSizeType" default="-1 -1 -1" description="Bounding box size is usually omitted, and can easily be calculated automatically by an X3D player at scene-loading time with minimal computational cost." inheritedFrom="X3DGroupingNode" name="bboxSize" type="SFVec3f"/>
    <field acceptableNodeTypes="X3DChildNode" accessType="inputOutput" description="Grouping nodes contain an ordered list of children nodes." inheritedFrom="X3DGroupingNode" name="children" type="MFNode"/>
    <field accessType="inputOutput" default="0 0 0" description="Translation offset from origin of local coordinate system, applied prior to rotation or scaling." name="geoCenter" type="SFVec3d"/>
    <field acceptableNodeTypes="GeoOrigin" accessType="initializeOnly" default="NULL" description="Single contained GeoOrigin node that can specify a local coordinate frame for extended precision." name="geoOrigin" type="SFNode"/>
    <field accessType="initializeOnly" additionalEnumerationValuesAllowed="true" baseType="geoSystemType" default='"GD" "WE"' description="Identifies spatial reference frame: Geodetic (GD), Geocentric (GC), Universal Transverse Mercator (UTM)." name="geoSystem" type="MFString"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field acceptableNodeTypes="X3DChildNode" accessType="inputOnly" inheritedFrom="X3DGroupingNode" name="removeChildren" type="MFNode">
     <componentInfo level="2" name="Grouping"/>
    </field>
    <field accessType="inputOutput" default="0 0 1 0" description="Orientation (axis, angle in radians) of children relative to local coordinate system." name="rotation" type="SFRotation"/>
    <field accessType="inputOutput" default="1 1 1" description="Non-uniform x-y-z scale of child coordinate system, adjusted by center and scaleOrientation." name="scale" type="SFVec3f"/>
    <field accessType="inputOutput" default="0 0 1 0" description="Preliminary rotation of coordinate sys tem before scaling (to allow scaling around arbitrary orientations)." name="scaleOrientation" type="SFRotation"/>
    <field accessType="inputOutput" default="0 0 0" description="Position (x, y, z in meters) of children relative to local coordinate system." name="translation" type="SFVec3f"/>
    <field accessType="inputOutput" default="true" description="Whether or not renderable content within this node is visually displayed." inheritedFrom="X3DGroupingNode" name="visible" type="SFBool"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel maxOccurs="unbounded" minOccurs="0" name="ChildContentModel"/>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
     <GroupContentModel name="GroupingNodeChildContentModel"/>
     <NodeContentModel name="GeoOrigin"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="GeoViewpoint">
   <InterfaceDefinition appinfo="GeoViewpoint specifies viewpoints using geographic coordinates." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/geospatial.html#GeoViewpoint">
    <componentInfo level="1" name="Geospatial"/>
    <Inheritance baseType="X3DViewpointNode"/>
    <field accessType="outputOnly" description="Event sent reporting timestamp when node becomes active/inactive." inheritedFrom="X3DBindableNode" name="bindTime" type="SFTime"/>
    <field accessType="inputOutput" default="0 0 0" description="centerOfRotation specifies center point about which to rotate user's eyepoint when in EXAMINE or LOOKAT mode." name="centerOfRotation" type="SFVec3d"/>
    <field accessType="inputOutput" description="Author-provided prose that describes intended purpose of this node." inheritedFrom="X3DViewpointNode" name="description" type="SFString">
     <componentInfo level="2" name="Navigation"/>
    </field>
    <field accessType="inputOutput" default="-1" description="farDistance defines maximum clipping plane distance allowed for object display." inheritedFrom="X3DViewpointNode" name="farDistance" type="SFFloat"/>
    <field accessType="inputOutput" default="0.7854" description="Preferred minimum viewing angle from this viewpoint in radians, providing minimum height or minimum width (whichever is smaller)." maxExclusive="3.1416" minExclusive="0" name="fieldOfView" type="SFFloat"/>
    <field acceptableNodeTypes="GeoOrigin" accessType="initializeOnly" default="NULL" description="Single contained GeoOrigin node that can specify a local coordinate frame for extended precision." name="geoOrigin" type="SFNode"/>
    <field accessType="initializeOnly" additionalEnumerationValuesAllowed="true" baseType="geoSystemType" default='"GD" "WE"' description="Identifies spatial reference frame: Geodetic (GD), Geocentric (GC), Universal Transverse Mercator (UTM)." name="geoSystem" type="MFString"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="outputOnly" description="Output event true gets sent when node becomes bound and activated, otherwise output event false gets sent when node becomes unbound and deactivated." inheritedFrom="X3DBindableNode" name="isBound" type="SFBool"/>
    <field accessType="inputOutput" default="true" description="Whether to transition instantly by jumping, or else smoothly animate to this Viewpoint." inheritedFrom="X3DViewpointNode" name="jump" type="SFBool"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field acceptableNodeTypes="NavigationInfo" accessType="inputOutput" default="NULL" description="The navigationInfo field defines a dedicated NavigationInfo node for this X3DViewpointNode." inheritedFrom="X3DViewpointNode" name="navigationInfo" type="SFNode"/>
    <field accessType="inputOutput" default="-1" description="nearDistance defines minimum clipping plane distance necessary for object display." inheritedFrom="X3DViewpointNode" name="nearDistance" type="SFFloat"/>
    <field accessType="inputOutput" default="0 0 1 0" description="Rotation of Viewpoint, relative to default -Z axis direction in local coordinate system." inheritedFrom="X3DViewpointNode" name="orientation" type="SFRotation"/>
    <field accessType="inputOutput" default="0 0 100000" description="position relative to local georeferenced coordinate system, in proper format." name="position" type="SFVec3d"/>
    <field accessType="inputOutput" default="false" description="Retain (true) or reset to zero (false) any prior user navigation offsets from defined viewpoint position, orientation." inheritedFrom="X3DViewpointNode" name="retainUserOffsets" type="SFBool">
     <componentInfo level="2" name="Navigation"/>
    </field>
    <field accessType="inputOnly" description="set_bind true makes this node active, set_bind false makes this node inactive." inheritedFrom="X3DBindableNode" name="set_bind" type="SFBool"/>
    <field accessType="initializeOnly" default="1.0" description="speedFactor is a multiplier to modify the original elevation-based speed that is set automatically by the browser." minInclusive="0" name="speedFactor" type="SFFloat"/>
    <field accessType="inputOutput" default="false" description="Viewpoint is automatically adjusted to view all visible geometry." inheritedFrom="X3DViewpointNode" name="viewAll" type="SFBool"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
     <NodeContentModel name="GeoOrigin"/>
     <NodeContentModel name="NavigationInfo"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="Group">
   <InterfaceDefinition appinfo="Group is a Grouping node that can contain most nodes." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/grouping.html#Group">
    <componentInfo level="1" name="Grouping"/>
    <Inheritance baseType="X3DGroupingNode"/>
    <field acceptableNodeTypes="X3DChildNode" accessType="inputOnly" inheritedFrom="X3DGroupingNode" name="addChildren" type="MFNode">
     <componentInfo level="2" name="Grouping"/>
    </field>
    <field accessType="initializeOnly" default="0 0 0" description="Bounding box center accompanies bboxSize and provides an optional hint for bounding box position offset from origin of local coordinate system." inheritedFrom="X3DGroupingNode" name="bboxCenter" type="SFVec3f"/>
    <field accessType="inputOutput" default="false" description="Whether to display bounding box for associated geometry, aligned with world coordinates." inheritedFrom="X3DGroupingNode" name="bboxDisplay" type="SFBool"/>
    <field accessType="initializeOnly" baseType="bboxSizeType" default="-1 -1 -1" description="Bounding box size is usually omitted, and can easily be calculated automatically by an X3D player at scene-loading time with minimal computational cost." inheritedFrom="X3DGroupingNode" name="bboxSize" type="SFVec3f"/>
    <field acceptableNodeTypes="X3DChildNode" accessType="inputOutput" description="Grouping nodes contain an ordered list of children nodes." inheritedFrom="X3DGroupingNode" name="children" type="MFNode"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field acceptableNodeTypes="X3DChildNode" accessType="inputOnly" inheritedFrom="X3DGroupingNode" name="removeChildren" type="MFNode">
     <componentInfo level="2" name="Grouping"/>
    </field>
    <field accessType="inputOutput" default="true" description="Whether or not renderable content within this node is visually displayed." inheritedFrom="X3DGroupingNode" name="visible" type="SFBool"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="containerFieldChoicesGroupLODShapeTransformSwitch"/>
    <ContentModel>
     <GroupContentModel maxOccurs="unbounded" minOccurs="0" name="ChildContentModel"/>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="HAnimDisplacer">
   <InterfaceDefinition appinfo="HAnimDisplacer nodes alter the shape of coordinate-based geometry within parent HAnimJoint or HAnimSegment nodes." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/hanim.html#HAnimDisplacer">
    <componentInfo level="1" name="HAnim"/>
    <Inheritance baseType="X3DGeometricPropertyNode"/>
    <field accessType="inputOutput" description="Defines index values into the parent HAnimSegment or HAnimBody/HAnimHumanoid coordinate array for the mesh of vertices affected by this HAnimDisplacer." name="coordIndex" type="MFInt32"/>
    <field accessType="inputOutput" description="Author-provided prose that describes intended purpose of this node." name="description" type="SFString"/>
    <field accessType="inputOutput" description="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." name="displacements" type="MFVec3f"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" additionalEnumerationValuesAllowed="true" baseType="xs:NMTOKEN" description="Unique name attribute must be defined so that HAnimDisplacer node can be identified at run time for animation purposes." name="name" simpleType="hanimFeaturePointNameValues" type="SFString">
     <enumeration alias="skull_tip,vertex" appinfo="CAESAR 2003 skull_vertex matches ISO 7250-1 part 5.22 Vertex (top of head). No corresponding landmark provided in CAESAR 2018." default="0.0050 1.7504 0.0055" documentation="https://en.wikipedia.org/wiki/Vertex_(anatomy)" index="0" loa="1" parent="skull" value="skull_vertex"/>
     <enumeration appinfo="glabella is between the eyebrows and above the nose." documentation="https://en.wikipedia.org/wiki/Glabella" index="1" loa="1" parent="skull" value="glabella"/>
     <enumeration appinfo="osseocartilaginous junction of the nasal dorsum." default="0.0058 1.6316 0.0852" documentation="https://en.wikipedia.org/wiki/Human_head" index="2" loa="1" parent="skull" value="sellion"/>
     <enumeration appinfo="Left Infraorbitale foramen is opening in maxillary bone of skull located below the infraorbital margin of the orbit." default="0.0341 1.6171 0.0752" documentation="https://en.wikipedia.org/wiki/Infraorbital_foramen" index="3" loa="1" parent="skull" value="l_infraorbitale"/>
     <enumeration appinfo="notch just above the tragus of the ear." default="0.0739 1.6348 0.0282" documentation="https://en.wiktionary.org/wiki/tragion" index="4" loa="1" parent="skull" value="l_tragion"/>
     <enumeration appinfo="Left Gonion is midpoint of mandibular angle of the jaw." default="0.0631 1.5530 0.0330" documentation="https://en.wikipedia.org/wiki/Angle_of_the_mandible" index="5" loa="1" parent="skull" value="l_gonion"/>
     <enumeration appinfo="Right Infraorbitale foramen is opening in maxillary bone of skull located below the infraorbital margin of the orbit." default="-0.0237 1.6171 0.0752" documentation="https://en.wikipedia.org/wiki/Infraorbital_foramen" index="6" loa="1" parent="skull" value="r_infraorbitale"/>
     <enumeration appinfo="notch just above the tragus of the ear." default="-0.0646 1.6347 0.0302" documentation="https://en.wiktionary.org/wiki/tragion" index="7" loa="1" parent="skull" value="r_tragion"/>
     <enumeration appinfo="Right Gonion is midpoint of the mandibular angle of the jaw." default="-0.0520 1.5529 0.0347" documentation="https://en.wikipedia.org/wiki/Angle_of_the_mandible" index="8" loa="1" parent="skull" value="r_gonion"/>
     <enumeration appinfo="center point above tip of chin." default="0.0061 1.5410 0.0805" documentation="https://www.cs.uu.nl/groups/MG/multimedia/publications/art/rsfp05.pdf" index="9" loa="3" parent="jaw" value="supramenton"/>
     <enumeration default="0.0064 1.520 -0.0815" documentation="https://www.merriam-webster.com/dictionary/cervicale" index="10" loa="2" parent="t1" value="cervicale"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Adam_s_apple" index="11" loa="2" parent="c2" value="adams_apple"/>
     <enumeration appinfo="Suprasternale." default="0.0084 1.4714 0.0551" documentation="https://medical-dictionary.thefreedictionary.com/spatium+suprasternale" index="12" loa="2" parent="t1" value="suprasternale"/>
     <enumeration default="0.0085 1.2995 0.1147" documentation="https://medical-dictionary.thefreedictionary.com/spatium+substernale" index="13" loa="2" parent="t10" value="substernale"/>
     <enumeration alias="l_clavicale" default="0.0271 1.4943 0.0394" documentation="https://en.wikipedia.org/wiki/Clavicle" index="14" loa="2" parent="l_clavicle" value="l_clavicle"/>
     <enumeration default="0.2032 1.4760 -0.0490" documentation="https://en.wikipedia.org/wiki/Acromion" index="15" loa="2" parent="l_clavicle" value="l_acromion"/>
     <enumeration alias="l_axilla_ant" appinfo="Left Axilla Proximal (Anterior)." default="0.1777 1.4065 -0.0075" documentation="https://en.wikipedia.org/wiki/Axilla" index="16" loa="2" parent="l_clavicle" value="l_axilla_proximal"/>
     <enumeration alias="l_axilla_post" appinfo="Left Axilla Distal (Posterior)." default="0.1706 1.4072 -0.0875" documentation="https://en.wikipedia.org/wiki/Axilla" index="17" loa="2" parent="l_clavicle" value="l_axilla_distal"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Axilla" index="18" loa="2" parent="l_clavicle" value="l_axilla_posterior_folds"/>
     <enumeration alias="r_clavicale" default="-0.0115 1.4943 0.0400" documentation="https://en.wikipedia.org/wiki/Clavicle" index="19" loa="2" parent="r_clavicle" value="r_clavicle"/>
     <enumeration default="-0.1905 1.4791 -0.0431" documentation="https://en.wikipedia.org/wiki/Acromion" index="20" loa="2" parent="r_clavicle" value="r_acromion"/>
     <enumeration alias="r_axilla_ant" appinfo="Right Axilla Proximal (Anterior)." default="-0.1626 1.4072 -0.0031" documentation="https://en.wikipedia.org/wiki/Axilla" index="21" loa="2" parent="r_clavicle" value="r_axilla_proximal"/>
     <enumeration alias="r_axilla_post" appinfo="Right Axilla Distal (Posterior)." default="-0.1603 1.4098 -0.0826" documentation="https://en.wikipedia.org/wiki/Axilla" index="22" loa="2" parent="r_clavicle" value="r_axilla_distal"/>
     <enumeration appinfo="Right Posterior Axillary Folds." documentation="https://en.wikipedia.org/wiki/Axilla" index="23" loa="2" parent="r_clavicle" value="r_axilla_posterior_folds"/>
     <enumeration alias="middle back" documentation="https://en.wikipedia.org/wiki/Vertebral_column" index="24" loa="3" parent="t5" value="spine_1_middle_back"/>
     <enumeration alias="lower back" default="0.0049 1.1908 -0.1113" documentation="https://en.wikipedia.org/wiki/Vertebral_column" index="25" loa="3" parent="l2" value="spine_2_lower_back"/>
     <enumeration alias="waist_preferred_ant" documentation="https://en.wikipedia.org/wiki/Waist" index="26" loa="3" parent="l2" value="waist_preferred_anterior"/>
     <enumeration alias="waist_preferred_post" default="0.2900 1.0915 -0.1091" documentation="https://en.wikipedia.org/wiki/Waist" index="27" loa="3" parent="l2" value="waist_preferred_posterior"/>
     <enumeration alias="l_rib10_midspine" default="0.0871 1.1925 0.0992" documentation="https://en.wikipedia.org/wiki/Rib" index="28" loa="3" parent="l2" value="l_rib10"/>
     <enumeration alias="Left Bustpoint" default="0.0918 1.3382 0.1192" documentation="https://www.cdc.gov/niosh/data/datasets/rd-1008-2016-0/pdfs/EMT-Data-Dictionary-508.pdf" index="29" loa="3" parent="t9" value="l_thelion"/>
     <enumeration alias="r_rib10_midspine" default="-0.0711 1.1941 0.1016" documentation="https://en.wikipedia.org/wiki/Rib" index="30" loa="3" parent="l2" value="r_rib10"/>
     <enumeration alias="Right Bustpoint" default="-0.0736 1.3385 0.1217" documentation="https://www.cdc.gov/niosh/data/datasets/rd-1008-2016-0/pdfs/EMT-Data-Dictionary-508.pdf" index="31" loa="3" parent="t9" value="r_thelion"/>
     <enumeration alias="Left Anterior Superior Iliac Spine" default="0.0925 0.9983 0.1052" documentation="https://en.wikipedia.org/wiki/Anterior_superior_iliac_spine" index="32" loa="1" parent="pelvis" value="l_asis"/>
     <enumeration default="0.1612 1.0537 0.0008" documentation="https://www.topendsports.com/testing/skinfold-iliac-crest.htm" index="33" loa="1" parent="pelvis" value="l_iliocristale"/>
     <enumeration alias="Left Posterior Superior Iliac Spine" default="0.0774 1.0190 -0.1151" documentation="https://en.wikipedia.org/wiki/Posterior_superior_iliac_spine" index="34" loa="1" parent="pelvis" value="l_psis"/>
     <enumeration alias="Right Anterior Superior Iliac Spine" default="-0.0887 1.0021 0.1112" documentation="https://en.wikipedia.org/wiki/Anterior_superior_iliac_spine" index="35" loa="1" parent="pelvis" value="r_asis"/>
     <enumeration default="-0.1525 1.0628 0.0035" documentation="https://www.topendsports.com/testing/skinfold-iliac-crest.htm" index="36" loa="1" parent="pelvis" value="r_iliocristale"/>
     <enumeration alias="Right Posterior Superior Iliac Spine" default="-0.0716 1.0190 -0.1138" documentation="https://en.wikipedia.org/wiki/Posterior_superior_iliac_spine" index="37" loa="1" parent="pelvis" value="r_psis"/>
     <enumeration default="0.0034 0.8266 0.0257" documentation="https://en.wikipedia.org/wiki/Crotch" index="38" loa="1" parent="pelvis" value="crotch"/>
     <enumeration alias="l_femoral_lateral_epicn,l_femoral_lateral_epicondyles" default="0.1598 0.4967 0.0297" documentation="https://en.wikipedia.org/wiki/Lateral_epicondyle_of_the_femur" index="39" loa="1" parent="l_thigh" value="l_femoral_lateral_epicondyle"/>
     <enumeration alias="l_femoral_medial_epicn,l_femoral_medial_epicondyles" default="0.1598 0.4967 0.0297" documentation="https://en.wikipedia.org/wiki/Medial_epicondyle_of_the_femur" index="40" loa="1" parent="l_thigh" value="l_femoral_medial_epicondyle"/>
     <enumeration alias="l_kneecap" documentation="https://en.wikipedia.org/wiki/Patella" index="41" loa="1" parent="l_thigh" value="l_suprapatella"/>
     <enumeration alias="l_trochanter" documentation="https://en.wikipedia.org/wiki/Trochanter" index="42" loa="1" parent="pelvis" value="l_trochanterion"/>
     <enumeration alias="r_femoral_lateral_epicn,r_femoral_lateral_epicondyles" default="-0.1421 0.4992 0.0310" documentation="https://en.wikipedia.org/wiki/Lateral_epicondyle_of_the_femur" index="43" loa="1" parent="r_thigh" value="r_femoral_lateral_epicondyle"/>
     <enumeration alias="r_femoral_medial_epicn,r_femoral_medial_epicondyles" default="-0.0221 0.5014 0.0289" documentation="https://en.wikipedia.org/wiki/Medial_epicondyle_of_the_femur" index="44" loa="1" parent="r_thigh" value="r_femoral_medial_epicondyle"/>
     <enumeration alias="r_kneecap" documentation="https://en.wikipedia.org/wiki/Patella" index="45" loa="1" parent="r_thigh" value="r_suprapatella"/>
     <enumeration alias="r_trochanter" documentation="https://en.wikipedia.org/wiki/Trochanter" index="46" loa="1" parent="pelvis" value="r_trochanterion"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Accessory_navicular_bone" index="47" loa="1" parent="l_calf" value="l_tibiale"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Malleolus" index="48" loa="1" parent="l_calf" value="l_medial_malleolus"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Malleolus" index="49" loa="1" parent="l_calf" value="l_lateral_malleolus"/>
     <enumeration documentation="https://www.oxfordreference.com/view/10.1093/oi/authority.20110803100523385" index="50" loa="1" parent="l_talus" value="l_sphyrion"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Accessory_navicular_bone" index="51" loa="1" parent="r_calf" value="r_tibiale"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Malleolus" index="52" loa="1" parent="r_calf" value="r_medial_malleolus"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Malleolus" index="53" loa="1" parent="r_calf" value="r_lateral_malleolus"/>
     <enumeration documentation="https://www.oxfordreference.com/view/10.1093/oi/authority.20110803100523385" index="54" loa="1" parent="r_talus" value="r_sphyrion"/>
     <enumeration alias="l_metatarsal_pha1" documentation="https://en.wikipedia.org/wiki/Metatarsal_bones" index="55" loa="4" parent="l_tarsal_proximal_phalanx_1" value="l_metatarsal_phalanx_1"/>
     <enumeration alias="l_metatarsal_pha5" documentation="https://en.wikipedia.org/wiki/Metatarsal_bones" index="56" loa="4" parent="l_tarsal_proximal_phalanx_5" value="l_metatarsal_phalanx_5"/>
     <enumeration default="0.2056 0.6743 -0.0482" documentation="https://en.wiktionary.org/wiki/dactylion" index="57" loa="2" parent="l_carpal_distal_phalanx_2" value="l_dactylion"/>
     <enumeration alias="l_calcaneous_post" documentation="https://en.wikipedia.org/wiki/Calcaneus" index="58" loa="1" parent="l_talus" value="l_calcaneus_posterior"/>
     <enumeration alias="r_metatarsal_pha1" documentation="https://en.wikipedia.org/wiki/Metatarsal_bones" index="59" loa="4" parent="r_tarsal_proximal_phalanx_1" value="r_metatarsal_phalanx_1"/>
     <enumeration alias="r_metatarsal_pha5" documentation="https://en.wikipedia.org/wiki/Metatarsal_bones" index="60" loa="4" parent="r_tarsal_proximal_phalanx_5" value="r_metatarsal_phalanx_5"/>
     <enumeration default="-0.1941 0.6772 -0.0423" documentation="https://en.wiktionary.org/wiki/dactylion" index="61" loa="2" parent="r_carpal_distal_phalanx_2" value="r_dactylion"/>
     <enumeration alias="r_calcaneous_post" documentation="https://en.wikipedia.org/wiki/Calcaneus" index="62" loa="1" parent="r_talus" value="r_calcaneus_posterior"/>
     <enumeration alias="l_humeral_lateral_epicn,l_humeral_lateral_epicondyles" default="0.2280 1.1482 -0.1100" documentation="https://en.wikipedia.org/wiki/Lateral_epicondyle_of_the_humerus" index="63" loa="1" parent="l_upperarm" value="l_humeral_lateral_epicondyle"/>
     <enumeration alias="l_humeral_medial_epicn,l_humeral_medial_epicondyles" default="0.1735 1.1272 -0.1113" documentation="https://en.wikipedia.org/wiki/Medial_epicondyle_of_the_humerus" index="64" loa="1" parent="l_forearm" value="l_humeral_medial_epicondyle"/>
     <enumeration default="0.1962 1.1375 -0.1123" documentation="https://en.wikipedia.org/wiki/Olecranon" index="65" loa="1" parent="l_forearm" value="l_olecranon"/>
     <enumeration alias="r_humeral_lateral_epicn,r_humeral_lateral_epicondyles" default="-0.2224 1.1517 -0.1033" documentation="https://en.wikipedia.org/wiki/Lateral_epicondyle_of_the_humerus" index="66" loa="1" parent="r_upperarm" value="r_humeral_lateral_epicondyle"/>
     <enumeration alias="r_humeral_medial_epicn,r_humeral_medial_epicondyles" default="-0.1680 1.1298 -0.1062" documentation="https://en.wikipedia.org/wiki/Medial_epicondyle_of_the_humerus" index="67" loa="1" parent="r_forearm" value="r_humeral_medial_epicondyle"/>
     <enumeration default="-0.1907 1.1405 -0.1065" documentation="https://en.wikipedia.org/wiki/Olecranon" index="68" loa="1" parent="r_forearm" value="r_olecranon"/>
     <enumeration default="0.2182 1.1212 -0.1167" documentation="https://en.wikipedia.org/wiki/Carpal_bones" index="69" loa="1" parent="l_forearm" value="l_radiale"/>
     <enumeration default="0.2142 0.8529 -0.0648" documentation="https://en.wikipedia.org/wiki/Ulnar_styloid_process" index="70" loa="1" parent="l_carpal" value="l_ulnar_styloid"/>
     <enumeration default="0.1901 0.8645 -0.0415" documentation="https://en.wikipedia.org/wiki/Radial_styloid_process" index="71" loa="1" parent="l_forearm" value="l_radial_styloid"/>
     <enumeration default="-0.2130 1.1305 -0.1091" documentation="https://en.wikipedia.org/wiki/Carpal_bones" index="72" loa="1" parent="r_forearm" value="r_radiale"/>
     <enumeration default="-0.2117 0.8562 -0.0584" documentation="https://en.wikipedia.org/wiki/Ulnar_styloid_process" index="73" loa="1" parent="r_carpal" value="r_ulnar_styloid"/>
     <enumeration default="-0.1884 0.8676 -0.0360" documentation="https://en.wikipedia.org/wiki/Radial_styloid_process" index="74" loa="1" parent="r_forearm" value="r_radial_styloid"/>
     <enumeration alias="l_metacarpal_pha2,l_metacarpal_phalanx" documentation="https://en.wikipedia.org/wiki/Metacarpal_bones" index="75" loa="2" parent="l_metacarpal_2" value="l_metacarpal_phalanx_2"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Metacarpal_bones" index="76" loa="2" parent="l_metacarpal_3" value="l_metacarpal_phalanx_3"/>
     <enumeration alias="l_metacarpal_pha5" documentation="https://en.wikipedia.org/wiki/Metacarpal_bones" index="77" loa="2" parent="l_metacarpal_5" value="l_metacarpal_phalanx_5"/>
     <enumeration alias="r_metacarpal_pha2,r_metacarpal_phalanx" documentation="https://en.wikipedia.org/wiki/Metacarpal_bones" index="78" loa="2" parent="r_metacarpal_2" value="r_metacarpal_phalanx_2"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Metacarpal_bones" index="79" loa="2" parent="r_metacarpal_3" value="r_metacarpal_phalanx_3"/>
     <enumeration alias="r_metacarpal_pha5" documentation="https://en.wikipedia.org/wiki/Metacarpal_bones" index="80" loa="2" parent="r_metacarpal_5" value="r_metacarpal_phalanx_5"/>
     <enumeration alias="nuchal" default="0.0039 1.5972 -0.0796" documentation="https://en.wikipedia.org/wiki/Squamous_part_of_occipital_bone" index="81" loa="1" parent="skull" value="nuchale"/>
     <enumeration default="0.0646 1.5141 -0.0380" documentation="https://en.wikipedia.org/wiki/Neck" index="82" loa="3" parent="c7" value="l_neck_base"/>
     <enumeration default="-0.0419 1.5149 -0.0220" documentation="https://en.wikipedia.org/wiki/Neck" index="83" loa="3" parent="c7" value="r_neck_base"/>
     <enumeration alias="belly button" default="0.0069 1.0966 0.1017" documentation="https://en.wikipedia.org/wiki/Navel" index="84" loa="1" parent="l5" value="navel"/>
     <enumeration alias="l_canthus" documentation="https://en.wikipedia.org/wiki/Canthus" index="85" loa="1" parent="skull" value="l_ectocanthus"/>
     <enumeration alias="r_canthus" documentation="https://en.wikipedia.org/wiki/Canthus" index="86" loa="1" parent="skull" value="r_ectocanthus"/>
     <enumeration alias="chin" documentation="https://en.wikipedia.org/wiki/Human_head" index="87" loa="3" parent="jaw" value="menton"/>
     <enumeration alias="mesosternum" documentation="https://en.wiktionary.org/wiki/mesosternum" index="88" loa="2" parent="t6" value="mesosternale"/>
     <enumeration documentation="https://www.columbia.edu/itc/hs/medical/humanAnatomy/yuan/craniologyISlides.pdf" index="89" loa="1" parent="skull" value="opisthocranion"/>
     <enumeration default="0.0993 0.4881 -0.0309" documentation="https://en.wikipedia.org/wiki/Popliteal_fossa" index="90" loa="1" parent="l_thigh" value="l_knee_crease"/>
     <enumeration default="-0.0825 0.4932 -0.0326" documentation="https://en.wikipedia.org/wiki/Popliteal_fossa" index="91" loa="1" parent="r_thigh" value="r_knee_crease"/>
     <enumeration alias="median plane" documentation="https://en.wikipedia.org/wiki/Median_plane" index="92" loa="2" parent="t6" value="rear_center_midsagittal_plane"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Buttocks" index="93" loa="1" parent="pelvis" value="buttocks_standing_wall_contact_point"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Sagittal_plane" index="94" loa="2" parent="t6" value="l_chest_midsagittal_plane"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Sagittal_plane" index="95" loa="2" parent="t6" value="r_chest_midsagittal_plane"/>
     <enumeration documentation="https://en.wiktionary.org/wiki/bideltoid" index="96" loa="1" parent="l_upperarm" value="l_bideltoid"/>
     <enumeration documentation="https://en.wiktionary.org/wiki/bideltoid" index="97" loa="1" parent="r_upperarm" value="r_bideltoid"/>
     <enumeration alias="l_thumb_distal" default="0.1982 0.8061 0.0759" documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="101" loa="2" parent="l_carpal_distal_phalanx_1" value="l_carpal_distal_phalanx_1"/>
     <enumeration alias="l_index_distal" default="0.2089 0.6858 -0.0245" documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="102" loa="2" parent="l_carpal_distal_phalanx_2" value="l_carpal_distal_phalanx_2"/>
     <enumeration alias="l_middle_distal" default="0.2080 0.6731 -0.0491" documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="103" loa="2" parent="l_carpal_distal_phalanx_3" value="l_carpal_distal_phalanx_3"/>
     <enumeration alias="l_ring_distal" default="0.2035 0.6750 -0.0756" documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="104" loa="2" parent="l_carpal_distal_phalanx_4" value="l_carpal_distal_phalanx_4"/>
     <enumeration alias="l_pinky_distal" default="0.2014 0.7009 -0.1012" documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="105" loa="2" parent="l_carpal_distal_phalanx_5" value="l_carpal_distal_phalanx_5"/>
     <enumeration alias="r_thumb_distal" default="-0.1869 0.8090 0.0820" documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="106" loa="2" parent="r_carpal_distal_phalanx_1" value="r_carpal_distal_phalanx_1"/>
     <enumeration alias="r_index_distal" default="-0.1980 0.6883 -0.0180" documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="107" loa="2" parent="r_carpal_distal_phalanx_2" value="r_carpal_distal_phalanx_2"/>
     <enumeration alias="r_middle_distal" default="-0.1969 0.6758 -0.0427" documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="108" loa="2" parent="r_carpal_distal_phalanx_3" value="r_carpal_distal_phalanx_3"/>
     <enumeration alias="r_ring_distal" default="-0.1934 0.6778 -0.0693" documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="109" loa="2" parent="r_carpal_distal_phalanx_4" value="r_carpal_distal_phalanx_4"/>
     <enumeration alias="r_pinky_distal" default="-0.1938 0.7035 -0.0949" documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="110" loa="2" parent="r_carpal_distal_phalanx_5" value="r_carpal_distal_phalanx_5"/>
     <enumeration default="0.090 0.012 0.188" documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="111" loa="4" parent="l_tarsal_distal_phalanx_1" value="l_tarsal_distal_phalanx_1"/>
     <enumeration alias="l_digit2" default="0.110 0.011 0.19" documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="112" loa="2" parent="l_tarsal_distal_phalanx_2" value="l_tarsal_distal_phalanx_2"/>
     <enumeration default="0.128 0.011 0.185" documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="113" loa="4" parent="l_tarsal_distal_phalanx_3" value="l_tarsal_distal_phalanx_3"/>
     <enumeration default="0.142 0.011 0.178" documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="114" loa="4" parent="l_tarsal_distal_phalanx_4" value="l_tarsal_distal_phalanx_4"/>
     <enumeration alias="l_tarsal_distal_pha5" default="0.154 0.010 0.168" documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="115" loa="4" parent="l_tarsal_distal_phalanx_5" value="l_tarsal_distal_phalanx_5"/>
     <enumeration default="-0.090 0.012 0.188" documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="116" loa="4" parent="r_tarsal_distal_phalanx_1" value="r_tarsal_distal_phalanx_1"/>
     <enumeration alias="r_digit2" default="-0.110 0.011 0.19" documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="117" loa="2" parent="r_tarsal_distal_phalanx_2" value="r_tarsal_distal_phalanx_2"/>
     <enumeration default="-0.128 0.011 0.185" documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="118" loa="4" parent="r_tarsal_distal_phalanx_3" value="r_tarsal_distal_phalanx_3"/>
     <enumeration default="-0.142 0.011 0.178" documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="119" loa="4" parent="r_tarsal_distal_phalanx_4" value="r_tarsal_distal_phalanx_4"/>
     <enumeration alias="r_tarsal_distal_pha5" default="-0.154 0.010 0.168" documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="120" loa="4" parent="r_tarsal_distal_phalanx_5" value="r_tarsal_distal_phalanx_5"/>
    </field>
    <field accessType="inputOutput" default="0.0" description="The weigh factor has typical range [0,1] and defines the scale factor applied to displacement values before adding them to neutral vertex positions." name="weight" type="SFFloat"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="displacers" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="HAnimHumanoid">
   <InterfaceDefinition appinfo="The HAnimHumanoid node is used to: (a) store references to the joints, segments, sites, skeleton, optional skin, and fixed viewpoints, (b) serve as a container for the entire humanoid, (c) provide a convenient way of moving the humanoid through its environment, and (d) store human-readable metadata such as name, version, author, copyright, age, gender and other information." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/hanim.html#HAnimHumanoid">
    <componentInfo level="1" name="HAnim"/>
    <Inheritance baseType="X3DChildNode"/>
    <AdditionalInheritance baseType="X3DBoundedObject"/>
    <field accessType="initializeOnly" default="0 0 0" description="Bounding box center accompanies bboxSize and provides an optional hint for bounding box position offset from origin of local coordinate system." inheritedFrom="X3DBoundedObject" name="bboxCenter" type="SFVec3f"/>
    <field accessType="inputOutput" default="false" description="Whether to display bounding box for associated geometry, aligned with world coordinates." inheritedFrom="X3DBoundedObject" name="bboxDisplay" type="SFBool"/>
    <field accessType="initializeOnly" baseType="bboxSizeType" default="-1 -1 -1" description="Bounding box size is usually omitted, and can easily be calculated automatically by an X3D player at scene-loading time with minimal computational cost." inheritedFrom="X3DBoundedObject" name="bboxSize" type="SFVec3f"/>
    <field accessType="inputOutput" default="0 0 0" description="Translation offset from origin of local coordinate system." name="center" type="SFVec3f"/>
    <field accessType="inputOutput" description="Author-provided prose that describes intended purpose of this node." name="description" type="SFString"/>
    <field accessType="inputOutput" description="Contains metadata keyword=value pairs, where approved keyword terms are humanoidVersion authorName authorEmail copyright creationDate usageRestrictions age gender height and weight." name="info" type="MFString"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="inputOutput" description="Specifies an array of position values for each HAnimJoint node in the joints field, in order, corresponding to each binding pose." name="jointBindingPositions" type="MFVec3f"/>
    <field accessType="inputOutput" description="Specifies an array of rotation values for each HAnimJoint node in the joints field, in order, corresponding to each binding pose." name="jointBindingRotations" type="MFRotation"/>
    <field accessType="inputOutput" description="Specifies an array of scale values for each HAnimJoint node in the joints field, in order, corresponding to each binding pose." name="jointBindingScales" type="MFVec3f"/>
    <field acceptableNodeTypes="HAnimJoint" accessType="inputOutput" description="The joints field contains a list of USE references for all HAnimJoint node instances found within the preceding skeleton hierarchy." name="joints" type="MFNode"/>
    <field accessType="inputOutput" baseType="loaType" default="-1" description="Level Of Articulation 0." maxInclusive="4" minInclusive="-1" name="loa" type="SFInt32"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field acceptableNodeTypes="HAnimMotion" accessType="inputOutput" description="Contains any HAnimMotion nodes that can animate the HAnimHumanoid." name="motions" type="MFNode"/>
    <field accessType="inputOutput" description="Array of boolean values corresponding to HAnimMotion nodes indicating which can animate the HAnimHumanoid." name="motionsEnabled" type="MFBool"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="Unique name attribute must be defined so that each HAnimHumanoid node in a scene can be identified at run time for animation purposes." name="name" type="SFString"/>
    <field accessType="inputOutput" default="0 0 1 0" description="Orientation of children relative to local coordinate system." name="rotation" type="SFRotation"/>
    <field accessType="inputOutput" default="1 1 1" description="Non-uniform x-y-z scale of child coordinate system, adjusted by center and scaleOrientation." minExclusive="0" name="scale" type="SFVec3f"/>
    <field accessType="inputOutput" default="0 0 1 0" description="Preliminary rotation of coordinate system before scaling (to allow scaling around arbitrary orientations)." name="scaleOrientation" type="SFRotation"/>
    <field acceptableNodeTypes="HAnimSegment" accessType="inputOutput" description="The segments field contains a list of USE references for all HAnimSegment node instances found within the preceding skeleton hierarchy." name="segments" type="MFNode"/>
    <field acceptableNodeTypes="HAnimSite" accessType="inputOutput" description="sites field contains a list of USE references for all HAnimSite node instances found within the preceding skeleton hierarchy." name="sites" type="MFNode"/>
    <field accessType="inputOutput" default="BASIC" description="Models sharing a common skeletal configuration can share animations and binding poses." name="skeletalConfiguration" type="SFString"/>
    <field acceptableNodeTypes="HAnimJoint|HAnimSite" accessType="inputOutput" description="List of top-level HAnimJoint and HAnimSite nodes that create the skeleton model." name="skeleton" type="MFNode"/>
    <field acceptableNodeTypes="Group|Transform|Shape|IndexedFaceSet" accessType="inputOutput" description="List of one or more indexed mesh definitions (such as IndexedFaceSet) that utilize skinCoord point and skinNormal normal data." name="skin" type="MFNode"/>
    <field acceptableNodeTypes="Coordinate|CoordinateDouble" accessType="inputOutput" default="NULL" description="Array of Coordinate nodes to handle non-default source pose so that both skin and skeleton can be in same binding pose." name="skinBindingCoords" type="SFNode"/>
    <field acceptableNodeTypes="X3DNormalNode" accessType="inputOutput" default="NULL" description="Array of Normal nodes to handle non-default source pose so that both skin and skeleton can be in same binding pose." name="skinBindingNormals" type="SFNode"/>
    <field acceptableNodeTypes="Coordinate|CoordinateDouble" accessType="inputOutput" default="NULL" description="Coordinate node utilized by indexed mesh definitions for skin." name="skinCoord" type="SFNode"/>
    <field acceptableNodeTypes="X3DNormalNode" accessType="inputOutput" default="NULL" description="Single Normal node utilized by indexed mesh definitions for skin." name="skinNormal" type="SFNode"/>
    <field accessType="inputOutput" default="0 0 0" description="Position of children relative to local coordinate system." name="translation" type="SFVec3f"/>
    <field accessType="inputOutput" additionalEnumerationValuesAllowed="false" baseType="xs:NMTOKEN" default="2.0" description="HAnimHumanoid version, where allowed value is 2." name="version" simpleType="hanimVersionChoices" type="SFString">
     <enumeration appinfo="Revised standard HAnim 19774 version 2 (parts 1 and 2) were approved by ISO in November 2019, published by Web3D Consortium May 2020." documentation="https://www.web3d.org/documents/specifications/19774/V2.0" value="2.0"/>
    </field>
    <field acceptableNodeTypes="HAnimSite" accessType="inputOutput" description="List of HAnimSite nodes containing Viewpoint nodes that appear in the skeleton model, usually as USE node references." name="viewpoints" type="MFNode"/>
    <field accessType="inputOutput" default="true" description="Whether or not renderable content within this node is visually displayed." inheritedFrom="X3DBoundedObject" name="visible" type="SFBool"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
     <NodeContentModel maxOccurs="unbounded" minOccurs="0" name="HAnimJoint"/>
     <NodeContentModel maxOccurs="unbounded" minOccurs="0" name="HAnimSegment"/>
     <NodeContentModel maxOccurs="unbounded" minOccurs="0" name="HAnimSite"/>
     <NodeContentModel maxOccurs="unbounded" minOccurs="0" name="HAnimMotion"/>
     <NodeContentModel name="Shape"/>
     <NodeContentModel name="Group"/>
     <NodeContentModel name="LOD"/>
     <NodeContentModel name="Switch"/>
     <NodeContentModel name="Transform"/>
     <NodeContentModel name="IndexedFaceSet"/>
     <NodeContentModel name="IndexedLineSet"/>
     <NodeContentModel name="IndexedQuadSet"/>
     <NodeContentModel name="IndexedTriangleFanSet"/>
     <NodeContentModel name="IndexedTriangleSet"/>
     <NodeContentModel name="IndexedTriangleStripSet"/>
     <NodeContentModel name="Coordinate"/>
     <NodeContentModel name="CoordinateDouble"/>
     <NodeContentModel maxOccurs="2" minOccurs="0" name="Normal"/>
     <NodeContentModel maxOccurs="unbounded" minOccurs="0" name="ProtoInstance"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="HAnimJoint">
   <InterfaceDefinition appinfo="HAnimJoint node can represent each joint in a body." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/hanim.html#HAnimJoint">
    <componentInfo level="1" name="HAnim"/>
    <Inheritance baseType="X3DChildNode"/>
    <AdditionalInheritance baseType="X3DBoundedObject"/>
    <field acceptableNodeTypes="HAnimJoint|HAnimSegment" accessType="inputOnly" name="addChildren" type="MFNode"/>
    <field accessType="initializeOnly" default="0 0 0" description="Bounding box center accompanies bboxSize and provides an optional hint for bounding box position offset from origin of local coordinate system." inheritedFrom="X3DBoundedObject" name="bboxCenter" type="SFVec3f"/>
    <field accessType="inputOutput" default="false" description="Whether to display bounding box for associated geometry, aligned with world coordinates." inheritedFrom="X3DBoundedObject" name="bboxDisplay" type="SFBool"/>
    <field accessType="initializeOnly" baseType="bboxSizeType" default="-1 -1 -1" description="Bounding box size is usually omitted, and can easily be calculated automatically by an X3D player at scene-loading time with minimal computational cost." inheritedFrom="X3DBoundedObject" name="bboxSize" type="SFVec3f"/>
    <field accessType="inputOutput" default="0 0 0" description="Translation offset from origin of local coordinate system." name="center" type="SFVec3f"/>
    <field acceptableNodeTypes="HAnimJoint|HAnimSegment" accessType="inputOutput" description="Grouping nodes contain an ordered list of children nodes." name="children" type="MFNode"/>
    <field accessType="inputOutput" description="Author-provided prose that describes intended purpose of this node." name="description" type="SFString"/>
    <field acceptableNodeTypes="HAnimDisplacer" accessType="inputOutput" description="the displacers field stores HAnimDisplacer objects for a particular HAnimJoint object." name="displacers" type="MFNode"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="inputOutput" default="0 0 1 0" description="Orientation of upper/lower rotation limits, relative to HAnimJoint center." name="limitOrientation" type="SFRotation"/>
    <field accessType="inputOutput" default="0 0 0" description="Lower limit for minimum joint rotation in radians." name="llimit" type="MFFloat"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" additionalEnumerationValuesAllowed="true" baseType="xs:NMTOKEN" description="Unique name attribute must be defined so that HAnimJoint node can be identified at run time for animation purposes." name="name" simpleType="hanimJointNameValues" type="SFString">
     <enumeration default="0 0.8240 0.0277" documentation="https://en.wikipedia.org/wiki/Outline_of_human_anatomy#Joints" index="1" loa="0" value="humanoid_root"/>
     <enumeration alias="SIJ,SI joint" default="0 0.9149 0.0016" documentation="https://en.wikipedia.org/wiki/Sacroiliac_joint" index="2" loa="1" parent="humanoid_root" value="sacroiliac"/>
     <enumeration default="0.0961 0.9124 -0.0001" documentation="https://en.wikipedia.org/wiki/Hip" index="3" loa="1" parent="sacroiliac" value="l_hip"/>
     <enumeration default="0.1040 0.4867 0.0308" documentation="https://en.wikipedia.org/wiki/Knee" index="4" loa="1" parent="l_hip" value="l_knee"/>
     <enumeration alias="l_ankle" default="0.1101 0.0656 -0.0736" documentation="https://en.wikipedia.org/wiki/Ankle" index="5" loa="1" parent="l_knee" value="l_talocrural"/>
     <enumeration alias="l_talocalcaneal" documentation="https://en.wikipedia.org/wiki/Subtalar_joint" index="6" loa="4" parent="l_talocrural" value="l_talocalcaneonavicular"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Cuneonavicular_joint" index="7" loa="4" parent="l_talocalcaneonavicular" value="l_cuneonavicular_1"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Tarsometatarsal_joints" index="8" loa="4" parent="l_cuneonavicular_1" value="l_tarsometatarsal_1"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Metatarsophalangeal_joints" index="9" loa="4" parent="l_tarsometatarsal_1" value="l_metatarsophalangeal_1"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_foot" index="10" loa="4" parent="l_metatarsophalangeal_1" value="l_tarsal_interphalangeal_1"/>
     <enumeration alias="l_cuneonavicular" documentation="https://en.wikipedia.org/wiki/Cuneonavicular_joint" index="11" loa="4" parent="l_talocalcaneonavicular" value="l_cuneonavicular_2"/>
     <enumeration alias="l_subtalar,l_tarsometatarsal" default="0.1086 0.0001 -0.0368" documentation="https://en.wikipedia.org/wiki/Tarsometatarsal_joints" index="12" loa="2" parent="l_cuneonavicular_2" value="l_tarsometatarsal_2"/>
     <enumeration alias="l_midtarsal,l_metatarsophalangeal" default="0.1086 0.0001 0.0368" documentation="https://en.wikipedia.org/wiki/Metatarsophalangeal_joints" index="13" loa="1" parent="l_tarsometatarsal_2" value="l_metatarsophalangeal_2"/>
     <enumeration alias="l_tarsal_proximal_interphalangeal" documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_foot" index="14" loa="4" parent="l_metatarsophalangeal_2" value="l_tarsal_proximal_interphalangeal_2"/>
     <enumeration alias="l_tarsal_distal_interphalangeal" default="0.1086 0.0000 0.0762" documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_foot" index="15" loa="2" parent="l_tarsal_proximal_interphalangeal_2" value="l_tarsal_distal_interphalangeal_2"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Cuneonavicular_joint" index="16" loa="4" parent="l_talocalcaneonavicular" value="l_cuneonavicular_3"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Tarsometatarsal_joints" index="17" loa="4" parent="l_cuneonavicular_3" value="l_tarsometatarsal_3"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Metatarsophalangeal_joints" index="18" loa="4" parent="l_tarsometatarsal_3" value="l_metatarsophalangeal_3"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_foot" index="19" loa="4" parent="l_metatarsophalangeal_3" value="l_tarsal_proximal_interphalangeal_3"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_foot" index="20" loa="4" parent="l_tarsal_proximal_interphalangeal_3" value="l_tarsal_distal_interphalangeal_3"/>
     <enumeration alias="l_calcaneuscuboid" documentation="https://en.wikipedia.org/wiki/Calcaneocuboid_joint" index="21" loa="4" parent="l_talocrural" value="l_calcaneocuboid"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Transverse_tarsal_joint" index="22" loa="4" parent="l_calcaneocuboid" value="l_transversetarsal"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Tarsometatarsal_joints" index="23" loa="4" parent="l_transversetarsal" value="l_tarsometatarsal_4"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Metatarsophalangeal_joints" index="24" loa="4" parent="l_tarsometatarsal_4" value="l_metatarsophalangeal_4"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_foot" index="25" loa="4" parent="l_metatarsophalangeal_4" value="l_tarsal_proximal_interphalangeal_4"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_foot" index="26" loa="4" parent="l_tarsal_proximal_interphalangeal_4" value="l_tarsal_distal_interphalangeal_4"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Tarsometatarsal_joints" index="27" loa="4" parent="l_transversetarsal" value="l_tarsometatarsal_5"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Metatarsophalangeal_joints" index="28" loa="4" parent="l_tarsometatarsal_5" value="l_metatarsophalangeal_5"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_foot" index="29" loa="4" parent="l_metatarsophalangeal_5" value="l_tarsal_proximal_interphalangeal_5"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_foot" index="30" loa="4" parent="l_tarsal_proximal_interphalangeal_5" value="l_tarsal_distal_interphalangeal_5"/>
     <enumeration default="-0.0950 0.9171 0.0029" documentation="https://en.wikipedia.org/wiki/Hip" index="31" loa="1" parent="sacroiliac" value="r_hip"/>
     <enumeration default="-0.0867 0.4913 0.0318" documentation="https://en.wikipedia.org/wiki/Knee" index="32" loa="1" parent="r_hip" value="r_knee"/>
     <enumeration alias="r_ankle" default="-0.0801 0.0712 -0.0766" documentation="https://en.wikipedia.org/wiki/Ankle" index="33" loa="1" parent="r_knee" value="r_talocrural"/>
     <enumeration alias="r_talocalcaneal" documentation="https://en.wikipedia.org/wiki/Subtalar_joint" index="34" loa="4" parent="r_talocrural" value="r_talocalcaneonavicular"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Cuneonavicular_joint" index="35" loa="4" parent="r_talocalcaneonavicular" value="r_cuneonavicular_1"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Tarsometatarsal_joints" index="36" loa="4" parent="r_cuneonavicular_1" value="r_tarsometatarsal_1"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Metatarsophalangeal_joints" index="37" loa="4" parent="r_tarsometatarsal_1" value="r_metatarsophalangeal_1"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_foot" index="38" loa="4" parent="r_metatarsophalangeal_1" value="r_tarsal_interphalangeal_1"/>
     <enumeration alias="r_cuneonavicular" documentation="https://en.wikipedia.org/wiki/Cuneonavicular_joint" index="39" loa="4" parent="r_talocalcaneonavicular" value="r_cuneonavicular_2"/>
     <enumeration alias="r_subtalar,r_tarsometatarsal" default="-0.0801 0.0000 -0.0368" documentation="https://en.wikipedia.org/wiki/Tarsometatarsal_joints" index="40" loa="2" parent="r_cuneonavicular_2" value="r_tarsometatarsal_2"/>
     <enumeration alias="r_midtarsal,r_metatarsophalangeal" default="-0.0801 0.0000 0.0368" documentation="https://en.wikipedia.org/wiki/Metatarsophalangeal_joints" index="41" loa="1" parent="r_tarsometatarsal_2" value="r_metatarsophalangeal_2"/>
     <enumeration alias="r_tarsal_proximal_interphalangeal" documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_foot" index="42" loa="4" parent="r_metatarsophalangeal_2" value="r_tarsal_proximal_interphalangeal_2"/>
     <enumeration alias="r_metatarsal,r_tarsal_distal_interphalangeal" default="-0.0801 0.0039 0.0732" documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_foot" index="43" loa="2" parent="r_tarsal_proximal_interphalangeal_2" value="r_tarsal_distal_interphalangeal_2"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Cuneonavicular_joint" index="44" loa="4" parent="r_talocalcaneonavicular" value="r_cuneonavicular_3"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Tarsometatarsal_joints" index="45" loa="4" parent="r_cuneonavicular_3" value="r_tarsometatarsal_3"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Metatarsophalangeal_joints" index="46" loa="4" parent="r_tarsometatarsal_3" value="r_metatarsophalangeal_3"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_foot" index="47" loa="4" parent="r_metatarsophalangeal_3" value="r_tarsal_proximal_interphalangeal_3"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_foot" index="48" loa="4" parent="r_tarsal_proximal_interphalangeal_3" value="r_tarsal_distal_interphalangeal_3"/>
     <enumeration alias="r_calcaneuscuboid" documentation="https://en.wikipedia.org/wiki/Calcaneocuboid_joint" index="49" loa="4" parent="r_talocrural" value="r_calcaneocuboid"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Transverse_tarsal_joint" index="50" loa="4" parent="r_calcaneocuboid" value="r_transversetarsal"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Tarsometatarsal_joints" index="51" loa="4" parent="r_transversetarsal" value="r_tarsometatarsal_4"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Metatarsophalangeal_joints" index="52" loa="4" parent="r_tarsometatarsal_4" value="r_metatarsophalangeal_4"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_foot" index="53" loa="4" parent="r_metatarsophalangeal_4" value="r_tarsal_proximal_interphalangeal_4"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_foot" index="54" loa="4" parent="r_tarsal_proximal_interphalangeal_4" value="r_tarsal_distal_interphalangeal_4"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Tarsometatarsal_joints" index="55" loa="4" parent="r_transversetarsal" value="r_tarsometatarsal_5"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Metatarsophalangeal_joints" index="56" loa="4" parent="r_tarsometatarsal_5" value="r_metatarsophalangeal_5"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_foot" index="57" loa="4" parent="r_metatarsophalangeal_5" value="r_tarsal_proximal_interphalangeal_5"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_foot" index="58" loa="4" parent="r_tarsal_proximal_interphalangeal_5" value="r_tarsal_distal_interphalangeal_5"/>
     <enumeration default="0.0028 1.0568 -0.0776" documentation="https://en.wikipedia.org/wiki/Vertebral_column" index="59" loa="1" parent="humanoid_root" value="vl5"/>
     <enumeration default="0.0035 1.0925 -0.0787" documentation="https://en.wikipedia.org/wiki/Vertebral_column" index="60" loa="3" parent="vl5" value="vl4"/>
     <enumeration default="0.0041 1.1276 -0.0796" documentation="https://en.wikipedia.org/wiki/Vertebral_column" index="61" loa="2" parent="vl4" value="vl3"/>
     <enumeration default="0.0045 1.1546 -0.0800" documentation="https://en.wikipedia.org/wiki/Vertebral_column" index="62" loa="3" parent="vl3" value="vl2"/>
     <enumeration default="0.0048 1.1912 -0.0805" documentation="https://en.wikipedia.org/wiki/Vertebral_column" index="63" loa="2" parent="vl2" value="vl1"/>
     <enumeration default="0.0051 1.2278 -0.0808" documentation="https://en.wikipedia.org/wiki/Vertebral_column" index="64" loa="3" parent="vl1" value="vt12"/>
     <enumeration default="0.0053 1.2679 -0.0810" documentation="https://en.wikipedia.org/wiki/Vertebral_column" index="65" loa="3" parent="vt12" value="vt11"/>
     <enumeration default="0.0056 1.2848 -0.0822" documentation="https://en.wikipedia.org/wiki/Vertebral_column" index="66" loa="2" parent="vt11" value="vt10"/>
     <enumeration default="0.0057 1.3126 -0.0838" documentation="https://en.wikipedia.org/wiki/Vertebral_column" index="67" loa="3" parent="vt10" value="vt9"/>
     <enumeration default="0.0057 1.3382 -0.0845" documentation="https://en.wikipedia.org/wiki/Vertebral_column" index="68" loa="3" parent="vt9" value="vt8"/>
     <enumeration default="0.0058 1.3625 -0.0833" documentation="https://en.wikipedia.org/wiki/Vertebral_column" index="69" loa="3" parent="vt8" value="vt7"/>
     <enumeration default="0.0059 1.3866 -0.0800" documentation="https://en.wikipedia.org/wiki/Vertebral_column" index="70" loa="2" parent="vt7" value="vt6"/>
     <enumeration default="0.0060 1.4102 -0.0745" documentation="https://en.wikipedia.org/wiki/Vertebral_column" index="71" loa="3" parent="vt6" value="vt5"/>
     <enumeration default="0.0061 1.4320 -0.0675" documentation="https://en.wikipedia.org/wiki/Vertebral_column" index="72" loa="3" parent="vt5" value="vt4"/>
     <enumeration default="0.0062 1.4583 -0.0570" documentation="https://en.wikipedia.org/wiki/Vertebral_column" index="73" loa="3" parent="vt4" value="vt3"/>
     <enumeration default="0.0063 1.4761 -0.0484" documentation="https://en.wikipedia.org/wiki/Vertebral_column" index="74" loa="3" parent="vt3" value="vt2"/>
     <enumeration default="0.0065 1.4951 -0.0387" documentation="https://en.wikipedia.org/wiki/Vertebral_column" index="75" loa="2" parent="vt2" value="vt1"/>
     <enumeration default="0.0066 1.5132 -0.0301" documentation="https://en.wikipedia.org/wiki/Vertebral_column" index="76" loa="3" parent="vt1" value="vc7"/>
     <enumeration default="0.0066 1.5357 -0.0143" documentation="https://en.wikipedia.org/wiki/Vertebral_column" index="77" loa="3" parent="vc7" value="vc6"/>
     <enumeration default="0.0066 1.5520 -0.0082" documentation="https://en.wikipedia.org/wiki/Vertebral_column" index="78" loa="3" parent="vc6" value="vc5"/>
     <enumeration default="0.0066 1.5662 -0.0084" documentation="https://en.wikipedia.org/wiki/Vertebral_column" index="79" loa="2" parent="vc5" value="vc4"/>
     <enumeration default="0.0066 1.5800 -0.0103" documentation="https://en.wikipedia.org/wiki/Vertebral_column" index="80" loa="3" parent="vc4" value="vc3"/>
     <enumeration default="0.0066 1.5928 -0.0103" documentation="https://en.wikipedia.org/wiki/Vertebral_column" index="81" loa="2" parent="vc3" value="vc2"/>
     <enumeration default="0.0066 1.6144 -0.0034" documentation="https://en.wikipedia.org/wiki/Vertebral_column" index="82" loa="3" parent="vc2" value="vc1"/>
     <enumeration default="0.0044 1.6209 0.0236" documentation="https://en.wikipedia.org/wiki/Skull" index="83" loa="1" parent="vc1" value="skullbase"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Eyelid" index="84" loa="3" parent="skullbase" value="l_eyelid_joint"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Eyelid" index="85" loa="3" parent="skullbase" value="r_eyelid_joint"/>
     <enumeration default="0.0336 1.6332 0.0502" documentation="https://en.wikipedia.org/wiki/Eye" index="86" loa="3" parent="skullbase" value="l_eyeball_joint"/>
     <enumeration default="-0.0236 1.6331 0.0510" documentation="https://en.wikipedia.org/wiki/Eye" index="87" loa="3" parent="skullbase" value="r_eyeball_joint"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Eyebrow" index="88" loa="3" parent="skullbase" value="l_eyebrow_joint"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Eyebrow" index="89" loa="3" parent="skullbase" value="r_eyebrow_joint"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Temporomandibular_joint" index="90" loa="3" parent="skullbase" value="temporomandibular"/>
     <enumeration default="0.0820 1.4488 -0.0353" documentation="https://en.wikipedia.org/wiki/Sternoclavicular_joint" index="91" loa="2" parent="vt1" value="l_sternoclavicular"/>
     <enumeration default="0.0962 1.4269 -0.0424" documentation="https://en.wikipedia.org/wiki/Acromioclavicular_joint" index="92" loa="2" parent="l_sternoclavicular" value="l_acromioclavicular"/>
     <enumeration default="0.2029 1.4376 -0.0387" documentation="https://en.wikipedia.org/wiki/Shoulder" index="93" loa="1" parent="l_acromioclavicular" value="l_shoulder"/>
     <enumeration default="0.2014 1.1357 -0.0682" documentation="https://en.wikipedia.org/wiki/Elbow" index="94" loa="1" parent="l_shoulder" value="l_elbow"/>
     <enumeration alias="l_wrist" default="0.1984 0.8663 -0.0583" documentation="https://en.wikipedia.org/wiki/Wrist" index="95" loa="1" parent="l_elbow" value="l_radiocarpal"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Midcarpal_joint" index="96" loa="4" parent="l_radiocarpal" value="l_midcarpal_1"/>
     <enumeration alias="l_thumb1" default="0.1924 0.8472 -0.0534" documentation="https://en.wikipedia.org/wiki/Carpometacarpal_joint" index="97" loa="2" parent="l_midcarpal_1" value="l_carpometacarpal_1"/>
     <enumeration alias="l_thumb2" default="0.1951 0.8226 0.0246" documentation="https://en.wikipedia.org/wiki/Metacarpophalangeal_joint" index="98" loa="2" parent="l_carpometacarpal_1" value="l_metacarpophalangeal_1"/>
     <enumeration alias="l_thumb3" default="0.1955 0.8159 0.0464" documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_the_hand" index="99" loa="2" parent="l_metacarpophalangeal_1" value="l_carpal_interphalangeal_1"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Midcarpal_joint" index="100" loa="4" parent="l_radiocarpal" value="l_midcarpal_2"/>
     <enumeration alias="l_index0,l_carpometacarpal" default="0.1983 0.8024 -0.0280" documentation="https://en.wikipedia.org/wiki/Carpometacarpal_joint" index="101" loa="2" parent="l_midcarpal_2" value="l_carpometacarpal_2"/>
     <enumeration alias="l_index1,l_metacarpophalangeal" default="0.1983 0.7815 -0.0280" documentation="https://en.wikipedia.org/wiki/Metacarpophalangeal_joint" index="102" loa="2" parent="l_carpometacarpal_2" value="l_metacarpophalangeal_2"/>
     <enumeration alias="l_index2,l_carpal_proximal_interphalangeal" default="0.2017 0.7363 -0.0248" documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_the_hand" index="103" loa="2" parent="l_metacarpophalangeal_2" value="l_carpal_proximal_interphalangeal_2"/>
     <enumeration alias="l_index3,l_carpal_distal_interphalangeal" default="0.2028 0.7139 -0.0236" documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_the_hand" index="104" loa="2" parent="l_carpal_proximal_interphalangeal_2" value="l_carpal_distal_interphalangeal_2"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Midcarpal_joint" index="105" loa="4" parent="l_radiocarpal" value="l_midcarpal_3"/>
     <enumeration alias="l_middle0" default="0.1987 0.8029 -0.0530" documentation="https://en.wikipedia.org/wiki/Carpometacarpal_joint" index="106" loa="2" parent="l_midcarpal_3" value="l_carpometacarpal_3"/>
     <enumeration alias="l_middle1" default="0.1987 0.7818 -0.0530" documentation="https://en.wikipedia.org/wiki/Metacarpophalangeal_joint" index="107" loa="2" parent="l_carpometacarpal_3" value="l_metacarpophalangeal_3"/>
     <enumeration alias="l_middle2" default="0.2013 0.7273 -0.0503" documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_the_hand" index="108" loa="2" parent="l_metacarpophalangeal_3" value="l_carpal_proximal_interphalangeal_3"/>
     <enumeration alias="l_middle3" default="0.2026 0.7011 -0.0494" documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_the_hand" index="109" loa="2" parent="l_carpal_proximal_interphalangeal_3" value="l_carpal_distal_interphalangeal_3"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Midcarpal_joint" index="110" loa="4" parent="l_radiocarpal" value="l_midcarpal_4_5"/>
     <enumeration alias="l_ring0" default="0.1956 0.8019 -0.0794" documentation="https://en.wikipedia.org/wiki/Carpometacarpal_joint" index="111" loa="2" parent="l_midcarpal_4_5" value="l_carpometacarpal_4"/>
     <enumeration alias="l_ring1" default="0.1956 0.7815 -0.0794" documentation="https://en.wikipedia.org/wiki/Metacarpophalangeal_joint" index="112" loa="2" parent="l_carpometacarpal_4" value="l_metacarpophalangeal_4"/>
     <enumeration alias="l_ring2" default="0.1973 0.7287 -0.0777" documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_the_hand" index="113" loa="2" parent="l_metacarpophalangeal_4" value="l_carpal_proximal_interphalangeal_4"/>
     <enumeration alias="l_ring3" documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_the_hand" index="114" loa="2" parent="l_carpal_proximal_interphalangeal_4" value="l_carpal_distal_interphalangeal_4"/>
     <enumeration alias="l_pinky0" default="0.1925 0.8066 -0.1036" documentation="https://en.wikipedia.org/wiki/Carpometacarpal_joint" index="115" loa="2" parent="l_midcarpal_4_5" value="l_carpometacarpal_5"/>
     <enumeration alias="l_pinky1" default="0.1925 0.7866 -0.1036" documentation="https://en.wikipedia.org/wiki/Metacarpophalangeal_joint" index="116" loa="2" parent="l_carpometacarpal_5" value="l_metacarpophalangeal_5"/>
     <enumeration alias="l_pinky2" default="0.1938 0.7452 -0.1024" documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_the_hand" index="117" loa="2" parent="l_metacarpophalangeal_5" value="l_carpal_proximal_interphalangeal_5"/>
     <enumeration alias="l_pinky3" default="0.1948 0.7277 -0.1017" documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_the_hand" index="118" loa="2" parent="l_carpal_proximal_interphalangeal_5" value="l_carpal_distal_interphalangeal_5"/>
     <enumeration default="-0.0694 1.4600 -0.0330" documentation="https://en.wikipedia.org/wiki/Sternoclavicular_joint" index="119" loa="2" parent="vt1" value="r_sternoclavicular"/>
     <enumeration default="-0.0836 1.4281 -0.0401" documentation="https://en.wikipedia.org/wiki/Acromioclavicular_joint" index="120" loa="2" parent="r_sternoclavicular" value="r_acromioclavicular"/>
     <enumeration default="-0.1907 1.4407 -0.0325" documentation="https://en.wikipedia.org/wiki/Shoulder" index="121" loa="1" parent="r_acromioclavicular" value="r_shoulder"/>
     <enumeration default="-0.1949 1.1388 -0.0620" documentation="https://en.wikipedia.org/wiki/Elbow" index="122" loa="1" parent="r_shoulder" value="r_elbow"/>
     <enumeration alias="r_wrist" default="-0.1959 0.8694 -0.0521" documentation="https://en.wikipedia.org/wiki/Wrist" index="123" loa="1" parent="r_elbow" value="r_radiocarpal"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Midcarpal_joint" index="124" loa="4" parent="r_radiocarpal" value="r_midcarpal_1"/>
     <enumeration alias="r_thumb1" default="-0.1899 0.8502 -0.0473" documentation="https://en.wikipedia.org/wiki/Carpometacarpal_joint" index="125" loa="2" parent="r_midcarpal_1" value="r_carpometacarpal_1"/>
     <enumeration alias="r_thumb2" default="-0.1874 0.8256 0.0306" documentation="https://en.wikipedia.org/wiki/Metacarpophalangeal_joint" index="126" loa="2" parent="r_carpometacarpal_1" value="r_metacarpophalangeal_1"/>
     <enumeration alias="r_thumb3" default="-0.1864 0.8190 0.0506" documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_the_hand" index="127" loa="2" parent="r_metacarpophalangeal_1" value="r_carpal_interphalangeal_1"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Midcarpal_joint" index="128" loa="4" parent="r_radiocarpal" value="r_midcarpal_2"/>
     <enumeration alias="r_index0,r_carpometacarpal" documentation="https://en.wikipedia.org/wiki/Carpometacarpal_joint" index="129" loa="2" parent="r_midcarpal_2" value="r_carpometacarpal_2"/>
     <enumeration alias="r_index1,r_metacarpophalangeal" default="-0.1961 0.8055 -0.0218" documentation="https://en.wikipedia.org/wiki/Metacarpophalangeal_joint" index="130" loa="2" parent="r_carpometacarpal_2" value="r_metacarpophalangeal_2"/>
     <enumeration alias="r_index2,r_carpal_proximal_interphalangeal" default="-0.1954 0.7393 -0.0185" documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_the_hand" index="131" loa="2" parent="r_metacarpophalangeal_2" value="r_carpal_proximal_interphalangeal_2"/>
     <enumeration alias="r_index3,r_carpal_distal_interphalangeal" default="-0.1945 0.7169 -0.0173" documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_the_hand" index="132" loa="2" parent="r_carpal_proximal_interphalangeal_2" value="r_carpal_distal_interphalangeal_2"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Midcarpal_joint" index="133" loa="4" parent="r_radiocarpal" value="r_midcarpal_3"/>
     <enumeration alias="r_middle0" default="-0.1972 0.8060 -0.0468" documentation="https://en.wikipedia.org/wiki/Carpometacarpal_joint" index="134" loa="2" parent="r_midcarpal_3" value="r_carpometacarpal_3"/>
     <enumeration alias="r_middle1" default="-0.1972 0.7849 -0.0468" documentation="https://en.wikipedia.org/wiki/Metacarpophalangeal_joint" index="135" loa="2" parent="r_carpometacarpal_3" value="r_metacarpophalangeal_3"/>
     <enumeration alias="r_middle2" default="-0.1950 0.7304 -0.0441" documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_the_hand" index="136" loa="2" parent="r_metacarpophalangeal_3" value="r_carpal_proximal_interphalangeal_3"/>
     <enumeration alias="r_middle3" default="-0.1939 0.7042 -0.0432" documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_the_hand" index="137" loa="2" parent="r_carpal_proximal_interphalangeal_3" value="r_carpal_distal_interphalangeal_3"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Midcarpal_joint" index="138" loa="4" parent="r_radiocarpal" value="r_midcarpal_4_5"/>
     <enumeration alias="r_ring0" default="-0.1951 0.8049 -0.0732" documentation="https://en.wikipedia.org/wiki/Carpometacarpal_joint" index="139" loa="2" parent="r_midcarpal_4_5" value="r_carpometacarpal_4"/>
     <enumeration alias="r_ring1" default="-0.1951 0.7845 -0.0732" documentation="https://en.wikipedia.org/wiki/Metacarpophalangeal_joint" index="140" loa="2" parent="r_carpometacarpal_4" value="r_metacarpophalangeal_4"/>
     <enumeration alias="r_ring2" default="-0.1920 0.7318 -0.0716" documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_the_hand" index="141" loa="2" parent="r_metacarpophalangeal_4" value="r_carpal_proximal_interphalangeal_4"/>
     <enumeration alias="r_ring3" default="-0.1908 0.7077 -0.0706" documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_the_hand" index="142" loa="2" parent="r_carpal_proximal_interphalangeal_4" value="r_carpal_distal_interphalangeal_4"/>
     <enumeration alias="r_pinky0" default="-0.1926 0.8096 -0.0975" documentation="https://en.wikipedia.org/wiki/Carpometacarpal_joint" index="143" loa="2" parent="r_midcarpal_4_5" value="r_carpometacarpal_5"/>
     <enumeration alias="r_pinky1" default="-0.1926 0.7896 -0.0975" documentation="https://en.wikipedia.org/wiki/Metacarpophalangeal_joint" index="144" loa="2" parent="r_carpometacarpal_5" value="r_metacarpophalangeal_5"/>
     <enumeration alias="r_pinky2" default="-0.1902 0.7483 -0.0963" documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_the_hand" index="145" loa="2" parent="r_metacarpophalangeal_5" value="r_carpal_proximal_interphalangeal_5"/>
     <enumeration alias="r_pinky3" default="-0.1908 0.7540 -0.0960" documentation="https://en.wikipedia.org/wiki/Interphalangeal_joints_of_the_hand" index="146" loa="2" parent="r_carpal_proximal_interphalangeal_5" value="r_carpal_distal_interphalangeal_5"/>
    </field>
    <field acceptableNodeTypes="HAnimJoint|HAnimSegment" accessType="inputOnly" name="removeChildren" type="MFNode"/>
    <field accessType="inputOutput" default="0 0 1 0" description="Orientation of children relative to local coordinate system." name="rotation" type="SFRotation"/>
    <field accessType="inputOutput" default="1 1 1" description="Non-uniform x-y-z scale of child coordinate system, adjusted by center and scaleOrientation." minExclusive="0" name="scale" type="SFVec3f"/>
    <field accessType="inputOutput" default="0 0 1 0" description="Preliminary rotation of coordinate system before scaling (to allow scaling around arbitrary orientations)." name="scaleOrientation" type="SFRotation"/>
    <field accessType="inputOutput" description="Coordinate index values referencing which vertices are influenced by the HAnimJoint." minInclusive="0" name="skinCoordIndex" type="MFInt32"/>
    <field accessType="inputOutput" description="Weight deformation values for the corresponding values in the skinCoordIndex field." name="skinCoordWeight" type="MFFloat"/>
    <field accessType="inputOutput" default="0 0 0" description="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)." maxInclusive="1" minInclusive="0" name="stiffness" type="MFFloat"/>
    <field accessType="inputOutput" default="0 0 0" description="Position of children relative to local coordinate system." name="translation" type="SFVec3f"/>
    <field accessType="inputOutput" default="0 0 0" description="Upper limit for maximum joint rotation in radians." name="ulimit" type="MFFloat"/>
    <field accessType="inputOutput" default="true" description="Whether or not renderable content within this node is visually displayed." inheritedFrom="X3DBoundedObject" name="visible" type="SFBool"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="containerFieldChoicesHAnimJoint"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
     <NodeContentModel name="HAnimDisplacer"/>
     <NodeContentModel name="HAnimJoint"/>
     <NodeContentModel name="HAnimSegment"/>
     <NodeContentModel name="ProtoInstance"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="HAnimMotion">
   <InterfaceDefinition appinfo="An HAnimMotion node supports discrete frame-by-frame playback for HAnim motion data animation." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/hanim.html#HAnimMotion">
    <componentInfo level="2" name="HAnim"/>
    <Inheritance baseType="X3DChildNode"/>
    <field accessType="inputOutput" description="list of number of channels for transformation, followed by transformation type of each channel of data." name="channels" type="SFString"/>
    <field accessType="inputOutput" description="boolean values for each channel indicating whether enabled." name="channelsEnabled" type="MFBool"/>
    <field accessType="outputOnly" description="cycleTime sends a time event at initial starting time and at beginning of each new cycle." minInclusive="0" name="cycleTime" type="SFTime"/>
    <field accessType="inputOutput" description="Author-provided prose that describes intended purpose of this node." name="description" type="SFString"/>
    <field accessType="outputOnly" description="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." minInclusive="0" name="elapsedTime" type="SFTime"/>
    <field accessType="inputOutput" default="true" description="Enables/disables node operation." name="enabled" type="SFBool"/>
    <field accessType="inputOutput" default="0" description="endFrame indicates final index of animated frame." minInclusive="0" name="endFrame" type="SFInt32"/>
    <field accessType="outputOnly" description="frameCount is computed at run time and indicates the total number of frames present in the animation, equaling the number of sets of channel data rows present in the values array." minInclusive="0" name="frameCount" type="SFInt32"/>
    <field accessType="inputOutput" default="0.1" description="frameDuration specifies the duration of each frame in seconds." minExclusive="0" name="frameDuration" type="SFTime"/>
    <field accessType="inputOutput" default="1" description="frameIncrement field controls whether playback direction is forwards or backwards, and also whether frames are skipped (for example, subsampled replay)." name="frameIncrement" type="SFInt32"/>
    <field accessType="inputOutput" default="0" description="frameIndex indicates index of current frame." minInclusive="0" name="frameIndex" type="SFInt32"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="inputOutput" description="joints field lists names of joints that raw motion data is to be applied to." name="joints" type="SFString"/>
    <field accessType="inputOutput" baseType="loaType" default="-1" description="Level Of Articulation 0." maxInclusive="4" minInclusive="-1" name="loa" type="SFInt32"/>
    <field accessType="inputOutput" default="false" description="Repeat indefinitely when loop=true, repeat only once when loop=false." name="loop" type="SFBool"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="Unique name attribute must be defined so that HAnimMotion node can be identified at run time for animation purposes." name="name" type="SFString"/>
    <field accessType="inputOnly" description="Send next output value in values array, using/updating various frame values as appropriate." name="next" type="SFBool"/>
    <field accessType="inputOnly" description="Send previous output value in values array, using/updating various frame values as appropriate." name="previous" type="SFBool"/>
    <field accessType="inputOutput" default="0" description="startFrame indicates initial index of animated frame." minInclusive="0" name="startFrame" type="SFInt32"/>
    <field accessType="inputOutput" description="values field contains all transformation values, ordered first by frame, then by joint, and then by transformation Sets of floats in the values array matching the order listed in joints and channels fields." name="values" type="MFFloat"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="motions" type="containerFieldChoicesHAnimMotion"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="HAnimSegment">
   <InterfaceDefinition appinfo="HAnimSegment node contains Shape geometry for each body segment, providing a visual representation of the skeleton segment." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/hanim.html#HAnimSegment">
    <componentInfo level="1" name="HAnim"/>
    <Inheritance baseType="X3DGroupingNode"/>
    <field acceptableNodeTypes="X3DChildNode" accessType="inputOnly" inheritedFrom="X3DGroupingNode" name="addChildren" type="MFNode">
     <componentInfo level="2" name="Grouping"/>
    </field>
    <field accessType="initializeOnly" default="0 0 0" description="Bounding box center accompanies bboxSize and provides an optional hint for bounding box position offset from origin of local coordinate system." inheritedFrom="X3DGroupingNode" name="bboxCenter" type="SFVec3f"/>
    <field accessType="inputOutput" default="false" description="Whether to display bounding box for associated geometry, aligned with world coordinates." inheritedFrom="X3DGroupingNode" name="bboxDisplay" type="SFBool"/>
    <field accessType="initializeOnly" baseType="bboxSizeType" default="-1 -1 -1" description="Bounding box size is usually omitted, and can easily be calculated automatically by an X3D player at scene-loading time with minimal computational cost." inheritedFrom="X3DGroupingNode" name="bboxSize" type="SFVec3f"/>
    <field accessType="inputOutput" default="0 0 0" description="Location within segment of center of mass." name="centerOfMass" type="SFVec3f"/>
    <field acceptableNodeTypes="X3DChildNode" accessType="inputOutput" description="Grouping nodes contain an ordered list of children nodes." inheritedFrom="X3DGroupingNode" name="children" type="MFNode"/>
    <field acceptableNodeTypes="Coordinate|CoordinateDouble" accessType="inputOutput" default="NULL" description="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." name="coord" type="SFNode"/>
    <field accessType="inputOutput" description="Author-provided prose that describes intended purpose of this node." name="description" type="SFString"/>
    <field acceptableNodeTypes="HAnimDisplacer" accessType="inputOutput" description="the displacers field stores HAnimDisplacer objects for a particular HAnimSegment object." name="displacers" type="MFNode"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="inputOutput" default="0" description="Total mass of the segment, 0 if not available, defined in mass base units (default is kilograms)." minInclusive="0" name="mass" type="SFFloat"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" default="0 0 0 0 0 0 0 0 0" description="3x3 moments of inertia matrix." minInclusive="0" name="momentsOfInertia" type="MFFloat"/>
    <field accessType="inputOutput" additionalEnumerationValuesAllowed="true" baseType="xs:NMTOKEN" description="Unique name attribute must be defined so that HAnimSegment node can be identified at run time for animation purposes." name="name" simpleType="hanimSegmentNameValues" type="SFString">
     <enumeration documentation="https://en.wikipedia.org/wiki/Sacrum" index="1" loa="1" parent="humanoid_root" value="sacrum"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Pelvis" index="2" loa="1" parent="sacroiliac" value="pelvis"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Thigh" index="3" loa="1" parent="l_hip" value="l_thigh"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Calf_(leg)" index="4" loa="1" parent="l_knee" value="l_calf"/>
     <enumeration alias="l_hindfoot" documentation="https://en.wikipedia.org/wiki/Talus_bone" index="5" loa="1" parent="l_talocrural" value="l_talus"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Navicular_bone" index="6" loa="4" parent="l_talocalcaneonavicular" value="l_navicular"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Cuneiform_bones" index="7" loa="4" parent="l_cuneonavicular_1" value="l_cuneiform_1"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Metatarsal_bones" index="8" loa="4" parent="l_tarsometatarsal_1" value="l_metatarsal_1"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="9" loa="4" parent="l_metatarsophalangeal_1" value="l_tarsal_proximal_phalanx_1"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="10" loa="4" parent="l_tarsal_interphalangeal_1" value="l_tarsal_distal_phalanx_1"/>
     <enumeration alias="l_cuneiform" documentation="https://en.wikipedia.org/wiki/Cuneiform_bones" index="11" loa="4" parent="l_cuneonavicular_2" value="l_cuneiform_2"/>
     <enumeration alias="l_midproximal,l_metatarsal" documentation="https://en.wikipedia.org/wiki/Metatarsal_bones" index="12" loa="2" parent="l_tarsometatarsal_2" value="l_metatarsal_2"/>
     <enumeration alias="l_middistal,l_tarsal_proximal_phalanx" documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="13" loa="1" parent="l_metatarsophalangeal_2" value="l_tarsal_proximal_phalanx_2"/>
     <enumeration alias="l_tarsal_middle_phalanx" documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="14" loa="4" parent="l_tarsal_proximal_interphalangeal_2" value="l_tarsal_middle_phalanx_2"/>
     <enumeration alias="l_forefoot,l_tarsal_distal_phalanx" documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="15" loa="2" parent="l_tarsal_distal_interphalangeal_2" value="l_tarsal_distal_phalanx_2"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Cuneiform_bones" index="16" loa="4" parent="l_cuneonavicular_3" value="l_cuneiform_3"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Metatarsal_bones" index="17" loa="4" parent="l_tarsometatarsal_3" value="l_metatarsal_3"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="18" loa="4" parent="l_metatarsophalangeal_3" value="l_tarsal_proximal_phalanx_3"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="19" loa="4" parent="l_tarsal_proximal_interphalangeal_3" value="l_tarsal_middle_phalanx_3"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="20" loa="4" parent="l_tarsal_distal_interphalangeal_3" value="l_tarsal_distal_phalanx_3"/>
     <enumeration alias="l_calcaneum" documentation="https://en.wikipedia.org/wiki/Calcaneus" index="21" loa="4" parent="l_calcaneocuboid" value="l_calcaneus"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Cuboid" index="22" loa="4" parent="l_transversetarsal" value="l_cuboid"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Metatarsal_bones" index="23" loa="4" parent="l_tarsometatarsal_4" value="l_metatarsal_4"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="24" loa="4" parent="l_metatarsophalangeal_4" value="l_tarsal_proximal_phalanx_4"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="25" loa="4" parent="l_tarsal_proximal_interphalangeal_4" value="l_tarsal_middle_phalanx_4"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="26" loa="4" parent="l_tarsal_distal_interphalangeal_4" value="l_tarsal_distal_phalanx_4"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Metatarsal_bones" index="27" loa="4" parent="l_tarsometatarsal_5" value="l_metatarsal_5"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="28" loa="4" parent="l_metatarsophalangeal_5" value="l_tarsal_proximal_phalanx_5"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="29" loa="4" parent="l_tarsal_proximal_interphalangeal_5" value="l_tarsal_middle_phalanx_5"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="30" loa="4" parent="l_tarsal_distal_interphalangeal_5" value="l_tarsal_distal_phalanx_5"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Thigh" index="31" loa="1" parent="r_hip" value="r_thigh"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Calf_(leg)" index="32" loa="1" parent="r_knee" value="r_calf"/>
     <enumeration alias="r_hindfoot" documentation="https://en.wikipedia.org/wiki/Talus_bone" index="33" loa="1" parent="r_talocrural" value="r_talus"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Navicular_bone" index="34" loa="4" parent="r_talocalcaneonavicular" value="r_navicular"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Cuneiform_bones" index="35" loa="4" parent="r_cuneonavicular_1" value="r_cuneiform_1"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Metatarsal_bones" index="36" loa="4" parent="r_tarsometatarsal_1" value="r_metatarsal_1"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="37" loa="4" parent="r_metatarsophalangeal_1" value="r_tarsal_proximal_phalanx_1"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="38" loa="4" parent="r_tarsal_interphalangeal_1" value="r_tarsal_distal_phalanx_1"/>
     <enumeration alias="r_cuneiform" documentation="https://en.wikipedia.org/wiki/Cuneiform_bones" index="39" loa="4" parent="r_cuneonavicular_2" value="r_cuneiform_2"/>
     <enumeration alias="r_midproximal" documentation="https://en.wikipedia.org/wiki/Metatarsal_bones" index="40" loa="2" parent="r_tarsometatarsal_2" value="r_metatarsal_2"/>
     <enumeration alias="r_middistal,r_tarsal_proximal_phalanx" documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="41" loa="1" parent="r_metatarsophalangeal_2" value="r_tarsal_proximal_phalanx_2"/>
     <enumeration alias="r_tarsal_middle_phalanx" documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="42" loa="4" parent="r_tarsal_proximal_interphalangeal_2" value="r_tarsal_middle_phalanx_2"/>
     <enumeration alias="r_forefoot,r_tarsal_distal_phalanx" documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="43" loa="2" parent="r_tarsal_distal_interphalangeal_2" value="r_tarsal_distal_phalanx_2"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Cuneiform_bones" index="44" loa="4" parent="r_cuneonavicular_3" value="r_cuneiform_3"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Metatarsal_bones" index="45" loa="4" parent="r_tarsometatarsal_3" value="r_metatarsal_3"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="46" loa="4" parent="r_metatarsophalangeal_3" value="r_tarsal_proximal_phalanx_3"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="47" loa="4" parent="r_tarsal_proximal_interphalangeal_3" value="r_tarsal_middle_phalanx_3"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="48" loa="4" parent="r_tarsal_distal_interphalangeal_3" value="r_tarsal_distal_phalanx_3"/>
     <enumeration alias="r_calcaneum" documentation="https://en.wikipedia.org/wiki/Calcaneus" index="49" loa="4" parent="r_calcaneocuboid" value="r_calcaneus"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Cuboid" index="50" loa="4" parent="r_transversetarsal" value="r_cuboid"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Metatarsal_bones" index="51" loa="4" parent="r_tarsometatarsal_4" value="r_metatarsal_4"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="52" loa="4" parent="r_metatarsophalangeal_4" value="r_tarsal_proximal_phalanx_4"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="53" loa="4" parent="r_tarsal_proximal_interphalangeal_4" value="r_tarsal_middle_phalanx_4"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="54" loa="4" parent="r_tarsal_distal_interphalangeal_4" value="r_tarsal_distal_phalanx_4"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Metatarsal_bones" index="55" loa="4" parent="r_tarsometatarsal_5" value="r_metatarsal_5"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="56" loa="4" parent="r_metatarsophalangeal_5" value="r_tarsal_proximal_phalanx_5"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="57" loa="4" parent="r_tarsal_proximal_interphalangeal_5" value="r_tarsal_middle_phalanx_5"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="58" loa="4" parent="r_tarsal_distal_interphalangeal_5" value="r_tarsal_distal_phalanx_5"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Vertebral_column" index="59" loa="1" parent="vl5" value="l5"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Vertebral_column" index="60" loa="3" parent="vl4" value="l4"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Vertebral_column" index="61" loa="2" parent="vl3" value="l3"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Vertebral_column" index="62" loa="3" parent="vl2" value="l2"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Vertebral_column" index="63" loa="2" parent="vl1" value="l1"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Vertebral_column" index="64" loa="3" parent="vt12" value="t12"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Vertebral_column" index="65" loa="3" parent="vt11" value="t11"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Vertebral_column" index="66" loa="2" parent="vt10" value="t10"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Vertebral_column" index="67" loa="3" parent="vt9" value="t9"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Vertebral_column" index="68" loa="3" parent="vt8" value="t8"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Vertebral_column" index="69" loa="3" parent="vt7" value="t7"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Vertebral_column" index="70" loa="2" parent="vt6" value="t6"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Vertebral_column" index="71" loa="3" parent="vt5" value="t5"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Vertebral_column" index="72" loa="3" parent="vt4" value="t4"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Vertebral_column" index="73" loa="3" parent="vt3" value="t3"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Vertebral_column" index="74" loa="3" parent="vt2" value="t2"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Vertebral_column" index="75" loa="2" parent="vt1" value="t1"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Vertebral_column" index="76" loa="3" parent="vc7" value="c7"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Vertebral_column" index="77" loa="3" parent="vc6" value="c6"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Vertebral_column" index="78" loa="3" parent="vc5" value="c5"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Vertebral_column" index="79" loa="2" parent="vc4" value="c4"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Vertebral_column" index="80" loa="3" parent="vc3" value="c3"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Vertebral_column" index="81" loa="2" parent="vc2" value="c2"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Vertebral_column" index="82" loa="3" parent="vc1" value="c1"/>
     <enumeration alias="head" documentation="https://en.wikipedia.org/wiki/Skull" index="83" loa="1" parent="skullbase" value="skull"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Eyelid" index="84" loa="3" parent="l_eyelid_joint" value="l_eyelid"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Eyelid" index="85" loa="3" parent="r_eyelid_joint" value="r_eyelid"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Eye" index="86" loa="3" parent="l_eyeball_joint" value="l_eyeball"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Eye" index="87" loa="3" parent="r_eyeball_joint" value="r_eyeball"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Eyebrow" index="88" loa="3" parent="l_eyebrow_joint" value="l_eyebrow"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Eyebrow" index="89" loa="3" parent="r_eyebrow_joint" value="r_eyebrow"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Jaw" index="90" loa="3" parent="temporomandibular" value="jaw"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Clavicle" index="91" loa="2" parent="l_sternoclavicular" value="l_clavicle"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Scapula" index="92" loa="2" parent="l_acromioclavicular" value="l_scapula"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Arm" index="93" loa="1" parent="l_shoulder" value="l_upperarm"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Forearm" index="94" loa="1" parent="l_elbow" value="l_forearm"/>
     <enumeration alias="l_hand" documentation="https://en.wikipedia.org/wiki/Carpal_bones" index="95" loa="1" parent="l_radiocarpal" value="l_carpal"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Trapezium_(bone)" index="96" loa="4" parent="l_midcarpal_1" value="l_trapezium"/>
     <enumeration alias="l_thumb_metacarpal" documentation="https://en.wikipedia.org/wiki/Metacarpal_bones" index="97" loa="2" parent="l_carpometacarpal_1" value="l_metacarpal_1"/>
     <enumeration alias="l_thumb_proximal" documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="98" loa="2" parent="l_metacarpophalangeal_1" value="l_carpal_proximal_phalanx_1"/>
     <enumeration alias="l_thumb_distal" documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="99" loa="2" parent="l_carpal_interphalangeal_1" value="l_carpal_distal_phalanx_1"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Trapezoid_bone" index="100" loa="4" parent="l_midcarpal_2" value="l_trapezoid"/>
     <enumeration alias="l_index_metacarpal" documentation="https://en.wikipedia.org/wiki/Metacarpal_bones" index="101" loa="2" parent="l_carpometacarpal_2" value="l_metacarpal_2"/>
     <enumeration alias="l_index_proximal,l_carpal_proximal_phalanx" documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="102" loa="2" parent="l_metacarpophalangeal_2" value="l_carpal_proximal_phalanx_2"/>
     <enumeration alias="l_index_middle,l_carpal_middle_phalanx" documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="103" loa="2" parent="l_carpal_proximal_interphalangeal_2" value="l_carpal_middle_phalanx_2"/>
     <enumeration alias="l_index_distal,l_carpal_distal_phalanx" documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="104" loa="2" parent="l_carpal_distal_interphalangeal_2" value="l_carpal_distal_phalanx_2"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Capitate_bone" index="105" loa="4" parent="l_midcarpal_3" value="l_capitate"/>
     <enumeration alias="l_middle_metacarpal" documentation="https://en.wikipedia.org/wiki/Metacarpal_bones" index="106" loa="2" parent="l_carpometacarpal_3" value="l_metacarpal_3"/>
     <enumeration alias="l_middle_proximal" documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="107" loa="2" parent="l_metacarpophalangeal_3" value="l_carpal_proximal_phalanx_3"/>
     <enumeration alias="l_middle_middle" documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="108" loa="2" parent="l_carpal_proximal_interphalangeal_3" value="l_carpal_middle_phalanx_3"/>
     <enumeration alias="l_middle_distal" documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="109" loa="2" parent="l_carpal_distal_interphalangeal_3" value="l_carpal_distal_phalanx_3"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Hamate_bone" index="110" loa="4" parent="l_midcarpal_4_5" value="l_hamate"/>
     <enumeration alias="l_ring_metacarpal" documentation="https://en.wikipedia.org/wiki/Metacarpal_bones" index="111" loa="2" parent="l_carpometacarpal_4" value="l_metacarpal_4"/>
     <enumeration alias="l_ring_proximal" documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="112" loa="2" parent="l_metacarpophalangeal_4" value="l_carpal_proximal_phalanx_4"/>
     <enumeration alias="l_ring_middle" documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="113" loa="2" parent="l_carpal_proximal_interphalangeal_4" value="l_carpal_middle_phalanx_4"/>
     <enumeration alias="l_ring_distal" documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="114" loa="2" parent="l_carpal_distal_interphalangeal_4" value="l_carpal_distal_phalanx_4"/>
     <enumeration alias="l_pinky_metacarpal" documentation="https://en.wikipedia.org/wiki/Metacarpal_bones" index="115" loa="2" parent="l_carpometacarpal_5" value="l_metacarpal_5"/>
     <enumeration alias="l_pinky_proximal" documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="116" loa="2" parent="l_metacarpophalangeal_5" value="l_carpal_proximal_phalanx_5"/>
     <enumeration alias="l_pinky_middle" documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="117" loa="2" parent="l_carpal_proximal_interphalangeal_5" value="l_carpal_middle_phalanx_5"/>
     <enumeration alias="l_pinky_distal" documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="118" loa="2" parent="l_carpal_distal_interphalangeal_5" value="l_carpal_distal_phalanx_5"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Clavicle" index="119" loa="2" parent="r_sternoclavicular" value="r_clavicle"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Scapula" index="120" loa="2" parent="r_acromioclavicular" value="r_scapula"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Arm" index="121" loa="1" parent="r_shoulder" value="r_upperarm"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Forearm" index="122" loa="1" parent="r_elbow" value="r_forearm"/>
     <enumeration alias="r_hand" documentation="https://en.wikipedia.org/wiki/Carpal_bones" index="123" loa="1" parent="r_radiocarpal" value="r_carpal"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Trapezium_(bone)" index="124" loa="4" parent="r_midcarpal_1" value="r_trapezium"/>
     <enumeration alias="r_thumb_metacarpal" documentation="https://en.wikipedia.org/wiki/Metacarpal_bones" index="125" loa="2" parent="r_carpometacarpal_1" value="r_metacarpal_1"/>
     <enumeration alias="r_thumb_proximal" documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="126" loa="2" parent="r_metacarpophalangeal_1" value="r_carpal_proximal_phalanx_1"/>
     <enumeration alias="r_thumb_distal" documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="127" loa="2" parent="r_carpal_interphalangeal_1" value="r_carpal_distal_phalanx_1"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Trapezoid_bone" index="128" loa="4" parent="r_midcarpal_2" value="r_trapezoid"/>
     <enumeration alias="r_index_metacarpal" documentation="https://en.wikipedia.org/wiki/Metacarpal_bones" index="129" loa="2" parent="r_carpometacarpal_2" value="r_metacarpal_2"/>
     <enumeration alias="r_index_proximal,r_carpal_proximal_phalanx" documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="130" loa="2" parent="r_metacarpophalangeal_2" value="r_carpal_proximal_phalanx_2"/>
     <enumeration alias="r_index_middle,r_carpal_middle_phalanx" documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="131" loa="2" parent="r_carpal_proximal_interphalangeal_2" value="r_carpal_middle_phalanx_2"/>
     <enumeration alias="r_index_distal,r_carpal_distal_phalanx" documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="132" loa="2" parent="r_carpal_distal_interphalangeal_2" value="r_carpal_distal_phalanx_2"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Capitate_bone" index="133" loa="4" parent="r_midcarpal_3" value="r_capitate"/>
     <enumeration alias="r_middle_metacarpal" documentation="https://en.wikipedia.org/wiki/Metacarpal_bones" index="134" loa="2" parent="r_carpometacarpal_3" value="r_metacarpal_3"/>
     <enumeration alias="r_middle_proximal" documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="135" loa="2" parent="r_metacarpophalangeal_3" value="r_carpal_proximal_phalanx_3"/>
     <enumeration alias="r_middle_middle" documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="136" loa="2" parent="r_carpal_proximal_interphalangeal_3" value="r_carpal_middle_phalanx_3"/>
     <enumeration alias="r_middle_distal" documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="137" loa="2" parent="r_carpal_distal_interphalangeal_3" value="r_carpal_distal_phalanx_3"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Hamate_bone" index="138" loa="4" parent="r_midcarpal_4_5" value="r_hamate"/>
     <enumeration alias="r_ring_metacarpal" documentation="https://en.wikipedia.org/wiki/Metacarpal_bones" index="139" loa="2" parent="r_carpometacarpal_4" value="r_metacarpal_4"/>
     <enumeration alias="r_ring_proximal" documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="140" loa="2" parent="r_metacarpophalangeal_4" value="r_carpal_proximal_phalanx_4"/>
     <enumeration alias="r_ring_middle" documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="141" loa="2" parent="r_carpal_proximal_interphalangeal_4" value="r_carpal_middle_phalanx_4"/>
     <enumeration alias="r_ring_distal" documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="142" loa="2" parent="r_carpal_distal_interphalangeal_4" value="r_carpal_distal_phalanx_4"/>
     <enumeration alias="r_pinky_metacarpal" documentation="https://en.wikipedia.org/wiki/Metacarpal_bones" index="143" loa="2" parent="r_carpometacarpal_5" value="r_metacarpal_5"/>
     <enumeration alias="r_pinky_proximal" documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="144" loa="2" parent="r_metacarpophalangeal_5" value="r_carpal_proximal_phalanx_5"/>
     <enumeration alias="r_pinky_middle" documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="145" loa="2" parent="r_carpal_proximal_interphalangeal_5" value="r_carpal_middle_phalanx_5"/>
     <enumeration alias="r_pinky_distal" documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="146" loa="2" parent="r_carpal_distal_interphalangeal_5" value="r_carpal_distal_phalanx_5"/>
    </field>
    <field acceptableNodeTypes="X3DChildNode" accessType="inputOnly" inheritedFrom="X3DGroupingNode" name="removeChildren" type="MFNode">
     <componentInfo level="2" name="Grouping"/>
    </field>
    <field accessType="inputOutput" default="true" description="Whether or not renderable content within this node is visually displayed." inheritedFrom="X3DGroupingNode" name="visible" type="SFBool"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="containerFieldChoicesHAnimSegment"/>
    <ContentModel>
     <GroupContentModel maxOccurs="unbounded" minOccurs="0" name="ChildContentModel"/>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
     <NodeContentModel name="HAnimDisplacer"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="HAnimSite">
   <InterfaceDefinition appinfo='An HAnimSite node serves three purposes: (a) define an "end effector" location which can be used by an inverse kinematics system, (b) define an attachment point for accessories such as jewelry and clothing, and (c) define a location for a Viewpoint virtual camera in the reference frame of an HAnimSegment (such as a view "through the eyes" of the humanoid for use in multi-user worlds).' specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/hanim.html#HAnimSite">
    <componentInfo level="1" name="HAnim"/>
    <Inheritance baseType="X3DGroupingNode"/>
    <field acceptableNodeTypes="X3DChildNode" accessType="inputOnly" inheritedFrom="X3DGroupingNode" name="addChildren" type="MFNode">
     <componentInfo level="2" name="Grouping"/>
    </field>
    <field accessType="initializeOnly" default="0 0 0" description="Bounding box center accompanies bboxSize and provides an optional hint for bounding box position offset from origin of local coordinate system." inheritedFrom="X3DGroupingNode" name="bboxCenter" type="SFVec3f"/>
    <field accessType="inputOutput" default="false" description="Whether to display bounding box for associated geometry, aligned with world coordinates." inheritedFrom="X3DGroupingNode" name="bboxDisplay" type="SFBool"/>
    <field accessType="initializeOnly" baseType="bboxSizeType" default="-1 -1 -1" description="Bounding box size is usually omitted, and can easily be calculated automatically by an X3D player at scene-loading time with minimal computational cost." inheritedFrom="X3DGroupingNode" name="bboxSize" type="SFVec3f"/>
    <field accessType="inputOutput" default="0 0 0" description="Default location of this HAnimSite, i." name="center" type="SFVec3f"/>
    <field acceptableNodeTypes="X3DChildNode" accessType="inputOutput" description="Grouping nodes contain an ordered list of children nodes." inheritedFrom="X3DGroupingNode" name="children" type="MFNode"/>
    <field accessType="inputOutput" description="Author-provided prose that describes intended purpose of this node." name="description" type="SFString"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" additionalEnumerationValuesAllowed="true" baseType="xs:NMTOKEN" description="Unique name attribute must be defined so that HAnimSite node can be identified at run time for animation purposes." name="name" simpleType="hanimFeaturePointNameValues" type="SFString">
     <enumeration alias="skull_tip,vertex" appinfo="CAESAR 2003 skull_vertex matches ISO 7250-1 part 5.22 Vertex (top of head). No corresponding landmark provided in CAESAR 2018." default="0.0050 1.7504 0.0055" documentation="https://en.wikipedia.org/wiki/Vertex_(anatomy)" index="0" loa="1" parent="skull" value="skull_vertex"/>
     <enumeration appinfo="glabella is between the eyebrows and above the nose." documentation="https://en.wikipedia.org/wiki/Glabella" index="1" loa="1" parent="skull" value="glabella"/>
     <enumeration appinfo="osseocartilaginous junction of the nasal dorsum." default="0.0058 1.6316 0.0852" documentation="https://en.wikipedia.org/wiki/Human_head" index="2" loa="1" parent="skull" value="sellion"/>
     <enumeration appinfo="Left Infraorbitale foramen is opening in maxillary bone of skull located below the infraorbital margin of the orbit." default="0.0341 1.6171 0.0752" documentation="https://en.wikipedia.org/wiki/Infraorbital_foramen" index="3" loa="1" parent="skull" value="l_infraorbitale"/>
     <enumeration appinfo="notch just above the tragus of the ear." default="0.0739 1.6348 0.0282" documentation="https://en.wiktionary.org/wiki/tragion" index="4" loa="1" parent="skull" value="l_tragion"/>
     <enumeration appinfo="Left Gonion is midpoint of mandibular angle of the jaw." default="0.0631 1.5530 0.0330" documentation="https://en.wikipedia.org/wiki/Angle_of_the_mandible" index="5" loa="1" parent="skull" value="l_gonion"/>
     <enumeration appinfo="Right Infraorbitale foramen is opening in maxillary bone of skull located below the infraorbital margin of the orbit." default="-0.0237 1.6171 0.0752" documentation="https://en.wikipedia.org/wiki/Infraorbital_foramen" index="6" loa="1" parent="skull" value="r_infraorbitale"/>
     <enumeration appinfo="notch just above the tragus of the ear." default="-0.0646 1.6347 0.0302" documentation="https://en.wiktionary.org/wiki/tragion" index="7" loa="1" parent="skull" value="r_tragion"/>
     <enumeration appinfo="Right Gonion is midpoint of the mandibular angle of the jaw." default="-0.0520 1.5529 0.0347" documentation="https://en.wikipedia.org/wiki/Angle_of_the_mandible" index="8" loa="1" parent="skull" value="r_gonion"/>
     <enumeration appinfo="center point above tip of chin." default="0.0061 1.5410 0.0805" documentation="https://www.cs.uu.nl/groups/MG/multimedia/publications/art/rsfp05.pdf" index="9" loa="3" parent="jaw" value="supramenton"/>
     <enumeration default="0.0064 1.520 -0.0815" documentation="https://www.merriam-webster.com/dictionary/cervicale" index="10" loa="2" parent="t1" value="cervicale"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Adam_s_apple" index="11" loa="2" parent="c2" value="adams_apple"/>
     <enumeration appinfo="Suprasternale." default="0.0084 1.4714 0.0551" documentation="https://medical-dictionary.thefreedictionary.com/spatium+suprasternale" index="12" loa="2" parent="t1" value="suprasternale"/>
     <enumeration default="0.0085 1.2995 0.1147" documentation="https://medical-dictionary.thefreedictionary.com/spatium+substernale" index="13" loa="2" parent="t10" value="substernale"/>
     <enumeration alias="l_clavicale" default="0.0271 1.4943 0.0394" documentation="https://en.wikipedia.org/wiki/Clavicle" index="14" loa="2" parent="l_clavicle" value="l_clavicle"/>
     <enumeration default="0.2032 1.4760 -0.0490" documentation="https://en.wikipedia.org/wiki/Acromion" index="15" loa="2" parent="l_clavicle" value="l_acromion"/>
     <enumeration alias="l_axilla_ant" appinfo="Left Axilla Proximal (Anterior)." default="0.1777 1.4065 -0.0075" documentation="https://en.wikipedia.org/wiki/Axilla" index="16" loa="2" parent="l_clavicle" value="l_axilla_proximal"/>
     <enumeration alias="l_axilla_post" appinfo="Left Axilla Distal (Posterior)." default="0.1706 1.4072 -0.0875" documentation="https://en.wikipedia.org/wiki/Axilla" index="17" loa="2" parent="l_clavicle" value="l_axilla_distal"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Axilla" index="18" loa="2" parent="l_clavicle" value="l_axilla_posterior_folds"/>
     <enumeration alias="r_clavicale" default="-0.0115 1.4943 0.0400" documentation="https://en.wikipedia.org/wiki/Clavicle" index="19" loa="2" parent="r_clavicle" value="r_clavicle"/>
     <enumeration default="-0.1905 1.4791 -0.0431" documentation="https://en.wikipedia.org/wiki/Acromion" index="20" loa="2" parent="r_clavicle" value="r_acromion"/>
     <enumeration alias="r_axilla_ant" appinfo="Right Axilla Proximal (Anterior)." default="-0.1626 1.4072 -0.0031" documentation="https://en.wikipedia.org/wiki/Axilla" index="21" loa="2" parent="r_clavicle" value="r_axilla_proximal"/>
     <enumeration alias="r_axilla_post" appinfo="Right Axilla Distal (Posterior)." default="-0.1603 1.4098 -0.0826" documentation="https://en.wikipedia.org/wiki/Axilla" index="22" loa="2" parent="r_clavicle" value="r_axilla_distal"/>
     <enumeration appinfo="Right Posterior Axillary Folds." documentation="https://en.wikipedia.org/wiki/Axilla" index="23" loa="2" parent="r_clavicle" value="r_axilla_posterior_folds"/>
     <enumeration alias="middle back" documentation="https://en.wikipedia.org/wiki/Vertebral_column" index="24" loa="3" parent="t5" value="spine_1_middle_back"/>
     <enumeration alias="lower back" default="0.0049 1.1908 -0.1113" documentation="https://en.wikipedia.org/wiki/Vertebral_column" index="25" loa="3" parent="l2" value="spine_2_lower_back"/>
     <enumeration alias="waist_preferred_ant" documentation="https://en.wikipedia.org/wiki/Waist" index="26" loa="3" parent="l2" value="waist_preferred_anterior"/>
     <enumeration alias="waist_preferred_post" default="0.2900 1.0915 -0.1091" documentation="https://en.wikipedia.org/wiki/Waist" index="27" loa="3" parent="l2" value="waist_preferred_posterior"/>
     <enumeration alias="l_rib10_midspine" default="0.0871 1.1925 0.0992" documentation="https://en.wikipedia.org/wiki/Rib" index="28" loa="3" parent="l2" value="l_rib10"/>
     <enumeration alias="Left Bustpoint" default="0.0918 1.3382 0.1192" documentation="https://www.cdc.gov/niosh/data/datasets/rd-1008-2016-0/pdfs/EMT-Data-Dictionary-508.pdf" index="29" loa="3" parent="t9" value="l_thelion"/>
     <enumeration alias="r_rib10_midspine" default="-0.0711 1.1941 0.1016" documentation="https://en.wikipedia.org/wiki/Rib" index="30" loa="3" parent="l2" value="r_rib10"/>
     <enumeration alias="Right Bustpoint" default="-0.0736 1.3385 0.1217" documentation="https://www.cdc.gov/niosh/data/datasets/rd-1008-2016-0/pdfs/EMT-Data-Dictionary-508.pdf" index="31" loa="3" parent="t9" value="r_thelion"/>
     <enumeration alias="Left Anterior Superior Iliac Spine" default="0.0925 0.9983 0.1052" documentation="https://en.wikipedia.org/wiki/Anterior_superior_iliac_spine" index="32" loa="1" parent="pelvis" value="l_asis"/>
     <enumeration default="0.1612 1.0537 0.0008" documentation="https://www.topendsports.com/testing/skinfold-iliac-crest.htm" index="33" loa="1" parent="pelvis" value="l_iliocristale"/>
     <enumeration alias="Left Posterior Superior Iliac Spine" default="0.0774 1.0190 -0.1151" documentation="https://en.wikipedia.org/wiki/Posterior_superior_iliac_spine" index="34" loa="1" parent="pelvis" value="l_psis"/>
     <enumeration alias="Right Anterior Superior Iliac Spine" default="-0.0887 1.0021 0.1112" documentation="https://en.wikipedia.org/wiki/Anterior_superior_iliac_spine" index="35" loa="1" parent="pelvis" value="r_asis"/>
     <enumeration default="-0.1525 1.0628 0.0035" documentation="https://www.topendsports.com/testing/skinfold-iliac-crest.htm" index="36" loa="1" parent="pelvis" value="r_iliocristale"/>
     <enumeration alias="Right Posterior Superior Iliac Spine" default="-0.0716 1.0190 -0.1138" documentation="https://en.wikipedia.org/wiki/Posterior_superior_iliac_spine" index="37" loa="1" parent="pelvis" value="r_psis"/>
     <enumeration default="0.0034 0.8266 0.0257" documentation="https://en.wikipedia.org/wiki/Crotch" index="38" loa="1" parent="pelvis" value="crotch"/>
     <enumeration alias="l_femoral_lateral_epicn,l_femoral_lateral_epicondyles" default="0.1598 0.4967 0.0297" documentation="https://en.wikipedia.org/wiki/Lateral_epicondyle_of_the_femur" index="39" loa="1" parent="l_thigh" value="l_femoral_lateral_epicondyle"/>
     <enumeration alias="l_femoral_medial_epicn,l_femoral_medial_epicondyles" default="0.1598 0.4967 0.0297" documentation="https://en.wikipedia.org/wiki/Medial_epicondyle_of_the_femur" index="40" loa="1" parent="l_thigh" value="l_femoral_medial_epicondyle"/>
     <enumeration alias="l_kneecap" documentation="https://en.wikipedia.org/wiki/Patella" index="41" loa="1" parent="l_thigh" value="l_suprapatella"/>
     <enumeration alias="l_trochanter" documentation="https://en.wikipedia.org/wiki/Trochanter" index="42" loa="1" parent="pelvis" value="l_trochanterion"/>
     <enumeration alias="r_femoral_lateral_epicn,r_femoral_lateral_epicondyles" default="-0.1421 0.4992 0.0310" documentation="https://en.wikipedia.org/wiki/Lateral_epicondyle_of_the_femur" index="43" loa="1" parent="r_thigh" value="r_femoral_lateral_epicondyle"/>
     <enumeration alias="r_femoral_medial_epicn,r_femoral_medial_epicondyles" default="-0.0221 0.5014 0.0289" documentation="https://en.wikipedia.org/wiki/Medial_epicondyle_of_the_femur" index="44" loa="1" parent="r_thigh" value="r_femoral_medial_epicondyle"/>
     <enumeration alias="r_kneecap" documentation="https://en.wikipedia.org/wiki/Patella" index="45" loa="1" parent="r_thigh" value="r_suprapatella"/>
     <enumeration alias="r_trochanter" documentation="https://en.wikipedia.org/wiki/Trochanter" index="46" loa="1" parent="pelvis" value="r_trochanterion"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Accessory_navicular_bone" index="47" loa="1" parent="l_calf" value="l_tibiale"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Malleolus" index="48" loa="1" parent="l_calf" value="l_medial_malleolus"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Malleolus" index="49" loa="1" parent="l_calf" value="l_lateral_malleolus"/>
     <enumeration documentation="https://www.oxfordreference.com/view/10.1093/oi/authority.20110803100523385" index="50" loa="1" parent="l_talus" value="l_sphyrion"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Accessory_navicular_bone" index="51" loa="1" parent="r_calf" value="r_tibiale"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Malleolus" index="52" loa="1" parent="r_calf" value="r_medial_malleolus"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Malleolus" index="53" loa="1" parent="r_calf" value="r_lateral_malleolus"/>
     <enumeration documentation="https://www.oxfordreference.com/view/10.1093/oi/authority.20110803100523385" index="54" loa="1" parent="r_talus" value="r_sphyrion"/>
     <enumeration alias="l_metatarsal_pha1" documentation="https://en.wikipedia.org/wiki/Metatarsal_bones" index="55" loa="4" parent="l_tarsal_proximal_phalanx_1" value="l_metatarsal_phalanx_1"/>
     <enumeration alias="l_metatarsal_pha5" documentation="https://en.wikipedia.org/wiki/Metatarsal_bones" index="56" loa="4" parent="l_tarsal_proximal_phalanx_5" value="l_metatarsal_phalanx_5"/>
     <enumeration default="0.2056 0.6743 -0.0482" documentation="https://en.wiktionary.org/wiki/dactylion" index="57" loa="2" parent="l_carpal_distal_phalanx_2" value="l_dactylion"/>
     <enumeration alias="l_calcaneous_post" documentation="https://en.wikipedia.org/wiki/Calcaneus" index="58" loa="1" parent="l_talus" value="l_calcaneus_posterior"/>
     <enumeration alias="r_metatarsal_pha1" documentation="https://en.wikipedia.org/wiki/Metatarsal_bones" index="59" loa="4" parent="r_tarsal_proximal_phalanx_1" value="r_metatarsal_phalanx_1"/>
     <enumeration alias="r_metatarsal_pha5" documentation="https://en.wikipedia.org/wiki/Metatarsal_bones" index="60" loa="4" parent="r_tarsal_proximal_phalanx_5" value="r_metatarsal_phalanx_5"/>
     <enumeration default="-0.1941 0.6772 -0.0423" documentation="https://en.wiktionary.org/wiki/dactylion" index="61" loa="2" parent="r_carpal_distal_phalanx_2" value="r_dactylion"/>
     <enumeration alias="r_calcaneous_post" documentation="https://en.wikipedia.org/wiki/Calcaneus" index="62" loa="1" parent="r_talus" value="r_calcaneus_posterior"/>
     <enumeration alias="l_humeral_lateral_epicn,l_humeral_lateral_epicondyles" default="0.2280 1.1482 -0.1100" documentation="https://en.wikipedia.org/wiki/Lateral_epicondyle_of_the_humerus" index="63" loa="1" parent="l_upperarm" value="l_humeral_lateral_epicondyle"/>
     <enumeration alias="l_humeral_medial_epicn,l_humeral_medial_epicondyles" default="0.1735 1.1272 -0.1113" documentation="https://en.wikipedia.org/wiki/Medial_epicondyle_of_the_humerus" index="64" loa="1" parent="l_forearm" value="l_humeral_medial_epicondyle"/>
     <enumeration default="0.1962 1.1375 -0.1123" documentation="https://en.wikipedia.org/wiki/Olecranon" index="65" loa="1" parent="l_forearm" value="l_olecranon"/>
     <enumeration alias="r_humeral_lateral_epicn,r_humeral_lateral_epicondyles" default="-0.2224 1.1517 -0.1033" documentation="https://en.wikipedia.org/wiki/Lateral_epicondyle_of_the_humerus" index="66" loa="1" parent="r_upperarm" value="r_humeral_lateral_epicondyle"/>
     <enumeration alias="r_humeral_medial_epicn,r_humeral_medial_epicondyles" default="-0.1680 1.1298 -0.1062" documentation="https://en.wikipedia.org/wiki/Medial_epicondyle_of_the_humerus" index="67" loa="1" parent="r_forearm" value="r_humeral_medial_epicondyle"/>
     <enumeration default="-0.1907 1.1405 -0.1065" documentation="https://en.wikipedia.org/wiki/Olecranon" index="68" loa="1" parent="r_forearm" value="r_olecranon"/>
     <enumeration default="0.2182 1.1212 -0.1167" documentation="https://en.wikipedia.org/wiki/Carpal_bones" index="69" loa="1" parent="l_forearm" value="l_radiale"/>
     <enumeration default="0.2142 0.8529 -0.0648" documentation="https://en.wikipedia.org/wiki/Ulnar_styloid_process" index="70" loa="1" parent="l_carpal" value="l_ulnar_styloid"/>
     <enumeration default="0.1901 0.8645 -0.0415" documentation="https://en.wikipedia.org/wiki/Radial_styloid_process" index="71" loa="1" parent="l_forearm" value="l_radial_styloid"/>
     <enumeration default="-0.2130 1.1305 -0.1091" documentation="https://en.wikipedia.org/wiki/Carpal_bones" index="72" loa="1" parent="r_forearm" value="r_radiale"/>
     <enumeration default="-0.2117 0.8562 -0.0584" documentation="https://en.wikipedia.org/wiki/Ulnar_styloid_process" index="73" loa="1" parent="r_carpal" value="r_ulnar_styloid"/>
     <enumeration default="-0.1884 0.8676 -0.0360" documentation="https://en.wikipedia.org/wiki/Radial_styloid_process" index="74" loa="1" parent="r_forearm" value="r_radial_styloid"/>
     <enumeration alias="l_metacarpal_pha2,l_metacarpal_phalanx" documentation="https://en.wikipedia.org/wiki/Metacarpal_bones" index="75" loa="2" parent="l_metacarpal_2" value="l_metacarpal_phalanx_2"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Metacarpal_bones" index="76" loa="2" parent="l_metacarpal_3" value="l_metacarpal_phalanx_3"/>
     <enumeration alias="l_metacarpal_pha5" documentation="https://en.wikipedia.org/wiki/Metacarpal_bones" index="77" loa="2" parent="l_metacarpal_5" value="l_metacarpal_phalanx_5"/>
     <enumeration alias="r_metacarpal_pha2,r_metacarpal_phalanx" documentation="https://en.wikipedia.org/wiki/Metacarpal_bones" index="78" loa="2" parent="r_metacarpal_2" value="r_metacarpal_phalanx_2"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Metacarpal_bones" index="79" loa="2" parent="r_metacarpal_3" value="r_metacarpal_phalanx_3"/>
     <enumeration alias="r_metacarpal_pha5" documentation="https://en.wikipedia.org/wiki/Metacarpal_bones" index="80" loa="2" parent="r_metacarpal_5" value="r_metacarpal_phalanx_5"/>
     <enumeration alias="nuchal" default="0.0039 1.5972 -0.0796" documentation="https://en.wikipedia.org/wiki/Squamous_part_of_occipital_bone" index="81" loa="1" parent="skull" value="nuchale"/>
     <enumeration default="0.0646 1.5141 -0.0380" documentation="https://en.wikipedia.org/wiki/Neck" index="82" loa="3" parent="c7" value="l_neck_base"/>
     <enumeration default="-0.0419 1.5149 -0.0220" documentation="https://en.wikipedia.org/wiki/Neck" index="83" loa="3" parent="c7" value="r_neck_base"/>
     <enumeration alias="belly button" default="0.0069 1.0966 0.1017" documentation="https://en.wikipedia.org/wiki/Navel" index="84" loa="1" parent="l5" value="navel"/>
     <enumeration alias="l_canthus" documentation="https://en.wikipedia.org/wiki/Canthus" index="85" loa="1" parent="skull" value="l_ectocanthus"/>
     <enumeration alias="r_canthus" documentation="https://en.wikipedia.org/wiki/Canthus" index="86" loa="1" parent="skull" value="r_ectocanthus"/>
     <enumeration alias="chin" documentation="https://en.wikipedia.org/wiki/Human_head" index="87" loa="3" parent="jaw" value="menton"/>
     <enumeration alias="mesosternum" documentation="https://en.wiktionary.org/wiki/mesosternum" index="88" loa="2" parent="t6" value="mesosternale"/>
     <enumeration documentation="https://www.columbia.edu/itc/hs/medical/humanAnatomy/yuan/craniologyISlides.pdf" index="89" loa="1" parent="skull" value="opisthocranion"/>
     <enumeration default="0.0993 0.4881 -0.0309" documentation="https://en.wikipedia.org/wiki/Popliteal_fossa" index="90" loa="1" parent="l_thigh" value="l_knee_crease"/>
     <enumeration default="-0.0825 0.4932 -0.0326" documentation="https://en.wikipedia.org/wiki/Popliteal_fossa" index="91" loa="1" parent="r_thigh" value="r_knee_crease"/>
     <enumeration alias="median plane" documentation="https://en.wikipedia.org/wiki/Median_plane" index="92" loa="2" parent="t6" value="rear_center_midsagittal_plane"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Buttocks" index="93" loa="1" parent="pelvis" value="buttocks_standing_wall_contact_point"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Sagittal_plane" index="94" loa="2" parent="t6" value="l_chest_midsagittal_plane"/>
     <enumeration documentation="https://en.wikipedia.org/wiki/Sagittal_plane" index="95" loa="2" parent="t6" value="r_chest_midsagittal_plane"/>
     <enumeration documentation="https://en.wiktionary.org/wiki/bideltoid" index="96" loa="1" parent="l_upperarm" value="l_bideltoid"/>
     <enumeration documentation="https://en.wiktionary.org/wiki/bideltoid" index="97" loa="1" parent="r_upperarm" value="r_bideltoid"/>
     <enumeration alias="l_thumb_distal" default="0.1982 0.8061 0.0759" documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="101" loa="2" parent="l_carpal_distal_phalanx_1" value="l_carpal_distal_phalanx_1"/>
     <enumeration alias="l_index_distal" default="0.2089 0.6858 -0.0245" documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="102" loa="2" parent="l_carpal_distal_phalanx_2" value="l_carpal_distal_phalanx_2"/>
     <enumeration alias="l_middle_distal" default="0.2080 0.6731 -0.0491" documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="103" loa="2" parent="l_carpal_distal_phalanx_3" value="l_carpal_distal_phalanx_3"/>
     <enumeration alias="l_ring_distal" default="0.2035 0.6750 -0.0756" documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="104" loa="2" parent="l_carpal_distal_phalanx_4" value="l_carpal_distal_phalanx_4"/>
     <enumeration alias="l_pinky_distal" default="0.2014 0.7009 -0.1012" documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="105" loa="2" parent="l_carpal_distal_phalanx_5" value="l_carpal_distal_phalanx_5"/>
     <enumeration alias="r_thumb_distal" default="-0.1869 0.8090 0.0820" documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="106" loa="2" parent="r_carpal_distal_phalanx_1" value="r_carpal_distal_phalanx_1"/>
     <enumeration alias="r_index_distal" default="-0.1980 0.6883 -0.0180" documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="107" loa="2" parent="r_carpal_distal_phalanx_2" value="r_carpal_distal_phalanx_2"/>
     <enumeration alias="r_middle_distal" default="-0.1969 0.6758 -0.0427" documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="108" loa="2" parent="r_carpal_distal_phalanx_3" value="r_carpal_distal_phalanx_3"/>
     <enumeration alias="r_ring_distal" default="-0.1934 0.6778 -0.0693" documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="109" loa="2" parent="r_carpal_distal_phalanx_4" value="r_carpal_distal_phalanx_4"/>
     <enumeration alias="r_pinky_distal" default="-0.1938 0.7035 -0.0949" documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="110" loa="2" parent="r_carpal_distal_phalanx_5" value="r_carpal_distal_phalanx_5"/>
     <enumeration default="0.090 0.012 0.188" documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="111" loa="4" parent="l_tarsal_distal_phalanx_1" value="l_tarsal_distal_phalanx_1"/>
     <enumeration alias="l_digit2" default="0.110 0.011 0.19" documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="112" loa="2" parent="l_tarsal_distal_phalanx_2" value="l_tarsal_distal_phalanx_2"/>
     <enumeration default="0.128 0.011 0.185" documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="113" loa="4" parent="l_tarsal_distal_phalanx_3" value="l_tarsal_distal_phalanx_3"/>
     <enumeration default="0.142 0.011 0.178" documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="114" loa="4" parent="l_tarsal_distal_phalanx_4" value="l_tarsal_distal_phalanx_4"/>
     <enumeration alias="l_tarsal_distal_pha5" default="0.154 0.010 0.168" documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="115" loa="4" parent="l_tarsal_distal_phalanx_5" value="l_tarsal_distal_phalanx_5"/>
     <enumeration default="-0.090 0.012 0.188" documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="116" loa="4" parent="r_tarsal_distal_phalanx_1" value="r_tarsal_distal_phalanx_1"/>
     <enumeration alias="r_digit2" default="-0.110 0.011 0.19" documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="117" loa="2" parent="r_tarsal_distal_phalanx_2" value="r_tarsal_distal_phalanx_2"/>
     <enumeration default="-0.128 0.011 0.185" documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="118" loa="4" parent="r_tarsal_distal_phalanx_3" value="r_tarsal_distal_phalanx_3"/>
     <enumeration default="-0.142 0.011 0.178" documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="119" loa="4" parent="r_tarsal_distal_phalanx_4" value="r_tarsal_distal_phalanx_4"/>
     <enumeration alias="r_tarsal_distal_pha5" default="-0.154 0.010 0.168" documentation="https://en.wikipedia.org/wiki/Phalanx_bone" index="120" loa="4" parent="r_tarsal_distal_phalanx_5" value="r_tarsal_distal_phalanx_5"/>
    </field>
    <field acceptableNodeTypes="X3DChildNode" accessType="inputOnly" inheritedFrom="X3DGroupingNode" name="removeChildren" type="MFNode">
     <componentInfo level="2" name="Grouping"/>
    </field>
    <field accessType="inputOutput" default="0 0 1 0" description="Orientation of children relative to local coordinate system." name="rotation" type="SFRotation"/>
    <field accessType="inputOutput" default="1 1 1" description="Non-uniform x-y-z scale of child coordinate system, adjusted by center and scaleOrientation." minExclusive="0" name="scale" type="SFVec3f"/>
    <field accessType="inputOutput" default="0 0 1 0" description="Preliminary rotation of coordinate system before scaling (to allow scaling around arbitrary orientations)." name="scaleOrientation" type="SFRotation"/>
    <field accessType="inputOutput" default="0 0 0" description="Position of children relative to local coordinate system." name="translation" type="SFVec3f"/>
    <field accessType="inputOutput" default="true" description="Whether or not renderable content within this node is visually displayed." inheritedFrom="X3DGroupingNode" name="visible" type="SFBool"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="containerFieldChoicesHAnimSite"/>
    <ContentModel>
     <GroupContentModel maxOccurs="unbounded" minOccurs="0" name="ChildContentModel"/>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="ImageCubeMapTexture">
   <InterfaceDefinition appinfo="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." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/environmentalTexturing.html#ImageCubeMapTexture">
    <componentInfo level="2" name="CubeMapTexturing"/>
    <Inheritance baseType="X3DEnvironmentTextureNode"/>
    <AdditionalInheritance baseType="X3DUrlObject"/>
    <field accessType="inputOutput" default="0" description="autoRefresh defines interval in seconds before automatic reload of current url asset is performed." inheritedFrom="X3DUrlObject" minInclusive="0" name="autoRefresh" type="SFTime"/>
    <field accessType="inputOutput" default="3600" description="autoRefreshTimeLimit defines maximum duration that automatic refresh activity can occur." inheritedFrom="X3DUrlObject" minInclusive="0" name="autoRefreshTimeLimit" type="SFTime"/>
    <field accessType="inputOutput" description="Author-provided prose that describes intended purpose of the url asset." inheritedFrom="X3DTextureNode" name="description" type="SFString"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="inputOutput" default="true" description="load=true means load immediately, load=false means defer loading or else unload a previously loaded scene." inheritedFrom="X3DUrlObject" name="load" type="SFBool"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field acceptableNodeTypes="TextureProperties" accessType="initializeOnly" default="NULL" description="Single contained TextureProperties node that can specify additional visual attributes applied to corresponding texture images." name="textureProperties" type="SFNode"/>
    <field accessType="inputOutput" description="Location and filename of image." inheritedFrom="X3DUrlObject" name="url" type="MFString">
     <componentInfo level="4" name="Networking"/>
    </field>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="texture" type="containerFieldChoicesX3DTexture2DNode"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
     <NodeContentModel name="TextureProperties"/>
     <NodeContentModel name="ProtoInstance"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="ImageTexture">
   <InterfaceDefinition appinfo="ImageTexture maps a 2D-image file onto a geometric shape." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/texturing.html#ImageTexture">
    <componentInfo level="1" name="Texturing"/>
    <Inheritance baseType="X3DTexture2DNode"/>
    <AdditionalInheritance baseType="X3DUrlObject"/>
    <field accessType="inputOutput" default="0" description="autoRefresh defines interval in seconds before automatic reload of current url asset is performed." inheritedFrom="X3DUrlObject" minInclusive="0" name="autoRefresh" type="SFTime"/>
    <field accessType="inputOutput" default="3600" description="autoRefreshTimeLimit defines maximum duration that automatic refresh activity can occur." inheritedFrom="X3DUrlObject" minInclusive="0" name="autoRefreshTimeLimit" type="SFTime"/>
    <field accessType="inputOutput" description="Author-provided prose that describes intended purpose of the url asset." inheritedFrom="X3DTextureNode" name="description" type="SFString"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="inputOutput" default="true" description="load=true means load immediately, load=false means defer loading or else unload a previously loaded scene." inheritedFrom="X3DUrlObject" name="load" type="SFBool"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="initializeOnly" default="true" description="Whether to repeat texture along S axis horizontally from left to right." inheritedFrom="X3DTexture2DNode" name="repeatS" type="SFBool"/>
    <field accessType="initializeOnly" default="true" description="Whether to repeat texture along T axis vertically from top to bottom." inheritedFrom="X3DTexture2DNode" name="repeatT" type="SFBool"/>
    <field acceptableNodeTypes="TextureProperties" accessType="initializeOnly" default="NULL" description="Single contained TextureProperties node that can specify additional visual attributes applied to corresponding texture images." inheritedFrom="X3DTexture2DNode" name="textureProperties" type="SFNode"/>
    <field accessType="inputOutput" description="Location and filename of image." inheritedFrom="X3DUrlObject" name="url" type="MFString">
     <componentInfo level="4" name="Networking"/>
    </field>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="texture" type="containerFieldChoicesX3dUrlObjectTexture"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
     <NodeContentModel name="TextureProperties"/>
     <NodeContentModel name="ProtoInstance"/>
    </ContentModel>
    <field accessType="inputOutput" default="true" description="Turn on or off color space conversion" name="colorSpaceConversion" type="SFBool"/>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="ImageTexture3D">
   <InterfaceDefinition appinfo="ImageTexture3D defines a 3D image-based texture map by specifying a single image file that contains complete 3D data." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/texture3D.html#ImageTexture3D">
    <componentInfo level="2" name="Texturing3D"/>
    <Inheritance baseType="X3DTexture3DNode"/>
    <AdditionalInheritance baseType="X3DUrlObject"/>
    <field accessType="inputOutput" default="0" description="autoRefresh defines interval in seconds before automatic reload of current url asset is performed." inheritedFrom="X3DUrlObject" minInclusive="0" name="autoRefresh" type="SFTime"/>
    <field accessType="inputOutput" default="3600" description="autoRefreshTimeLimit defines maximum duration that automatic refresh activity can occur." inheritedFrom="X3DUrlObject" minInclusive="0" name="autoRefreshTimeLimit" type="SFTime"/>
    <field accessType="inputOutput" description="Author-provided prose that describes intended purpose of the url asset." inheritedFrom="X3DTextureNode" name="description" type="SFString"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="inputOutput" default="true" description="load=true means load immediately, load=false means defer loading or else unload a previously loaded scene." inheritedFrom="X3DUrlObject" name="load" type="SFBool"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="initializeOnly" default="false" description="Whether to repeat texture along R axis from front to back." inheritedFrom="X3DTexture3DNode" name="repeatR" type="SFBool"/>
    <field accessType="initializeOnly" default="false" description="Whether to repeat texture along S axis horizontally from left to right." inheritedFrom="X3DTexture3DNode" name="repeatS" type="SFBool"/>
    <field accessType="initializeOnly" default="false" description="Whether to repeat texture along T axis vertically from top to bottom." inheritedFrom="X3DTexture3DNode" name="repeatT" type="SFBool"/>
    <field acceptableNodeTypes="TextureProperties" accessType="initializeOnly" default="NULL" description="Single contained TextureProperties node that can specify additional visual attributes applied to corresponding texture images." inheritedFrom="X3DTexture3DNode" name="textureProperties" type="SFNode"/>
    <field accessType="inputOutput" description="Location and filename of image." inheritedFrom="X3DUrlObject" name="url" type="MFString">
     <componentInfo level="4" name="Networking"/>
    </field>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="texture" type="containerFieldChoicesX3DTexture3DNode"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
     <NodeContentModel name="TextureProperties"/>
     <NodeContentModel name="ProtoInstance"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="IndexedFaceSet">
   <InterfaceDefinition appinfo="IndexedFaceSet defines polygons using index lists corresponding to vertex coordinates." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/geometry3D.html#IndexedFaceSet">
    <componentInfo level="2" name="Geometry3D"/>
    <Inheritance baseType="X3DComposedGeometryNode"/>
    <field acceptableNodeTypes="X3DVertexAttributeNode" accessType="inputOutput" description="Single contained FloatVertexAttribute node that can specify list of per-vertex attribute information for programmable shaders." inheritedFrom="X3DComposedGeometryNode" name="attrib" type="MFNode"/>
    <field accessType="initializeOnly" default="true" description="ccw defines clockwise/counterclockwise ordering of vertex coordinates, which in turn defines front/back orientation of polygon normals according to Right-Hand Rule (RHR)." inheritedFrom="X3DComposedGeometryNode" name="ccw" type="SFBool"/>
    <field acceptableNodeTypes="X3DColorNode" accessType="inputOutput" default="NULL" description="Single contained Color or ColorRGBA node that can specify color values applied to corresponding vertices according to colorIndex and colorPerVertex fields." inheritedFrom="X3DComposedGeometryNode" name="color" type="SFNode"/>
    <field accessType="initializeOnly" description="colorIndex values define the order in which Color|ColorRGBA values are applied to polygons (or vertices), interspersed by -1 if colorlPerVertex=true." minInclusive="-1" name="colorIndex" type="MFInt32"/>
    <field accessType="initializeOnly" default="true" description="Whether Color|ColorRGBA values are applied to each point vertex (true) or to each polygon face (false)." inheritedFrom="X3DComposedGeometryNode" name="colorPerVertex" type="SFBool"/>
    <field accessType="initializeOnly" default="true" description="The convex field is a hint to renderers whether all polygons in a shape are convex (true), or possibly concave (false)." name="convex" type="SFBool">
     <componentInfo level="4" name="Geometry3D"/>
    </field>
    <field acceptableNodeTypes="X3DCoordinateNode" accessType="inputOutput" default="NULL" description="Single contained Coordinate or CoordinateDouble node that can specify a list of vertex values." inheritedFrom="X3DComposedGeometryNode" name="coord" type="SFNode"/>
    <field accessType="initializeOnly" description="coordIndex indices provide the order in which coordinates are applied to construct each polygon face." minInclusive="-1" name="coordIndex" type="MFInt32"/>
    <field accessType="initializeOnly" default="0" description="creaseAngle defines angle (in radians) for determining whether adjacent polygons are drawn with sharp edges or smooth shading." minInclusive="0" name="creaseAngle" type="SFFloat">
     <componentInfo level="4" name="Geometry3D"/>
    </field>
    <field acceptableNodeTypes="FogCoordinate" accessType="inputOutput" default="NULL" description="Single contained FogCoordinate node that can specify depth parameters for fog in corresponding geometry." inheritedFrom="X3DComposedGeometryNode" name="fogCoord" type="SFNode"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field acceptableNodeTypes="X3DNormalNode" accessType="inputOutput" default="NULL" description="Single contained Normal node that can specify perpendicular vectors for corresponding vertices to support rendering computations, applied according to the normalPerVertex field." inheritedFrom="X3DComposedGeometryNode" name="normal" type="SFNode"/>
    <field accessType="initializeOnly" description="normalIndex values define the order in which normal vectors are applied to polygons (or vertices), interspersed by -1 if normalPerVertex=true." minInclusive="-1" name="normalIndex" type="MFInt32">
     <componentInfo level="4" name="Geometry3D"/>
    </field>
    <field accessType="initializeOnly" default="true" description="Whether Normal node vector values are applied to each point vertex (true) or to each polygon face (false)." inheritedFrom="X3DComposedGeometryNode" name="normalPerVertex" type="SFBool"/>
    <field accessType="inputOnly" description="colorIndex values define the order in which Color|ColorRGBA values are applied to polygons (or vertices), interspersed by -1 if colorlPerVertex=true." minInclusive="-1" name="set_colorIndex" type="MFInt32">
     <componentInfo level="4" name="Geometry3D"/>
    </field>
    <field accessType="inputOnly" description="coordIndex indices provide the order in which coordinates are applied to construct each polygon face." minInclusive="-1" name="set_coordIndex" type="MFInt32"/>
    <field accessType="inputOnly" description="normalIndex values define the order in which normal vectors are applied to polygons (or vertices), interspersed by -1 if normalPerVertex=true." minInclusive="-1" name="set_normalIndex" type="MFInt32">
     <componentInfo level="4" name="Geometry3D"/>
    </field>
    <field accessType="inputOnly" description="List of texture-coordinate indices mapping attached texture to corresponding coordinates." minInclusive="-1" name="set_texCoordIndex" type="MFInt32"/>
    <field accessType="initializeOnly" default="true" description="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)." inheritedFrom="X3DComposedGeometryNode" name="solid" type="SFBool"/>
    <field acceptableNodeTypes="X3DSingleTextureCoordinateNode|MultiTextureCoordinate" accessType="inputOutput" default="NULL" description="Single contained TextureCoordinate, TextureCoordinateGenerator or MultiTextureCoordinate node that can specify coordinates for texture mapping onto corresponding geometry." inheritedFrom="X3DComposedGeometryNode" name="texCoord" type="SFNode"/>
    <field accessType="initializeOnly" description="List of texture-coordinate indices mapping attached texture to corresponding coordinates." minInclusive="-1" name="texCoordIndex" type="MFInt32"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="geometry" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel maxOccurs="unbounded" minOccurs="0" name="ComposedGeometryContentModel"/>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
    <field acceptableNodeTypes="Tangent" accessType="inputOutput" description="Input/Output field tangent. If there is no Tangent node, the MikkTSpace algorithm is used to generate tangent vectors." name="tangent" type="SFNode"/>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="IndexedLineSet">
   <InterfaceDefinition appinfo="IndexedLineSet defines polyline segments using index lists corresponding to vertex coordinates." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/rendering.html#IndexedLineSet">
    <componentInfo level="1" name="Rendering"/>
    <Inheritance baseType="X3DGeometryNode"/>
    <field acceptableNodeTypes="X3DVertexAttributeNode" accessType="inputOutput" description="Single contained FloatVertexAttribute node that can specify list of per-vertex attribute information for programmable shaders." name="attrib" type="MFNode"/>
    <field acceptableNodeTypes="X3DColorNode" accessType="inputOutput" default="NULL" description="Single contained Color or ColorRGBA node that can specify color values applied to corresponding vertices according to colorIndex and colorPerVertex fields." name="color" type="SFNode"/>
    <field accessType="initializeOnly" description="colorIndex values define the order in which Color|ColorRGBA values are applied to polygons (or vertices), interspersed by -1 if colorlPerVertex=true." minInclusive="-1" name="colorIndex" type="MFInt32"/>
    <field accessType="initializeOnly" default="true" description="Whether Color node color values are applied to each point vertex (true) or per polyline (false)." name="colorPerVertex" type="SFBool"/>
    <field acceptableNodeTypes="X3DCoordinateNode" accessType="inputOutput" default="NULL" description="Single contained Coordinate or CoordinateDouble node that can specify a list of vertex values." name="coord" type="SFNode"/>
    <field accessType="initializeOnly" description="coordIndex indices provide the order in which coordinates are applied to construct each polygon face." minInclusive="-1" name="coordIndex" type="MFInt32"/>
    <field acceptableNodeTypes="FogCoordinate" accessType="inputOutput" default="NULL" description="Single contained FogCoordinate node that can specify depth parameters for fog in corresponding geometry." name="fogCoord" type="SFNode"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field acceptableNodeTypes="X3DNormalNode" accessType="inputOutput" default="NULL" description="Single contained Normal node that can specify perpendicular vectors for corresponding vertices to support rendering computations, applied according to the normalPerVertex field." name="normal" type="SFNode"/>
    <field accessType="inputOnly" description="colorIndex values define the order in which Color|ColorRGBA values are applied to polygons (or vertices), interspersed by -1 if colorlPerVertex=true." minInclusive="-1" name="set_colorIndex" type="MFInt32">
     <componentInfo level="3" name="Rendering"/>
    </field>
    <field accessType="inputOnly" description="coordIndex indices provide the order in which coordinates are applied to construct each polyline." minInclusive="-1" name="set_coordIndex" type="MFInt32">
     <componentInfo level="3" name="Rendering"/>
    </field>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="geometry" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
     <GroupContentModel minOccurs="0" name="ColorCoordinateContentModel"/>
    </ContentModel>
    <field acceptableNodeTypes="Tangent" accessType="inputOutput" description="Input/Output field tangent. If there is no Tangent node, the MikkTSpace algorithm is used to generate tangent vectors." name="tangent" type="SFNode"/>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="IndexedQuadSet">
   <InterfaceDefinition appinfo="IndexedQuadSet is a geometry node that defines quadrilaterals." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/CADGeometry.html#IndexedQuadSet">
    <componentInfo level="1" name="CADGeometry"/>
    <Inheritance baseType="X3DComposedGeometryNode"/>
    <field acceptableNodeTypes="X3DVertexAttributeNode" accessType="inputOutput" description="Single contained FloatVertexAttribute node that can specify list of per-vertex attribute information for programmable shaders." inheritedFrom="X3DComposedGeometryNode" name="attrib" type="MFNode"/>
    <field accessType="initializeOnly" default="true" description="ccw defines clockwise/counterclockwise ordering of vertex coordinates, which in turn defines front/back orientation of polygon normals according to Right-Hand Rule (RHR)." inheritedFrom="X3DComposedGeometryNode" name="ccw" type="SFBool"/>
    <field acceptableNodeTypes="X3DColorNode" accessType="inputOutput" default="NULL" description="Single contained Color or ColorRGBA node that can specify color values applied to corresponding vertices according to colorIndex and colorPerVertex fields." inheritedFrom="X3DComposedGeometryNode" name="color" type="SFNode"/>
    <field accessType="initializeOnly" default="true" description="Whether Color|ColorRGBA values are applied to each point vertex (true) or to each polygon face (false)." inheritedFrom="X3DComposedGeometryNode" name="colorPerVertex" type="SFBool"/>
    <field acceptableNodeTypes="X3DCoordinateNode" accessType="inputOutput" default="NULL" description="Single contained Coordinate or CoordinateDouble node that can specify a list of vertex values." inheritedFrom="X3DComposedGeometryNode" name="coord" type="SFNode"/>
    <field acceptableNodeTypes="FogCoordinate" accessType="inputOutput" default="NULL" description="Single contained FogCoordinate node that can specify depth parameters for fog in corresponding geometry." inheritedFrom="X3DComposedGeometryNode" name="fogCoord" type="SFNode"/>
    <field accessType="initializeOnly" description="index values provide order in which coordinates are applied." minInclusive="0" name="index" type="MFInt32"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field acceptableNodeTypes="X3DNormalNode" accessType="inputOutput" default="NULL" description="Single contained Normal node that can specify perpendicular vectors for corresponding vertices to support rendering computations, applied according to the normalPerVertex field." inheritedFrom="X3DComposedGeometryNode" name="normal" type="SFNode"/>
    <field accessType="initializeOnly" default="true" description="Whether Normal node vector values are applied to each point vertex (true) or to each polygon face (false)." inheritedFrom="X3DComposedGeometryNode" name="normalPerVertex" type="SFBool"/>
    <field accessType="inputOnly" description="index values provide order in which coordinates are applied." minInclusive="0" name="set_index" type="MFInt32"/>
    <field accessType="initializeOnly" default="true" description="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)." inheritedFrom="X3DComposedGeometryNode" name="solid" type="SFBool"/>
    <field acceptableNodeTypes="X3DSingleTextureCoordinateNode|MultiTextureCoordinate" accessType="inputOutput" default="NULL" description="Single contained TextureCoordinate, TextureCoordinateGenerator or MultiTextureCoordinate node that can specify coordinates for texture mapping onto corresponding geometry." inheritedFrom="X3DComposedGeometryNode" name="texCoord" type="SFNode"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="geometry" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel maxOccurs="unbounded" minOccurs="0" name="ComposedGeometryContentModel"/>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
    <field acceptableNodeTypes="Tangent" accessType="inputOutput" description="Input/Output field tangent. If there is no Tangent node, the MikkTSpace algorithm is used to generate tangent vectors." name="tangent" type="SFNode"/>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="IndexedTriangleFanSet">
   <InterfaceDefinition appinfo="IndexedTriangleFanSet is a geometry node containing a Coordinate|CoordinateDouble node, and can also contain Color|ColorRGBA, Normal and TextureCoordinate nodes." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/rendering.html#IndexedTriangleFanSet">
    <componentInfo level="3" name="Rendering"/>
    <Inheritance baseType="X3DComposedGeometryNode"/>
    <field acceptableNodeTypes="X3DVertexAttributeNode" accessType="inputOutput" description="Single contained FloatVertexAttribute node that can specify list of per-vertex attribute information for programmable shaders." inheritedFrom="X3DComposedGeometryNode" name="attrib" type="MFNode"/>
    <field accessType="initializeOnly" default="true" description="ccw defines clockwise/counterclockwise ordering of vertex coordinates, which in turn defines front/back orientation of polygon normals according to Right-Hand Rule (RHR)." inheritedFrom="X3DComposedGeometryNode" name="ccw" type="SFBool"/>
    <field acceptableNodeTypes="X3DColorNode" accessType="inputOutput" default="NULL" description="Single contained Color or ColorRGBA node that can specify color values applied to corresponding vertices according to colorIndex and colorPerVertex fields." inheritedFrom="X3DComposedGeometryNode" name="color" type="SFNode"/>
    <field accessType="initializeOnly" default="true" description="Whether Color|ColorRGBA values are applied to each point vertex (true) or to each polygon face (false)." inheritedFrom="X3DComposedGeometryNode" name="colorPerVertex" type="SFBool"/>
    <field acceptableNodeTypes="X3DCoordinateNode" accessType="inputOutput" default="NULL" description="Single contained Coordinate or CoordinateDouble node that can specify a list of vertex values." inheritedFrom="X3DComposedGeometryNode" name="coord" type="SFNode"/>
    <field acceptableNodeTypes="FogCoordinate" accessType="inputOutput" default="NULL" description="Single contained FogCoordinate node that can specify depth parameters for fog in corresponding geometry." inheritedFrom="X3DComposedGeometryNode" name="fogCoord" type="SFNode"/>
    <field accessType="initializeOnly" description="index list specifies triangles by connecting Coordinate vertices, each individual fan separated by -1 sentinel value." minInclusive="-1" name="index" type="MFInt32"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field acceptableNodeTypes="X3DNormalNode" accessType="inputOutput" default="NULL" description="Single contained Normal node that can specify perpendicular vectors for corresponding vertices to support rendering computations, applied according to the normalPerVertex field." inheritedFrom="X3DComposedGeometryNode" name="normal" type="SFNode"/>
    <field accessType="initializeOnly" default="true" description="Whether Normal node vector values are applied to each point vertex (true) or to each polygon face (false)." inheritedFrom="X3DComposedGeometryNode" name="normalPerVertex" type="SFBool"/>
    <field accessType="inputOnly" description="index list specifies triangles by connecting Coordinate vertices, each individual fan separated by -1 sentinel value." minInclusive="-1" name="set_index" type="MFInt32"/>
    <field accessType="initializeOnly" default="true" description="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)." inheritedFrom="X3DComposedGeometryNode" name="solid" type="SFBool"/>
    <field acceptableNodeTypes="X3DSingleTextureCoordinateNode|MultiTextureCoordinate" accessType="inputOutput" default="NULL" description="Single contained TextureCoordinate, TextureCoordinateGenerator or MultiTextureCoordinate node that can specify coordinates for texture mapping onto corresponding geometry." inheritedFrom="X3DComposedGeometryNode" name="texCoord" type="SFNode"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="geometry" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel maxOccurs="unbounded" minOccurs="0" name="ComposedGeometryContentModel"/>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
    <field acceptableNodeTypes="Tangent" accessType="inputOutput" description="Input/Output field tangent. If there is no Tangent node, the MikkTSpace algorithm is used to generate tangent vectors." name="tangent" type="SFNode"/>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="IndexedTriangleSet">
   <InterfaceDefinition appinfo="IndexedTriangleSet is a geometry node containing a Coordinate|CoordinateDouble node, and can also contain Color|ColorRGBA, Normal and TextureCoordinate nodes." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/rendering.html#IndexedTriangleSet">
    <componentInfo level="3" name="Rendering"/>
    <Inheritance baseType="X3DComposedGeometryNode"/>
    <field acceptableNodeTypes="X3DVertexAttributeNode" accessType="inputOutput" description="Single contained FloatVertexAttribute node that can specify list of per-vertex attribute information for programmable shaders." inheritedFrom="X3DComposedGeometryNode" name="attrib" type="MFNode"/>
    <field accessType="initializeOnly" default="true" description="ccw defines clockwise/counterclockwise ordering of vertex coordinates, which in turn defines front/back orientation of polygon normals according to Right-Hand Rule (RHR)." inheritedFrom="X3DComposedGeometryNode" name="ccw" type="SFBool"/>
    <field acceptableNodeTypes="X3DColorNode" accessType="inputOutput" default="NULL" description="Single contained Color or ColorRGBA node that can specify color values applied to corresponding vertices according to colorIndex and colorPerVertex fields." inheritedFrom="X3DComposedGeometryNode" name="color" type="SFNode"/>
    <field accessType="initializeOnly" default="true" description="Whether Color|ColorRGBA values are applied to each point vertex (true) or to each polygon face (false)." inheritedFrom="X3DComposedGeometryNode" name="colorPerVertex" type="SFBool"/>
    <field acceptableNodeTypes="X3DCoordinateNode" accessType="inputOutput" default="NULL" description="Single contained Coordinate or CoordinateDouble node that can specify a list of vertex values." inheritedFrom="X3DComposedGeometryNode" name="coord" type="SFNode"/>
    <field acceptableNodeTypes="FogCoordinate" accessType="inputOutput" default="NULL" description="Single contained FogCoordinate node that can specify depth parameters for fog in corresponding geometry." inheritedFrom="X3DComposedGeometryNode" name="fogCoord" type="SFNode"/>
    <field accessType="initializeOnly" description="index list specifies triangles by connecting Coordinate vertices." minInclusive="0" name="index" type="MFInt32"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field acceptableNodeTypes="X3DNormalNode" accessType="inputOutput" default="NULL" description="Single contained Normal node that can specify perpendicular vectors for corresponding vertices to support rendering computations, applied according to the normalPerVertex field." inheritedFrom="X3DComposedGeometryNode" name="normal" type="SFNode"/>
    <field accessType="initializeOnly" default="true" description="Whether Normal node vector values are applied to each point vertex (true) or to each polygon face (false)." inheritedFrom="X3DComposedGeometryNode" name="normalPerVertex" type="SFBool"/>
    <field accessType="inputOnly" description="index list specifies triangles by connecting Coordinate vertices." minInclusive="0" name="set_index" type="MFInt32"/>
    <field accessType="initializeOnly" default="true" description="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)." inheritedFrom="X3DComposedGeometryNode" name="solid" type="SFBool"/>
    <field acceptableNodeTypes="X3DSingleTextureCoordinateNode|MultiTextureCoordinate" accessType="inputOutput" default="NULL" description="Single contained TextureCoordinate, TextureCoordinateGenerator or MultiTextureCoordinate node that can specify coordinates for texture mapping onto corresponding geometry." inheritedFrom="X3DComposedGeometryNode" name="texCoord" type="SFNode"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="geometry" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel maxOccurs="unbounded" minOccurs="0" name="ComposedGeometryContentModel"/>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
    <field acceptableNodeTypes="Tangent" accessType="inputOutput" description="Input/Output field tangent. If there is no Tangent node, the MikkTSpace algorithm is used to generate tangent vectors." name="tangent" type="SFNode"/>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="IndexedTriangleStripSet">
   <InterfaceDefinition appinfo="IndexedTriangleStripSet is a geometry node containing a Coordinate|CoordinateDouble node, and can also contain Color|ColorRGBA, Normal and TextureCoordinate nodes." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/rendering.html#IndexedTriangleStripSet">
    <componentInfo level="3" name="Rendering"/>
    <Inheritance baseType="X3DComposedGeometryNode"/>
    <field acceptableNodeTypes="X3DVertexAttributeNode" accessType="inputOutput" description="Single contained FloatVertexAttribute node that can specify list of per-vertex attribute information for programmable shaders." inheritedFrom="X3DComposedGeometryNode" name="attrib" type="MFNode"/>
    <field accessType="initializeOnly" default="true" description="ccw defines clockwise/counterclockwise ordering of vertex coordinates, which in turn defines front/back orientation of polygon normals according to Right-Hand Rule (RHR)." inheritedFrom="X3DComposedGeometryNode" name="ccw" type="SFBool"/>
    <field acceptableNodeTypes="X3DColorNode" accessType="inputOutput" default="NULL" description="Single contained Color or ColorRGBA node that can specify color values applied to corresponding vertices according to colorIndex and colorPerVertex fields." inheritedFrom="X3DComposedGeometryNode" name="color" type="SFNode"/>
    <field accessType="initializeOnly" default="true" description="Whether Color|ColorRGBA values are applied to each point vertex (true) or to each polygon face (false)." inheritedFrom="X3DComposedGeometryNode" name="colorPerVertex" type="SFBool"/>
    <field acceptableNodeTypes="X3DCoordinateNode" accessType="inputOutput" default="NULL" description="Single contained Coordinate or CoordinateDouble node that can specify a list of vertex values." inheritedFrom="X3DComposedGeometryNode" name="coord" type="SFNode"/>
    <field acceptableNodeTypes="FogCoordinate" accessType="inputOutput" default="NULL" description="Single contained FogCoordinate node that can specify depth parameters for fog in corresponding geometry." inheritedFrom="X3DComposedGeometryNode" name="fogCoord" type="SFNode"/>
    <field accessType="initializeOnly" description="index list specifies triangles by connecting Coordinate vertices for each individual strip, separated by -1 sentinel values." minInclusive="-1" name="index" type="MFInt32"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field acceptableNodeTypes="X3DNormalNode" accessType="inputOutput" default="NULL" description="Single contained Normal node that can specify perpendicular vectors for corresponding vertices to support rendering computations, applied according to the normalPerVertex field." inheritedFrom="X3DComposedGeometryNode" name="normal" type="SFNode"/>
    <field accessType="initializeOnly" default="true" description="Whether Normal node vector values are applied to each point vertex (true) or to each polygon face (false)." inheritedFrom="X3DComposedGeometryNode" name="normalPerVertex" type="SFBool"/>
    <field accessType="inputOnly" description="index list specifies triangles by connecting Coordinate vertices for each individual strip, separated by -1 sentinel values." minInclusive="-1" name="set_index" type="MFInt32"/>
    <field accessType="initializeOnly" default="true" description="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)." inheritedFrom="X3DComposedGeometryNode" name="solid" type="SFBool"/>
    <field acceptableNodeTypes="X3DSingleTextureCoordinateNode|MultiTextureCoordinate" accessType="inputOutput" default="NULL" description="Single contained TextureCoordinate, TextureCoordinateGenerator or MultiTextureCoordinate node that can specify coordinates for texture mapping onto corresponding geometry." inheritedFrom="X3DComposedGeometryNode" name="texCoord" type="SFNode"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="geometry" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel maxOccurs="unbounded" minOccurs="0" name="ComposedGeometryContentModel"/>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
    <field acceptableNodeTypes="Tangent" accessType="inputOutput" description="Input/Output field tangent. If there is no Tangent node, the MikkTSpace algorithm is used to generate tangent vectors." name="tangent" type="SFNode"/>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="Inline">
   <InterfaceDefinition appinfo="Inline can load another X3D or VRML model into the current scene via url." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/networking.html#Inline">
    <componentInfo level="2" name="Networking"/>
    <Inheritance baseType="X3DChildNode"/>
    <AdditionalInheritance baseType="X3DBoundedObject"/>
    <AdditionalInheritance baseType="X3DUrlObject"/>
    <field accessType="inputOutput" default="0" description="autoRefresh defines interval in seconds before automatic reload of current url asset is performed." inheritedFrom="X3DUrlObject" minInclusive="0" name="autoRefresh" type="SFTime"/>
    <field accessType="inputOutput" default="3600" description="autoRefreshTimeLimit defines maximum duration that automatic refresh activity can occur." inheritedFrom="X3DUrlObject" minInclusive="0" name="autoRefreshTimeLimit" type="SFTime"/>
    <field accessType="initializeOnly" default="0 0 0" description="Bounding box center accompanies bboxSize and provides an optional hint for bounding box position offset from origin of local coordinate system." inheritedFrom="X3DBoundedObject" name="bboxCenter" type="SFVec3f"/>
    <field accessType="inputOutput" default="false" description="Whether to display bounding box for associated geometry, aligned with world coordinates." inheritedFrom="X3DBoundedObject" name="bboxDisplay" type="SFBool"/>
    <field accessType="initializeOnly" baseType="bboxSizeType" default="-1 -1 -1" description="Bounding box size is usually omitted, and can easily be calculated automatically by an X3D player at scene-loading time with minimal computational cost." inheritedFrom="X3DBoundedObject" name="bboxSize" type="SFVec3f"/>
    <field accessType="inputOutput" description="Author-provided prose that describes intended purpose of the url asset." inheritedFrom="X3DUrlObject" name="description" type="SFString"/>
    <field accessType="inputOutput" default="false" description="The global field controls potential external scoping effects of lights found within an Inline scene." name="global" type="SFBool"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="inputOutput" default="true" description="load=true means load immediately, load=false means defer loading or else unload a previously loaded scene." inheritedFrom="X3DUrlObject" name="load" type="SFBool"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" description="Address of X3D world to load Inline with current scene, retrieved either from local system or an online address." inheritedFrom="X3DUrlObject" name="url" type="MFString">
     <componentInfo level="4" name="Networking"/>
    </field>
    <field accessType="inputOutput" default="true" description="Whether or not renderable content within this node is visually displayed." inheritedFrom="X3DBoundedObject" name="visible" type="SFBool"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="containerFieldChoicesX3DUrlObject"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="IntegerSequencer">
   <InterfaceDefinition appinfo="IntegerSequencer generates periodic discrete integer values." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/eventUtilities.html#IntegerSequencer">
    <componentInfo level="1" name="EventUtilities"/>
    <Inheritance baseType="X3DSequencerNode"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="inputOutput" description="Definition values for linear-interpolation function input intervals, listed in non-decreasing order and corresponding to a value in the keyValue array." inheritedFrom="X3DSequencerNode" name="key" type="MFFloat"/>
    <field accessType="inputOutput" description="Output values for linear sequencing, each corresponding to an input-fraction value in the key array." name="keyValue" type="MFInt32"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOnly" description="Send next output value in keyValue array, and reset internal fraction field to match corresponding value in key array." inheritedFrom="X3DSequencerNode" name="next" type="SFBool"/>
    <field accessType="inputOnly" description="Send previous output value in keyValue array, and reset internal fraction field to match corresponding value in key array." inheritedFrom="X3DSequencerNode" name="previous" type="SFBool"/>
    <field accessType="inputOnly" description="set_fraction selects input key for corresponding keyValue output." inheritedFrom="X3DSequencerNode" name="set_fraction" type="SFFloat"/>
    <field accessType="outputOnly" description="Single intermittent output value determined by current key time and corresponding keyValue entry." name="value_changed" type="SFInt32"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="IntegerTrigger">
   <InterfaceDefinition appinfo="IntegerTrigger converts set_boolean true input events to an integer value (for example, useful when animating whichChoice in a Switch node)." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/eventUtilities.html#IntegerTrigger">
    <componentInfo level="1" name="EventUtilities"/>
    <Inheritance baseType="X3DTriggerNode"/>
    <field accessType="inputOutput" default="-1" description="integerKey is value for output when triggered." name="integerKey" type="SFInt32"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOnly" description="If input event set_boolean is true, trigger output of integer value." name="set_boolean" type="SFBool"/>
    <field accessType="outputOnly" description="triggerValue provides integer event output matching integerKey when true set_boolean received." name="triggerValue" type="SFInt32"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="IsoSurfaceVolumeData">
   <InterfaceDefinition appinfo="IsoSurfaceVolumeData displays one or more surfaces extracted from a voxel dataset." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/volume.html#IsoSurfaceVolumeData">
    <componentInfo level="2" name="VolumeRendering"/>
    <Inheritance baseType="X3DVolumeDataNode"/>
    <field accessType="initializeOnly" default="0 0 0" description="Bounding box center accompanies bboxSize and provides an optional hint for bounding box position offset from origin of local coordinate system." inheritedFrom="X3DVolumeDataNode" name="bboxCenter" type="SFVec3f"/>
    <field accessType="inputOutput" default="false" description="Whether to display bounding box for associated geometry, aligned with world coordinates." inheritedFrom="X3DVolumeDataNode" name="bboxDisplay" type="SFBool"/>
    <field accessType="initializeOnly" baseType="bboxSizeType" default="-1 -1 -1" description="Bounding box size is usually omitted, and can easily be calculated automatically by an X3D player at scene-loading time with minimal computational cost." inheritedFrom="X3DVolumeDataNode" name="bboxSize" type="SFVec3f"/>
    <field accessType="inputOutput" default="0" description="If contourStepSize is non-zero, also render all isosurfaces that are multiples of that step size from initial surface value." name="contourStepSize" type="SFFloat"/>
    <field accessType="inputOutput" default="1 1 1" description="Actual-size X-Y-Z dimensions of volume data in local coordinate system." inheritedFrom="X3DVolumeDataNode" minExclusive="0" name="dimensions" type="SFVec3f"/>
    <field acceptableNodeTypes="X3DTexture3DNode" accessType="inputOutput" default="NULL" description="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" type="SFNode"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field acceptableNodeTypes="X3DVolumeRenderStyleNode" accessType="inputOutput" description="Multiple contained X3DVolumeRenderStyleNode nodes corresponding to each isosurface that define specific rendering technique for this volumetric object." name="renderStyle" type="MFNode"/>
    <field accessType="inputOutput" default="0" description="Threshold for gradient magnitude for voxel inolusion in isosurface." minInclusive="0" name="surfaceTolerance" type="SFFloat"/>
    <field accessType="inputOutput" description="If surfaceValues has one value defined, render corresponding isosurface plus any isosurfaces based on contourStepSize." name="surfaceValues" type="MFFloat"/>
    <field accessType="inputOutput" default="true" description="Whether or not renderable content within this node is visually displayed." inheritedFrom="X3DVolumeDataNode" name="visible" type="SFBool"/>
    <field acceptableNodeTypes="X3DTexture3DNode" accessType="inputOutput" default="NULL" description="Single contained X3DTexture3DNode (ComposedTexture3D, ImageTexture3D, PixelTexture3D) that provides raw voxel information utilized by corresponding rendering styles." name="voxels" type="SFNode"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
     <GroupContentModel minOccurs="0" name="Texture3DContentModel"/>
     <GroupContentModel minOccurs="0" name="VolumeRenderStyleContentModel"/>
     <NodeContentModel name="ProtoInstance"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="KeySensor">
   <InterfaceDefinition appinfo="KeySensor generates events as the user presses keys on the keyboard." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/keyDeviceSensor.html#KeySensor">
    <componentInfo level="1" name="KeyDeviceSensor"/>
    <Inheritance baseType="X3DKeyDeviceSensorNode"/>
    <field accessType="outputOnly" description="action key press gives following values: HOME=000 END=1001 PGUP=1002 PGDN=1003 UP=1004 DOWN=1005 LEFT=1006 RIGHT=1007 F1." name="actionKeyPress" type="SFInt32"/>
    <field accessType="outputOnly" description="action key release gives following values: HOME=000 END=1001 PGUP=1002 PGDN=1003 UP=1004 DOWN=1005 LEFT=1006 RIGHT=1007 F1." name="actionKeyRelease" type="SFInt32"/>
    <field accessType="outputOnly" description="altKey generates true event when pressed, false event when released." name="altKey" type="SFBool"/>
    <field accessType="outputOnly" description="controlKey generates true event when pressed, false event when released." name="controlKey" type="SFBool"/>
    <field accessType="inputOutput" description="Author-provided prose that describes intended purpose of the node." inheritedFrom="X3DSensorNode" name="description" type="SFString"/>
    <field accessType="inputOutput" default="true" description="Enables/disables node operation." inheritedFrom="X3DSensorNode" name="enabled" type="SFBool"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="outputOnly" description="Select geometry by activating the pointing device (for example, clicking the mouse) to generate isActive events." inheritedFrom="X3DSensorNode" name="isActive" type="SFBool"/>
    <field accessType="outputOnly" description="Events generated when user presses character-producing keys on keyboard produces integer UTF-8 character values." name="keyPress" type="SFString"/>
    <field accessType="outputOnly" description="Events generated when user releases character-producing keys on keyboard produces integer UTF-8 character values." name="keyRelease" type="SFString"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="outputOnly" description="shiftKey generates true event when pressed, false event when released." name="shiftKey" type="SFBool"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="Layer">
   <InterfaceDefinition appinfo="Layer contains a list of children nodes that define the contents of the layer." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/layering.html#Layer">
    <componentInfo level="1" name="Layering"/>
    <Inheritance baseType="X3DLayerNode"/>
    <field acceptableNodeTypes="X3DChildNode" accessType="inputOnly" name="addChildren" type="MFNode"/>
    <field acceptableNodeTypes="X3DChildNode" accessType="inputOutput" description="Nodes making up this layer." name="children" type="MFNode"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" additionalEnumerationValuesAllowed="true" baseType="MFString" default='"ALL"' description="The objectType field specifies a set of labels used in the picking process." inheritedFrom="X3DLayerNode" name="objectType" simpleType="pickableObjectTypeValues" type="MFString">
     <enumeration appinfo="each node is available for picking." value='"ALL"'/>
     <enumeration appinfo="no node is available for picking." value='"NONE"'/>
     <enumeration appinfo="TERRAIN is an example value." value='"TERRAIN"'/>
    </field>
    <field accessType="inputOutput" default="true" description="pickable determines whether pick traversal is performed for this layer." inheritedFrom="X3DLayerNode" name="pickable" type="SFBool"/>
    <field acceptableNodeTypes="X3DChildNode" accessType="inputOnly" name="removeChildren" type="MFNode"/>
    <field acceptableNodeTypes="X3DViewportNode" accessType="inputOutput" default="NULL" description="The viewport field is a single Viewport node that constrains layer output to a sub-region of the render surface." inheritedFrom="X3DLayerNode" name="viewport" type="SFNode"/>
    <field accessType="inputOutput" default="true" description="Whether or not renderable content within this node is visually displayed." inheritedFrom="X3DLayerNode" name="visible" type="SFBool"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="layers" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
     <GroupContentModel maxOccurs="unbounded" minOccurs="0" name="ChildContentModel"/>
     <NodeContentModel name="Viewport"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="LayerSet">
   <InterfaceDefinition appinfo="LayerSet defines a list of layers and a rendering order." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/layering.html#LayerSet">
    <componentInfo level="1" name="Layering"/>
    <Inheritance baseType="X3DNode"/>
    <field accessType="inputOutput" default="0" description="activeLayer field specifies the layer in which navigation takes place." minInclusive="0" name="activeLayer" type="SFInt32"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DLayerNode" accessType="inputOutput" description="The layers list defines a list of Layer nodes that contain the constituent parts of the scene." name="layers" type="MFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" default="0" description="The order list defines the order in which layers are rendered." minInclusive="0" name="order" type="MFInt32"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
     <NodeContentModel name="Layer"/>
     <NodeContentModel name="LayoutLayer"/>
     <NodeContentModel name="ProtoInstance"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="Layout">
   <InterfaceDefinition appinfo="Layout node is used as layout field of LayoutLayer and LayoutGroup nodes." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/layout.html#Layout">
    <componentInfo level="1" name="Layout"/>
    <Inheritance baseType="X3DLayoutNode"/>
    <field accessType="inputOutput" additionalEnumerationValuesAllowed="false" baseType="MFString" default='"CENTER" "CENTER"' description="The align field values align the sized rectangle to an edge or center of the parent rectangle." name="align" simpleType="layoutAlignChoices" type="MFString">
     <enumeration value='"LEFT" "BOTTOM"'/>
     <enumeration value='"LEFT" "CENTER"'/>
     <enumeration value='"LEFT" "TOP"'/>
     <enumeration value='"CENTER" "BOTTOM"'/>
     <enumeration value='"CENTER" "CENTER"'/>
     <enumeration value='"CENTER" "TOP"'/>
     <enumeration value='"RIGHT" "BOTTOM"'/>
     <enumeration value='"RIGHT" "CENTER"'/>
     <enumeration value='"RIGHT" "TOP"'/>
    </field>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" default="0 0" description="The values of the offset field are used to translate the location of this rectangle after the initial alignment." name="offset" type="MFFloat"/>
    <field accessType="inputOutput" additionalEnumerationValuesAllowed="false" baseType="MFString" default='"WORLD" "WORLD"' description="The offsetUnits field values are used to interprete the offset values." name="offsetUnits" simpleType="layoutUnitsChoices" type="MFString">
     <enumeration value='"WORLD" "WORLD"'/>
     <enumeration value='"WORLD" "FRACTION"'/>
     <enumeration value='"WORLD" "PIXEL"'/>
     <enumeration value='"FRACTION" "WORLD"'/>
     <enumeration value='"FRACTION" "FRACTION"'/>
     <enumeration value='"FRACTION" "PIXEL"'/>
     <enumeration value='"PIXEL" "WORLD"'/>
     <enumeration value='"PIXEL" "FRACTION"'/>
     <enumeration value='"PIXEL" "PIXEL"'/>
     <componentInfo level="2" name="Layout"/>
    </field>
    <field accessType="inputOutput" additionalEnumerationValuesAllowed="false" baseType="MFString" default='"NONE" "NONE"' description="The scaleMode field specifies how the scale of the parent is modified." name="scaleMode" simpleType="layoutScaleModeChoices" type="MFString">
     <enumeration value='"NONE" "NONE"'/>
     <enumeration value='"NONE" "FRACTION"'/>
     <enumeration value='"NONE" "STRETCH"'/>
     <enumeration value='"NONE" "PIXEL"'/>
     <enumeration value='"FRACTION" "NONE"'/>
     <enumeration value='"FRACTION" "FRACTION"'/>
     <enumeration value='"FRACTION" "STRETCH"'/>
     <enumeration value='"FRACTION" "PIXEL"'/>
     <enumeration value='"STRETCH" "NONE"'/>
     <enumeration value='"STRETCH" "FRACTION"'/>
     <enumeration value='"STRETCH" "STRETCH"'/>
     <enumeration value='"STRETCH" "PIXEL"'/>
     <enumeration value='"PIXEL" "NONE"'/>
     <enumeration value='"PIXEL" "FRACTION"'/>
     <enumeration value='"PIXEL" "STRETCH"'/>
     <enumeration value='"PIXEL" "PIXEL"'/>
     <componentInfo level="2" name="Layout"/>
    </field>
    <field accessType="inputOutput" default="1 1" description="The two values in the size field define the width and height of the layout rectangle." name="size" type="MFFloat"/>
    <field accessType="inputOutput" additionalEnumerationValuesAllowed="false" baseType="MFString" default='"WORLD" "WORLD"' description="The sizeUnits field values are used to interprete the offset values." name="sizeUnits" simpleType="layoutUnitsChoices" type="MFString">
     <enumeration value='"WORLD" "WORLD"'/>
     <enumeration value='"WORLD" "FRACTION"'/>
     <enumeration value='"WORLD" "PIXEL"'/>
     <enumeration value='"FRACTION" "WORLD"'/>
     <enumeration value='"FRACTION" "FRACTION"'/>
     <enumeration value='"FRACTION" "PIXEL"'/>
     <enumeration value='"PIXEL" "WORLD"'/>
     <enumeration value='"PIXEL" "FRACTION"'/>
     <enumeration value='"PIXEL" "PIXEL"'/>
     <componentInfo level="2" name="Layout"/>
    </field>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="layout" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="LayoutGroup">
   <InterfaceDefinition appinfo="LayoutGroup is a Grouping node that can contain most nodes, whose children are related by a common layout within a parent layout." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/layout.html#LayoutGroup">
    <componentInfo level="1" name="Layout"/>
    <Inheritance baseType="X3DNode"/>
    <AdditionalInheritance baseType="X3DGroupingNode"/>
    <field acceptableNodeTypes="X3DChildNode" accessType="inputOnly" name="addChildren" type="MFNode"/>
    <field accessType="initializeOnly" default="0 0 0" description="Bounding box center accompanies bboxSize and provides an optional hint for bounding box position offset from origin of local coordinate system." inheritedFrom="X3DGroupingNode" name="bboxCenter" type="SFVec3f"/>
    <field accessType="inputOutput" default="false" description="Whether to display bounding box for associated geometry, aligned with world coordinates." inheritedFrom="X3DGroupingNode" name="bboxDisplay" type="SFBool"/>
    <field accessType="initializeOnly" baseType="bboxSizeType" default="-1 -1 -1" description="Bounding box size is usually omitted, and can easily be calculated automatically by an X3D player at scene-loading time with minimal computational cost." inheritedFrom="X3DGroupingNode" name="bboxSize" type="SFVec3f"/>
    <field acceptableNodeTypes="X3DChildNode" accessType="inputOutput" description="Grouping nodes contain an ordered list of children nodes." name="children" type="MFNode"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DLayoutNode" accessType="inputOutput" default="NULL" description="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" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field acceptableNodeTypes="X3DChildNode" accessType="inputOnly" name="removeChildren" type="MFNode"/>
    <field acceptableNodeTypes="X3DViewportNode" accessType="inputOutput" default="NULL" description="The content of the LayoutGroup is clipped by the specified viewport." name="viewport" type="SFNode"/>
    <field accessType="inputOutput" default="true" description="Whether or not renderable content within this node is visually displayed." inheritedFrom="X3DGroupingNode" name="visible" type="SFBool"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
     <GroupContentModel name="LayoutGroupContentModel"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="LayoutLayer">
   <InterfaceDefinition appinfo="LayoutLayer is a Grouping node that can contain most nodes." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/layout.html#LayoutLayer">
    <componentInfo level="1" name="Layout"/>
    <Inheritance baseType="X3DLayerNode"/>
    <field acceptableNodeTypes="X3DChildNode" accessType="inputOnly" name="addChildren" type="MFNode"/>
    <field acceptableNodeTypes="X3DChildNode" accessType="inputOutput" description="Grouping nodes contain an ordered list of children nodes." name="children" type="MFNode"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DLayoutNode" accessType="inputOutput" default="NULL" description="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" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" additionalEnumerationValuesAllowed="true" baseType="MFString" default='"ALL"' description="The objectType field specifies a set of labels used in the picking process." inheritedFrom="X3DLayerNode" name="objectType" simpleType="pickableObjectTypeValues" type="MFString">
     <enumeration appinfo="each node is available for picking." value='"ALL"'/>
     <enumeration appinfo="no node is available for picking." value='"NONE"'/>
     <enumeration appinfo="TERRAIN is an example value." value='"TERRAIN"'/>
    </field>
    <field accessType="inputOutput" default="true" description="pickable determines whether pick traversal is performed for this layer." inheritedFrom="X3DLayerNode" name="pickable" type="SFBool"/>
    <field acceptableNodeTypes="X3DChildNode" accessType="inputOnly" name="removeChildren" type="MFNode"/>
    <field acceptableNodeTypes="X3DViewportNode" accessType="inputOutput" default="NULL" description="The content of the LayoutGroup is clipped by the specified viewport." inheritedFrom="X3DLayerNode" name="viewport" type="SFNode"/>
    <field accessType="inputOutput" default="true" description="Whether or not renderable content within this node is visually displayed." inheritedFrom="X3DLayerNode" name="visible" type="SFBool"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="layers" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
     <GroupContentModel name="LayoutGroupContentModel"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="LinePickSensor">
   <InterfaceDefinition appinfo="LinePickSensor uses one or more pickingGeometry line segments to compute intersections with pickTarget shapes." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/picking.html#LinePickSensor">
    <componentInfo level="1" name="Picking"/>
    <Inheritance baseType="X3DPickSensorNode"/>
    <field accessType="inputOutput" description="Author-provided prose that describes intended purpose of the node." inheritedFrom="X3DSensorNode" name="description" type="SFString"/>
    <field accessType="inputOutput" default="true" description="Enables/disables node operation." inheritedFrom="X3DSensorNode" name="enabled" type="SFBool"/>
    <field accessType="initializeOnly" additionalEnumerationValuesAllowed="true" baseType="xs:NMTOKEN" default="BOUNDS" description="intersectionType specifies precision of the collision computation." inheritedFrom="X3DPickSensorNode" name="intersectionType" simpleType="intersectionTypeValues" type="SFString">
     <enumeration appinfo="TODO undefined in X3D specification." documentation="https://www.web3d.org/member-only/mantis/view.php?id=1294" value="BOUNDS"/>
     <enumeration appinfo="TODO undefined in X3D specification." documentation="https://www.web3d.org/member-only/mantis/view.php?id=1294" value="GEOMETRY"/>
    </field>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="outputOnly" description="isActive indicates when the intersecting object is picked by the picking geometry." inheritedFrom="X3DSensorNode" name="isActive" type="SFBool"/>
    <field accessType="inputOutput" additionalEnumerationValuesAllowed="false" baseType="xs:NMTOKEN" default="MATCH_ANY" description="defines whether the intersection test (i." inheritedFrom="X3DPickSensorNode" name="matchCriterion" simpleType="pickSensorMatchCriterionChoices" type="SFString">
     <enumeration appinfo="any match of objectType values is acceptable." value="MATCH_ANY"/>
     <enumeration appinfo="every objectType value in X3DPickSensorNode and X3DPickableObject shall match." value="MATCH_EVERY"/>
     <enumeration appinfo="one and only one objectType value can match." value="MATCH_ONLY_ONE"/>
    </field>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" additionalEnumerationValuesAllowed="true" baseType="MFString" default='"ALL"' description="The objectType field specifies a set of labels used in the picking process." inheritedFrom="X3DPickSensorNode" name="objectType" simpleType="pickableObjectTypeValues" type="MFString">
     <enumeration appinfo="each node is available for picking." value='"ALL"'/>
     <enumeration appinfo="no node is available for picking." value='"NONE"'/>
     <enumeration appinfo="TERRAIN is an example value." value='"TERRAIN"'/>
    </field>
    <field acceptableNodeTypes="X3DChildNode" accessType="outputOnly" description="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." inheritedFrom="X3DPickSensorNode" name="pickedGeometry" type="MFNode"/>
    <field accessType="outputOnly" description="Output event containing surface normal vectors computed by the picking intersection computations." name="pickedNormal" type="MFVec3f"/>
    <field accessType="outputOnly" description="Output event containing 3D points on surface of underlying pickingGeometry computed by the picking intersection computations, given in the local coordinate system." name="pickedPoint" type="MFVec3f"/>
    <field accessType="outputOnly" description="Output event containing 3D texture coordinates of surfaces computed by the picking intersection computations." name="pickedTextureCoordinate" type="MFVec3f"/>
    <field acceptableNodeTypes="X3DGeometryNode" accessType="inputOutput" default="NULL" description="pickingGeometry specifies the exact geometry coordinates that are used to perform the intersection testing of the picking operation." inheritedFrom="X3DPickSensorNode" name="pickingGeometry" type="SFNode"/>
    <field acceptableNodeTypes="X3DGroupingNode|X3DShapeNode|Inline" accessType="inputOutput" description="pickTarget specifies the list of nodes against which picking operations are performed." inheritedFrom="X3DPickSensorNode" name="pickTarget" type="MFNode"/>
    <field accessType="initializeOnly" additionalEnumerationValuesAllowed="true" baseType="xs:NMTOKEN" default="CLOSEST" description="The sortOrder field determines the order provided for picked output events." inheritedFrom="X3DPickSensorNode" name="sortOrder" simpleType="pickSensorSortOrderValues" type="SFString">
     <enumeration appinfo="any single object that can satisfy picking conditions." value="ANY"/>
     <enumeration appinfo="return closest object by distance that satisfies conditions of this pick sensor." value="CLOSEST"/>
     <enumeration appinfo="every object that satisfies picking conditions for this pick sensor is returned." value="ALL"/>
     <enumeration appinfo="every object that satisfies picking conditions for this pick sensor is returned, in sorted order." value="ALL_SORTED"/>
    </field>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
     <GroupContentModel name="PickSensorGroupingNodeContentModel"/>
     <NodeContentModel name="LineSet"/>
     <NodeContentModel name="IndexedLineSet"/>
     <NodeContentModel name="Shape"/>
     <NodeContentModel name="ProtoInstance"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="LineProperties">
   <InterfaceDefinition appinfo="LineProperties allows precise fine-grained control over the rendering style of lines and edges for associated geometry nodes inside the same Shape." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/shape.html#LineProperties">
    <componentInfo level="2" name="Shape"/>
    <Inheritance baseType="X3DAppearanceChildNode"/>
    <field accessType="inputOutput" default="true" description="Whether or not LineProperties are applied to associated geometry." name="applied" type="SFBool"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="inputOutput" baseType="SFInt32" default="1" description="linetype selects a line pattern, with solid default if defined value isn't supported." minInclusive="0" name="linetype" simpleType="lineTypeValues" type="SFInt32">
     <enumeration alias="SOLID" appinfo="Solid." value="1"/>
     <enumeration alias="DASHED" appinfo="Dashed." value="2"/>
     <enumeration alias="DOTTED" appinfo="Dotted." value="3"/>
     <enumeration alias="DASHED_DOTTED" appinfo="Dashed-dotted." value="4"/>
     <enumeration alias="DASHED_DOT_DOT" appinfo="Dash-dot-dot." value="5"/>
     <enumeration alias="SINGLE_ARROW" appinfo="(single arrow)." value="6"/>
     <enumeration alias="SINGLE_DOT" appinfo="(single dot)." value="7"/>
     <enumeration alias="DOUBLE_ARROW" appinfo="(double arrow)." value="8"/>
     <enumeration alias="STITCH_LINE" appinfo="(stitch line)." value="9"/>
     <enumeration alias="CHAIN_LINE" appinfo="(chain line)." value="10"/>
     <enumeration alias="CENTER_LINE" appinfo="(center line)." value="11"/>
     <enumeration alias="HIDDEN_LINE" appinfo="(hidden line)." value="12"/>
     <enumeration alias="PHANTOM_LINE" appinfo="(phantom line)." value="13"/>
     <enumeration alias="BREAK_LINE_STYLE_1" appinfo="(break line - style 1)." value="14"/>
     <enumeration alias="BREAK_LINE_STYLE_2" appinfo="(break line - style 2)." value="15"/>
     <enumeration alias="USER_SPECIFIED_DASH_PATTERN" appinfo="User-specified dash pattern." value="16"/>
    </field>
    <field accessType="inputOutput" default="0" description="linewidthScaleFactor is a scale factor multiplied by browser-dependent nominal linewidth, mapped to nearest available line width." name="linewidthScaleFactor" type="SFFloat"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="lineProperties" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="LineSet">
   <InterfaceDefinition appinfo="LineSet is a geometry node that can contain a Coordinate|CoordinateDouble node and optionally a Color|ColorRGBA node." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/rendering.html#LineSet">
    <componentInfo level="1" name="Rendering"/>
    <Inheritance baseType="X3DGeometryNode"/>
    <field acceptableNodeTypes="X3DVertexAttributeNode" accessType="inputOutput" description="Single contained FloatVertexAttribute node that can specify list of per-vertex attribute information for programmable shaders." name="attrib" type="MFNode"/>
    <field acceptableNodeTypes="X3DColorNode" accessType="inputOutput" default="NULL" description="Single contained Color or ColorRGBA node that can specify color values applied to corresponding vertices according to colorIndex and colorPerVertex fields." name="color" type="SFNode"/>
    <field acceptableNodeTypes="X3DCoordinateNode" accessType="inputOutput" default="NULL" description="Single contained Coordinate or CoordinateDouble node that can specify a list of vertex values." name="coord" type="SFNode"/>
    <field acceptableNodeTypes="FogCoordinate" accessType="inputOutput" default="NULL" description="Single contained FogCoordinate node that can specify depth parameters for fog in corresponding geometry." name="fogCoord" type="SFNode"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field acceptableNodeTypes="X3DNormalNode" accessType="inputOutput" default="NULL" description="Single contained Normal node that can specify perpendicular vectors for corresponding vertices to support rendering computations, applied according to the normalPerVertex field." name="normal" type="SFNode"/>
    <field accessType="inputOutput" description="vertexCount describes how many vertices are used in each individual polyline segment from the Coordinate point values." minInclusive="2" name="vertexCount" type="MFInt32"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="geometry" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
     <GroupContentModel minOccurs="0" name="ColorCoordinateContentModel"/>
    </ContentModel>
    <field acceptableNodeTypes="Tangent" accessType="inputOutput" description="Input/Output field tangent. If there is no Tangent node, the MikkTSpace algorithm is used to generate tangent vectors." name="tangent" type="SFNode"/>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="ListenerPointSource">
   <InterfaceDefinition appinfo="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." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/sound.html#ListenerPointSource">
    <componentInfo level="2" name="Sound"/>
    <Inheritance baseType="X3DSoundSourceNode"/>
    <field accessType="inputOutput" description="Author-provided prose that describes intended purpose of the url asset." inheritedFrom="X3DTimeDependentNode" name="description" type="SFString"/>
    <field accessType="inputOutput" default="false" description="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." name="dopplerEnabled" type="SFBool"/>
    <field accessType="outputOnly" description="Current elapsed time since AudioClip activated/running, cumulative in seconds, and not counting any paused time." inheritedFrom="X3DTimeDependentNode" minInclusive="0" name="elapsedTime" type="SFTime"/>
    <field accessType="inputOutput" default="true" description="Enables/disables node operation." inheritedFrom="X3DSoundSourceNode" name="enabled" type="SFBool"/>
    <field accessType="inputOutput" default="1" description="The gain field is a factor that represents the amount of linear amplification to apply to the output of the node." inheritedFrom="X3DSoundSourceNode" name="gain" type="SFFloat"/>
    <field accessType="inputOutput" default="0" description="The interauralDistance field is." minInclusive="0" name="interauralDistance" type="SFFloat"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="outputOnly" description="isActive true/false events are sent when playback starts/stops." inheritedFrom="X3DTimeDependentNode" name="isActive" type="SFBool"/>
    <field accessType="outputOnly" description="isPaused true/false events are sent when AudioClip is paused/resumed." inheritedFrom="X3DTimeDependentNode" name="isPaused" type="SFBool">
     <componentInfo level="2" name="Time"/>
    </field>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" default="0 0 1 0" description="Rotation (axis, angle in radians) of listening point direction relative to default -Z axis direction in local coordinate system." name="orientation" type="SFRotation"/>
    <field accessType="inputOutput" default="0" description="When time now &gt;= pauseTime, isPaused becomes true and AudioClip becomes paused." inheritedFrom="X3DTimeDependentNode" name="pauseTime" type="SFTime">
     <componentInfo level="2" name="Time"/>
    </field>
    <field accessType="inputOutput" default="0 0 0" description="position (x, y, z in meters) relative to local coordinate system." name="position" type="SFVec3f"/>
    <field accessType="inputOutput" default="0" description="When resumeTime becomes &lt;= time now, isPaused becomes false and AudioClip becomes active." inheritedFrom="X3DTimeDependentNode" name="resumeTime" type="SFTime">
     <componentInfo level="2" name="Time"/>
    </field>
    <field accessType="inputOutput" default="0" description="Absolute time: number of seconds since January 1, 1970, 00:00:00 GMT." inheritedFrom="X3DTimeDependentNode" name="startTime" type="SFTime"/>
    <field accessType="inputOutput" default="0" description="Absolute time: number of seconds since January 1, 1970, 00:00:00 GMT." inheritedFrom="X3DTimeDependentNode" name="stopTime" type="SFTime"/>
    <field accessType="inputOutput" default="false" description="If trackCurrentView field is true then position and orientation match avatar's (user's) current view." name="trackCurrentView" type="SFBool"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="containerFieldChoicesSoundSource"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="LoadSensor">
   <InterfaceDefinition appinfo="LoadSensor generates events as watchList child nodes are either loaded or fail to load." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/networking.html#LoadSensor">
    <componentInfo level="3" name="Networking"/>
    <Inheritance baseType="X3DNetworkSensorNode"/>
    <field acceptableNodeTypes="X3DUrlObject" accessType="inputOutput" description="The children field monitors one or more USE nodes that contain a valid url field." name="children" synonym="watchList" type="MFNode"/>
    <field accessType="inputOutput" description="Author-provided prose that describes intended purpose of the node." inheritedFrom="X3DSensorNode" name="description" type="SFString"/>
    <field accessType="inputOutput" default="true" description="Enables/disables node operation." inheritedFrom="X3DSensorNode" name="enabled" type="SFBool"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="outputOnly" description="isActive true/false events are sent when sensing starts/stops." inheritedFrom="X3DSensorNode" name="isActive" type="SFBool"/>
    <field accessType="outputOnly" description="Notify when all watchList child nodes are loaded, or at least one has failed." name="isLoaded" type="SFBool"/>
    <field accessType="outputOnly" description="Time of successful load complete, not sent on failure." name="loadTime" type="SFTime"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="outputOnly" description="Sends 0." name="progress" type="SFFloat"/>
    <field accessType="inputOutput" default="0" description="Time in seconds of maximum load duration prior to declaring failure." minInclusive="0" name="timeOut" type="SFTime"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
     <GroupContentModel maxOccurs="unbounded" minOccurs="0" name="LoadSensorChildContentModel"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="LocalFog">
   <InterfaceDefinition appinfo="LocalFog simulates atmospheric effects by blending distant objects with fog color." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/environmentalEffects.html#LocalFog">
    <componentInfo level="4" name="EnvironmentalEffects"/>
    <Inheritance baseType="X3DChildNode"/>
    <AdditionalInheritance baseType="X3DFogObject"/>
    <field accessType="inputOutput" default="1 1 1" description="Fog color." inheritedFrom="X3DFogObject" maxInclusive="1" minInclusive="0" name="color" type="SFColor"/>
    <field accessType="inputOutput" default="true" description="Enables/disables node operation." name="enabled" type="SFBool"/>
    <field accessType="inputOutput" additionalEnumerationValuesAllowed="false" baseType="xs:NMTOKEN" default="LINEAR" description="Specifies algorithm for rate of increasing Fog, either LINEAR or EXPONENTIAL." inheritedFrom="X3DFogObject" name="fogType" simpleType="fogTypeChoices" type="SFString">
     <enumeration appinfo="linear blending as a function of distance." value="LINEAR"/>
     <enumeration appinfo="exponential blending as a function of distance." value="EXPONENTIAL"/>
    </field>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" default="0" description="Distance in meters where objects are totally obscured by the fog, using local coordinate system." inheritedFrom="X3DFogObject" minInclusive="0" name="visibilityRange" type="SFFloat"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="LOD">
   <InterfaceDefinition appinfo="LOD (Level Of Detail) uses camera-to-object distance to switch among contained child levels." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/navigation.html#LOD">
    <componentInfo level="2" name="Navigation"/>
    <Inheritance baseType="X3DGroupingNode"/>
    <field acceptableNodeTypes="X3DChildNode" accessType="inputOnly" inheritedFrom="X3DGroupingNode" name="addChildren" type="MFNode">
     <componentInfo level="2" name="Grouping"/>
    </field>
    <field accessType="initializeOnly" default="0 0 0" description="Bounding box center accompanies bboxSize and provides an optional hint for bounding box position offset from origin of local coordinate system." inheritedFrom="X3DGroupingNode" name="bboxCenter" type="SFVec3f"/>
    <field accessType="inputOutput" default="false" description="Whether to display bounding box for associated geometry, aligned with world coordinates." inheritedFrom="X3DGroupingNode" name="bboxDisplay" type="SFBool"/>
    <field accessType="initializeOnly" baseType="bboxSizeType" default="-1 -1 -1" description="Bounding box size is usually omitted, and can easily be calculated automatically by an X3D player at scene-loading time with minimal computational cost." inheritedFrom="X3DGroupingNode" name="bboxSize" type="SFVec3f"/>
    <field accessType="initializeOnly" default="0 0 0" description="Viewpoint distance-measurement offset from origin of local coordinate system, used for LOD node distance calculations." name="center" type="SFVec3f"/>
    <field acceptableNodeTypes="X3DChildNode" accessType="inputOutput" description="Grouping nodes contain an ordered list of children nodes." inheritedFrom="X3DGroupingNode" name="children" type="MFNode"/>
    <field accessType="initializeOnly" default="false" description="Whether to perform every range-based transition, regardless of browser optimizations that might otherwise occur." name="forceTransitions" type="SFBool"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="outputOnly" description="Output event that reports current level of LOD children whenever switching occurs." minInclusive="0" name="level_changed" type="SFInt32"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="initializeOnly" description="Specifies ideal distances at which to switch between levels." name="range" type="MFFloat"/>
    <field acceptableNodeTypes="X3DChildNode" accessType="inputOnly" inheritedFrom="X3DGroupingNode" name="removeChildren" type="MFNode">
     <componentInfo level="2" name="Grouping"/>
    </field>
    <field accessType="inputOutput" default="true" description="Whether or not renderable content within this node is visually displayed." inheritedFrom="X3DGroupingNode" name="visible" type="SFBool"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="containerFieldChoicesGroupLODShapeTransformSwitch"/>
    <ContentModel>
     <GroupContentModel maxOccurs="unbounded" minOccurs="0" name="ChildContentModel"/>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="Material">
   <InterfaceDefinition appinfo="Material specifies surface rendering properties for associated geometry nodes." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/shape.html#Material">
    <componentInfo level="1" name="Shape"/>
    <Inheritance baseType="X3DOneSidedMaterialNode"/>
    <field accessType="inputOutput" baseType="unitIntervalType" default="0.2" description="how much ambient omnidirectional light is reflected from all light sources." maxInclusive="1" minInclusive="0" name="ambientIntensity" type="SFFloat">
     <componentInfo level="2" name="Shape"/>
    </field>
    <field acceptableNodeTypes="X3DSingleTextureNode" accessType="inputOutput" default="NULL" description="When applying ambientIntensity for this material node, the contained texture provides Physically Based Rendering (PBR) modulation for each pixel." name="ambientTexture" type="SFNode"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The mapping label identifies which texture coordinates and transformations are used to compute texture effects from corresponding geometry on a given material." name="ambientTextureMapping" type="SFString"/>
    <field accessType="inputOutput" default="0.8 0.8 0.8" description="how much direct, angle-dependent light is reflected from all light sources." maxInclusive="1" minInclusive="0" name="diffuseColor" type="SFColor"/>
    <field acceptableNodeTypes="X3DSingleTextureNode" accessType="inputOutput" default="NULL" description="When applying diffuseColor for this material node, the contained texture provides Physically Based Rendering (PBR) modulation for each pixel." name="diffuseTexture" type="SFNode"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The mapping label identifies which texture coordinates and transformations are used to compute texture effects from corresponding geometry on a given material." name="diffuseTextureMapping" type="SFString"/>
    <field accessType="inputOutput" default="0 0 0" description="how much glowing light is emitted from this object." maxInclusive="1" minInclusive="0" name="emissiveColor" type="SFColor"/>
    <field acceptableNodeTypes="X3DSingleTextureNode" accessType="inputOutput" default="NULL" description="When applying emissiveColor for this material node, the contained texture provides Physically Based Rendering (PBR) modulation for each pixel." name="emissiveTexture" type="SFNode"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The mapping label identifies which texture coordinates and transformations are used to compute texture effects from corresponding geometry on a given material." inheritedFrom="X3DOneSidedMaterialNode" name="emissiveTextureMapping" type="SFString"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" default="1" description="normalScale controls the degree to which normalTexture RGB values apply XYZ-normal bump mapping to pixels in the parent material." inheritedFrom="X3DOneSidedMaterialNode" minInclusive="0" name="normalScale" type="SFFloat">
     <componentInfo level="2" name="Shape"/>
    </field>
    <field acceptableNodeTypes="X3DSingleTextureNode" accessType="inputOutput" default="NULL" description="When applying normalScale for this material node, the contained texture modulates the texture across the surface." name="normalTexture" type="SFNode"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The mapping label identifies which texture coordinates and transformations are used to compute texture effects from corresponding geometry on a given material." inheritedFrom="X3DOneSidedMaterialNode" name="normalTextureMapping" type="SFString"/>
    <field accessType="inputOutput" baseType="unitIntervalType" default="1" description="occlusionStrength indicates areas of indirect lighting, typically called ambient occlusion." maxInclusive="1" minInclusive="0" name="occlusionStrength" type="SFFloat"/>
    <field acceptableNodeTypes="X3DSingleTextureNode" accessType="inputOutput" default="NULL" description="When applying occlusionStrength for this material node, the contained texture provides Physically Based Rendering (PBR) modulation for each pixel." name="occlusionTexture" type="SFNode"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The mapping label identifies which texture coordinates and transformations are used to compute texture effects from corresponding geometry on a given material." name="occlusionTextureMapping" type="SFString"/>
    <field accessType="inputOutput" baseType="unitIntervalType" default="0.2" description="Lower shininess values provide soft specular glows, while higher values result in sharper, smaller highlights." maxInclusive="1" minInclusive="0" name="shininess" type="SFFloat">
     <componentInfo level="2" name="Shape"/>
    </field>
    <field acceptableNodeTypes="X3DSingleTextureNode" accessType="inputOutput" default="NULL" description="When applying shininess for this material node, the contained texture provides Physically Based Rendering (PBR) modulation for each pixel." name="shininessTexture" type="SFNode"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The mapping label identifies which texture coordinates and transformations are used to compute texture effects from corresponding geometry on a given material." name="shininessTextureMapping" type="SFString"/>
    <field accessType="inputOutput" default="0 0 0" description="specular highlights are brightness reflections (example: shiny spots on an apple)." maxInclusive="1" minInclusive="0" name="specularColor" type="SFColor">
     <componentInfo level="2" name="Shape"/>
    </field>
    <field acceptableNodeTypes="X3DSingleTextureNode" accessType="inputOutput" default="NULL" description="When applying specularColor for this material node, the contained texture provides Physically Based Rendering (PBR) modulation for each pixel." name="specularTexture" type="SFNode"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The mapping label identifies which texture coordinates and transformations are used to compute texture effects from corresponding geometry on a given material." name="specularTextureMapping" type="SFString"/>
    <field accessType="inputOutput" baseType="unitIntervalType" default="0" description='how "clear" an object is: 1.' maxInclusive="1" minInclusive="0" name="transparency" type="SFFloat">
     <componentInfo level="2" name="Shape"/>
    </field>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="material" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
     <NodeContentModel name="ImageTexture"/>
     <NodeContentModel name="MovieTexture"/>
     <NodeContentModel name="PixelTexture"/>
     <NodeContentModel name="ProtoInstance"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="Matrix3VertexAttribute">
   <InterfaceDefinition appinfo="Matrix3VertexAttribute defines a set of per-vertex 3x3 matrix attributes." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/shaders.html#Matrix3VertexAttribute">
    <componentInfo level="1" name="Shaders"/>
    <Inheritance baseType="X3DVertexAttributeNode"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="initializeOnly" baseType="xs:NMTOKEN" description="Required name for this particular VertexAttribute instance." inheritedFrom="X3DVertexAttributeNode" name="name" type="xs:NMTOKEN"/>
    <field accessType="inputOutput" description="value specifies an arbitrary collection of matrix values that will be passed to the shader as per-vertex information." name="value" type="MFMatrix3f"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="attrib" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="Matrix4VertexAttribute">
   <InterfaceDefinition appinfo="Matrix4VertexAttribute defines a set of per-vertex 4x4 matrix attributes." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/shaders.html#Matrix4VertexAttribute">
    <componentInfo level="1" name="Shaders"/>
    <Inheritance baseType="X3DVertexAttributeNode"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="initializeOnly" baseType="xs:NMTOKEN" description="Required name for this particular VertexAttribute instance." inheritedFrom="X3DVertexAttributeNode" name="name" type="xs:NMTOKEN"/>
    <field accessType="inputOutput" description="value specifies an arbitrary collection of matrix values that will be passed to the shader as per-vertex information." name="value" type="MFMatrix4f"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="attrib" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="MetadataBoolean">
   <InterfaceDefinition appinfo="The metadata provided by this node is contained in the Boolean values of the value field." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/core.html#MetadataBoolean">
    <componentInfo level="1" name="Core"/>
    <Inheritance baseType="X3DNode"/>
    <AdditionalInheritance baseType="X3DMetadataObject"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" description="Depending on the metadata vocabulary, the attribute name is usually required for metadata nodes." inheritedFrom="X3DMetadataObject" name="name" type="SFString"/>
    <field accessType="inputOutput" description="Reference to the metadata standard or definition defining this particular metadata value." inheritedFrom="X3DMetadataObject" name="reference" type="SFString"/>
    <field accessType="inputOutput" description="The value attribute is a strictly typed data array providing relevant metadata information." name="value" type="MFBool"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="value" type="containerFieldChoicesMetadata"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="MetadataDouble">
   <InterfaceDefinition appinfo="The metadata provided by this node is contained in the double-precision floating point numbers of the value field." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/core.html#MetadataDouble">
    <componentInfo level="1" name="Core"/>
    <Inheritance baseType="X3DNode"/>
    <AdditionalInheritance baseType="X3DMetadataObject"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" description="Depending on the metadata vocabulary, the attribute name is usually required for metadata nodes." inheritedFrom="X3DMetadataObject" name="name" type="SFString"/>
    <field accessType="inputOutput" description="Reference to the metadata standard or definition defining this particular metadata value." inheritedFrom="X3DMetadataObject" name="reference" type="SFString"/>
    <field accessType="inputOutput" description="The value attribute is a strictly typed data array providing relevant metadata information." name="value" type="MFDouble"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="value" type="containerFieldChoicesMetadata"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="MetadataFloat">
   <InterfaceDefinition appinfo="The metadata provided by this node is contained in the single-precision floating point numbers of the value field." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/core.html#MetadataFloat">
    <componentInfo level="1" name="Core"/>
    <Inheritance baseType="X3DNode"/>
    <AdditionalInheritance baseType="X3DMetadataObject"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" description="Depending on the metadata vocabulary, the attribute name is usually required for metadata nodes." inheritedFrom="X3DMetadataObject" name="name" type="SFString"/>
    <field accessType="inputOutput" description="Reference to the metadata standard or definition defining this particular metadata value." inheritedFrom="X3DMetadataObject" name="reference" type="SFString"/>
    <field accessType="inputOutput" description="The value attribute is a strictly typed data array providing relevant metadata information." name="value" type="MFFloat"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="value" type="containerFieldChoicesMetadata"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="MetadataInteger">
   <InterfaceDefinition appinfo="The metadata provided by this node is contained in the integer numbers of the value field." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/core.html#MetadataInteger">
    <componentInfo level="1" name="Core"/>
    <Inheritance baseType="X3DNode"/>
    <AdditionalInheritance baseType="X3DMetadataObject"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" description="Depending on the metadata vocabulary, the attribute name is usually required for metadata nodes." inheritedFrom="X3DMetadataObject" name="name" type="SFString"/>
    <field accessType="inputOutput" description="Reference to the metadata standard or definition defining this particular metadata value." inheritedFrom="X3DMetadataObject" name="reference" type="SFString"/>
    <field accessType="inputOutput" description="The value attribute is a strictly typed data array providing relevant metadata information." name="value" type="MFInt32"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="value" type="containerFieldChoicesMetadata"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="MetadataSet">
   <InterfaceDefinition appinfo="The metadata provided by this node is contained in the metadata nodes of the value field." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/core.html#MetadataSet">
    <componentInfo level="1" name="Core"/>
    <Inheritance baseType="X3DNode"/>
    <AdditionalInheritance baseType="X3DMetadataObject"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." name="metadata" type="SFNode"/>
    <field accessType="inputOutput" description="Depending on the metadata vocabulary, the attribute name is usually required for metadata nodes." inheritedFrom="X3DMetadataObject" name="name" type="SFString"/>
    <field accessType="inputOutput" description="Reference to the metadata standard or definition defining this particular metadata value." inheritedFrom="X3DMetadataObject" name="reference" type="SFString"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" description="The value field provides a list of X3DMetadataObject nodes whose meaning is determined by the name field." name="value" type="MFNode"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="value" type="containerFieldChoicesMetadata"/>
    <ContentModel>
     <GroupContentModel maxOccurs="unbounded" minOccurs="0" name="ChildContentModelCore"/>
     <NodeContentModel maxOccurs="unbounded" minOccurs="0" name="ProtoInstance"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="MetadataString">
   <InterfaceDefinition appinfo="The metadata provided by this node is contained in the strings of the value field." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/core.html#MetadataString">
    <componentInfo level="1" name="Core"/>
    <Inheritance baseType="X3DNode"/>
    <AdditionalInheritance baseType="X3DMetadataObject"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" description="Depending on the metadata vocabulary, the attribute name is usually required for metadata nodes." inheritedFrom="X3DMetadataObject" name="name" type="SFString"/>
    <field accessType="inputOutput" description="Reference to the metadata standard or definition defining this particular metadata value." inheritedFrom="X3DMetadataObject" name="reference" type="SFString"/>
    <field accessType="inputOutput" description="The value attribute is a strictly typed data array providing relevant metadata information." name="value" type="MFString"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="value" type="containerFieldChoicesMetadata"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="MicrophoneSource">
   <InterfaceDefinition appinfo="MicrophoneSource captures input from a physical microphone in the real world." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/sound.html#MicrophoneSource">
    <componentInfo level="2" name="Sound"/>
    <Inheritance baseType="X3DSoundSourceNode"/>
    <field accessType="inputOutput" description="Author-provided prose that describes intended purpose of the url asset." inheritedFrom="X3DTimeDependentNode" name="description" type="SFString"/>
    <field accessType="outputOnly" description="Current elapsed time since AudioClip activated/running, cumulative in seconds, and not counting any paused time." inheritedFrom="X3DTimeDependentNode" minInclusive="0" name="elapsedTime" type="SFTime"/>
    <field accessType="inputOutput" default="true" description="Enables/disables node operation." inheritedFrom="X3DSoundSourceNode" name="enabled" type="SFBool"/>
    <field accessType="inputOutput" default="1" description="The gain field is a factor that represents the amount of linear amplification to apply to the output of the node." inheritedFrom="X3DSoundSourceNode" name="gain" type="SFFloat"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="outputOnly" description="isActive true/false events are sent when playback starts/stops." inheritedFrom="X3DTimeDependentNode" name="isActive" type="SFBool"/>
    <field accessType="outputOnly" description="isPaused true/false events are sent when AudioClip is paused/resumed." inheritedFrom="X3DTimeDependentNode" name="isPaused" type="SFBool">
     <componentInfo level="2" name="Time"/>
    </field>
    <field accessType="inputOutput" description="mediaDeviceID field provides ID parameter functionality." name="mediaDeviceID" type="SFString"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" default="0" description="When time now &gt;= pauseTime, isPaused becomes true and AudioClip becomes paused." inheritedFrom="X3DTimeDependentNode" name="pauseTime" type="SFTime">
     <componentInfo level="2" name="Time"/>
    </field>
    <field accessType="inputOutput" default="0" description="When resumeTime becomes &lt;= time now, isPaused becomes false and AudioClip becomes active." inheritedFrom="X3DTimeDependentNode" name="resumeTime" type="SFTime">
     <componentInfo level="2" name="Time"/>
    </field>
    <field accessType="inputOutput" default="0" description="Absolute time: number of seconds since January 1, 1970, 00:00:00 GMT." inheritedFrom="X3DTimeDependentNode" name="startTime" type="SFTime"/>
    <field accessType="inputOutput" default="0" description="Absolute time: number of seconds since January 1, 1970, 00:00:00 GMT." inheritedFrom="X3DTimeDependentNode" name="stopTime" type="SFTime"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="containerFieldChoicesSoundSource"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="MotorJoint">
   <InterfaceDefinition appinfo="MotorJoint drives relative angular velocities between body1 and body2 within a common reference frame." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/rigidBodyPhysics.html#MotorJoint">
    <componentInfo level="2" name="RigidBodyPhysics"/>
    <Inheritance baseType="X3DRigidJointNode"/>
    <field accessType="initializeOnly" default="false" description="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" type="SFBool"/>
    <field accessType="inputOutput" default="0" description="axis1Angle (radians) is rotation angle for corresponding motor axis when in user-calculated mode." name="axis1Angle" type="SFFloat"/>
    <field accessType="inputOutput" default="0" description="axis1Torque is rotational torque applied by corresponding motor axis when in user-calculated mode." name="axis1Torque" type="SFFloat"/>
    <field accessType="inputOutput" default="0" description="axis2Angle (radians) is rotation angle for corresponding motor axis when in user-calculated mode." name="axis2Angle" type="SFFloat"/>
    <field accessType="inputOutput" default="0" description="axis2Torque is rotational torque applied by corresponding motor axis when in user-calculated mode." name="axis2Torque" type="SFFloat"/>
    <field accessType="inputOutput" default="0" description="axis3Angle (radians) is rotation angle for corresponding motor axis when in user-calculated mode." name="axis3Angle" type="SFFloat"/>
    <field accessType="inputOutput" default="0" description="axis3Torque is rotational torque applied by corresponding motor axis when in user-calculated mode." name="axis3Torque" type="SFFloat"/>
    <field acceptableNodeTypes="RigidBody" accessType="inputOutput" default="NULL" description="The body1 and body2 fields indicate the two RigidBody nodes connected by this joint." inheritedFrom="X3DRigidJointNode" name="body1" type="SFNode"/>
    <field acceptableNodeTypes="RigidBody" accessType="inputOutput" default="NULL" description="The body1 and body2 fields indicate the two RigidBody nodes connected by this joint." inheritedFrom="X3DRigidJointNode" name="body2" type="SFNode"/>
    <field accessType="inputOutput" default="1" description="enabledAxes indicates which motor axes are active." maxInclusive="3" minInclusive="0" name="enabledAxes" type="SFInt32"/>
    <field accessType="inputOutput" additionalEnumerationValuesAllowed="true" baseType="MFString" default='"NONE"' description="forceOutput controls which output fields are generated for the next frame." inheritedFrom="X3DRigidJointNode" name="forceOutput" simpleType="forceOutputValues" type="MFString">
     <enumeration appinfo="all forceOutput fields computed." value='"ALL"'/>
     <enumeration appinfo="no forceOutput fields computed." value='"NONE"'/>
    </field>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="outputOnly" description="motor1Angle provides calculated angle of rotation (radians) for this motor joint from last frame." name="motor1Angle" type="SFFloat"/>
    <field accessType="outputOnly" description="motor1AngleRate provides calculated anglular rotation rate (radians/second) for this motor joint from last frame." name="motor1AngleRate" type="SFFloat"/>
    <field accessType="inputOutput" default="1 0 0" description="motor1Axis defines axis vector of corresponding motor axis." name="motor1Axis" type="SFVec3f"/>
    <field accessType="outputOnly" description="motor2Angle provides calculated angle of rotation (radians) for this motor joint from last frame." name="motor2Angle" type="SFFloat"/>
    <field accessType="outputOnly" description="motor2AngleRate provides calculated anglular rotation rate (radians/second) for this motor joint from last frame." name="motor2AngleRate" type="SFFloat"/>
    <field accessType="inputOutput" default="0 1 0" description="motor2Axis defines axis vector of corresponding motor axis." name="motor2Axis" type="SFVec3f"/>
    <field accessType="outputOnly" description="motor3Angle provides calculated angle of rotation (radians) for this motor joint from last frame." name="motor3Angle" type="SFFloat"/>
    <field accessType="outputOnly" description="motor3AngleRate provides calculated anglular rotation rate (radians/second) for this motor joint from last frame." name="motor3AngleRate" type="SFFloat"/>
    <field accessType="inputOutput" default="0 0 1" description="motor3Axis defines axis vector of corresponding motor axis." name="motor3Axis" type="SFVec3f"/>
    <field accessType="inputOutput" default="0" description="stop1Bounce is velocity factor for bounce back once stop point is reached." name="stop1Bounce" type="SFFloat"/>
    <field accessType="inputOutput" default="0.8" description="stop1ErrorCorrection is fraction of error correction performed during time step once stop point is reached." name="stop1ErrorCorrection" type="SFFloat"/>
    <field accessType="inputOutput" default="0" description="stop2Bounce is velocity factor for bounce back once stop point is reached." name="stop2Bounce" type="SFFloat"/>
    <field accessType="inputOutput" default="0.8" description="stop2ErrorCorrection is fraction of error correction performed during time step once stop point is reached." name="stop2ErrorCorrection" type="SFFloat"/>
    <field accessType="inputOutput" default="0" description="stop3Bounce is velocity factor for bounce back once stop point is reached." name="stop3Bounce" type="SFFloat"/>
    <field accessType="inputOutput" default="0.8" description="stop3ErrorCorrection is fraction of error correction performed during time step once stop point is reached." name="stop3ErrorCorrection" type="SFFloat"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="joints" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
     <GroupContentModel minOccurs="0" name="RigidJointNodeContentModel"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="MovieTexture">
   <InterfaceDefinition appinfo="MovieTexture applies a 2D movie image to surface geometry, or provides audio for a Sound node." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/texturing.html#MovieTexture">
    <componentInfo level="3" name="Texturing"/>
    <Inheritance baseType="X3DSoundSourceNode"/>
    <AdditionalInheritance baseType="X3DTexture2DNode"/>
    <AdditionalInheritance baseType="X3DUrlObject"/>
    <field accessType="inputOutput" default="0" description="autoRefresh defines interval in seconds before automatic reload of current url asset is performed." inheritedFrom="X3DUrlObject" minInclusive="0" name="autoRefresh" type="SFTime"/>
    <field accessType="inputOutput" default="3600" description="autoRefreshTimeLimit defines maximum duration that automatic refresh activity can occur." inheritedFrom="X3DUrlObject" minInclusive="0" name="autoRefreshTimeLimit" type="SFTime"/>
    <field accessType="inputOutput" description="Author-provided prose that describes intended purpose of the url asset." inheritedFrom="X3DTimeDependentNode" name="description" type="SFString"/>
    <field accessType="outputOnly" description="or -1." minInclusive="-1" name="duration_changed" type="SFTime"/>
    <field accessType="outputOnly" description="Current elapsed time since MovieTexture activated/running, cumulative in seconds, and not counting any paused time." inheritedFrom="X3DTimeDependentNode" minInclusive="0" name="elapsedTime" type="SFTime"/>
    <field accessType="inputOutput" default="true" description="Enables/disables node operation." inheritedFrom="X3DSoundSourceNode" name="enabled" type="SFBool"/>
    <field accessType="inputOutput" default="1" description="The gain field is a factor that represents the amount of linear amplification to apply to the output of the node." inheritedFrom="X3DSoundSourceNode" name="gain" type="SFFloat"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="outputOnly" description="isActive true/false events are sent when playback starts/stops." inheritedFrom="X3DTimeDependentNode" name="isActive" type="SFBool"/>
    <field accessType="outputOnly" description="isPaused true/false events are sent when MovieTexture is paused/resumed." inheritedFrom="X3DTimeDependentNode" name="isPaused" type="SFBool">
     <componentInfo level="2" name="Time"/>
    </field>
    <field accessType="inputOutput" default="true" description="load=true means load immediately, load=false means defer loading or else unload a previously loaded scene." inheritedFrom="X3DUrlObject" name="load" type="SFBool"/>
    <field accessType="inputOutput" default="false" description="Repeat indefinitely when loop=true, repeat only once when loop=false." name="loop" type="SFBool"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" default="0" description="When time now &gt;= pauseTime, isPaused becomes true and MovieTexture becomes paused." inheritedFrom="X3DTimeDependentNode" name="pauseTime" type="SFTime">
     <componentInfo level="2" name="Time"/>
    </field>
    <field accessType="inputOutput" default="1.0" description="Multiplier for the rate at which sampled sound is played." minExclusive="0" name="pitch" type="SFFloat"/>
    <field accessType="initializeOnly" default="true" description="Whether to repeat texture along S axis horizontally from left to right." inheritedFrom="X3DTexture2DNode" name="repeatS" type="SFBool"/>
    <field accessType="initializeOnly" default="true" description="Whether to repeat texture along T axis vertically from top to bottom." inheritedFrom="X3DTexture2DNode" name="repeatT" type="SFBool"/>
    <field accessType="inputOutput" default="0" description="When resumeTime becomes &lt;= time now, isPaused becomes false and MovieTexture becomes active." inheritedFrom="X3DTimeDependentNode" name="resumeTime" type="SFTime">
     <componentInfo level="2" name="Time"/>
    </field>
    <field accessType="inputOutput" default="1.0" description="Factor for how fast the movie (or soundtrack) is played." name="speed" type="SFFloat"/>
    <field accessType="inputOutput" default="0" description="Absolute time: number of seconds since January 1, 1970, 00:00:00 GMT." inheritedFrom="X3DTimeDependentNode" name="startTime" type="SFTime"/>
    <field accessType="inputOutput" default="0" description="Absolute time: number of seconds since January 1, 1970, 00:00:00 GMT." inheritedFrom="X3DTimeDependentNode" name="stopTime" type="SFTime"/>
    <field acceptableNodeTypes="TextureProperties" accessType="initializeOnly" default="NULL" description="Single contained TextureProperties node that can specify additional visual attributes applied to corresponding texture images." name="textureProperties" type="SFNode"/>
    <field accessType="inputOutput" description="Location and filename of movie file or stream." inheritedFrom="X3DUrlObject" name="url" type="MFString">
     <componentInfo level="4" name="Networking"/>
    </field>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="texture" type="containerFieldChoicesX3dUrlObjectTexture"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="MultiTexture">
   <InterfaceDefinition appinfo="MultiTexture applies several individual textures to a single geometry node, enabling a variety of visual effects that include light mapping and environment mapping." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/texturing.html#MultiTexture">
    <componentInfo level="2" name="Texturing"/>
    <Inheritance baseType="X3DTextureNode"/>
    <field accessType="inputOutput" default="1" description="The alpha field defines the alpha (1-transparency) base value for mode operations." maxInclusive="1" minInclusive="0" name="alpha" type="SFFloat"/>
    <field accessType="inputOutput" default="1 1 1" description="The color field defines the RGB base values for mode operations." maxInclusive="1" minInclusive="0" name="color" type="SFColor"/>
    <field accessType="inputOutput" description="Author-provided prose that describes intended purpose of the url asset." inheritedFrom="X3DTextureNode" name="description" type="SFString"/>
    <field accessType="inputOutput" additionalEnumerationValuesAllowed="true" baseType="MFString" description="function operators COMPLEMENT or ALPHAREPLICATE can be applied after the mode blending operation." name="function" simpleType="multiTextureFunctionValues" type="MFString">
     <enumeration appinfo="Invert argument x as (1 - x)." value='"COMPLEMENT"'/>
     <enumeration appinfo="Replicate alpha information to all color channels before operation completes." value='"ALPHAREPLICATE"'/>
     <enumeration appinfo="No function is applied - empty SFString is allowed value within MFString array." value='""'/>
    </field>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" additionalEnumerationValuesAllowed="true" baseType="MFString" description="mode field indicates the type of blending operation, both for color and for alpha channel." name="mode" simpleType="multiTextureModeValues" type="MFString">
     <enumeration value='"ADD"'/>
     <enumeration value='"ADDSIGNED"'/>
     <enumeration value='"ADDSIGNED2X"'/>
     <enumeration value='"ADDSMOOTH"'/>
     <enumeration value='"BLENDCURRENTALPHA"'/>
     <enumeration value='"BLENDDIFFUSEALPHA"'/>
     <enumeration value='"BLENDFACTORALPHA"'/>
     <enumeration value='"BLENDTEXTUREALPHA"'/>
     <enumeration value='"DOTPRODUCT3"'/>
     <enumeration value='"MODULATE"'/>
     <enumeration value='"MODULATE2X"'/>
     <enumeration value='"MODULATE4X"'/>
     <enumeration value='"MODULATEALPHA_ADDCOLOR"'/>
     <enumeration value='"MODULATEINVALPHA_ADDCOLOR"'/>
     <enumeration value='"MODULATEINVCOLOR_ADDALPHA"'/>
     <enumeration value='"OFF"'/>
     <enumeration value='"REPLACE"'/>
     <enumeration value='"SELECTARG1"'/>
     <enumeration value='"SELECTARG2"'/>
     <enumeration value='"SUBTRACT"'/>
    </field>
    <field accessType="inputOutput" additionalEnumerationValuesAllowed="true" baseType="MFString" description="source field determines whether each image source is treated as DIFFUSE, SPECULAR or a multiplicative FACTOR." name="source" simpleType="multiTextureSourceValues" type="MFString">
     <enumeration value='"DIFFUSE"'/>
     <enumeration value='"FACTOR"'/>
     <enumeration value='"SPECULAR"'/>
     <enumeration value='""'/>
    </field>
    <field acceptableNodeTypes="X3DSingleTextureNode" accessType="inputOutput" description="Contained texture nodes (ImageTexture, MovieTexture, PixelTexture) that map image(s) to surface geometry, defining each of the different texture channels." name="texture" type="MFNode"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="texture" type="containerFieldChoicesX3DTexture2DNode"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
     <NodeContentModel name="ImageTexture"/>
     <NodeContentModel name="MovieTexture"/>
     <NodeContentModel name="PixelTexture"/>
     <NodeContentModel name="ComposedCubeMapTexture"/>
     <NodeContentModel name="GeneratedCubeMapTexture"/>
     <NodeContentModel name="ImageCubeMapTexture"/>
     <NodeContentModel name="ComposedTexture3D"/>
     <NodeContentModel name="ImageTexture3D"/>
     <NodeContentModel name="PixelTexture3D"/>
     <NodeContentModel name="ProtoInstance"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="MultiTextureCoordinate">
   <InterfaceDefinition appinfo="MultiTextureCoordinate contains multiple TextureCoordinate or TextureCoordinateGenerator nodes, for use by a parent polygonal geometry node such as IndexedFaceSet or a Triangle* node." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/texturing.html#MultiTextureCoordinate">
    <componentInfo level="2" name="Texturing"/>
    <Inheritance baseType="X3DTextureCoordinateNode"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field acceptableNodeTypes="X3DSingleTextureCoordinateNode" accessType="inputOutput" description="Zero or more contained TextureCoordinate or TextureCoordinateGenerator nodes that specify texture coordinates for the different texture channels, used for texture mapping onto corresponding geometry." name="texCoord" type="MFNode"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="texCoord" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
     <NodeContentModel name="TextureCoordinate"/>
     <NodeContentModel name="TextureCoordinateGenerator"/>
     <NodeContentModel name="ProtoInstance"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="MultiTextureTransform">
   <InterfaceDefinition appinfo="MultiTextureTransform contains multiple TextureTransform nodes, each provided for use by corresponding ImageTexture MovieTexture or PixelTexture nodes within a sibling MultiTexture node." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/texturing.html#MultiTextureTransform">
    <componentInfo level="2" name="Texturing"/>
    <Inheritance baseType="X3DTextureTransformNode"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field acceptableNodeTypes="X3DSingleTextureTransformNode" accessType="inputOutput" description="Zero or more contained TextureTransform nodes, for each of the different texture channels, that define 2D transformation applied to texture coordinates." name="textureTransform" type="MFNode"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="textureTransform" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
     <NodeContentModel name="TextureTransform"/>
     <NodeContentModel name="ProtoInstance"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="NavigationInfo">
   <InterfaceDefinition appinfo="NavigationInfo describes the user's viewing model, user navigation-interaction modalities, and also dimensional characteristics of the user's (typically invisible) avatar." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/navigation.html#NavigationInfo">
    <componentInfo level="1" name="Navigation"/>
    <Inheritance baseType="X3DBindableNode"/>
    <field accessType="inputOutput" default="0.25 1.6 0.75" description="avatarSize triplet values define three separate parameters: (a) collisionDistance between user and geometry, i." minInclusive="0" name="avatarSize" type="MFFloat">
     <componentInfo level="2" name="Navigation"/>
    </field>
    <field accessType="outputOnly" description="Event sent reporting timestamp when node becomes active/inactive." inheritedFrom="X3DBindableNode" name="bindTime" type="SFTime"/>
    <field accessType="inputOutput" default="true" description="Enable/disable directional light that always points in the direction the user is looking." name="headlight" type="SFBool"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="outputOnly" description="Output event true gets sent when node becomes bound and activated, otherwise output event false gets sent when node becomes unbound and deactivated." inheritedFrom="X3DBindableNode" name="isBound" type="SFBool"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOnly" description="Receiving event set_bind=true activates and binds this node at the top of the binding stack." inheritedFrom="X3DBindableNode" name="set_bind" type="SFBool"/>
    <field accessType="inputOutput" default="1" description="Default rate at which viewer travels through scene, meters/second." minInclusive="0" name="speed" type="SFFloat">
     <componentInfo level="2" name="Navigation"/>
    </field>
    <field accessType="outputOnly" description="Event signaling viewpoint transition complete." name="transitionComplete" type="SFBool"/>
    <field accessType="inputOutput" default="1.0" description="transitionTime defines the expected duration of viewpoint transition in seconds." minInclusive="0" name="transitionTime" type="SFTime"/>
    <field accessType="inputOutput" additionalEnumerationValuesAllowed="true" baseType="MFString" default='"LINEAR"' description="Camera transition between viewpoints." name="transitionType" simpleType="navigationTransitionTypeValues" type="MFString">
     <enumeration appinfo="immediate transition." value='"TELEPORT"'/>
     <enumeration appinfo="transition may proceed directly through intervening objects." value='"LINEAR"'/>
     <enumeration appinfo="rowser-specific transition." value='"ANIMATE"'/>
    </field>
    <field accessType="inputOutput" additionalEnumerationValuesAllowed="true" baseType="MFString" default='"EXAMINE" "ANY"' description='Enter one or more quoted SFString values: "EXAMINE" "WALK" "FLY" "LOOKAT" "EXPLORE" "ANY" "NONE".' name="type" simpleType="navigationTypeValues" type="MFString">
     <enumeration appinfo="browser can offer any type for user to choose." value='"ANY"'/>
     <enumeration appinfo="free navigation, avatar remains on ground, collision detection." value='"WALK"'/>
     <enumeration appinfo="view an individual object by rotating view about center." value='"EXAMINE"'/>
     <enumeration appinfo="free navigation, collision detection." value='"FLY"'/>
     <enumeration appinfo="navigate to particular object." value='"LOOKAT"'/>
     <enumeration appinfo="disables all navigation interfaces." value='"NONE"'/>
     <enumeration appinfo="consistent keystroke navigation for both geospatial and Cartesian modes." value='"EXPLORE"'/>
    </field>
    <field accessType="inputOutput" default="0" description="Geometry beyond the visibilityLimit may not be rendered (far clipping plane of the view frustrum)." minInclusive="0" name="visibilityLimit" type="SFFloat">
     <componentInfo level="2" name="Navigation"/>
    </field>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="Normal">
   <InterfaceDefinition appinfo="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." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/rendering.html#Normal">
    <componentInfo level="2" name="Rendering"/>
    <Inheritance baseType="X3DNormalNode"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" description="set of unit-length normal vectors, corresponding to indexed polygons or vertices." maxInclusive="1" minInclusive="-1" name="vector" type="MFVec3f"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="normal" type="containerFieldChoicesX3DNormalNode"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="NormalInterpolator">
   <InterfaceDefinition appinfo="NormalInterpolator generates a series of normal (perpendicular) 3-tuple SFVec3f values." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/interpolators.html#NormalInterpolator">
    <componentInfo level="2" name="Interpolation"/>
    <Inheritance baseType="X3DInterpolatorNode"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="inputOutput" description="Definition values for linear-interpolation function input intervals, listed in non-decreasing order and corresponding to a value in the keyValue array." inheritedFrom="X3DInterpolatorNode" name="key" type="MFFloat"/>
    <field accessType="inputOutput" description="Output values for linear interpolation, each corresponding to an input-fraction value in the key array." name="keyValue" type="MFVec3f"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOnly" description="set_fraction selects input key for corresponding keyValue output." inheritedFrom="X3DInterpolatorNode" name="set_fraction" type="SFFloat"/>
    <field accessType="outputOnly" description="Linearly interpolated output value determined by current key time and corresponding keyValue pair." name="value_changed" type="MFVec3f"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="NurbsCurve">
   <InterfaceDefinition appinfo="NurbsCurve is a 3D curve analogous to NurbsPatchSurface." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/nurbs.html#NurbsCurve">
    <componentInfo level="1" name="NURBS"/>
    <Inheritance baseType="X3DParametricGeometryNode"/>
    <field accessType="initializeOnly" default="false" description="Whether or not the curve is closed (i." name="closed" type="SFBool"/>
    <field acceptableNodeTypes="Coordinate|CoordinateDouble" accessType="inputOutput" default="NULL" description="Single contained Coordinate or CoordinateDouble node that can specify control points for NURBS geometry definitions." name="controlPoint" type="SFNode"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="initializeOnly" description="knot vector, where size = number of control points + order of curve." name="knot" type="MFDouble"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="initializeOnly" default="3" description="define order of surface by polynomials of degree = order-1." minInclusive="2" name="order" type="SFInt32"/>
    <field accessType="inputOutput" default="0" description="hint for surface tessellation." name="tessellation" type="SFInt32"/>
    <field accessType="inputOutput" description="Vector assigning relative weight value to each control point." minExclusive="0" name="weight" type="MFDouble"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="geometry" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
     <NodeContentModel name="Coordinate"/>
     <NodeContentModel name="CoordinateDouble"/>
     <NodeContentModel name="GeoCoordinate"/>
     <NodeContentModel name="ProtoInstance"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="NurbsCurve2D">
   <InterfaceDefinition appinfo="NurbsCurve2D defines a trimming segment that is part of a trimming contour in the u-v domain of a surface." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/nurbs.html#NurbsCurve2D">
    <componentInfo level="3" name="NURBS"/>
    <Inheritance baseType="X3DNurbsControlCurveNode"/>
    <field accessType="initializeOnly" default="false" description="Whether or not the curve is closed (i." name="closed" type="SFBool"/>
    <field accessType="inputOutput" description="controlPoint defines a set of control points of dimension uDimension by vDimension, and defines a mesh where the points do not have uniform spacing." inheritedFrom="X3DNurbsControlCurveNode" name="controlPoint" type="MFVec2d"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="initializeOnly" description="knot vector, where size = number of control points + order of curve." name="knot" type="MFDouble"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="initializeOnly" default="3" description="define order of surface by polynomials of degree = order-1." minInclusive="2" name="order" type="SFInt32"/>
    <field accessType="inputOutput" default="0" description="hint for surface tessellation." name="tessellation" type="SFInt32"/>
    <field accessType="inputOutput" description="Vector assigning relative weight value to each control point." minExclusive="0" name="weight" type="MFDouble"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="NurbsOrientationInterpolator">
   <InterfaceDefinition appinfo="NurbsOrientationInterpolator describes a 3D NURBS curve and outputs interpolated orientation values." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/nurbs.html#NurbsOrientationInterpolator">
    <componentInfo level="1" name="NURBS"/>
    <Inheritance baseType="X3DChildNode"/>
    <field acceptableNodeTypes="Coordinate|CoordinateDouble" accessType="inputOutput" default="NULL" description="Single contained Coordinate or CoordinateDouble node that can specify control points for NURBS geometry definitions." name="controlPoint" type="SFNode"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="inputOutput" description="knot vector, where size = number of control points + order of curve." name="knot" type="MFDouble"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" default="3" description="define order of surface by polynomials of degree = order-1." minInclusive="2" name="order" type="SFInt32"/>
    <field accessType="inputOnly" description="setting fraction in range [0,1] selects input key for corresponding keyValue output, computing a 3D position on the curve." name="set_fraction" type="SFFloat"/>
    <field accessType="outputOnly" description="Computationaly interpolated output value determined by current key time and corresponding keyValue pair." name="value_changed" type="SFRotation"/>
    <field accessType="inputOutput" description="Output values for computational interpolation, each corresponding to knots." name="weight" type="MFDouble"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
     <NodeContentModel name="Coordinate"/>
     <NodeContentModel name="CoordinateDouble"/>
     <NodeContentModel name="GeoCoordinate"/>
     <NodeContentModel name="ProtoInstance"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="NurbsPatchSurface">
   <InterfaceDefinition appinfo="NurbsPatchSurface defines a contiguous 3D Non-Uniform Rational B-Spline (NURBS) surface." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/nurbs.html#NurbsPatchSurface">
    <componentInfo level="1" name="NURBS"/>
    <Inheritance baseType="X3DNurbsSurfaceGeometryNode"/>
    <field acceptableNodeTypes="Coordinate|CoordinateDouble" accessType="inputOutput" default="NULL" description="Single contained Coordinate or CoordinateDouble node that can specify control points for NURBS geometry definitions." inheritedFrom="X3DNurbsSurfaceGeometryNode" name="controlPoint" type="SFNode"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="initializeOnly" default="true" description="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)." inheritedFrom="X3DNurbsSurfaceGeometryNode" name="solid" type="SFBool"/>
    <field acceptableNodeTypes="X3DSingleTextureCoordinateNode|NurbsTextureCoordinate" accessType="inputOutput" default="NULL" description="Single contained NurbsTextureCoordinate, TextureCoordinate, TextureCoordinateGenerator or MultiTextureCoordinate node that can specify coordinates for texture mapping onto corresponding geometry." inheritedFrom="X3DNurbsSurfaceGeometryNode" name="texCoord" type="SFNode"/>
    <field accessType="initializeOnly" default="false" description="Whether opposite surface sides are closed (seamless) across u dimension." inheritedFrom="X3DNurbsSurfaceGeometryNode" name="uClosed" type="SFBool"/>
    <field accessType="initializeOnly" default="0" description="Number of control points in u dimension." inheritedFrom="X3DNurbsSurfaceGeometryNode" minInclusive="0" name="uDimension" type="SFInt32"/>
    <field accessType="initializeOnly" description="knot vector, where size = number of control points + order of curve." inheritedFrom="X3DNurbsSurfaceGeometryNode" name="uKnot" type="MFDouble"/>
    <field accessType="initializeOnly" default="3" description="define order of surface by polynomials of degree = order-1." inheritedFrom="X3DNurbsSurfaceGeometryNode" minInclusive="2" name="uOrder" type="SFInt32"/>
    <field accessType="inputOutput" default="0" description="hint for surface tessellation." inheritedFrom="X3DNurbsSurfaceGeometryNode" name="uTessellation" type="SFInt32"/>
    <field accessType="initializeOnly" default="false" description="Whether opposite surface sides are closed (seamless) across u dimension." inheritedFrom="X3DNurbsSurfaceGeometryNode" name="vClosed" type="SFBool"/>
    <field accessType="initializeOnly" default="0" description="Number of control points in v dimension." inheritedFrom="X3DNurbsSurfaceGeometryNode" minInclusive="0" name="vDimension" type="SFInt32"/>
    <field accessType="initializeOnly" description="knot vector, where size = number of control points + order of curve." inheritedFrom="X3DNurbsSurfaceGeometryNode" name="vKnot" type="MFDouble"/>
    <field accessType="initializeOnly" default="3" description="define order of surface by polynomials of degree = order-1." inheritedFrom="X3DNurbsSurfaceGeometryNode" minInclusive="2" name="vOrder" type="SFInt32"/>
    <field accessType="inputOutput" default="0" description="hint for surface tessellation." inheritedFrom="X3DNurbsSurfaceGeometryNode" name="vTessellation" type="SFInt32"/>
    <field accessType="inputOutput" description="Vector assigning relative weight value to each control point." inheritedFrom="X3DNurbsSurfaceGeometryNode" minExclusive="0" name="weight" type="MFDouble"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="geometry" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
     <NodeContentModel name="Coordinate"/>
     <NodeContentModel name="CoordinateDouble"/>
     <NodeContentModel name="GeoCoordinate"/>
     <NodeContentModel name="TextureCoordinate"/>
     <NodeContentModel name="TextureCoordinateGenerator"/>
     <NodeContentModel name="NurbsTextureCoordinate"/>
     <NodeContentModel name="ProtoInstance"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="NurbsPositionInterpolator">
   <InterfaceDefinition appinfo="NurbsPositionInterpolator describes a 3D NURBS curve and outputs interpolated position values." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/nurbs.html#NurbsPositionInterpolator">
    <componentInfo level="1" name="NURBS"/>
    <Inheritance baseType="X3DChildNode"/>
    <field acceptableNodeTypes="Coordinate|CoordinateDouble" accessType="inputOutput" default="NULL" description="Single contained Coordinate or CoordinateDouble node that can specify control points for NURBS geometry definitions." name="controlPoint" type="SFNode"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="inputOutput" description="knot vector, where size = number of control points + order of curve." name="knot" type="MFDouble"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" default="3" description="define order of surface by polynomials of degree = order-1." minInclusive="2" name="order" type="SFInt32"/>
    <field accessType="inputOnly" description="setting fraction in range [0,1] selects input key for corresponding keyValue output, computing a 3D position on the curve." name="set_fraction" type="SFFloat"/>
    <field accessType="outputOnly" description="Computationaly interpolated output value determined by current key time and corresponding keyValue pair." name="value_changed" type="SFVec3f"/>
    <field accessType="inputOutput" description="Output values for linear interpolation, each corresponding to knots." name="weight" type="MFDouble"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
     <NodeContentModel name="Coordinate"/>
     <NodeContentModel name="CoordinateDouble"/>
     <NodeContentModel name="GeoCoordinate"/>
     <NodeContentModel name="ProtoInstance"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="NurbsSet">
   <InterfaceDefinition appinfo="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." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/nurbs.html#NurbsSet">
    <componentInfo level="2" name="NURBS"/>
    <Inheritance baseType="X3DChildNode"/>
    <AdditionalInheritance baseType="X3DBoundedObject"/>
    <field acceptableNodeTypes="X3DParametricGeometryNode" accessType="inputOnly" name="addGeometry" type="MFNode"/>
    <field accessType="initializeOnly" default="0 0 0" description="Bounding box center accompanies bboxSize and provides an optional hint for bounding box position offset from origin of local coordinate system." inheritedFrom="X3DBoundedObject" name="bboxCenter" type="SFVec3f"/>
    <field accessType="inputOutput" default="false" description="Whether to display bounding box for associated geometry, aligned with world coordinates." inheritedFrom="X3DBoundedObject" name="bboxDisplay" type="SFBool"/>
    <field accessType="initializeOnly" baseType="bboxSizeType" default="-1 -1 -1" description="Bounding box size is usually omitted, and can easily be calculated automatically by an X3D player at scene-loading time with minimal computational cost." inheritedFrom="X3DBoundedObject" name="bboxSize" type="SFVec3f"/>
    <field acceptableNodeTypes="X3DParametricGeometryNode" accessType="inputOutput" description="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." name="geometry" type="MFNode"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field acceptableNodeTypes="X3DParametricGeometryNode" accessType="inputOnly" name="removeGeometry" type="MFNode"/>
    <field accessType="inputOutput" default="1.0" description="scale for surface tessellation in children NurbsSurface nodes." minExclusive="0" name="tessellationScale" type="SFFloat"/>
    <field accessType="inputOutput" default="true" description="Whether or not renderable content within this node is visually displayed." inheritedFrom="X3DBoundedObject" name="visible" type="SFBool"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
     <NodeContentModel name="NurbsPatchSurface"/>
     <NodeContentModel name="NurbsSweptSurface"/>
     <NodeContentModel name="NurbsSwungSurface"/>
     <NodeContentModel name="NurbsTrimmedSurface"/>
     <NodeContentModel name="ProtoInstance"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="NurbsSurfaceInterpolator">
   <InterfaceDefinition appinfo="NurbsSurfaceInterpolator describes a 3D NURBS curve and outputs interpolated position and normal values." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/nurbs.html#NurbsSurfaceInterpolator">
    <componentInfo level="1" name="NURBS"/>
    <Inheritance baseType="X3DChildNode"/>
    <field acceptableNodeTypes="Coordinate|CoordinateDouble" accessType="inputOutput" default="NULL" description="Single contained Coordinate or CoordinateDouble node that can specify control points for NURBS geometry definitions." name="controlPoint" type="SFNode"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="outputOnly" description="Computationaly interpolated output value determined by current key time and corresponding keyValue pair." name="normal_changed" type="SFVec3f"/>
    <field accessType="outputOnly" description="Computationaly interpolated output value determined by current key time and corresponding keyValue pair." name="position_changed" type="SFVec3f"/>
    <field accessType="inputOnly" description="setting fraction in range [0,1] selects input key for corresponding keyValue output, computing a 3D position on the curve." name="set_fraction" type="SFVec2f"/>
    <field accessType="initializeOnly" default="0" description="Number of control points in u dimension." minInclusive="0" name="uDimension" type="SFInt32"/>
    <field accessType="initializeOnly" description="Knot vector, where size = number of control points + order of curve." name="uKnot" type="MFDouble"/>
    <field accessType="initializeOnly" default="3" description="Define order of surface by polynomials of degree = order-1." minInclusive="2" name="uOrder" type="SFInt32"/>
    <field accessType="initializeOnly" default="0" description="Number of control points in v dimension." minInclusive="0" name="vDimension" type="SFInt32"/>
    <field accessType="initializeOnly" description="Knot vector, where size = number of control points + order of curve." name="vKnot" type="MFDouble"/>
    <field accessType="initializeOnly" default="3" description="Define order of surface by polynomials of degree = order-1." minInclusive="2" name="vOrder" type="SFInt32"/>
    <field accessType="inputOutput" description="Output values for linear interpolation, each corresponding to knots." name="weight" type="MFDouble"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
     <NodeContentModel name="Coordinate"/>
     <NodeContentModel name="CoordinateDouble"/>
     <NodeContentModel name="GeoCoordinate"/>
     <NodeContentModel name="ProtoInstance"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="NurbsSweptSurface">
   <InterfaceDefinition appinfo="NurbsSweptSurface uses a trajectoryCurve path to describe a generalized surface that is swept by a crossSectionCurve." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/nurbs.html#NurbsSweptSurface">
    <componentInfo level="3" name="NURBS"/>
    <Inheritance baseType="X3DParametricGeometryNode"/>
    <field accessType="initializeOnly" default="true" description="ccw defines clockwise/counterclockwise ordering of vertex coordinates, which in turn defines front/back orientation of polygon normals according to Right-Hand Rule (RHR)." name="ccw" type="SFBool"/>
    <field acceptableNodeTypes="X3DNurbsControlCurveNode" accessType="inputOutput" default="NULL" description="defines cross-section of the surface traced about the trajectoryCurve axis." name="crossSectionCurve" type="SFNode"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="initializeOnly" default="true" description="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)." name="solid" type="SFBool"/>
    <field acceptableNodeTypes="NurbsCurve" accessType="inputOutput" default="NULL" description="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" type="SFNode"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="geometry" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
     <NodeContentModel name="ContourPolyline2D"/>
     <NodeContentModel name="NurbsCurve2D"/>
     <NodeContentModel name="NurbsCurve"/>
     <NodeContentModel name="ProtoInstance"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="NurbsSwungSurface">
   <InterfaceDefinition appinfo="NurbsSwungSurface contains a profileCurve and a trajectoryCurve [X3DNurbsControlCurveNode]." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/nurbs.html#NurbsSwungSurface">
    <componentInfo level="3" name="NURBS"/>
    <Inheritance baseType="X3DParametricGeometryNode"/>
    <field accessType="initializeOnly" default="true" description="ccw defines clockwise/counterclockwise ordering of vertex coordinates, which in turn defines front/back orientation of polygon normals according to Right-Hand Rule (RHR)." name="ccw" type="SFBool"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field acceptableNodeTypes="X3DNurbsControlCurveNode" accessType="inputOutput" default="NULL" description="2D curve in the yz-plane that describes the cross-sectional shape of the object." name="profileCurve" type="SFNode"/>
    <field accessType="initializeOnly" default="true" description="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)." name="solid" type="SFBool"/>
    <field acceptableNodeTypes="X3DNurbsControlCurveNode" accessType="inputOutput" default="NULL" description="2D curve in the xz-plane that describes path over which to trace the cross-section." name="trajectoryCurve" type="SFNode"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="geometry" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
     <NodeContentModel name="ContourPolyline2D"/>
     <NodeContentModel name="NurbsCurve2D"/>
     <NodeContentModel name="ProtoInstance"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="NurbsTextureCoordinate">
   <InterfaceDefinition appinfo="NurbsTextureCoordinate describes a 3D NURBS surface in the parametric domain of its surface host, specifying mapping of texture onto the surface." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/nurbs.html#NurbsTextureCoordinate">
    <componentInfo level="1" name="NURBS"/>
    <Inheritance baseType="X3DNode"/>
    <field accessType="inputOutput" description="controlPoint defines a set of control points of dimension uDimension by vDimension, and defines a mesh where the points do not have uniform spacing." name="controlPoint" type="MFVec2f"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="initializeOnly" default="0" description="Number of control points in u dimension." minInclusive="0" name="uDimension" type="SFInt32"/>
    <field accessType="initializeOnly" description="Knot vector, where size = number of control points + order of curve." name="uKnot" type="MFDouble"/>
    <field accessType="initializeOnly" default="3" description="Define order of surface by polynomials of degree = order-1." minInclusive="2" name="uOrder" type="SFInt32"/>
    <field accessType="initializeOnly" default="0" description="Number of control points in v dimension." minInclusive="0" name="vDimension" type="SFInt32"/>
    <field accessType="initializeOnly" description="Knot vector, where size = number of control points + order of curve." name="vKnot" type="MFDouble"/>
    <field accessType="initializeOnly" default="3" description="Define order of surface by polynomials of degree = order-1." minInclusive="2" name="vOrder" type="SFInt32"/>
    <field accessType="inputOutput" description="Output values for linear interpolation, each corresponding to knots." minExclusive="0" name="weight" type="MFDouble"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="texCoord" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="NurbsTrimmedSurface">
   <InterfaceDefinition appinfo="NurbsTrimmedSurface generates texture coordinates from a Non-Uniform Rational B-Spline (NURBS) surface." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/nurbs.html#NurbsTrimmedSurface">
    <componentInfo level="4" name="NURBS"/>
    <Inheritance baseType="X3DNurbsSurfaceGeometryNode"/>
    <field acceptableNodeTypes="Contour2D" accessType="inputOnly" name="addTrimmingContour" type="MFNode"/>
    <field acceptableNodeTypes="Coordinate|CoordinateDouble" accessType="inputOutput" default="NULL" description="Single contained Coordinate or CoordinateDouble node that can specify control points for NURBS geometry definitions." inheritedFrom="X3DNurbsSurfaceGeometryNode" name="controlPoint" type="SFNode"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field acceptableNodeTypes="Contour2D" accessType="inputOnly" name="removeTrimmingContour" type="MFNode"/>
    <field accessType="initializeOnly" default="true" description="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)." inheritedFrom="X3DNurbsSurfaceGeometryNode" name="solid" type="SFBool"/>
    <field acceptableNodeTypes="X3DSingleTextureCoordinateNode|NurbsTextureCoordinate" accessType="inputOutput" default="NULL" description="Single contained NurbsTextureCoordinate, TextureCoordinate, TextureCoordinateGenerator or MultiTextureCoordinate node that can specify coordinates for texture mapping onto corresponding geometry." inheritedFrom="X3DNurbsSurfaceGeometryNode" name="texCoord" type="SFNode"/>
    <field acceptableNodeTypes="Contour2D" accessType="inputOutput" description="A set of Contour2D nodes are used as trimming loops." name="trimmingContour" type="MFNode"/>
    <field accessType="initializeOnly" default="false" description="Whether opposite surface sides are closed (seamless) across u dimension." inheritedFrom="X3DNurbsSurfaceGeometryNode" name="uClosed" type="SFBool"/>
    <field accessType="initializeOnly" default="0" description="Number of control points in u dimension." inheritedFrom="X3DNurbsSurfaceGeometryNode" minInclusive="0" name="uDimension" type="SFInt32"/>
    <field accessType="initializeOnly" description="Knot vector, where size = number of control points + order of curve." inheritedFrom="X3DNurbsSurfaceGeometryNode" name="uKnot" type="MFDouble"/>
    <field accessType="initializeOnly" default="3" description="Define order of surface by polynomials of degree = order-1." inheritedFrom="X3DNurbsSurfaceGeometryNode" minInclusive="2" name="uOrder" type="SFInt32"/>
    <field accessType="inputOutput" default="0" description="hint for surface tessellation." inheritedFrom="X3DNurbsSurfaceGeometryNode" name="uTessellation" type="SFInt32"/>
    <field accessType="initializeOnly" default="false" description="Whether opposite surface sides are closed (seamless) across u dimension." inheritedFrom="X3DNurbsSurfaceGeometryNode" name="vClosed" type="SFBool"/>
    <field accessType="initializeOnly" default="0" description="Number of control points in v dimension." inheritedFrom="X3DNurbsSurfaceGeometryNode" minInclusive="0" name="vDimension" type="SFInt32"/>
    <field accessType="initializeOnly" description="Knot vector, where size = number of control points + order of curve." inheritedFrom="X3DNurbsSurfaceGeometryNode" name="vKnot" type="MFDouble"/>
    <field accessType="initializeOnly" default="3" description="Define order of surface by polynomials of degree = order-1." inheritedFrom="X3DNurbsSurfaceGeometryNode" minInclusive="2" name="vOrder" type="SFInt32"/>
    <field accessType="inputOutput" default="0" description="hint for surface tessellation." inheritedFrom="X3DNurbsSurfaceGeometryNode" name="vTessellation" type="SFInt32"/>
    <field accessType="inputOutput" description="Vector assigning relative weight value to each control point." inheritedFrom="X3DNurbsSurfaceGeometryNode" minExclusive="0" name="weight" type="MFDouble"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="geometry" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
     <NodeContentModel name="Contour2D"/>
     <NodeContentModel name="Coordinate"/>
     <NodeContentModel name="CoordinateDouble"/>
     <NodeContentModel name="GeoCoordinate"/>
     <NodeContentModel name="TextureCoordinate"/>
     <NodeContentModel name="TextureCoordinateGenerator"/>
     <NodeContentModel name="NurbsTextureCoordinate"/>
     <NodeContentModel name="ProtoInstance"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="OpacityMapVolumeStyle">
   <InterfaceDefinition appinfo="OpacityMapVolumeStyle specifies that volumetric data is rendered using opacity mapped to a transfer function texture." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/volume.html#OpacityMapVolumeStyle">
    <componentInfo level="1" name="VolumeRendering"/>
    <Inheritance baseType="X3DComposableVolumeRenderStyleNode"/>
    <field accessType="inputOutput" default="true" description="Enables/disables node operation." inheritedFrom="X3DVolumeRenderStyleNode" name="enabled" type="SFBool"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field acceptableNodeTypes="X3DTexture2DNode|X3DTexture3DNode" accessType="inputOutput" default="NULL" description="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." name="transferFunction" type="SFNode">
     <componentInfo level="2" name="VolumeRendering"/>
    </field>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="renderStyle" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
     <GroupContentModel name="TextureContentModel"/>
     <NodeContentModel name="ProtoInstance"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="OrientationChaser">
   <InterfaceDefinition appinfo="OrientationChaser generates a series of 4-tuple axis-angle SFRotation values that progressively change from initial value to destination value." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/followers.html#OrientationChaser">
    <componentInfo level="1" name="Followers"/>
    <Inheritance baseType="X3DChaserNode"/>
    <field accessType="initializeOnly" default="1" description="duration is the time interval for filter response in seconds." inheritedFrom="X3DChaserNode" minInclusive="0" name="duration" type="SFTime"/>
    <field accessType="initializeOnly" default="0 1 0 0" description="Initial destination value for this node." name="initialDestination" type="SFRotation"/>
    <field accessType="initializeOnly" default="0 1 0 0" description="Initial starting value for this node." name="initialValue" type="SFRotation"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="outputOnly" description="isActive true/false events are sent when follower-node computation starts/stops." inheritedFrom="X3DFollowerNode" name="isActive" type="SFBool"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOnly" description="set_destination resets destination value of this node." name="set_destination" type="SFRotation"/>
    <field accessType="inputOnly" description="set_value resets current value of this node." name="set_value" type="SFRotation"/>
    <field accessType="outputOnly" description="Computed output value that approaches within tolerance of destination value, as determined by elapsed time, order and tau." name="value_changed" type="SFRotation"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="OrientationDamper">
   <InterfaceDefinition appinfo="OrientationDamper generates a series of 4-tuple axis-angle SFRotation values that progressively change from initial value to destination value." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/followers.html#OrientationDamper">
    <componentInfo level="1" name="Followers"/>
    <Inheritance baseType="X3DDamperNode"/>
    <field accessType="initializeOnly" default="0 1 0 0" description="Initial destination value for this node." name="initialDestination" type="SFRotation"/>
    <field accessType="initializeOnly" default="0 1 0 0" description="Initial starting value for this node." name="initialValue" type="SFRotation"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="outputOnly" description="isActive true/false events are sent when follower-node computation starts/stops." inheritedFrom="X3DFollowerNode" name="isActive" type="SFBool"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="initializeOnly" default="3" description="order defines the number of internal filters (larger means smoother response, longer delay)." inheritedFrom="X3DDamperNode" maxInclusive="5" minInclusive="0" name="order" type="SFInt32"/>
    <field accessType="inputOnly" description="set_destination resets destination value of this node." name="set_destination" type="SFRotation"/>
    <field accessType="inputOnly" description="set_value resets current value of this node." name="set_value" type="SFRotation"/>
    <field accessType="inputOutput" default="0.3" description="tau is the exponential-decay time constant for filter response in seconds." inheritedFrom="X3DDamperNode" minInclusive="0" name="tau" type="SFTime"/>
    <field accessType="inputOutput" default="-1" description="or -1." inheritedFrom="X3DDamperNode" name="tolerance" type="SFFloat"/>
    <field accessType="outputOnly" description="Computed output value that approaches within tolerance of destination value, as determined by elapsed time, order and tau." name="value_changed" type="SFRotation"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="OrientationInterpolator">
   <InterfaceDefinition appinfo="OrientationInterpolator generates a series of 4-tuple axis-angle SFRotation values." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/interpolators.html#OrientationInterpolator">
    <componentInfo level="1" name="Interpolation"/>
    <Inheritance baseType="X3DInterpolatorNode"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="inputOutput" description="Definition values for linear-interpolation function input intervals, listed in non-decreasing order and corresponding to a value in the keyValue array." inheritedFrom="X3DInterpolatorNode" name="key" type="MFFloat"/>
    <field accessType="inputOutput" description="Output values for linear interpolation, each corresponding to an input-fraction value in the key array." name="keyValue" type="MFRotation"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOnly" description="set_fraction selects input key for corresponding keyValue output." inheritedFrom="X3DInterpolatorNode" name="set_fraction" type="SFFloat"/>
    <field accessType="outputOnly" description="Linearly interpolated output value determined by current key time and corresponding keyValue pair." name="value_changed" type="SFRotation"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="OrthoViewpoint">
   <InterfaceDefinition appinfo="OrthoViewpoint provides an orthographic perspective-free view of a scene from a specific location and direction." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/navigation.html#OrthoViewpoint">
    <componentInfo level="3" name="Navigation"/>
    <Inheritance baseType="X3DViewpointNode"/>
    <field accessType="outputOnly" description="Event sent reporting timestamp when node becomes active/inactive." inheritedFrom="X3DBindableNode" name="bindTime" type="SFTime"/>
    <field accessType="inputOutput" default="0 0 0" description="centerOfRotation specifies center point about which to rotate user's eyepoint when in EXAMINE or LOOKAT mode." name="centerOfRotation" type="SFVec3f"/>
    <field accessType="inputOutput" description="Text description or navigation hint to describe the significance of this model Viewpoint." inheritedFrom="X3DViewpointNode" name="description" type="SFString">
     <componentInfo level="2" name="Navigation"/>
    </field>
    <field accessType="inputOutput" default="-1" description="farDistance defines maximum clipping plane distance allowed for object display." inheritedFrom="X3DViewpointNode" name="farDistance" type="SFFloat"/>
    <field accessType="inputOutput" default="-1 -1 1 1" description="Minimum and maximum extents of view in units of local coordinate system." name="fieldOfView" type="MFFloat"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="outputOnly" description="Output event true gets sent when node becomes bound and activated, otherwise output event false gets sent when node becomes unbound and deactivated." inheritedFrom="X3DBindableNode" name="isBound" type="SFBool"/>
    <field accessType="inputOutput" default="true" description="Transition instantly by jumping, otherwise smoothly adjust offsets in place when changing to this Viewpoint." inheritedFrom="X3DViewpointNode" name="jump" type="SFBool"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field acceptableNodeTypes="NavigationInfo" accessType="inputOutput" default="NULL" description="The navigationInfo field defines a dedicated NavigationInfo node for this X3DViewpointNode." inheritedFrom="X3DViewpointNode" name="navigationInfo" type="SFNode"/>
    <field accessType="inputOutput" default="-1" description="nearDistance defines minimum clipping plane distance necessary for object display." inheritedFrom="X3DViewpointNode" name="nearDistance" type="SFFloat"/>
    <field accessType="inputOutput" default="0 0 1 0" description="Rotation (axis, angle in radians) of Viewpoint, relative to default -Z axis direction in local coordinate system." inheritedFrom="X3DViewpointNode" name="orientation" type="SFRotation"/>
    <field accessType="inputOutput" default="0 0 10" description="position (x, y, z in meters) relative to local coordinate system." name="position" type="SFVec3f"/>
    <field accessType="inputOutput" default="false" description="Retain (true) or reset to zero (false) any prior user navigation offsets from defined viewpoint position, orientation." inheritedFrom="X3DViewpointNode" name="retainUserOffsets" type="SFBool">
     <componentInfo level="2" name="Navigation"/>
    </field>
    <field accessType="inputOnly" description="Sending event set_bind=true makes this node active." inheritedFrom="X3DBindableNode" name="set_bind" type="SFBool"/>
    <field accessType="inputOutput" default="false" description="Viewpoint is automatically adjusted to view all visible geometry." inheritedFrom="X3DViewpointNode" name="viewAll" type="SFBool"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
     <NodeContentModel name="NavigationInfo"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="OscillatorSource">
   <InterfaceDefinition appinfo="OscillatorSource node represents an audio source generating a periodic waveform, providing a constant tone." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/sound.html#OscillatorSource">
    <componentInfo level="2" name="Sound"/>
    <Inheritance baseType="X3DSoundSourceNode"/>
    <field accessType="inputOutput" description="Author-provided prose that describes intended purpose of the url asset." inheritedFrom="X3DTimeDependentNode" name="description" type="SFString"/>
    <field accessType="inputOutput" default="0" description="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)." minInclusive="0" name="detune" type="SFFloat"/>
    <field accessType="outputOnly" description="Current elapsed time since AudioClip activated/running, cumulative in seconds, and not counting any paused time." inheritedFrom="X3DTimeDependentNode" minInclusive="0" name="elapsedTime" type="SFTime"/>
    <field accessType="inputOutput" default="true" description="Enables/disables node operation." inheritedFrom="X3DSoundSourceNode" name="enabled" type="SFBool"/>
    <field accessType="inputOutput" default="440" description="The frequency of oscillation in hertz." minInclusive="0" name="frequency" type="SFFloat"/>
    <field accessType="inputOutput" default="1" description="The gain field is a factor that represents the amount of linear amplification to apply to the output of the node." inheritedFrom="X3DSoundSourceNode" name="gain" type="SFFloat"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="outputOnly" description="isActive true/false events are sent when playback starts/stops." inheritedFrom="X3DTimeDependentNode" name="isActive" type="SFBool"/>
    <field accessType="outputOnly" description="isPaused true/false events are sent when AudioClip is paused/resumed." inheritedFrom="X3DTimeDependentNode" name="isPaused" type="SFBool">
     <componentInfo level="2" name="Time"/>
    </field>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" default="0" description="When time now &gt;= pauseTime, isPaused becomes true and AudioClip becomes paused." inheritedFrom="X3DTimeDependentNode" name="pauseTime" type="SFTime">
     <componentInfo level="2" name="Time"/>
    </field>
    <field accessType="inputOutput" default="0" description="When resumeTime becomes &lt;= time now, isPaused becomes false and AudioClip becomes active." inheritedFrom="X3DTimeDependentNode" name="resumeTime" type="SFTime">
     <componentInfo level="2" name="Time"/>
    </field>
    <field accessType="inputOutput" default="0" description="Absolute time: number of seconds since January 1, 1970, 00:00:00 GMT." inheritedFrom="X3DTimeDependentNode" name="startTime" type="SFTime"/>
    <field accessType="inputOutput" default="0" description="Absolute time: number of seconds since January 1, 1970, 00:00:00 GMT." inheritedFrom="X3DTimeDependentNode" name="stopTime" type="SFTime"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="containerFieldChoicesSoundSource"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
     <NodeContentModel name="PeriodicWave"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="PackagedShader">
   <InterfaceDefinition appinfo="PackagedShader can contain field declarations, but no CDATA section of plain-text source code." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/shaders.html#PackagedShader">
    <componentInfo level="1" name="Shaders"/>
    <Inheritance baseType="X3DShaderNode"/>
    <AdditionalInheritance baseType="X3DUrlObject"/>
    <AdditionalInheritance baseType="X3DProgrammableShaderObject"/>
    <field accessType="inputOnly" description="activate forces the shader to activate the contained objects." inheritedFrom="X3DShaderNode" name="activate" type="SFBool"/>
    <field accessType="inputOutput" default="0" description="autoRefresh defines interval in seconds before automatic reload of current url asset is performed." inheritedFrom="X3DUrlObject" minInclusive="0" name="autoRefresh" type="SFTime"/>
    <field accessType="inputOutput" default="3600" description="autoRefreshTimeLimit defines maximum duration that automatic refresh activity can occur." inheritedFrom="X3DUrlObject" minInclusive="0" name="autoRefreshTimeLimit" type="SFTime"/>
    <field accessType="inputOutput" description="Author-provided prose that describes intended purpose of the url asset." inheritedFrom="X3DUrlObject" name="description" type="SFString"/>
    <field acceptableNodeTypes="field" accessType="inputOutput" description="Include a field statement for each field declaration in the PackagedShader node." name="field" type="MFNode"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" name="IS" type="SFNode"/>
    <field accessType="outputOnly" description="isSelected indicates this shader instance is selected for use by browser Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." inheritedFrom="X3DShaderNode" name="isSelected" type="SFBool"/>
    <field accessType="outputOnly" description="isValid indicates whether current shader objects can be run as a shader program." inheritedFrom="X3DShaderNode" name="isValid" type="SFBool"/>
    <field accessType="initializeOnly" additionalEnumerationValuesAllowed="true" baseType="xs:NMTOKEN" description="The language field indicates to the X3D player which shading language is used." inheritedFrom="X3DShaderNode" name="language" simpleType="shaderLanguageValues" type="SFString">
     <enumeration appinfo="nVidia Cg shading language." value="Cg"/>
     <enumeration appinfo="OpenGL shading language (GLSL)." value="GLSL"/>
     <enumeration appinfo="Microsoft High Level Shading Language (HLSL)." value="HLSL"/>
    </field>
    <field accessType="inputOutput" default="true" description="load=true means load immediately, load=false means defer loading or else unload a previously loaded scene." inheritedFrom="X3DUrlObject" name="load" type="SFBool"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." name="metadata" type="SFNode"/>
    <field accessType="inputOutput" description="url points to a shader source-code file that may contain a number of shaders and combined effects." inheritedFrom="X3DUrlObject" name="url" type="MFString">
     <componentInfo level="4" name="Networking"/>
    </field>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="shaders" type="containerFieldChoicesPackagedShader"/>
    <ContentModel>
     <FieldDeclaration maxOccurs="unbounded" minOccurs="0"/>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="ParticleSystem">
   <InterfaceDefinition appinfo="ParticleSystem specifies a complete particle system." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/particleSystems.html#ParticleSystem">
    <componentInfo level="2" name="ParticleSystems"/>
    <Inheritance baseType="X3DShapeNode"/>
    <field acceptableNodeTypes="X3DAppearanceNode" accessType="inputOutput" default="NULL" description="The appearance field holds an Appearance node that is used for the geometry." inheritedFrom="X3DShapeNode" name="appearance" type="SFNode"/>
    <field accessType="initializeOnly" default="0 0 0" description="Bounding box center accompanies bboxSize and provides an optional hint for bounding box position offset from origin of local coordinate system." inheritedFrom="X3DShapeNode" name="bboxCenter" type="SFVec3f"/>
    <field accessType="inputOutput" default="false" description="Whether to display bounding box for associated geometry, aligned with world coordinates." inheritedFrom="X3DShapeNode" name="bboxDisplay" type="SFBool"/>
    <field accessType="initializeOnly" baseType="bboxSizeType" default="-1 -1 -1" description="Bounding box size is usually omitted, and can easily be calculated automatically by an X3D player at scene-loading time with minimal computational cost." inheritedFrom="X3DShapeNode" name="bboxSize" type="SFVec3f"/>
    <field accessType="inputOutput" default="true" description="The castShadow field defines whether this Shape casts shadows as produced by lighting nodes." inheritedFrom="X3DShapeNode" name="castShadow" type="SFBool"/>
    <field acceptableNodeTypes="X3DColorNode" accessType="initializeOnly" default="NULL" description="The color field contains Color|ColorRGBA nodes as a series of color values to be used at the given colorKey points in time." name="color" synonym="colorRamp" type="SFNode"/>
    <field accessType="initializeOnly" description="Array of time intervals in seconds, corresponding to particle lifetime, that are used to interpolate color array values." minInclusive="0" name="colorKey" type="MFFloat"/>
    <field accessType="inputOutput" default="true" description="Enables/disables creation of new particles, while any existing particles remain in existence and continue to animate until the end of their lifetimes." name="createParticles" type="SFBool"/>
    <field acceptableNodeTypes="X3DParticleEmitterNode" accessType="initializeOnly" default="NULL" description="The emitter field specifies the type of emitter geometry and properties that the particles are given for their initial positions." name="emitter" type="SFNode"/>
    <field accessType="inputOutput" default="true" description="Enables/disables node operation." name="enabled" type="SFBool"/>
    <field acceptableNodeTypes="X3DGeometryNode" accessType="inputOutput" default="NULL" description="Single contained geometry node provides geometry used for each particle when geometryType=GEOMETRY." name="geometry" type="SFNode">
     <componentInfo level="3" name="ParticleSystems"/>
    </field>
    <field accessType="initializeOnly" additionalEnumerationValuesAllowed="true" baseType="xs:NMTOKEN" default="QUAD" description="specifies type of geometry used to represent individual particles." name="geometryType" simpleType="particleSystemGeometryTypeValues" type="SFString">
     <enumeration appinfo="line is drawn along current velocity vector of particle." value="LINE"/>
     <enumeration appinfo="point geometry is rendered at particle position." value="POINT"/>
     <enumeration appinfo="quad geometry is rendered at particle position facing direction traveled." value="QUAD"/>
     <enumeration appinfo="quad geometry is rendered at particle position facing screen." value="SPRITE"/>
     <enumeration appinfo="pair of triangles creating quad geometry is rendered at particle position facing direction traveled." value="TRIANGLE"/>
     <enumeration appinfo="geometry field is used for rendering each particle." value="GEOMETRY"/>
     <componentInfo level="3" name="ParticleSystems"/>
    </field>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="outputOnly" description="isActive true/false events are sent when playback starts/stops." name="isActive" type="SFBool"/>
    <field accessType="inputOutput" default="0.25" description="TODO not properly defined in X3D spedification." maxInclusive="1" minInclusive="0" name="lifetimeVariation" type="SFFloat"/>
    <field accessType="inputOutput" default="200" description="Maximum number of particles to be generated at one time (subject to player limitations)." minInclusive="0" name="maxParticles" type="SFInt32"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" default="5" description="TODO not properly defined in X3D spedification." minInclusive="0" name="particleLifetime" type="SFFloat"/>
    <field accessType="inputOutput" default="0.02 0.02" description="particleSize describes width and height dimensions for each particle in length base units (default is meters)." minInclusive="0" name="particleSize" type="SFVec2f"/>
    <field acceptableNodeTypes="X3DParticlePhysicsModelNode" accessType="initializeOnly" description="After being created, the individual particles are then manipulated according to the physics model(s) specified in the physics field." name="physics" type="MFNode"/>
    <field acceptableNodeTypes="TextureCoordinate|TextureCoordinateGenerator" accessType="initializeOnly" default="NULL" description="texture coordinates of the provided texture(s) in the Appearance node, over time." name="texCoord" synonym="texCoordRamp" type="SFNode"/>
    <field accessType="initializeOnly" description="Array of time intervals in seconds, corresponding to particle lifetime, that are used to sequence texCoord array values." minInclusive="0" name="texCoordKey" type="MFFloat"/>
    <field accessType="inputOutput" default="true" description="Whether or not renderable content within this node is visually displayed." inheritedFrom="X3DShapeNode" name="visible" type="SFBool"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
     <GroupContentModel minOccurs="0" name="ShapeChildContentModel"/>
     <NodeContentModel name="Color"/>
     <NodeContentModel name="ColorRGBA"/>
     <NodeContentModel name="ConeEmitter"/>
     <NodeContentModel name="ExplosionEmitter"/>
     <NodeContentModel name="PointEmitter"/>
     <NodeContentModel name="PolylineEmitter"/>
     <NodeContentModel name="SurfaceEmitter"/>
     <NodeContentModel name="VolumeEmitter"/>
     <NodeContentModel name="BoundedPhysicsModel"/>
     <NodeContentModel name="ForcePhysicsModel"/>
     <NodeContentModel name="WindPhysicsModel"/>
     <NodeContentModel name="ProtoInstance"/>
     <NodeContentModel minOccurs="0" name="TextureCoordinate"/>
     <NodeContentModel minOccurs="0" name="TextureCoordinateGenerator"/>
    </ContentModel>
    <field accessType="inputOutput" default="TRUE" description="pointerEvents defines whether this Shape becomes target for pointer events." name="pointerEvents" type="SFBool"/>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="PeriodicWave">
   <InterfaceDefinition appinfo="PeriodicWave defines a periodic waveform that can be used to shape the output of an Oscillator." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/sound.html#PeriodicWave">
    <componentInfo level="2" name="Sound"/>
    <Inheritance baseType="X3DSoundNode"/>
    <field accessType="inputOutput" description="Author-provided prose that describes intended purpose of the url asset." inheritedFrom="X3DSoundNode" name="description" type="SFString"/>
    <field accessType="inputOutput" default="true" description="Enables/disables node operation." inheritedFrom="X3DSoundNode" name="enabled" type="SFBool"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" description="imaginary coefficients for defining a waveform." name="optionsImag" type="MFFloat"/>
    <field accessType="inputOutput" description="real coefficients for defining a waveform." name="optionsReal" type="MFFloat"/>
    <field accessType="inputOutput" additionalEnumerationValuesAllowed="false" baseType="SFString" default="SQUARE" description="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." name="type" simpleType="periodicWaveTypeChoices" type="SFString">
     <enumeration alias="sine" appinfo='X3D version of "sine" in Web Audio API.' documentation="https://www.w3.org/TR/webaudio/#enumdef-oscillatortype" value="SINE"/>
     <enumeration alias="square" appinfo='X3D version of "square" in Web Audio API.' documentation="https://www.w3.org/TR/webaudio/#enumdef-oscillatortype" value="SQUARE"/>
     <enumeration alias="sawtooth" appinfo='X3D version of "sawtooth" in Web Audio API.' documentation="https://www.w3.org/TR/webaudio/#enumdef-oscillatortype" value="SAWTOOTH"/>
     <enumeration alias="triangle" appinfo='X3D version of "triangle" in Web Audio API.' documentation="https://www.w3.org/TR/webaudio/#enumdef-oscillatortype" value="TRIANGLE"/>
     <enumeration alias="custom" appinfo='X3D version of "custom" in Web Audio API.' documentation="https://www.w3.org/TR/webaudio/#enumdef-oscillatortype" value="CUSTOM"/>
    </field>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="periodicWave" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="PhysicalMaterial">
   <InterfaceDefinition appinfo="PhysicalMaterial specifies surface rendering properties for associated geometry nodes." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/shape.html#PhysicalMaterial">
    <componentInfo level="2" name="Shape"/>
    <Inheritance baseType="X3DOneSidedMaterialNode"/>
    <field accessType="inputOutput" default="1 1 1" description="similar to diffuseColor, TODO define more precisely." maxInclusive="1" minInclusive="0" name="baseColor" type="SFColor"/>
    <field acceptableNodeTypes="X3DSingleTextureNode" accessType="inputOutput" default="NULL" description="When applying baseColor for this material node, the contained texture provides Physically Based Rendering (PBR) modulation for each pixel." name="baseTexture" type="SFNode"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The mapping label identifies which texture coordinates and transformations are used to compute texture effects from corresponding geometry on a given material." name="baseTextureMapping" type="SFString"/>
    <field accessType="inputOutput" default="0 0 0" description="how much glowing light is emitted from this object." maxInclusive="1" minInclusive="0" name="emissiveColor" type="SFColor"/>
    <field acceptableNodeTypes="X3DSingleTextureNode" accessType="inputOutput" default="NULL" description="When applying emissiveColor for this material node, the contained texture provides Physically Based Rendering (PBR) modulation for each pixel." name="emissiveTexture" type="SFNode"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The mapping label identifies which texture coordinates and transformations are used to compute texture effects from corresponding geometry on a given material." inheritedFrom="X3DOneSidedMaterialNode" name="emissiveTextureMapping" type="SFString"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" baseType="unitIntervalType" default="1" description="metallic is a PBR parameter (TODO elaborate)." maxInclusive="1" minInclusive="0" name="metallic" type="SFFloat"/>
    <field acceptableNodeTypes="X3DSingleTextureNode" accessType="inputOutput" default="NULL" description="When applying metallic for this material node, the contained texture provides Physically Based Rendering (PBR) modulation for each pixel." name="metallicRoughnessTexture" type="SFNode"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The mapping label identifies which texture coordinates and transformations are used to compute texture effects from corresponding geometry on a given material." name="metallicRoughnessTextureMapping" type="SFString"/>
    <field accessType="inputOutput" default="1" description="normalScale controls the degree to which normalTexture RGB values apply XYZ-normal bump mapping to pixels in the parent material." inheritedFrom="X3DOneSidedMaterialNode" minInclusive="0" name="normalScale" type="SFFloat">
     <componentInfo level="2" name="Shape"/>
    </field>
    <field acceptableNodeTypes="X3DSingleTextureNode" accessType="inputOutput" default="NULL" description="When applying normalScale for this material node, the contained texture modulates the texture across the surface." name="normalTexture" type="SFNode"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The mapping label identifies which texture coordinates and transformations are used to compute texture effects from corresponding geometry on a given material." inheritedFrom="X3DOneSidedMaterialNode" name="normalTextureMapping" type="SFString"/>
    <field accessType="inputOutput" baseType="unitIntervalType" default="1" description="occlusionStrength indicates areas of indirect lighting, typically called ambient occlusion." maxInclusive="1" minInclusive="0" name="occlusionStrength" type="SFFloat"/>
    <field acceptableNodeTypes="X3DSingleTextureNode" accessType="inputOutput" default="NULL" description="When applying occlusionStrength for this material node, the contained texture provides Physically Based Rendering (PBR) modulation for each pixel." name="occlusionTexture" type="SFNode"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The mapping label identifies which texture coordinates and transformations are used to compute texture effects from corresponding geometry on a given material." name="occlusionTextureMapping" type="SFString"/>
    <field accessType="inputOutput" baseType="unitIntervalType" default="1" description="roughness is a PBR parameter (TODO elaborate)." maxInclusive="1" minInclusive="0" name="roughness" type="SFFloat"/>
    <field accessType="inputOutput" baseType="unitIntervalType" default="0" description='how "clear" an object is: 1.' maxInclusive="1" minInclusive="0" name="transparency" type="SFFloat"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="material" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
     <NodeContentModel name="ImageTexture"/>
     <NodeContentModel name="MovieTexture"/>
     <NodeContentModel name="PixelTexture"/>
     <NodeContentModel name="ProtoInstance"/>
    </ContentModel>
    <field acceptableNodeTypes="X3DMaterialExtensionNode" accessType="inputOutput" description="Input/Output field extensions." name="extensions" type="MFNode"/>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="PickableGroup">
   <InterfaceDefinition appinfo="PickableGroup is a Grouping node that can contain most nodes." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/picking.html#PickableGroup">
    <componentInfo level="1" name="Picking"/>
    <Inheritance baseType="X3DGroupingNode"/>
    <AdditionalInheritance baseType="X3DPickableObject"/>
    <field acceptableNodeTypes="X3DChildNode" accessType="inputOnly" inheritedFrom="X3DGroupingNode" name="addChildren" type="MFNode">
     <componentInfo level="2" name="Grouping"/>
    </field>
    <field accessType="initializeOnly" default="0 0 0" description="Bounding box center accompanies bboxSize and provides an optional hint for bounding box position offset from origin of local coordinate system." inheritedFrom="X3DGroupingNode" name="bboxCenter" type="SFVec3f"/>
    <field accessType="inputOutput" default="false" description="Whether to display bounding box for associated geometry, aligned with world coordinates." inheritedFrom="X3DGroupingNode" name="bboxDisplay" type="SFBool"/>
    <field accessType="initializeOnly" baseType="bboxSizeType" default="-1 -1 -1" description="Bounding box size is usually omitted, and can easily be calculated automatically by an X3D player at scene-loading time with minimal computational cost." inheritedFrom="X3DGroupingNode" name="bboxSize" type="SFVec3f"/>
    <field acceptableNodeTypes="X3DChildNode" accessType="inputOutput" description="Grouping nodes contain an ordered list of children nodes." inheritedFrom="X3DGroupingNode" name="children" type="MFNode"/>
    <field accessType="inputOutput" description="Author-provided prose that describes intended purpose of the node." name="description" type="SFString"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" additionalEnumerationValuesAllowed="true" baseType="MFString" default='"ALL"' description="The objectType field specifies a set of labels used in the picking process." inheritedFrom="X3DPickableObject" name="objectType" simpleType="pickableObjectTypeValues" type="MFString">
     <enumeration appinfo="each node is available for picking." value='"ALL"'/>
     <enumeration appinfo="no node is available for picking." value='"NONE"'/>
     <enumeration appinfo="TERRAIN is an example value." value='"TERRAIN"'/>
    </field>
    <field accessType="inputOutput" default="true" description="The pickable field determines whether pick traversal is performed on this node or its children." inheritedFrom="X3DPickableObject" name="pickable" type="SFBool"/>
    <field acceptableNodeTypes="X3DChildNode" accessType="inputOnly" inheritedFrom="X3DGroupingNode" name="removeChildren" type="MFNode">
     <componentInfo level="2" name="Grouping"/>
    </field>
    <field accessType="inputOutput" default="true" description="Whether or not renderable content within this node is visually displayed." inheritedFrom="X3DGroupingNode" name="visible" type="SFBool"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel maxOccurs="unbounded" minOccurs="0" name="ChildContentModel"/>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
     <NodeContentModel name="NurbsPatchSurface"/>
     <NodeContentModel name="NurbsSweptSurface"/>
     <NodeContentModel name="NurbsSwungSurface"/>
     <NodeContentModel name="NurbsTrimmedSurface"/>
     <NodeContentModel name="ProtoInstance"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="PixelTexture">
   <InterfaceDefinition appinfo="PixelTexture creates a 2D-image texture map using a numeric array of pixel values." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/texturing.html#PixelTexture">
    <componentInfo level="1" name="Texturing"/>
    <Inheritance baseType="X3DTexture2DNode"/>
    <field accessType="inputOutput" description="Author-provided prose that describes intended purpose of the url asset." inheritedFrom="X3DTextureNode" name="description" type="SFString"/>
    <field accessType="inputOutput" default="0 0 0" description="Defines image: width, height, number_of_components per each pixel value, and list of pixel_values." name="image" type="SFImage"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="initializeOnly" default="true" description="Whether to repeat texture along S axis horizontally from left to right." inheritedFrom="X3DTexture2DNode" name="repeatS" type="SFBool"/>
    <field accessType="initializeOnly" default="true" description="Whether to repeat texture along T axis vertically from top to bottom." inheritedFrom="X3DTexture2DNode" name="repeatT" type="SFBool"/>
    <field acceptableNodeTypes="TextureProperties" accessType="initializeOnly" default="NULL" description="Single contained TextureProperties node that can specify additional visual attributes applied to corresponding texture images." inheritedFrom="X3DTexture2DNode" name="textureProperties" type="SFNode"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="texture" type="containerFieldChoicesX3DTexture2DNode"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
     <NodeContentModel name="TextureProperties"/>
     <NodeContentModel name="ProtoInstance"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="PixelTexture3D">
   <InterfaceDefinition appinfo="PixelTexture3D defines a 3D image-based texture map as an explicit array of pixel values (image field)." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/texture3D.html#PixelTexture3D">
    <componentInfo level="1" name="Texturing3D"/>
    <Inheritance baseType="X3DTexture3DNode"/>
    <field accessType="inputOutput" description="Author-provided prose that describes intended purpose of the url asset." inheritedFrom="X3DTextureNode" name="description" type="SFString"/>
    <field accessType="inputOutput" default="0 0 0 0" description="image describes raw data for this 3D texture: number of components to the image [0,4], width, height and depth of the texture, followed by (width x height x depth) pixel values." name="image" type="MFInt32"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="initializeOnly" default="false" description="Whether to repeat texture along R axis from front to back." inheritedFrom="X3DTexture3DNode" name="repeatR" type="SFBool"/>
    <field accessType="initializeOnly" default="false" description="Whether to repeat texture along S axis horizontally from left to right." inheritedFrom="X3DTexture3DNode" name="repeatS" type="SFBool"/>
    <field accessType="initializeOnly" default="false" description="Whether to repeat texture along T axis vertically from top to bottom." inheritedFrom="X3DTexture3DNode" name="repeatT" type="SFBool"/>
    <field acceptableNodeTypes="TextureProperties" accessType="initializeOnly" default="NULL" description="Single contained TextureProperties node that can specify additional visual attributes applied to corresponding texture images." inheritedFrom="X3DTexture3DNode" name="textureProperties" type="SFNode"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="texture" type="containerFieldChoicesX3DTexture3DNode"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
     <NodeContentModel name="TextureProperties"/>
     <NodeContentModel name="ProtoInstance"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="PlaneSensor">
   <InterfaceDefinition appinfo="PlaneSensor converts pointing device motion into 2D translation parallel to the local Z=0 plane." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/pointingDeviceSensor.html#PlaneSensor">
    <componentInfo level="1" name="PointingDeviceSensor"/>
    <Inheritance baseType="X3DDragSensorNode"/>
    <field accessType="inputOutput" default="true" description="Determines whether previous offset values are remembered/accumulated." inheritedFrom="X3DDragSensorNode" name="autoOffset" type="SFBool"/>
    <field accessType="inputOutput" default="0 0 1 0" description="axisRotation determines local sensor coordinate system by rotating the local coordinate system." name="axisRotation" type="SFRotation"/>
    <field accessType="inputOutput" description="Author-provided prose that describes intended purpose of this node." inheritedFrom="X3DSensorNode" name="description" type="SFString"/>
    <field accessType="inputOutput" default="true" description="Enables/disables node operation." inheritedFrom="X3DSensorNode" name="enabled" type="SFBool"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="outputOnly" description="Select geometry by activating the pointing device (for example, clicking the mouse) to generate isActive events." inheritedFrom="X3DSensorNode" name="isActive" type="SFBool"/>
    <field accessType="outputOnly" description="Hover over geometry by aiming the mouse (or pointing device) to generate isOver events." inheritedFrom="X3DPointingDeviceSensorNode" name="isOver" type="SFBool"/>
    <field accessType="inputOutput" default="-1 -1" description="minPosition and maxPosition clamp translations to a range of values measured from origin of Z=0 plane default maxPosition &lt; minPosition means no clamping." name="maxPosition" type="SFVec2f"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" default="0 0" description="minPosition and maxPosition clamp translations to a range of values measured from origin of Z=0 plane default maxPosition &lt; minPosition means no clamping." name="minPosition" type="SFVec2f"/>
    <field accessType="inputOutput" default="0 0 0" description="Sends event and remembers last value sensed." name="offset" type="SFVec3f"/>
    <field accessType="outputOnly" description="trackPoint_changed events give intersection point of bearing with sensor's virtual geometry." inheritedFrom="X3DDragSensorNode" name="trackPoint_changed" type="SFVec3f"/>
    <field accessType="outputOnly" description="translation_changed events equal sum of relative translation change plus offset value." name="translation_changed" type="SFVec3f"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="PointEmitter">
   <InterfaceDefinition appinfo="PointEmitter generates particles from a specific point in space using the specified direction and speed." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/particleSystems.html#PointEmitter">
    <componentInfo level="1" name="ParticleSystems"/>
    <Inheritance baseType="X3DParticleEmitterNode"/>
    <field accessType="inputOutput" default="0 1 0" description="Initial direction from which particles emanate." name="direction" type="SFVec3f"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="inputOutput" default="0" description="Basic mass of each particle, defined in mass base units (default is kilograms)." inheritedFrom="X3DParticleEmitterNode" minInclusive="0" name="mass" type="SFFloat"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" default="true" description="Enables/disables production of particles from this emitter node." inheritedFrom="X3DParticleEmitterNode" name="on" type="SFBool"/>
    <field accessType="inputOutput" default="0 0 0" description="Point from which particles emanate." name="position" type="SFVec3f"/>
    <field accessType="inputOutput" default="0" description="Initial linear speed (default is m/s) imparted to all particles along their direction of movement." inheritedFrom="X3DParticleEmitterNode" minInclusive="0" name="speed" type="SFFloat"/>
    <field accessType="inputOutput" default="0" description="Particle surface area in area base units (default is meters squared)." inheritedFrom="X3DParticleEmitterNode" minInclusive="0" name="surfaceArea" type="SFFloat"/>
    <field accessType="inputOutput" default="0.25" description="Multiplier for the randomness used to control the range of possible output values." inheritedFrom="X3DParticleEmitterNode" minInclusive="0" name="variation" type="SFFloat"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="emitter" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="PointLight">
   <InterfaceDefinition appinfo="Linear attenuation may occur at level 2, full support at level 3." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/lighting.html#PointLight">
    <componentInfo level="2" name="Lighting"/>
    <Inheritance baseType="X3DLightNode"/>
    <field accessType="inputOutput" baseType="unitIntervalType" default="0" description="Brightness of ambient (nondirectional background) emission from the light." inheritedFrom="X3DLightNode" maxInclusive="1" minInclusive="0" name="ambientIntensity" type="SFFloat"/>
    <field accessType="inputOutput" default="1 0 0" description="Constant, linear-distance and squared-distance dropoff factors as radial distance increases from the source." minInclusive="0" name="attenuation" type="SFVec3f"/>
    <field accessType="inputOutput" default="1 1 1" description="color of light, applied to colors of objects." inheritedFrom="X3DLightNode" maxInclusive="1" minInclusive="0" name="color" type="SFColor"/>
    <field accessType="inputOutput" default="true" description="Global lights illuminate all objects within their volume of lighting influence." name="global" type="SFBool"/>
    <field accessType="inputOutput" default="1" description="Brightness of direct emission from the light." inheritedFrom="X3DLightNode" minInclusive="0" name="intensity" type="SFFloat"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="inputOutput" default="0 0 0" description="Position of light relative to local coordinate system." name="location" type="SFVec3f"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" default="true" description="Enables/disables this light source." inheritedFrom="X3DLightNode" name="on" type="SFBool"/>
    <field accessType="inputOutput" default="100" description="Maximum effective distance of light relative to local light position, affected by ancestor scaling." minInclusive="0" name="radius" type="SFFloat">
     <componentInfo level="3" name="Lighting"/>
    </field>
    <field accessType="inputOutput" baseType="unitIntervalType" default="1" description="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)." inheritedFrom="X3DLightNode" maxInclusive="1" minInclusive="0" name="shadowIntensity" type="SFFloat"/>
    <field accessType="inputOutput" default="false" description="shadows field indicates whether or not this light casts a shadow behind illuminated X3DShapeNode geometry." inheritedFrom="X3DLightNode" name="shadows" type="SFBool"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="PointPickSensor">
   <InterfaceDefinition appinfo="PointPickSensor tests one or more pickingGeometry points in space as lying inside the provided pickTarget geometry." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/picking.html#PointPickSensor">
    <componentInfo level="1" name="Picking"/>
    <Inheritance baseType="X3DPickSensorNode"/>
    <field accessType="inputOutput" description="Author-provided prose that describes intended purpose of the node." inheritedFrom="X3DSensorNode" name="description" type="SFString"/>
    <field accessType="inputOutput" default="true" description="Enables/disables node operation." inheritedFrom="X3DSensorNode" name="enabled" type="SFBool"/>
    <field accessType="initializeOnly" additionalEnumerationValuesAllowed="true" baseType="xs:NMTOKEN" default="BOUNDS" description="intersectionType specifies precision of the collision computation." inheritedFrom="X3DPickSensorNode" name="intersectionType" simpleType="intersectionTypeValues" type="SFString">
     <enumeration appinfo="TODO undefined in X3D specification." documentation="https://www.web3d.org/member-only/mantis/view.php?id=1294" value="BOUNDS"/>
     <enumeration appinfo="TODO undefined in X3D specification." documentation="https://www.web3d.org/member-only/mantis/view.php?id=1294" value="GEOMETRY"/>
    </field>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="outputOnly" description="isActive indicates when the intersecting object is picked by the picking geometry." inheritedFrom="X3DSensorNode" name="isActive" type="SFBool"/>
    <field accessType="inputOutput" additionalEnumerationValuesAllowed="false" baseType="xs:NMTOKEN" default="MATCH_ANY" description="defines whether the intersection test (i." inheritedFrom="X3DPickSensorNode" name="matchCriterion" simpleType="pickSensorMatchCriterionChoices" type="SFString">
     <enumeration appinfo="any match of objectType values is acceptable." value="MATCH_ANY"/>
     <enumeration appinfo="every objectType value in X3DPickSensorNode and X3DPickableObject shall match." value="MATCH_EVERY"/>
     <enumeration appinfo="one and only one objectType value can match." value="MATCH_ONLY_ONE"/>
    </field>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" additionalEnumerationValuesAllowed="true" baseType="MFString" default='"ALL"' description="The objectType field specifies a set of labels used in the picking process." inheritedFrom="X3DPickSensorNode" name="objectType" simpleType="pickableObjectTypeValues" type="MFString">
     <enumeration appinfo="each node is available for picking." value='"ALL"'/>
     <enumeration appinfo="no node is available for picking." value='"NONE"'/>
     <enumeration appinfo="TERRAIN is an example value." value='"TERRAIN"'/>
    </field>
    <field acceptableNodeTypes="X3DChildNode" accessType="outputOnly" description="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." inheritedFrom="X3DPickSensorNode" name="pickedGeometry" type="MFNode"/>
    <field accessType="outputOnly" description="Output event containing 3D points on surface of underlying pickingGeometry computed by the picking intersection computations, given in the local coordinate system." name="pickedPoint" type="MFVec3f"/>
    <field acceptableNodeTypes="X3DGeometryNode" accessType="inputOutput" default="NULL" description="pickingGeometry specifies the exact geometry coordinates that are used to perform the intersection testing of the picking operation." inheritedFrom="X3DPickSensorNode" name="pickingGeometry" type="SFNode"/>
    <field acceptableNodeTypes="X3DGroupingNode|X3DShapeNode|Inline" accessType="inputOutput" description="pickTarget specifies the list of nodes against which picking operations are performed." inheritedFrom="X3DPickSensorNode" name="pickTarget" type="MFNode"/>
    <field accessType="initializeOnly" additionalEnumerationValuesAllowed="true" baseType="xs:NMTOKEN" default="CLOSEST" description="The sortOrder field determines the order provided for picked output events." inheritedFrom="X3DPickSensorNode" name="sortOrder" simpleType="pickSensorSortOrderValues" type="SFString">
     <enumeration appinfo="any single object that can satisfy picking conditions." value="ANY"/>
     <enumeration appinfo="return closest object by distance that satisfies conditions of this pick sensor." value="CLOSEST"/>
     <enumeration appinfo="every object that satisfies picking conditions for this pick sensor is returned." value="ALL"/>
     <enumeration appinfo="every object that satisfies picking conditions for this pick sensor is returned, in sorted order." value="ALL_SORTED"/>
    </field>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
     <GroupContentModel name="PickSensorGroupingNodeContentModel"/>
     <NodeContentModel name="PointSet"/>
     <NodeContentModel name="Shape"/>
     <NodeContentModel name="ProtoInstance"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="PointProperties">
   <InterfaceDefinition appinfo="PointProperties allows precise fine-grained control over the rendering style of PointSet node points inside the same Shape." specificationUrl="https://github.com/Web3DConsortium/X3D/blob/master/ISO-IEC19775/ISO-IEC19775-1/ISO-IEC19775-1v4.0/ISO-IEC19775-1v4-WD1/Part01/components/shape.html">
    <componentInfo level="5" name="Shape"/>
    <Inheritance baseType="X3DAppearanceChildNode"/>
    <field accessType="inputOutput" default="1 0 0" description="attenuation array values [a, b, c] are set to default values if undefined." name="attenuation" type="SFVec3f"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" default="1" description="pointSizeMaxValue is maximum allowed scaling factor on nominal browser point scaling." minInclusive="0" name="pointSizeMaxValue" type="SFFloat"/>
    <field accessType="inputOutput" default="1" description="pointSizeMinValue is minimum allowed scaling factor on nominal browser point scaling." minInclusive="0" name="pointSizeMinValue" type="SFFloat"/>
    <field accessType="inputOutput" default="1" description="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)." minInclusive="1" name="pointSizeScaleFactor" type="SFFloat"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="pointProperties" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="PointSet">
   <InterfaceDefinition appinfo="PointSet is a node that contains a set of colored 3D points, represented by contained Color|ColorRGBA and Coordinate|CoordinateDouble nodes." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/rendering.html#PointSet">
    <componentInfo level="1" name="Rendering"/>
    <Inheritance baseType="X3DGeometryNode"/>
    <field acceptableNodeTypes="X3DVertexAttributeNode" accessType="inputOutput" description="Single contained FloatVertexAttribute node that can specify list of per-vertex attribute information for programmable shaders." name="attrib" type="MFNode"/>
    <field acceptableNodeTypes="X3DColorNode" accessType="inputOutput" default="NULL" description="Single contained Color or ColorRGBA node that can specify color values applied to corresponding vertices according to colorIndex and colorPerVertex fields." name="color" type="SFNode"/>
    <field acceptableNodeTypes="X3DCoordinateNode" accessType="inputOutput" default="NULL" description="Single contained Coordinate or CoordinateDouble node that can specify a list of vertex values." name="coord" type="SFNode"/>
    <field acceptableNodeTypes="FogCoordinate" accessType="inputOutput" default="NULL" description="Single contained FogCoordinate node that can specify depth parameters for fog in corresponding geometry." name="fogCoord" type="SFNode"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field acceptableNodeTypes="X3DNormalNode" accessType="inputOutput" default="NULL" description="Single contained Normal node that can specify perpendicular vectors for corresponding vertices to support rendering computations." name="normal" type="SFNode"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="geometry" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
     <GroupContentModel minOccurs="0" name="ColorCoordinateContentModel"/>
    </ContentModel>
    <field acceptableNodeTypes="Tangent" accessType="inputOutput" description="Input/Output field tangent. If there is no Tangent node, the MikkTSpace algorithm is used to generate tangent vectors." name="tangent" type="SFNode"/>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="Polyline2D">
   <InterfaceDefinition appinfo="Polyline2D is a geometry node that defines a connected set of vertices in a contiguous set of line segments in X-Y plane." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/geometry2D.html#Polyline2D">
    <componentInfo level="1" name="Geometry2D"/>
    <Inheritance baseType="X3DGeometryNode"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="initializeOnly" description="Coordinates of vertices connected into contiguous Polyline2D." name="lineSegments" type="MFVec2f"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="geometry" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="PolylineEmitter">
   <InterfaceDefinition appinfo="PolylineEmitter emits particles along a single polyline." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/particleSystems.html#PolylineEmitter">
    <componentInfo level="1" name="ParticleSystems"/>
    <Inheritance baseType="X3DParticleEmitterNode"/>
    <field acceptableNodeTypes="X3DCoordinateNode" accessType="inputOutput" default="NULL" description="Coordinates for the line along which particles are randomly generated." name="coord" type="SFNode"/>
    <field accessType="initializeOnly" default="-1" description="coordIndex indices are applied to contained Coordinate values in order to define randomly generated initial geometry of the particles." minInclusive="-1" name="coordIndex" type="MFInt32"/>
    <field accessType="inputOutput" default="0 1 0" description="Initial direction from which particles emanate." maxInclusive="1" minInclusive="-1" name="direction" type="SFVec3f"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="inputOutput" default="0" description="Basic mass of each particle, defined in mass base units (default is kilograms)." inheritedFrom="X3DParticleEmitterNode" minInclusive="0" name="mass" type="SFFloat"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" default="true" description="Enables/disables production of particles from this emitter node." inheritedFrom="X3DParticleEmitterNode" name="on" type="SFBool"/>
    <field accessType="inputOnly" minInclusive="-1" name="set_coordIndex" type="MFInt32"/>
    <field accessType="inputOutput" default="0" description="Initial linear speed (default is m/s) imparted to all particles along their direction of movement." inheritedFrom="X3DParticleEmitterNode" minInclusive="0" name="speed" type="SFFloat"/>
    <field accessType="inputOutput" default="0" description="Particle surface area in area base units (default is meters squared)." inheritedFrom="X3DParticleEmitterNode" minInclusive="0" name="surfaceArea" type="SFFloat"/>
    <field accessType="inputOutput" default="0.25" description="Multiplier for the randomness used to control the range of possible output values." inheritedFrom="X3DParticleEmitterNode" minInclusive="0" name="variation" type="SFFloat"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="emitter" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
     <NodeContentModel name="Coordinate"/>
     <NodeContentModel name="CoordinateDouble"/>
     <NodeContentModel name="GeoCoordinate"/>
     <NodeContentModel name="ProtoInstance"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="Polypoint2D">
   <InterfaceDefinition appinfo="Polypoint2D is a geometry node that defines a set of 2D points in X-Y plane." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/geometry2D.html#Polypoint2D">
    <componentInfo level="1" name="Geometry2D"/>
    <Inheritance baseType="X3DGeometryNode"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" description="2D coordinates of vertices." name="point" type="MFVec2f"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="geometry" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="PositionChaser">
   <InterfaceDefinition appinfo="PositionChaser generates a series of position values that progressively change from initial value to destination value." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/followers.html#PositionChaser">
    <componentInfo level="1" name="Followers"/>
    <Inheritance baseType="X3DChaserNode"/>
    <field accessType="initializeOnly" default="1" description="duration is the time interval for filter response in seconds." inheritedFrom="X3DChaserNode" minInclusive="0" name="duration" type="SFTime"/>
    <field accessType="initializeOnly" default="0 0 0" description="Initial destination value for this node." name="initialDestination" type="SFVec3f"/>
    <field accessType="initializeOnly" default="0 0 0" description="Initial starting value for this node." name="initialValue" type="SFVec3f"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="outputOnly" description="isActive true/false events are sent when follower-node computation starts/stops." inheritedFrom="X3DFollowerNode" name="isActive" type="SFBool"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOnly" description="set_destination resets destination value of this node." name="set_destination" type="SFVec3f"/>
    <field accessType="inputOnly" description="set_value resets current value of this node." name="set_value" type="SFVec3f"/>
    <field accessType="outputOnly" description="Computed output value that approaches within tolerance of destination value, as determined by elapsed time, order and tau." name="value_changed" type="SFVec3f"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="PositionChaser2D">
   <InterfaceDefinition appinfo="PositionChaser2D generates a series of 2D position values that progressively change from initial value to destination value." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/followers.html#PositionChaser2D">
    <componentInfo level="1" name="Followers"/>
    <Inheritance baseType="X3DChaserNode"/>
    <field accessType="initializeOnly" default="1" description="duration is the time interval for filter response in seconds." inheritedFrom="X3DChaserNode" minInclusive="0" name="duration" type="SFTime"/>
    <field accessType="initializeOnly" default="0 0" description="Initial destination value for this node." name="initialDestination" type="SFVec2f"/>
    <field accessType="initializeOnly" default="0 0" description="Initial starting value for this node." name="initialValue" type="SFVec2f"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="outputOnly" description="isActive true/false events are sent when follower-node computation starts/stops." inheritedFrom="X3DFollowerNode" name="isActive" type="SFBool"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOnly" description="set_destination resets destination value of this node." name="set_destination" type="SFVec2f"/>
    <field accessType="inputOnly" description="set_value resets current value of this node." name="set_value" type="SFVec2f"/>
    <field accessType="outputOnly" description="Computed output value that approaches within tolerance of destination value, as determined by elapsed time, order and tau." name="value_changed" type="SFVec2f"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="PositionDamper">
   <InterfaceDefinition appinfo="PositionDamper generates a series of position values that progressively change from initial value to destination value." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/followers.html#PositionDamper">
    <componentInfo level="1" name="Followers"/>
    <Inheritance baseType="X3DDamperNode"/>
    <field accessType="initializeOnly" default="0 0 0" description="Initial destination value for this node." name="initialDestination" type="SFVec3f"/>
    <field accessType="initializeOnly" default="0 0 0" description="Initial starting value for this node." name="initialValue" type="SFVec3f"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="outputOnly" description="isActive true/false events are sent when follower-node computation starts/stops." inheritedFrom="X3DFollowerNode" name="isActive" type="SFBool"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="initializeOnly" default="3" description="order defines the number of internal filters (larger means smoother response, longer delay)." inheritedFrom="X3DDamperNode" maxInclusive="5" minInclusive="0" name="order" type="SFInt32"/>
    <field accessType="inputOnly" description="set_destination resets destination value of this node." name="set_destination" type="SFVec3f"/>
    <field accessType="inputOnly" description="set_value resets current value of this node." name="set_value" type="SFVec3f"/>
    <field accessType="inputOutput" default="0.3" description="tau is the exponential-decay time constant for filter response in seconds." inheritedFrom="X3DDamperNode" minInclusive="0" name="tau" type="SFTime"/>
    <field accessType="inputOutput" default="-1" description="or -1." inheritedFrom="X3DDamperNode" name="tolerance" type="SFFloat"/>
    <field accessType="outputOnly" description="Computed output value that approaches within tolerance of destination value, as determined by elapsed time, order and tau." name="value_changed" type="SFVec3f"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="PositionDamper2D">
   <InterfaceDefinition appinfo="PositionDamper2D generates a series of 2D floating-point values that progressively change from initial value to destination value." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/followers.html#PositionDamper2D">
    <componentInfo level="1" name="Followers"/>
    <Inheritance baseType="X3DDamperNode"/>
    <field accessType="initializeOnly" default="0 0" description="Initial destination value for this node." name="initialDestination" type="SFVec2f"/>
    <field accessType="initializeOnly" default="0 0" description="Initial starting value for this node." name="initialValue" type="SFVec2f"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="outputOnly" description="isActive true/false events are sent when follower-node computation starts/stops." inheritedFrom="X3DFollowerNode" name="isActive" type="SFBool"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="initializeOnly" default="3" description="order defines the number of internal filters (larger means smoother response, longer delay)." inheritedFrom="X3DDamperNode" maxInclusive="5" minInclusive="0" name="order" type="SFInt32"/>
    <field accessType="inputOnly" description="set_destination resets destination value of this node." name="set_destination" type="SFVec2f"/>
    <field accessType="inputOnly" description="set_value resets current value of this node." name="set_value" type="SFVec2f"/>
    <field accessType="inputOutput" default="0.3" description="tau is the exponential-decay time constant for filter response in seconds." inheritedFrom="X3DDamperNode" minInclusive="0" name="tau" type="SFTime"/>
    <field accessType="inputOutput" default="-1" description="or -1." inheritedFrom="X3DDamperNode" name="tolerance" type="SFFloat"/>
    <field accessType="outputOnly" description="Computed output value that approaches within tolerance of destination value, as determined by elapsed time, order and tau." name="value_changed" type="SFVec2f"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="PositionInterpolator">
   <InterfaceDefinition appinfo="PositionInterpolator generates a series of 3-tuple SFVec3f values." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/interpolators.html#PositionInterpolator">
    <componentInfo level="1" name="Interpolation"/>
    <Inheritance baseType="X3DInterpolatorNode"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="inputOutput" description="Definition values for linear-interpolation function input intervals, listed in non-decreasing order and corresponding to a value in the keyValue array." inheritedFrom="X3DInterpolatorNode" name="key" type="MFFloat"/>
    <field accessType="inputOutput" description="Output values for linear interpolation, each corresponding to an input-fraction value in the key array." name="keyValue" type="MFVec3f"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOnly" description="set_fraction selects input key for corresponding keyValue output." inheritedFrom="X3DInterpolatorNode" name="set_fraction" type="SFFloat"/>
    <field accessType="outputOnly" description="Linearly interpolated output value determined by current key time and corresponding keyValue pair." name="value_changed" type="SFVec3f"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="PositionInterpolator2D">
   <InterfaceDefinition appinfo="PositionInterpolator2D generates a series of SFVec2f values." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/interpolators.html#PositionInterpolator2D">
    <componentInfo level="3" name="Interpolation"/>
    <Inheritance baseType="X3DInterpolatorNode"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="inputOutput" description="Definition values for linear-interpolation function input intervals, listed in non-decreasing order and corresponding to a value in the keyValue array." inheritedFrom="X3DInterpolatorNode" name="key" type="MFFloat"/>
    <field accessType="inputOutput" description="Output values for linear interpolation, each corresponding to an input-fraction value in the key array." name="keyValue" type="MFVec2f"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOnly" description="set_fraction selects input key for corresponding keyValue output." inheritedFrom="X3DInterpolatorNode" name="set_fraction" type="SFFloat"/>
    <field accessType="outputOnly" description="Linearly interpolated output value determined by current key time and corresponding keyValue pair." name="value_changed" type="SFVec2f"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="PrimitivePickSensor">
   <InterfaceDefinition appinfo="If a non-uniform scale is applied to the pick sensor, correct results may require level 3 support." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/picking.html#PrimitivePickSensor">
    <componentInfo level="2" name="Picking"/>
    <Inheritance baseType="X3DPickSensorNode"/>
    <field accessType="inputOutput" description="Author-provided prose that describes intended purpose of the node." inheritedFrom="X3DSensorNode" name="description" type="SFString"/>
    <field accessType="inputOutput" default="true" description="Enables/disables node operation." inheritedFrom="X3DSensorNode" name="enabled" type="SFBool"/>
    <field accessType="initializeOnly" additionalEnumerationValuesAllowed="true" baseType="xs:NMTOKEN" default="BOUNDS" description="intersectionType specifies precision of the collision computation." inheritedFrom="X3DPickSensorNode" name="intersectionType" simpleType="intersectionTypeValues" type="SFString">
     <enumeration appinfo="TODO undefined in X3D specification." documentation="https://www.web3d.org/member-only/mantis/view.php?id=1294" value="BOUNDS"/>
     <enumeration appinfo="TODO undefined in X3D specification." documentation="https://www.web3d.org/member-only/mantis/view.php?id=1294" value="GEOMETRY"/>
    </field>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="outputOnly" description="isActive indicates when the intersecting object is picked by the picking geometry." inheritedFrom="X3DSensorNode" name="isActive" type="SFBool"/>
    <field accessType="inputOutput" additionalEnumerationValuesAllowed="false" baseType="xs:NMTOKEN" default="MATCH_ANY" description="defines whether the intersection test (i." inheritedFrom="X3DPickSensorNode" name="matchCriterion" simpleType="pickSensorMatchCriterionChoices" type="SFString">
     <enumeration appinfo="any match of objectType values is acceptable." value="MATCH_ANY"/>
     <enumeration appinfo="every objectType value in X3DPickSensorNode and X3DPickableObject shall match." value="MATCH_EVERY"/>
     <enumeration appinfo="one and only one objectType value can match." value="MATCH_ONLY_ONE"/>
    </field>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" additionalEnumerationValuesAllowed="true" baseType="MFString" default='"ALL"' description="The objectType field specifies a set of labels used in the picking process." inheritedFrom="X3DPickSensorNode" name="objectType" simpleType="pickableObjectTypeValues" type="MFString">
     <enumeration appinfo="each node is available for picking." value='"ALL"'/>
     <enumeration appinfo="no node is available for picking." value='"NONE"'/>
     <enumeration appinfo="TERRAIN is an example value." value='"TERRAIN"'/>
    </field>
    <field acceptableNodeTypes="X3DChildNode" accessType="outputOnly" description="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." inheritedFrom="X3DPickSensorNode" name="pickedGeometry" type="MFNode"/>
    <field acceptableNodeTypes="X3DGeometryNode" accessType="inputOutput" default="NULL" description="pickingGeometry specifies the exact geometry coordinates that are used to perform the intersection testing of the picking operation." inheritedFrom="X3DPickSensorNode" name="pickingGeometry" type="SFNode"/>
    <field acceptableNodeTypes="X3DGroupingNode|X3DShapeNode|Inline" accessType="inputOutput" description="pickTarget specifies the list of nodes against which picking operations are performed." inheritedFrom="X3DPickSensorNode" name="pickTarget" type="MFNode"/>
    <field accessType="initializeOnly" additionalEnumerationValuesAllowed="true" baseType="xs:NMTOKEN" default="CLOSEST" description="The sortOrder field determines the order provided for picked output events." inheritedFrom="X3DPickSensorNode" name="sortOrder" simpleType="pickSensorSortOrderValues" type="SFString">
     <enumeration appinfo="any single object that can satisfy picking conditions." value="ANY"/>
     <enumeration appinfo="return closest object by distance that satisfies conditions of this pick sensor." value="CLOSEST"/>
     <enumeration appinfo="every object that satisfies picking conditions for this pick sensor is returned." value="ALL"/>
     <enumeration appinfo="every object that satisfies picking conditions for this pick sensor is returned, in sorted order." value="ALL_SORTED"/>
    </field>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
     <GroupContentModel name="PickSensorGroupingNodeContentModel"/>
     <NodeContentModel name="Box"/>
     <NodeContentModel name="Cone"/>
     <NodeContentModel name="Cylinder"/>
     <NodeContentModel name="Sphere"/>
     <NodeContentModel name="Shape"/>
     <NodeContentModel name="ProtoInstance"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="ProgramShader">
   <InterfaceDefinition appinfo="ProgramShader contains no field declarations and no plain-text source code." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/shaders.html#ProgramShader">
    <componentInfo level="1" name="Shaders"/>
    <Inheritance baseType="X3DShaderNode"/>
    <field accessType="inputOnly" description="activate forces the shader to activate the contained objects." inheritedFrom="X3DShaderNode" name="activate" type="SFBool"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="outputOnly" description="isSelected indicates this shader instance is selected for use by browser Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events." inheritedFrom="X3DShaderNode" name="isSelected" type="SFBool"/>
    <field accessType="outputOnly" description="isValid indicates whether current shader objects can be run as a shader program." inheritedFrom="X3DShaderNode" name="isValid" type="SFBool"/>
    <field accessType="initializeOnly" additionalEnumerationValuesAllowed="true" baseType="xs:NMTOKEN" description="The language field indicates to the X3D player which shading language is used." inheritedFrom="X3DShaderNode" name="language" simpleType="shaderLanguageValues" type="SFString">
     <enumeration appinfo="nVidia Cg shading language." value="Cg"/>
     <enumeration appinfo="OpenGL shading language (GLSL)." value="GLSL"/>
     <enumeration appinfo="Microsoft High Level Shading Language (HLSL)." value="HLSL"/>
    </field>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field acceptableNodeTypes="ShaderProgram" accessType="inputOutput" description="ProgramShader contains zero or more ShaderProgram node instances." name="programs" type="MFNode"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="shaders" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
     <NodeContentModel name="ShaderProgram"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="ProjectionVolumeStyle">
   <InterfaceDefinition appinfo="ProjectionVolumeStyle uses voxel data to directly generate output color." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/volume.html#ProjectionVolumeStyle">
    <componentInfo level="2" name="VolumeRendering"/>
    <Inheritance baseType="X3DVolumeRenderStyleNode"/>
    <field accessType="inputOutput" default="true" description="Enables/disables node operation." inheritedFrom="X3DVolumeRenderStyleNode" name="enabled" type="SFBool"/>
    <field accessType="inputOutput" default="0" description="Threshold value used when type=MIN (LMIP) or type=MAX (MIP)." maxInclusive="1" minInclusive="0" name="intensityThreshold" type="SFFloat"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" additionalEnumerationValuesAllowed="false" baseType="xs:NMTOKEN" default="MAX" description="If type=MAX then Maximum Intensity Projection (MIP) or Least MIP (LMIP) algorithm is used to generate output color." name="type" simpleType="projectionVolumeStyleTypeChoices" type="SFString">
     <enumeration appinfo="Maximum Intensity Projection (MIP) or Least MIP (LMIP) algorithm is used to generate output color." value="MAX"/>
     <enumeration appinfo="Minimum Intensity Projection algorithm is used to generate output color." value="MIN"/>
     <enumeration appinfo="All voxels along ray are averaged to generate output color." value="AVERAGE"/>
    </field>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="renderStyle" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="ProtoInstance">
   <InterfaceDefinition appinfo="ProtoInstance can override field default values via fieldValue initializations. Non-recursive nested ProtoInstance and ProtoDeclare statements are allowed within a ProtoDeclare." specificationUrl="https://www.web3d.org/documents/specifications/19776-1/V3.3/Part01/concepts.html#ProtoInstanceAndFieldValueStatement">
    <componentInfo level="2" name="Core"/>
    <Inheritance baseType="X3DPrototypeInstance"/>
    <AdditionalInheritance baseType="X3DChildNode"/>
    <field acceptableNodeTypes="fieldValue" accessType="inputOutput" description="Include fieldValue statements if this ProtoInstance overrides default values in any of the original field declarations." name="fieldValue" type="MFNode"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="name of the prototype node being instanced." name="name" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
     <NodeContentModel maxOccurs="unbounded" minOccurs="0" name="fieldValue"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="ProximitySensor">
   <InterfaceDefinition appinfo="ProximitySensor generates events when the viewer enters, exits and moves within a region of space (defined by a box)." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/environmentalSensor.html#ProximitySensor">
    <componentInfo level="1" name="EnvironmentalSensor"/>
    <Inheritance baseType="X3DEnvironmentalSensorNode"/>
    <field accessType="inputOutput" default="0 0 0" description="Position offset from origin of local coordinate system." name="center" type="SFVec3f"/>
    <field accessType="outputOnly" description="Sends changed centerOfRotation values, likely caused by user interaction." name="centerOfRotation_changed" type="SFVec3f"/>
    <field accessType="inputOutput" description="Author-provided prose that describes intended purpose of the node." inheritedFrom="X3DSensorNode" name="description" type="SFString"/>
    <field accessType="inputOutput" default="true" description="Enables/disables node operation." inheritedFrom="X3DSensorNode" name="enabled" type="SFBool"/>
    <field accessType="outputOnly" description="Time event generated when user's camera enters the box." name="enterTime" type="SFTime"/>
    <field accessType="outputOnly" description="Time event generated when user's camera exits the box." name="exitTime" type="SFTime"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="outputOnly" description="isActive true/false events are sent as viewer enters/exits Proximity box." inheritedFrom="X3DSensorNode" name="isActive" type="SFBool"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="outputOnly" description="Sends rotation event relative to center." name="orientation_changed" type="SFRotation">
     <componentInfo level="2" name="EnvironmentalSensor"/>
    </field>
    <field accessType="outputOnly" description="Sends translation event relative to center." name="position_changed" type="SFVec3f">
     <componentInfo level="2" name="EnvironmentalSensor"/>
    </field>
    <field accessType="inputOutput" default="0 0 0" description="size of Proximity box around center location, oriented within local transformation frame." inheritedFrom="X3DEnvironmentalSensorNode" minInclusive="0" name="size" type="SFVec3f"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="QuadSet">
   <InterfaceDefinition appinfo="QuadSet is a geometry node that defines quadrilaterals." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/CADGeometry.html#QuadSet">
    <componentInfo level="1" name="CADGeometry"/>
    <Inheritance baseType="X3DComposedGeometryNode"/>
    <field acceptableNodeTypes="X3DVertexAttributeNode" accessType="inputOutput" description="Single contained FloatVertexAttribute node that can specify list of per-vertex attribute information for programmable shaders." inheritedFrom="X3DComposedGeometryNode" name="attrib" type="MFNode"/>
    <field accessType="initializeOnly" default="true" description="ccw defines clockwise/counterclockwise ordering of vertex coordinates, which in turn defines front/back orientation of polygon normals according to Right-Hand Rule (RHR)." inheritedFrom="X3DComposedGeometryNode" name="ccw" type="SFBool"/>
    <field acceptableNodeTypes="X3DColorNode" accessType="inputOutput" default="NULL" description="Single contained Color or ColorRGBA node that can specify color values applied to corresponding vertices according to colorIndex and colorPerVertex fields." inheritedFrom="X3DComposedGeometryNode" name="color" type="SFNode"/>
    <field accessType="initializeOnly" default="true" description="Whether Color|ColorRGBA values are applied to each point vertex (true) or to each polygon face (false)." inheritedFrom="X3DComposedGeometryNode" name="colorPerVertex" type="SFBool"/>
    <field acceptableNodeTypes="X3DCoordinateNode" accessType="inputOutput" default="NULL" description="Single contained Coordinate or CoordinateDouble node that can specify a list of vertex values." inheritedFrom="X3DComposedGeometryNode" name="coord" type="SFNode"/>
    <field acceptableNodeTypes="FogCoordinate" accessType="inputOutput" default="NULL" description="Single contained FogCoordinate node that can specify depth parameters for fog in corresponding geometry." inheritedFrom="X3DComposedGeometryNode" name="fogCoord" type="SFNode"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field acceptableNodeTypes="X3DNormalNode" accessType="inputOutput" default="NULL" description="Single contained Normal node that can specify perpendicular vectors for corresponding vertices to support rendering computations, applied according to the normalPerVertex field." inheritedFrom="X3DComposedGeometryNode" name="normal" type="SFNode"/>
    <field accessType="initializeOnly" default="true" description="Whether Normal node vector values are applied to each point vertex (true) or to each polygon face (false)." inheritedFrom="X3DComposedGeometryNode" name="normalPerVertex" type="SFBool"/>
    <field accessType="initializeOnly" default="true" description="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)." inheritedFrom="X3DComposedGeometryNode" name="solid" type="SFBool"/>
    <field acceptableNodeTypes="X3DSingleTextureCoordinateNode|MultiTextureCoordinate" accessType="inputOutput" default="NULL" description="Single contained TextureCoordinate, TextureCoordinateGenerator or MultiTextureCoordinate node that can specify coordinates for texture mapping onto corresponding geometry." inheritedFrom="X3DComposedGeometryNode" name="texCoord" type="SFNode"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="geometry" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel maxOccurs="unbounded" minOccurs="0" name="ComposedGeometryContentModel"/>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
    <field acceptableNodeTypes="Tangent" accessType="inputOutput" description="Input/Output field tangent. If there is no Tangent node, the MikkTSpace algorithm is used to generate tangent vectors." name="tangent" type="SFNode"/>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="ReceiverPdu">
   <InterfaceDefinition appinfo="ReceiverPdu is a networked Protocol Data Unit (PDU) information node that transmits the state of radio frequency (RF) receivers modeled in a simulation." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/dis.html#ReceiverPdu">
    <componentInfo level="1" name="DIS"/>
    <Inheritance baseType="X3DNetworkSensorNode"/>
    <AdditionalInheritance baseType="X3DBoundedObject"/>
    <field accessType="inputOutput" default="localhost" description="Multicast network address, or else 'localhost'; Example: 224." name="address" type="SFString"/>
    <field accessType="inputOutput" default="0" description="Each simulation application that can respond to simulation management PDUs needs to have a unique applicationID." name="applicationID" type="SFInt32"/>
    <field accessType="initializeOnly" default="0 0 0" description="Bounding box center accompanies bboxSize and provides an optional hint for bounding box position offset from origin of local coordinate system." inheritedFrom="X3DBoundedObject" name="bboxCenter" type="SFVec3f"/>
    <field accessType="inputOutput" default="false" description="Whether to display bounding box for associated geometry, aligned with world coordinates." inheritedFrom="X3DBoundedObject" name="bboxDisplay" type="SFBool"/>
    <field accessType="initializeOnly" baseType="bboxSizeType" default="-1 -1 -1" description="Bounding box size is usually omitted, and can easily be calculated automatically by an X3D player at scene-loading time with minimal computational cost." inheritedFrom="X3DBoundedObject" name="bboxSize" type="SFVec3f"/>
    <field accessType="inputOutput" description="Author-provided prose that describes intended purpose of the node." inheritedFrom="X3DSensorNode" name="description" type="SFString"/>
    <field accessType="inputOutput" default="true" description="Enables/disables the sensor node." inheritedFrom="X3DSensorNode" name="enabled" type="SFBool"/>
    <field accessType="inputOutput" default="0" description="EntityID unique ID for entity within that application." name="entityID" type="SFInt32"/>
    <field accessType="inputOutput" default="0 0 0" description="Geographic location (specified in current geoSystem coordinates) for children geometry (specified in relative coordinate system, in meters)." name="geoCoords" type="SFVec3d"/>
    <field accessType="initializeOnly" additionalEnumerationValuesAllowed="true" baseType="geoSystemType" default='"GD" "WE"' description="Identifies spatial reference frame: Geodetic (GD), Geocentric (GC), Universal Transverse Mercator (UTM)." name="geoSystem" type="MFString"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="outputOnly" description="confirm whether there has been a recent network update." inheritedFrom="X3DSensorNode" name="isActive" type="SFBool"/>
    <field accessType="outputOnly" description="Whether networkMode='remote' (listen to network as copy of remote entity)." name="isNetworkReader" type="SFBool"/>
    <field accessType="outputOnly" description="Whether networkMode='master' (output to network as master entity at writeInterval)." name="isNetworkWriter" type="SFBool"/>
    <field accessType="outputOnly" description="Whether incoming DIS packets have an RTP header prepended." name="isRtpHeaderHeard" type="SFBool"/>
    <field accessType="outputOnly" description="Whether networkMode='local' (ignore network but still respond to local events)." name="isStandAlone" type="SFBool"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" description="Fallback server address if multicast not available locally." name="multicastRelayHost" type="SFString"/>
    <field accessType="inputOutput" default="0" description="Fallback server port if multicast not available locally." name="multicastRelayPort" type="SFInt32"/>
    <field accessType="inputOutput" additionalEnumerationValuesAllowed="false" baseType="xs:NMTOKEN" default="standAlone" description="Whether this entity is ignoring the network, sending DIS packets to the network, or receiving DIS packets from the network." name="networkMode" simpleType="networkModeChoices" type="SFString">
     <enumeration appinfo="ignore network but still respond to events in local scene." value="standAlone"/>
     <enumeration appinfo="listen to network and read PDU packets at readInterval, act as remotely linked copy of entity." value="networkReader"/>
     <enumeration appinfo="send PDU packets to network at writeInterval, act as master entity." value="networkWriter"/>
    </field>
    <field accessType="inputOutput" default="0" description="Multicast network port, for example: 3000." name="port" type="SFInt32"/>
    <field accessType="inputOutput" default="0" description="Identifies a particular radio within a given entity." name="radioID" type="SFInt32"/>
    <field accessType="inputOutput" default="0.1" description="Seconds between read updates, 0 means no reading." minInclusive="0" name="readInterval" type="SFTime"/>
    <field accessType="inputOutput" default="0.0" description="receivedPower indicates radio frequency (RF) power received, in units of decibel-milliwatts (dBm), after applying any propagation loss and antenna gain." name="receivedPower" type="SFFloat"/>
    <field accessType="inputOutput" default="0" description="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" type="SFInt32"/>
    <field accessType="inputOutput" default="false" description="Whether RTP headers are prepended to DIS PDUs." name="rtpHeaderExpected" type="SFBool"/>
    <field accessType="inputOutput" default="0" description="Simulation/exercise siteID of the participating LAN or organization." name="siteID" type="SFInt32"/>
    <field accessType="outputOnly" description="DIS timestamp in X3D units (value 0." minInclusive="0" name="timestamp" type="SFTime"/>
    <field accessType="inputOutput" default="0" description="Simulation/exercise transmitterApplicationID is unique for transmitter application at that site." name="transmitterApplicationID" type="SFInt32"/>
    <field accessType="inputOutput" default="0" description="Simulation/exercise transmitterEntityID is a unique ID for a single entity within that application." name="transmitterEntityID" type="SFInt32"/>
    <field accessType="inputOutput" default="0" description="Identifies a particular radio within a given entity." name="transmitterRadioID" type="SFInt32"/>
    <field accessType="inputOutput" default="0" description="Simulation/exercise transmitterSiteID of the participating LAN or organization." name="transmitterSiteID" type="SFInt32"/>
    <field accessType="inputOutput" default="true" description="Whether or not renderable content within this node is visually displayed." inheritedFrom="X3DBoundedObject" name="visible" type="SFBool"/>
    <field accessType="inputOutput" default="1" description="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" type="SFInt32"/>
    <field accessType="inputOutput" default="1.0" description="Seconds between write updates, 0 means no writing (sending)." minInclusive="0" name="writeInterval" type="SFTime"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="Rectangle2D">
   <InterfaceDefinition appinfo="Rectangle2D is a geometry node that defines a 2D rectangle in X-Y plane." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/geometry2D.html#Rectangle2D">
    <componentInfo level="1" name="Geometry2D"/>
    <Inheritance baseType="X3DGeometryNode"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="initializeOnly" default="2 2" description="2D dimensions of Rectangle2D." name="size" type="SFVec2f"/>
    <field accessType="initializeOnly" default="false" description="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)." name="solid" type="SFBool"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="geometry" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="RigidBody">
   <InterfaceDefinition appinfo="RigidBody describes a collection of shapes with a mass distribution that is affected by the physics model." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/rigidBodyPhysics.html#RigidBody">
    <componentInfo level="2" name="RigidBodyPhysics"/>
    <Inheritance baseType="X3DChildNode"/>
    <AdditionalInheritance baseType="X3DBoundedObject"/>
    <field accessType="inputOutput" default="0.001" description="angularDampingFactor automatically damps a portion of body motion over time." name="angularDampingFactor" type="SFFloat"/>
    <field accessType="inputOutput" default="0 0 0" description="angularVelocity sets constant velocity value to object every frame, and reports updates by physics model." name="angularVelocity" type="SFVec3f"/>
    <field accessType="inputOutput" default="false" description="autoDamp enables/disables angularDampingFactor and linearDampingFactor." name="autoDamp" type="SFBool"/>
    <field accessType="inputOutput" default="false" description="autoDisable toggles operation of disableAngularSpeed, disableLinearSpeed, disableTime." name="autoDisable" type="SFBool"/>
    <field accessType="initializeOnly" default="0 0 0" description="Bounding box center accompanies bboxSize and provides an optional hint for bounding box position offset from origin of local coordinate system." inheritedFrom="X3DBoundedObject" name="bboxCenter" type="SFVec3f"/>
    <field accessType="inputOutput" default="false" description="Whether to display bounding box for associated geometry, aligned with world coordinates." inheritedFrom="X3DBoundedObject" name="bboxDisplay" type="SFBool"/>
    <field accessType="initializeOnly" baseType="bboxSizeType" default="-1 -1 -1" description="Bounding box size is usually omitted, and can easily be calculated automatically by an X3D player at scene-loading time with minimal computational cost." inheritedFrom="X3DBoundedObject" name="bboxSize" type="SFVec3f"/>
    <field accessType="inputOutput" default="0 0 0" description="centerOfMass defines local center of mass for physics calculations." name="centerOfMass" type="SFVec3f"/>
    <field accessType="inputOutput" default="0" description="disableAngularSpeed defines lower-limit tolerance value when body is considered at rest and not part of rigid body calculations, reducing numeric instabilities." name="disableAngularSpeed" type="SFFloat"/>
    <field accessType="inputOutput" default="0" description="disableLinearSpeed defines lower-limit tolerance value when body is considered at rest and not part of rigid body calculation, reducing numeric instabilitiess." name="disableLinearSpeed" type="SFFloat"/>
    <field accessType="inputOutput" default="0" description="disableTime defines interval when body becomes at rest and not part of rigid body calculations, reducing numeric instabilities." minInclusive="0" name="disableTime" type="SFTime"/>
    <field accessType="inputOutput" default="true" description="Enables/disables node operation." name="enabled" type="SFBool"/>
    <field accessType="inputOutput" default="0 1 0" description="finiteRotationAxis specifies vector around which the object rotates." name="finiteRotationAxis" type="SFVec3f"/>
    <field accessType="inputOutput" default="false" description="fixed indicates whether body is able to move." name="fixed" type="SFBool"/>
    <field accessType="inputOutput" description="forces defines linear force values applied to the object every frame." name="forces" type="MFVec3f"/>
    <field acceptableNodeTypes="X3DNBodyCollidableNode" accessType="inputOutput" description="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." name="geometry" type="MFNode"/>
    <field accessType="inputOutput" default="1 0 0 0 1 0 0 0 1" description="inertia matrix defines a 3x2 inertia tensor matrix." name="inertia" type="SFMatrix3f"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="inputOutput" default="0.001" description="linearDampingFactor automatically damps a portion of body motion over time." name="linearDampingFactor" type="SFFloat"/>
    <field accessType="inputOutput" default="0 0 0" description="linearVelocity sets constant velocity value to object every frame, and reports updates by physics model." name="linearVelocity" type="SFVec3f"/>
    <field accessType="inputOutput" default="1" description="mass of the body in kilograms." name="mass" type="SFFloat"/>
    <field acceptableNodeTypes="Sphere|Box|Cone" accessType="inputOutput" default="NULL" description="The massDensityModel field is used to describe the geometry type and dimensions used to calculate the mass density in the physics model." name="massDensityModel" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" default="0 0 1 0" description="orientation sets body direction in world space, then reports physics updates." name="orientation" type="SFRotation"/>
    <field accessType="inputOutput" default="0 0 0" description="position sets body location in world space, then reports physics updates." name="position" type="SFVec3f"/>
    <field accessType="inputOutput" description="torques defines rotational force values applied to the object every frame." name="torques" type="MFVec3f"/>
    <field accessType="inputOutput" default="false" description="useFiniteRotation enables/disables higher-resolution, higher-cost computational method for calculating rotations." name="useFiniteRotation" type="SFBool"/>
    <field accessType="inputOutput" default="true" description="useGlobalGravity indicates whether this particular body is influenced by parent RigidBodyCollection's gravity setting." name="useGlobalGravity" type="SFBool"/>
    <field accessType="inputOutput" default="true" description="Whether or not renderable content within this node is visually displayed." inheritedFrom="X3DBoundedObject" name="visible" type="SFBool"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="bodies" type="xs:NMTOKEN">
     <enumeration value="body1"/>
     <enumeration value="body2"/>
     <enumeration value="bodies"/>
    </containerField>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
     <GroupContentModel minOccurs="0" name="RigidBodyContentModel"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="RigidBodyCollection">
   <InterfaceDefinition appinfo="RigidBodyCollection represents a system of bodies that interact within a single physics model." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/rigidBodyPhysics.html#RigidBodyCollection">
    <componentInfo level="2" name="RigidBodyPhysics"/>
    <Inheritance baseType="X3DChildNode"/>
    <AdditionalInheritance baseType="X3DBoundedObject"/>
    <field accessType="inputOutput" default="false" description="autoDisable toggles operation of disableAngularSpeed, disableLinearSpeed, disableTime." name="autoDisable" type="SFBool"/>
    <field accessType="initializeOnly" default="0 0 0" description="Bounding box center accompanies bboxSize and provides an optional hint for bounding box position offset from origin of local coordinate system." inheritedFrom="X3DBoundedObject" name="bboxCenter" type="SFVec3f"/>
    <field accessType="inputOutput" default="false" description="Whether to display bounding box for associated geometry, aligned with world coordinates." inheritedFrom="X3DBoundedObject" name="bboxDisplay" type="SFBool"/>
    <field accessType="initializeOnly" baseType="bboxSizeType" default="-1 -1 -1" description="Bounding box size is usually omitted, and can easily be calculated automatically by an X3D player at scene-loading time with minimal computational cost." inheritedFrom="X3DBoundedObject" name="bboxSize" type="SFVec3f"/>
    <field acceptableNodeTypes="RigidBody" accessType="inputOutput" description="Collection of top-level nodes that comprise a set of bodies evaluated as a single set of interactions." name="bodies" type="MFNode"/>
    <field acceptableNodeTypes="CollisionCollection" accessType="initializeOnly" default="NULL" description="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" type="SFNode"/>
    <field accessType="inputOutput" default="0.0001" description="constantForceMix modifies damping calculations by violating normal constraints while applying small, constant forces in those calculations." name="constantForceMix" type="SFFloat"/>
    <field accessType="inputOutput" default="0" description="contactSurfaceThickness defines how far bodies may interpenetrate after a collision, allowing simulation of softer bodies that deform somewhat during collision." name="contactSurfaceThickness" type="SFFloat"/>
    <field accessType="inputOutput" default="0" description="disableAngularSpeed defines lower-limit tolerance value when body is considered at rest and not part of rigid body calculations, reducing numeric instabilities." name="disableAngularSpeed" type="SFFloat"/>
    <field accessType="inputOutput" default="0" description="disableLinearSpeed defines lower-limit tolerance value when body is considered at rest and not part of rigid body calculation, reducing numeric instabilitiess." name="disableLinearSpeed" type="SFFloat"/>
    <field accessType="inputOutput" default="0" description="disableTime defines interval when body becomes at rest and not part of rigid body calculations, reducing numeric instabilities." minInclusive="0" name="disableTime" type="SFTime"/>
    <field accessType="inputOutput" default="true" description="Enables/disables node operation." name="enabled" type="SFBool"/>
    <field accessType="inputOutput" default="0.8" description="errorCorrection describes how quickly intersection errors due to floating-point inaccuracies are resolved (0=no correction, 1=all corrected in single step)." name="errorCorrection" type="SFFloat"/>
    <field accessType="inputOutput" default="0 -9.8 0" description="gravity indicates direction and strength of local gravity vector for this collection of bodies (units m/sec^2)." name="gravity" type="SFVec3f"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="inputOutput" default="10" description="iterations controls number of iterations performed over collectioned joints and bodies during each evaluation." name="iterations" type="SFInt32"/>
    <field acceptableNodeTypes="X3DRigidJointNode" accessType="inputOutput" description="The joints field is used to register all joints between bodies contained in this collection." name="joints" type="MFNode"/>
    <field accessType="inputOutput" default="-1" description="or -1, maxCorrectionSpeed." name="maxCorrectionSpeed" type="SFFloat"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" default="false" description="preferAccuracy provides hint for performance preference: higher accuracy or faster computational speed." name="preferAccuracy" type="SFBool"/>
    <field acceptableNodeTypes="Contact" accessType="inputOnly" description="set_contacts input field for Contact nodes provides per-frame information about contacts between bodies." name="set_contacts" type="MFNode"/>
    <field accessType="inputOutput" default="true" description="Whether or not renderable content within this node is visually displayed." inheritedFrom="X3DBoundedObject" name="visible" type="SFBool"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
     <GroupContentModel minOccurs="0" name="RigidBodyCollectionContentModel"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="ScalarChaser">
   <InterfaceDefinition appinfo="ScalarChaser generates a series of single floating-point values that progressively change from initial value to destination value." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/followers.html#ScalarChaser">
    <componentInfo level="1" name="Followers"/>
    <Inheritance baseType="X3DChaserNode"/>
    <field accessType="initializeOnly" default="1" description="duration is the time interval for filter response in seconds." inheritedFrom="X3DChaserNode" minInclusive="0" name="duration" type="SFTime"/>
    <field accessType="initializeOnly" default="0" description="Initial destination value for this node." name="initialDestination" type="SFFloat"/>
    <field accessType="initializeOnly" default="0" description="Initial starting value for this node." name="initialValue" type="SFFloat"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="outputOnly" description="isActive true/false events are sent when follower-node computation starts/stops." inheritedFrom="X3DFollowerNode" name="isActive" type="SFBool"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOnly" description="set_destination resets destination value of this node." name="set_destination" type="SFFloat"/>
    <field accessType="inputOnly" description="set_value resets current value of this node." name="set_value" type="SFFloat"/>
    <field accessType="outputOnly" description="Computed output value that approaches within tolerance of destination value, as determined by elapsed time, order and tau." name="value_changed" type="SFFloat"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="ScalarDamper">
   <InterfaceDefinition appinfo="ScalarDamper generates a series of floating-point values that progressively change from initial value to destination value." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/followers.html#ScalarDamper">
    <componentInfo level="1" name="Followers"/>
    <Inheritance baseType="X3DDamperNode"/>
    <field accessType="initializeOnly" default="0" description="Initial destination value for this node." name="initialDestination" type="SFFloat"/>
    <field accessType="initializeOnly" default="0" description="Initial starting value for this node." name="initialValue" type="SFFloat"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="outputOnly" description="isActive true/false events are sent when follower-node computation starts/stops." inheritedFrom="X3DFollowerNode" name="isActive" type="SFBool"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="initializeOnly" default="3" description="order defines the number of internal filters (larger means smoother response, longer delay)." inheritedFrom="X3DDamperNode" maxInclusive="5" minInclusive="0" name="order" type="SFInt32"/>
    <field accessType="inputOnly" description="set_destination resets destination value of this node." name="set_destination" type="SFFloat"/>
    <field accessType="inputOnly" description="set_value resets current value of this node." name="set_value" type="SFFloat"/>
    <field accessType="inputOutput" default="0.3" description="tau is the exponential-decay time constant for filter response in seconds." inheritedFrom="X3DDamperNode" minInclusive="0" name="tau" type="SFTime"/>
    <field accessType="inputOutput" default="-1" description="or -1." inheritedFrom="X3DDamperNode" name="tolerance" type="SFFloat"/>
    <field accessType="outputOnly" description="Computed output value that approaches within tolerance of destination value, as determined by elapsed time, order and tau." name="value_changed" type="SFFloat"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="ScalarInterpolator">
   <InterfaceDefinition appinfo="ScalarInterpolator generates piecewise-linear SFFloat values." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/interpolators.html#ScalarInterpolator">
    <componentInfo level="1" name="Interpolation"/>
    <Inheritance baseType="X3DInterpolatorNode"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="inputOutput" description="Definition values for linear-interpolation function input intervals, listed in non-decreasing order and corresponding to a value in the keyValue array." inheritedFrom="X3DInterpolatorNode" name="key" type="MFFloat"/>
    <field accessType="inputOutput" description="Output values for linear interpolation, each corresponding to an input-fraction value in the key array." name="keyValue" type="MFFloat"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOnly" description="set_fraction selects input key for corresponding keyValue output." inheritedFrom="X3DInterpolatorNode" name="set_fraction" type="SFFloat"/>
    <field accessType="outputOnly" description="Linearly interpolated output value determined by current key time and corresponding keyValue pair." name="value_changed" type="SFFloat"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="ScreenFontStyle">
   <InterfaceDefinition appinfo="ScreenFontStyle is an X3DFontStyleNode defines the size, family, justification, and other styles used within a screen layout." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/layout.html#ScreenFontStyle">
    <componentInfo level="2" name="Layout"/>
    <Inheritance baseType="X3DFontStyleNode"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" additionalEnumerationValuesAllowed="true" baseType="MFString" default='"SERIF"' description="Array of quoted font family names in preference order, browsers use the first supported family." name="family" simpleType="fontFamilyValues" type="MFString">
     <enumeration appinfo="default font family for sans-serif font such as Helvetica." value='"SANS"'/>
     <enumeration appinfo="default font family for serif font such as Times-Roman." value='"SERIF"'/>
     <enumeration appinfo="default font family for a fixed-pitch font such as Courier." value='"TYPEWRITER"'/>
    </field>
    <field accessType="inputOutput" default="true" description="Whether text direction is horizontal (true) or vertical (false)." name="horizontal" type="SFBool"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="inputOutput" additionalEnumerationValuesAllowed="false" baseType="MFString" default='"BEGIN"' description="The justify field determines horizontal and vertical alignment of text layout, relative to the origin of the object coordinate system." name="justify" simpleType="justifyChoices" type="MFString">
     <enumeration value='"MIDDLE"'/>
     <enumeration value='"MIDDLE" "BEGIN"'/>
     <enumeration value='"MIDDLE" "END"'/>
     <enumeration value='"MIDDLE" "FIRST"'/>
     <enumeration value='"MIDDLE" "MIDDLE"'/>
     <enumeration value='"BEGIN"'/>
     <enumeration value='"BEGIN" "BEGIN"'/>
     <enumeration value='"BEGIN" "END"'/>
     <enumeration value='"BEGIN" "FIRST"'/>
     <enumeration value='"BEGIN" "MIDDLE"'/>
     <enumeration value='"END"'/>
     <enumeration value='"END" "BEGIN"'/>
     <enumeration value='"END" "END"'/>
     <enumeration value='"END" "FIRST"'/>
     <enumeration value='"END" "MIDDLE"'/>
     <enumeration value='"FIRST"'/>
     <enumeration value='"FIRST" "BEGIN"'/>
     <enumeration value='"FIRST" "END"'/>
     <enumeration value='"FIRST" "FIRST"'/>
     <enumeration value='"FIRST" "MIDDLE"'/>
    </field>
    <field accessType="inputOutput" description="Language codes consist of a primary code and a (possibly empty) series of subcodes." name="language" type="SFString"/>
    <field accessType="inputOutput" default="true" description="Whether text direction is left-to-right (true) or right-to-left (false)." name="leftToRight" type="SFBool"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" default="12.0" description="pointSize field specifies the size of text in points." minExclusive="0" name="pointSize" type="SFFloat"/>
    <field accessType="inputOutput" default="1.0" description="Adjustment factor for line spacing between adjacent lines of text." minInclusive="0" name="spacing" type="SFFloat"/>
    <field accessType="inputOutput" additionalEnumerationValuesAllowed="false" baseType="xs:NMTOKEN" default="PLAIN" description="Pick one of four values for text style (PLAIN|BOLD|ITALIC|BOLDITALIC)." name="style" simpleType="fontStyleChoices" type="SFString">
     <enumeration appinfo="default plain type." value="PLAIN"/>
     <enumeration appinfo="boldface type." value="BOLD"/>
     <enumeration appinfo="italic type." value="ITALIC"/>
     <enumeration appinfo="bold and italic type." value="BOLDITALIC"/>
    </field>
    <field accessType="inputOutput" default="true" description="Whether text direction is top-to-bottom (true) or bottom-to-top (false)." name="topToBottom" type="SFBool"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <containerField default="fontStyle" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="ScreenGroup">
   <InterfaceDefinition appinfo="ScreenGroup is a Grouping node that can contain most nodes." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/layout.html#ScreenGroup">
    <componentInfo level="2" name="Layout"/>
    <Inheritance baseType="X3DGroupingNode"/>
    <field acceptableNodeTypes="X3DChildNode" accessType="inputOnly" inheritedFrom="X3DGroupingNode" name="addChildren" type="MFNode">
     <componentInfo level="2" name="Grouping"/>
    </field>
    <field accessType="initializeOnly" default="0 0 0" description="Bounding box center accompanies bboxSize and provides an optional hint for bounding box position offset from origin of local coordinate system." inheritedFrom="X3DGroupingNode" name="bboxCenter" type="SFVec3f"/>
    <field accessType="inputOutput" default="false" description="Whether to display bounding box for associated geometry, aligned with world coordinates." inheritedFrom="X3DGroupingNode" name="bboxDisplay" type="SFBool"/>
    <field accessType="initializeOnly" baseType="bboxSizeType" default="-1 -1 -1" description="Bounding box size is usually omitted, and can easily be calculated automatically by an X3D player at scene-loading time with minimal computational cost." inheritedFrom="X3DGroupingNode" name="bboxSize" type="SFVec3f"/>
    <field acceptableNodeTypes="X3DChildNode" accessType="inputOutput" description="Grouping nodes contain an ordered list of children nodes." inheritedFrom="X3DGroupingNode" name="children" type="MFNode"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field acceptableNodeTypes="X3DChildNode" accessType="inputOnly" inheritedFrom="X3DGroupingNode" name="removeChildren" type="MFNode">
     <componentInfo level="2" name="Grouping"/>
    </field>
    <field accessType="inputOutput" default="true" description="Whether or not renderable content within this node is visually displayed." inheritedFrom="X3DGroupingNode" name="visible" type="SFBool"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel maxOccurs="unbounded" minOccurs="0" name="ChildContentModel"/>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="Script">
   <InterfaceDefinition appinfo="Script contains author-programmed event behaviors for a scene." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/scripting.html#Script">
    <componentInfo level="1" name="Scripting"/>
    <Inheritance baseType="X3DScriptNode"/>
    <field accessType="inputOutput" default="0" description="autoRefresh defines interval in seconds before automatic reload of current url asset is performed." inheritedFrom="X3DScriptNode" minInclusive="0" name="autoRefresh" type="SFTime"/>
    <field accessType="inputOutput" default="3600" description="autoRefreshTimeLimit defines maximum duration that automatic refresh activity can occur." inheritedFrom="X3DScriptNode" minInclusive="0" name="autoRefreshTimeLimit" type="SFTime"/>
    <field accessType="inputOutput" description="Author-provided prose that describes intended purpose of the url asset." inheritedFrom="X3DScriptNode" name="description" type="SFString"/>
    <field accessType="initializeOnly" default="false" description="Set directOutput true if Script has field reference(s) of type SFNode/MFNode, and also uses direct access to modify attributes of a referenced node in the Scene." name="directOutput" type="SFBool"/>
    <field acceptableNodeTypes="field" accessType="inputOutput" description="Include a field statement for each field declaration in this Script node." name="field" type="MFNode"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="inputOutput" default="true" description="load=true means load immediately, load=false means defer loading or else unload a previously loaded scene." inheritedFrom="X3DScriptNode" name="load" type="SFBool"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="initializeOnly" default="false" description="If mustEvaluate false, then the X3D player may delay sending input events to Script until output events are needed." name="mustEvaluate" type="SFBool"/>
    <field accessType="inputOutput" baseType="xs:string" description="Embedded scripting source code can be contained within the parent node as a plain-text CDATA block, without requiring escaping of special characters." name="sourceCode" type="SFString"/>
    <field accessType="inputOutput" description="List of address links for runnable script files." inheritedFrom="X3DScriptNode" name="url" type="MFString">
     <componentInfo level="4" name="Networking"/>
    </field>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="containerFieldChoicesX3DUrlObject"/>
    <ContentModel>
     <FieldDeclaration maxOccurs="unbounded" minOccurs="0"/>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
     <SourceText/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="SegmentedVolumeData">
   <InterfaceDefinition appinfo="SegmentedVolumeData displays a segmented voxel dataset with different RenderStyle nodes." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/volume.html#SegmentedVolumeData">
    <componentInfo level="2" name="VolumeRendering"/>
    <Inheritance baseType="X3DVolumeDataNode"/>
    <field accessType="initializeOnly" default="0 0 0" description="Bounding box center accompanies bboxSize and provides an optional hint for bounding box position offset from origin of local coordinate system." inheritedFrom="X3DVolumeDataNode" name="bboxCenter" type="SFVec3f"/>
    <field accessType="inputOutput" default="false" description="Whether to display bounding box for associated geometry, aligned with world coordinates." inheritedFrom="X3DVolumeDataNode" name="bboxDisplay" type="SFBool"/>
    <field accessType="initializeOnly" baseType="bboxSizeType" default="-1 -1 -1" description="Bounding box size is usually omitted, and can easily be calculated automatically by an X3D player at scene-loading time with minimal computational cost." inheritedFrom="X3DVolumeDataNode" name="bboxSize" type="SFVec3f"/>
    <field accessType="inputOutput" default="1 1 1" description="Actual-size X-Y-Z dimensions of volume data in local coordinate system." inheritedFrom="X3DVolumeDataNode" minExclusive="0" name="dimensions" type="SFVec3f"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field acceptableNodeTypes="X3DVolumeRenderStyleNode" accessType="inputOutput" description="Multiple contained X3DVolumeRenderStyleNode nodes corresponding to each isosurface that define specific rendering technique for this volumetric object." name="renderStyle" type="MFNode"/>
    <field accessType="inputOutput" description="Array of boolean values that indicates whether to draw each segment, with indices corresponding to the segment identifier." name="segmentEnabled" type="MFBool"/>
    <field acceptableNodeTypes="X3DTexture3DNode" accessType="inputOutput" default="NULL" description="Single contained X3DTexture3DNode (ComposedTexture3D, ImageTexture3D, PixelTexture3D) holds component texture that provides corresponding segment identifier." name="segmentIdentifiers" type="SFNode"/>
    <field accessType="inputOutput" default="true" description="Whether or not renderable content within this node is visually displayed." inheritedFrom="X3DVolumeDataNode" name="visible" type="SFBool"/>
    <field acceptableNodeTypes="X3DTexture3DNode" accessType="inputOutput" default="NULL" description="Single contained X3DTexture3DNode (ComposedTexture3D, ImageTexture3D, PixelTexture3D) that provides raw voxel information utilized by corresponding rendering styles." name="voxels" type="SFNode"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
     <GroupContentModel minOccurs="0" name="Texture3DContentModel"/>
     <GroupContentModel minOccurs="0" name="VolumeRenderStyleContentModel"/>
     <NodeContentModel name="ProtoInstance"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="ShadedVolumeStyle">
   <InterfaceDefinition appinfo="All fields fully supported except shadows supported with at least Phong shading at level 3. All fields fully supported with at least Phong shading and Henyey-Greenstein phase function, shadows fully supported at level 4." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/volume.html#ShadedVolumeStyle">
    <componentInfo level="3" name="VolumeRendering"/>
    <Inheritance baseType="X3DComposableVolumeRenderStyleNode"/>
    <field accessType="inputOutput" default="true" description="Enables/disables node operation." inheritedFrom="X3DVolumeRenderStyleNode" name="enabled" type="SFBool"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="inputOutput" default="false" description="Whether rendering calculates and applies shading effects to visual output." name="lighting" type="SFBool"/>
    <field acceptableNodeTypes="X3DMaterialNode" accessType="inputOutput" default="NULL" description="Colour and opacity is determined based on whether a value has been specified for the material field." name="material" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="initializeOnly" additionalEnumerationValuesAllowed="true" baseType="SFString" default="Henyey-Greenstein" description="define scattering model for implementations using global illumination (NONE or Henyey-Greenstein phase function)." name="phaseFunction" simpleType="phaseFunctionValues" type="SFString">
     <enumeration appinfo="Henyey-Greenstein phase function for scattering model." value="Henyey-Greenstein"/>
     <enumeration appinfo="no scattering." value="NONE"/>
    </field>
    <field accessType="inputOutput" default="false" description="Whether rendering calculates and applies shadows to visual output (using global illumination model)." name="shadows" type="SFBool"/>
    <field acceptableNodeTypes="X3DTexture3DNode" accessType="inputOutput" default="NULL" description="The surfaceNormals field contains a 3D texture with at least three component values." name="surfaceNormals" type="SFNode"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="renderStyle" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
     <GroupContentModel name="Texture3DContentModel"/>
     <NodeContentModel name="Material"/>
     <NodeContentModel name="ProtoInstance"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="ShaderPart">
   <InterfaceDefinition appinfo="ShaderPart can contain a CDATA section of plain-text source code." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/shaders.html#ShaderPart">
    <componentInfo level="1" name="Shaders"/>
    <Inheritance baseType="X3DNode"/>
    <AdditionalInheritance baseType="X3DUrlObject"/>
    <field accessType="inputOutput" default="0" description="autoRefresh defines interval in seconds before automatic reload of current url asset is performed." inheritedFrom="X3DUrlObject" minInclusive="0" name="autoRefresh" type="SFTime"/>
    <field accessType="inputOutput" default="3600" description="autoRefreshTimeLimit defines maximum duration that automatic refresh activity can occur." inheritedFrom="X3DUrlObject" minInclusive="0" name="autoRefreshTimeLimit" type="SFTime"/>
    <field accessType="inputOutput" description="Author-provided prose that describes intended purpose of the url asset." inheritedFrom="X3DUrlObject" name="description" type="SFString"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="inputOutput" default="true" description="load=true means load immediately, load=false means defer loading or else unload a previously loaded scene." inheritedFrom="X3DUrlObject" name="load" type="SFBool"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" baseType="xs:string" description="Embedded scripting source code can be contained within the parent node as a plain-text CDATA block, without requiring escaping of special characters." name="sourceCode" type="SFString"/>
    <field accessType="initializeOnly" additionalEnumerationValuesAllowed="true" baseType="xs:NMTOKEN" default="VERTEX" description="type indicates whether this ShaderProgram is a vertex or fragment (pixel) shader." name="type" simpleType="shaderPartTypeValues" type="SFString">
     <enumeration appinfo="vertex shader." value="VERTEX"/>
     <enumeration appinfo="fragment shader." value="FRAGMENT"/>
    </field>
    <field accessType="inputOutput" description="Location and filename of shader." inheritedFrom="X3DUrlObject" name="url" type="MFString">
     <componentInfo level="4" name="Networking"/>
    </field>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="parts" type="containerFieldChoicesShaderPart"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
     <SourceText/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="ShaderProgram">
   <InterfaceDefinition appinfo="ShaderProgram can contain field declarations and a CDATA section of plain-text source code." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/shaders.html#ShaderProgram">
    <componentInfo level="1" name="Shaders"/>
    <Inheritance baseType="X3DNode"/>
    <AdditionalInheritance baseType="X3DUrlObject"/>
    <AdditionalInheritance baseType="X3DProgrammableShaderObject"/>
    <field accessType="inputOutput" default="0" description="autoRefresh defines interval in seconds before automatic reload of current url asset is performed." inheritedFrom="X3DUrlObject" minInclusive="0" name="autoRefresh" type="SFTime"/>
    <field accessType="inputOutput" default="3600" description="autoRefreshTimeLimit defines maximum duration that automatic refresh activity can occur." inheritedFrom="X3DUrlObject" minInclusive="0" name="autoRefreshTimeLimit" type="SFTime"/>
    <field accessType="inputOutput" description="Author-provided prose that describes intended purpose of the url asset." inheritedFrom="X3DUrlObject" name="description" type="SFString"/>
    <field acceptableNodeTypes="field" accessType="inputOutput" description="Include a field statement for each field declaration in the ShaderProgram node." name="field" type="MFNode"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="inputOutput" default="true" description="load=true means load immediately, load=false means defer loading or else unload a previously loaded scene." inheritedFrom="X3DUrlObject" name="load" type="SFBool"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" baseType="xs:string" description="Embedded scripting source code can be contained within the parent node as a plain-text CDATA block, without requiring escaping of special characters." name="sourceCode" type="SFString"/>
    <field accessType="initializeOnly" additionalEnumerationValuesAllowed="true" baseType="xs:NMTOKEN" default="VERTEX" description="type indicates whether this ShaderProgram is a vertex or fragment (pixel) shader." name="type" simpleType="shaderPartTypeValues" type="SFString">
     <enumeration appinfo="vertex shader." value="VERTEX"/>
     <enumeration appinfo="fragment shader." value="FRAGMENT"/>
    </field>
    <field accessType="inputOutput" description="Location and filename of shader." inheritedFrom="X3DUrlObject" name="url" type="MFString">
     <componentInfo level="4" name="Networking"/>
    </field>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="programs" type="xs:NMTOKEN"/>
    <ContentModel>
     <FieldDeclaration maxOccurs="unbounded" minOccurs="0"/>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
     <SourceText/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="Shape">
   <InterfaceDefinition appinfo="Shape can appear under any grouping node." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/shape.html#Shape">
    <componentInfo level="1" name="Shape"/>
    <Inheritance baseType="X3DShapeNode"/>
    <field acceptableNodeTypes="X3DAppearanceNode" accessType="inputOutput" default="NULL" description="Single contained Appearance node that can specify visual attributes (such as material, texture, fillProperties and lineProperties) applied to corresponding geometry." inheritedFrom="X3DShapeNode" name="appearance" type="SFNode"/>
    <field accessType="initializeOnly" default="0 0 0" description="Bounding box center accompanies bboxSize and provides an optional hint for bounding box position offset from origin of local coordinate system." inheritedFrom="X3DShapeNode" name="bboxCenter" type="SFVec3f"/>
    <field accessType="inputOutput" default="false" description="Whether to display bounding box for associated geometry, aligned with world coordinates." inheritedFrom="X3DShapeNode" name="bboxDisplay" type="SFBool"/>
    <field accessType="initializeOnly" baseType="bboxSizeType" default="-1 -1 -1" description="Bounding box size is usually omitted, and can easily be calculated automatically by an X3D player at scene-loading time with minimal computational cost." inheritedFrom="X3DShapeNode" name="bboxSize" type="SFVec3f"/>
    <field accessType="inputOutput" default="true" description="castShadow defines whether this Shape casts shadows as produced by lighting nodes." inheritedFrom="X3DShapeNode" name="castShadow" type="SFBool"/>
    <field acceptableNodeTypes="X3DGeometryNode" accessType="inputOutput" default="NULL" description="Single contained geometry node that is rendered according to corresponding appearance." inheritedFrom="X3DShapeNode" name="geometry" type="SFNode"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" default="true" description="Whether or not renderable content within this node is visually displayed." inheritedFrom="X3DShapeNode" name="visible" type="SFBool"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="containerFieldChoicesGroupLODShapeTransformSwitch"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
     <GroupContentModel minOccurs="0" name="ShapeChildContentModel"/>
    </ContentModel>
    <field accessType="inputOutput" default="TRUE" description="pointerEvents defines whether this Shape becomes target for pointer events." name="pointerEvents" type="SFBool"/>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="SignalPdu">
   <InterfaceDefinition appinfo="SignalPdu is a networked Protocol Data Unit (PDU) information node that communicates the transmission of voice, audio or other data modeled in a simulation." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/dis.html#SignalPdu">
    <componentInfo level="1" name="DIS"/>
    <Inheritance baseType="X3DNetworkSensorNode"/>
    <AdditionalInheritance baseType="X3DBoundedObject"/>
    <field accessType="inputOutput" default="localhost" description="Multicast network address, or else 'localhost'." name="address" type="SFString"/>
    <field accessType="inputOutput" default="0" description="Each simulation application that can respond to simulation management PDUs needs to have a unique applicationID." name="applicationID" type="SFInt32"/>
    <field accessType="initializeOnly" default="0 0 0" description="Bounding box center accompanies bboxSize and provides an optional hint for bounding box position offset from origin of local coordinate system." inheritedFrom="X3DBoundedObject" name="bboxCenter" type="SFVec3f"/>
    <field accessType="inputOutput" default="false" description="Whether to display bounding box for associated geometry, aligned with world coordinates." inheritedFrom="X3DBoundedObject" name="bboxDisplay" type="SFBool"/>
    <field accessType="initializeOnly" baseType="bboxSizeType" default="-1 -1 -1" description="Bounding box size is usually omitted, and can easily be calculated automatically by an X3D player at scene-loading time with minimal computational cost." inheritedFrom="X3DBoundedObject" name="bboxSize" type="SFVec3f"/>
    <field accessType="inputOutput" description="Holds audio or digital data conveyed by the radio transmission." name="data" type="MFInt32"/>
    <field accessType="inputOutput" default="0" description="number of bits of digital voice audio or digital data being sent in the Signal PDU." name="dataLength" type="SFInt32"/>
    <field accessType="inputOutput" description="Author-provided prose that describes intended purpose of the node." inheritedFrom="X3DSensorNode" name="description" type="SFString"/>
    <field accessType="inputOutput" default="true" description="Enables/disables the sensor node." inheritedFrom="X3DSensorNode" name="enabled" type="SFBool"/>
    <field accessType="inputOutput" default="0" description="designates both Encoding Class and Encoding Type." name="encodingScheme" type="SFInt32"/>
    <field accessType="inputOutput" default="0" description="EntityID unique ID for entity within that application." name="entityID" type="SFInt32"/>
    <field accessType="inputOutput" default="0 0 0" description="Geographic location (specified in current geoSystem coordinates) for children geometry (specified in relative coordinate system, in meters)." name="geoCoords" type="SFVec3d"/>
    <field accessType="initializeOnly" additionalEnumerationValuesAllowed="true" baseType="geoSystemType" default='"GD" "WE"' description="Identifies spatial reference frame: Geodetic (GD), Geocentric (GC), Universal Transverse Mercator (UTM)." name="geoSystem" type="MFString"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="outputOnly" description="confirm whether there has been a recent network update." inheritedFrom="X3DSensorNode" name="isActive" type="SFBool"/>
    <field accessType="outputOnly" description="Whether networkMode='remote' (listen to network as copy of remote entity)." name="isNetworkReader" type="SFBool"/>
    <field accessType="outputOnly" description="Whether networkMode='master' (output to network as master entity at writeInterval)." name="isNetworkWriter" type="SFBool"/>
    <field accessType="outputOnly" description="Whether incoming DIS packets have an RTP header prepended." name="isRtpHeaderHeard" type="SFBool"/>
    <field accessType="outputOnly" description="Whether networkMode='local' (ignore network but still respond to local events)." name="isStandAlone" type="SFBool"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" description="Fallback server address if multicast not available locally." name="multicastRelayHost" type="SFString"/>
    <field accessType="inputOutput" default="0" description="Fallback server port if multicast not available locally." name="multicastRelayPort" type="SFInt32"/>
    <field accessType="inputOutput" additionalEnumerationValuesAllowed="false" baseType="xs:NMTOKEN" default="standAlone" description="Whether this entity is ignoring the network, sending DIS packets to the network, or receiving DIS packets from the network." name="networkMode" simpleType="networkModeChoices" type="SFString">
     <enumeration appinfo="ignore network but still respond to events in local scene." value="standAlone"/>
     <enumeration appinfo="listen to network and read PDU packets at readInterval, act as remotely linked copy of entity." value="networkReader"/>
     <enumeration appinfo="send PDU packets to network at writeInterval, act as master entity." value="networkWriter"/>
    </field>
    <field accessType="inputOutput" default="0" description="Multicast network port, for example: 3000." name="port" type="SFInt32"/>
    <field accessType="inputOutput" default="0" description="Identifies a particular radio within a given entity." name="radioID" type="SFInt32"/>
    <field accessType="inputOutput" default="0.1" description="Seconds between read updates, 0 means no reading." minInclusive="0" name="readInterval" type="SFTime"/>
    <field accessType="inputOutput" default="false" description="Whether RTP headers are prepended to DIS PDUs." name="rtpHeaderExpected" type="SFBool"/>
    <field accessType="inputOutput" default="0" description="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." name="sampleRate" type="SFInt32"/>
    <field accessType="inputOutput" default="0" description="Number of samples in the PDU if the Encoding Class is encoded voice, otherwise the field is set to zero." name="samples" type="SFInt32"/>
    <field accessType="inputOutput" default="0" description="Simulation/exercise siteID of the participating LAN or organization." name="siteID" type="SFInt32"/>
    <field accessType="inputOutput" default="0" description="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" type="SFInt32"/>
    <field accessType="outputOnly" description="DIS timestamp in X3D units (value 0." minInclusive="0" name="timestamp" type="SFTime"/>
    <field accessType="inputOutput" default="true" description="Whether or not renderable content within this node is visually displayed." inheritedFrom="X3DBoundedObject" name="visible" type="SFBool"/>
    <field accessType="inputOutput" default="1" description="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" type="SFInt32"/>
    <field accessType="inputOutput" default="1.0" description="Seconds between write updates, 0 means no writing (sending)." minInclusive="0" name="writeInterval" type="SFTime"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="SilhouetteEnhancementVolumeStyle">
   <InterfaceDefinition appinfo="SilhouetteEnhancementVolumeStyle specifies that volumetric data is rendered with silhouette enhancement." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/volume.html#SilhouetteEnhancementVolumeStyle">
    <componentInfo level="2" name="VolumeRendering"/>
    <Inheritance baseType="X3DComposableVolumeRenderStyleNode"/>
    <field accessType="inputOutput" default="true" description="Enables/disables node operation." inheritedFrom="X3DVolumeRenderStyleNode" name="enabled" type="SFBool"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" default="0" description="amount of the silhouette enhancement to use." maxInclusive="1" minInclusive="0" name="silhouetteBoundaryOpacity" type="SFFloat"/>
    <field accessType="inputOutput" default="1" description="scaling of non-silhouette regions." maxInclusive="1" minInclusive="0" name="silhouetteRetainedOpacity" type="SFFloat"/>
    <field accessType="inputOutput" default="0.5" description="power function to control sharpness of the silhouette." minInclusive="0" name="silhouetteSharpness" type="SFFloat"/>
    <field acceptableNodeTypes="X3DTexture3DNode" accessType="inputOutput" default="NULL" description="The surfaceNormals field contains a 3D texture with at least three component values." name="surfaceNormals" type="SFNode"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="renderStyle" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
     <GroupContentModel name="Texture3DContentModel"/>
     <NodeContentModel name="ProtoInstance"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="SingleAxisHingeJoint">
   <InterfaceDefinition appinfo="SingleAxisHingeJoint has single axis about which to rotate, similar to a traditional door hinge. Contains two RigidBody nodes (containerField values body1, body2)." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/rigidBodyPhysics.html#SingleAxisHingeJoint">
    <componentInfo level="2" name="RigidBodyPhysics"/>
    <Inheritance baseType="X3DRigidJointNode"/>
    <field accessType="inputOutput" default="0 0 0" description="anchorPoint is joint center, specified in world coordinates." name="anchorPoint" type="SFVec3f"/>
    <field accessType="outputOnly" name="angle" type="SFFloat"/>
    <field accessType="outputOnly" name="angleRate" type="SFFloat"/>
    <field accessType="inputOutput" default="0 1 0" description="axis defines vector of joint connection between body1 and body2." name="axis" type="SFVec3f"/>
    <field acceptableNodeTypes="RigidBody" accessType="inputOutput" default="NULL" description="The body1 and body2 fields indicate the two RigidBody nodes connected by this joint." inheritedFrom="X3DRigidJointNode" name="body1" type="SFNode"/>
    <field accessType="outputOnly" description="body1AnchorPoint describes anchorPoint position relative to local coordinate reference frame." name="body1AnchorPoint" type="SFVec3f"/>
    <field acceptableNodeTypes="RigidBody" accessType="inputOutput" default="NULL" description="The body1 and body2 fields indicate the two RigidBody nodes connected by this joint." inheritedFrom="X3DRigidJointNode" name="body2" type="SFNode"/>
    <field accessType="outputOnly" description="body2AnchorPoint describes anchorPoint position relative to local coordinate reference frame." name="body2AnchorPoint" type="SFVec3f"/>
    <field accessType="inputOutput" additionalEnumerationValuesAllowed="true" baseType="MFString" default='"NONE"' description="forceOutput controls which output fields are generated for the next frame." inheritedFrom="X3DRigidJointNode" name="forceOutput" simpleType="forceOutputValues" type="MFString">
     <enumeration appinfo="all forceOutput fields computed." value='"ALL"'/>
     <enumeration appinfo="no forceOutput fields computed." value='"NONE"'/>
    </field>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="inputOutput" default="3.141592653" description="maxAngle is maximum rotation angle for hinge." name="maxAngle" type="SFFloat"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" default="-3.141592653" description="minAngle is minimum rotation angle for hinge." name="minAngle" type="SFFloat"/>
    <field accessType="inputOutput" default="0" description="stopBounce is velocity factor for bounce back once stop point is reached." name="stopBounce" type="SFFloat"/>
    <field accessType="inputOutput" default="0.8" description="stopErrorCorrection is fraction of error correction performed during time step once stop point is reached." name="stopErrorCorrection" type="SFFloat"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="joints" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
     <GroupContentModel minOccurs="0" name="RigidJointNodeContentModel"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="SliderJoint">
   <InterfaceDefinition appinfo="SliderJoint constrains all movement between body1 and body2 along a single axis. Contains two RigidBody nodes (containerField values body1, body2)." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/rigidBodyPhysics.html#SliderJoint">
    <componentInfo level="2" name="RigidBodyPhysics"/>
    <Inheritance baseType="X3DRigidJointNode"/>
    <field accessType="inputOutput" default="0 1 0" description="axis is normalized vector specifying direction of motion." name="axis" type="SFVec3f"/>
    <field acceptableNodeTypes="RigidBody" accessType="inputOutput" default="NULL" description="The body1 and body2 fields indicate the two RigidBody nodes connected by this joint." inheritedFrom="X3DRigidJointNode" name="body1" type="SFNode"/>
    <field acceptableNodeTypes="RigidBody" accessType="inputOutput" default="NULL" description="The body1 and body2 fields indicate the two RigidBody nodes connected by this joint." inheritedFrom="X3DRigidJointNode" name="body2" type="SFNode"/>
    <field accessType="inputOutput" additionalEnumerationValuesAllowed="true" baseType="MFString" default='"NONE"' description="forceOutput controls which output fields are generated for the next frame." inheritedFrom="X3DRigidJointNode" name="forceOutput" simpleType="forceOutputValues" type="MFString">
     <enumeration appinfo="all forceOutput fields computed." value='"ALL"'/>
     <enumeration appinfo="no forceOutput fields computed." value='"NONE"'/>
    </field>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="inputOutput" default="1" description="maxSeparation is maximum separation distance between the two bodies." name="maxSeparation" type="SFFloat"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" default="0" description="minSeparation is minimum separation distance between the two bodies." name="minSeparation" type="SFFloat"/>
    <field accessType="outputOnly" description="separation indicates final separation distance between the two bodies." name="separation" type="SFFloat"/>
    <field accessType="outputOnly" description="separationRate indicates change in separation distance over time between the two bodies." name="separationRate" type="SFFloat"/>
    <field accessType="inputOutput" default="0" description="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." name="sliderForce" type="SFFloat"/>
    <field accessType="inputOutput" default="0" description="stopBounce is velocity factor for bounce back once stop point is reached." name="stopBounce" type="SFFloat"/>
    <field accessType="inputOutput" default="1" description="stopErrorCorrection is fraction of error correction performed during time step once stop point is reached." name="stopErrorCorrection" type="SFFloat"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="joints" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
     <GroupContentModel minOccurs="0" name="RigidJointNodeContentModel"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="Sound">
   <InterfaceDefinition appinfo="The Sound node controls the 3D spatialization of sound playback by a child AudioClip or MovieTexture node." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/sound.html#Sound">
    <componentInfo level="1" name="Sound"/>
    <Inheritance baseType="X3DSoundNode"/>
    <field accessType="inputOutput" description="Author-provided prose that describes intended purpose of this node." inheritedFrom="X3DSoundNode" name="description" type="SFString"/>
    <field accessType="inputOutput" default="0 0 1" description="direction of sound axis, relative to local coordinate system." name="direction" type="SFVec3f"/>
    <field accessType="inputOutput" default="true" description="Enables/disables node operation." inheritedFrom="X3DSoundNode" name="enabled" type="SFBool"/>
    <field accessType="inputOutput" baseType="unitIntervalType" default="1" description="Factor [0,1] adjusting loudness (decibels) of emitted sound." maxInclusive="1" minInclusive="0" name="intensity" type="SFFloat"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="inputOutput" default="0 0 0" description="Position of sound ellipsoid center, relative to local coordinate system." name="location" type="SFVec3f"/>
    <field accessType="inputOutput" default="10" description="Outer (zero loudness)ellipsoid distance along back direction." minInclusive="0" name="maxBack" type="SFFloat"/>
    <field accessType="inputOutput" default="10" description="Outer (zero loudness)ellipsoid distance along front direction." minInclusive="0" name="maxFront" type="SFFloat"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" default="1" description="Inner (full loudness) ellipsoid distance along back direction." minInclusive="0" name="minBack" type="SFFloat"/>
    <field accessType="inputOutput" default="1" description="Inner (full loudness) ellipsoid distance along front direction." minInclusive="0" name="minFront" type="SFFloat"/>
    <field accessType="inputOutput" baseType="unitIntervalType" default="0" description="Player hint [0,1] if needed to choose which sounds to play." maxInclusive="1" minInclusive="0" name="priority" type="SFFloat"/>
    <field acceptableNodeTypes="X3DSoundSourceNode" accessType="inputOutput" default="NULL" description="sound source for the Sound node, either an AudioClip node or a MovieTexture node." name="source" type="SFNode"/>
    <field accessType="initializeOnly" default="true" description="Whether to spatialize sound playback relative to viewer." name="spatialize" type="SFBool"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
     <GroupContentModel maxOccurs="unbounded" minOccurs="0" name="AudioGraphContentModel"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="SpatialSound">
   <InterfaceDefinition appinfo="The SpatialSound node controls the 3D spatialization of sound playback by a child AudioClip or MovieTexture node." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/sound.html#Sound">
    <componentInfo level="2" name="Sound"/>
    <Inheritance baseType="X3DSoundNode"/>
    <field acceptableNodeTypes="Analyser|AudioClip|AudioDestination|BiquadFilter|BufferAudioSource|ChannelMerger|ChannelSelector|ChannelSplitter|Convolver|Delay|DynamicsCompressor|Gain|ListenerPointSource|MicrophoneSource|MovieTexture|OscillatorSource|Sound|SpatialSound|StreamAudioDestination|StreamAudioSource|WaveShaper" accessType="inputOutput" description="The children field specifies audio-graph sound sources providing input signals for this node." name="children" type="MFNode"/>
    <field accessType="inputOutput" default="6.2832" description="coneInnerAngle is centered along direction and defines the inner conical volume, inside of which no source gain reduction occurs." maxInclusive="6.2832" minInclusive="0" name="coneInnerAngle" type="SFFloat"/>
    <field accessType="inputOutput" default="6.2832" description="coneOuterAngle is centered along direction and defines an outer conical volume, within which the sound gain decreases linearly from full gain to coneOuterGain." maxInclusive="6.2832" minInclusive="0" name="coneOuterAngle" type="SFFloat"/>
    <field accessType="inputOutput" default="0" description="coneOuterGain is minimum gain value found outside coneOuterAngle." name="coneOuterGain" type="SFFloat"/>
    <field accessType="inputOutput" description="Author-provided prose that describes intended purpose of the url asset." inheritedFrom="X3DSoundNode" name="description" type="SFString"/>
    <field accessType="inputOutput" default="0 0 1" description="direction of sound axis, relative to local coordinate system." name="direction" type="SFVec3f"/>
    <field accessType="inputOutput" additionalEnumerationValuesAllowed="false" baseType="SFString" default="INVERSE" description="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." name="distanceModel" simpleType="distanceModelChoices" type="SFString">
     <enumeration alias="linear" appinfo='X3D version of "linear" in Web Audio API.' documentation="https://www.w3.org/TR/webaudio/#enumdef-distancemodeltype" value="LINEAR"/>
     <enumeration alias="inverse" appinfo='X3D version of "inverse" in Web Audio API.' documentation="https://www.w3.org/TR/webaudio/#enumdef-distancemodeltype" value="INVERSE"/>
     <enumeration alias="exponential" appinfo='X3D version of "exponential" in Web Audio API.' documentation="https://www.w3.org/TR/webaudio/#enumdef-distancemodeltype" value="EXPONENTIAL"/>
    </field>
    <field accessType="inputOutput" default="false" description="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." name="dopplerEnabled" type="SFBool"/>
    <field accessType="inputOutput" default="true" description="Enables/disables node operation." inheritedFrom="X3DSoundNode" name="enabled" type="SFBool"/>
    <field accessType="inputOutput" default="false" description="enableHRTF enables/disables Head Related Transfer Function (HRTF) auralization, if available." name="enableHRTF" type="SFBool"/>
    <field accessType="inputOutput" default="1" description="The gain field is a factor that represents the amount of linear amplification to apply to the output of the node." name="gain" type="SFFloat"/>
    <field accessType="inputOutput" baseType="unitIntervalType" default="1" description="Factor [0,1] adjusting loudness (decibels) of emitted sound." maxInclusive="1" minInclusive="0" name="intensity" type="SFFloat"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="inputOutput" default="0 0 0" description="Position of sound ellipsoid center, relative to local coordinate system." name="location" type="SFVec3f"/>
    <field accessType="inputOutput" default="10000" description="maxDistance is the maximum distance where sound is renderable between source and listener, after which no reduction in sound volume occurs." minInclusive="0" name="maxDistance" type="SFFloat"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" baseType="unitIntervalType" default="0" description="Player hint [0,1] if needed to choose which sounds to play." maxInclusive="1" minInclusive="0" name="priority" type="SFFloat"/>
    <field accessType="inputOutput" default="1" description="referenceDistance for reducing volume as source moves further from the listener." minInclusive="0" name="referenceDistance" type="SFFloat"/>
    <field accessType="inputOutput" default="1" description="rolloffFactor indicates how quickly volume is reduced as source moves further from listener." minInclusive="0" name="rolloffFactor" type="SFFloat"/>
    <field accessType="initializeOnly" default="true" description="Whether to spatialize sound playback relative to viewer." name="spatialize" type="SFBool"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
     <GroupContentModel maxOccurs="unbounded" minOccurs="0" name="AudioGraphContentModel"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="Sphere">
   <InterfaceDefinition appinfo="Sphere is a geometry node, representing a perfectly round geometrical object that is the surface of a completely round ball." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/geometry3D.html#Sphere">
    <componentInfo level="1" name="Geometry3D"/>
    <Inheritance baseType="X3DGeometryNode"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="initializeOnly" default="1" description="Size in meters." minExclusive="0" name="radius" type="SFFloat"/>
    <field accessType="initializeOnly" default="true" description="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)." name="solid" type="SFBool"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="geometry" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="SphereSensor">
   <InterfaceDefinition appinfo="SphereSensor converts pointing device motion into a spherical rotation about the origin of the local coordinate system." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/pointingDeviceSensor.html#SphereSensor">
    <componentInfo level="1" name="PointingDeviceSensor"/>
    <Inheritance baseType="X3DDragSensorNode"/>
    <field accessType="inputOutput" default="true" description="Determines whether previous offset values are remembered/accumulated." inheritedFrom="X3DDragSensorNode" name="autoOffset" type="SFBool"/>
    <field accessType="inputOutput" description="Author-provided prose that describes intended purpose of this node." inheritedFrom="X3DSensorNode" name="description" type="SFString"/>
    <field accessType="inputOutput" default="true" description="Enables/disables node operation." inheritedFrom="X3DSensorNode" name="enabled" type="SFBool"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="outputOnly" description="Select geometry by activating the pointing device (for example, clicking the mouse) to generate isActive events." inheritedFrom="X3DSensorNode" name="isActive" type="SFBool"/>
    <field accessType="outputOnly" description="Hover over geometry by aiming the mouse (or pointing device) to generate isOver events." inheritedFrom="X3DPointingDeviceSensorNode" name="isOver" type="SFBool"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" default="0 1 0 0" description="Sends event and remembers last value sensed." name="offset" type="SFRotation"/>
    <field accessType="outputOnly" description="rotation_changed events equal sum of relative bearing changes plus offset value." name="rotation_changed" type="SFRotation"/>
    <field accessType="outputOnly" description="trackPoint_changed events give intersection point of bearing with sensor's virtual geometry." inheritedFrom="X3DDragSensorNode" name="trackPoint_changed" type="SFVec3f"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="SplinePositionInterpolator">
   <InterfaceDefinition appinfo="SplinePositionInterpolator performs non-linear interpolation among paired lists of 3-tuple values and velocities to produce an SFVec3f value_changed output event." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/interpolators.html#SplinePositionInterpolator">
    <componentInfo level="4" name="Interpolation"/>
    <Inheritance baseType="X3DInterpolatorNode"/>
    <field accessType="inputOutput" default="false" description="Whether or not the curve is closed (i." name="closed" type="SFBool"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="inputOutput" description="Definition parameters for nonlinear-interpolation function time intervals, listed in non-decreasing order and corresponding to keyValue, keyVelocity array values." inheritedFrom="X3DInterpolatorNode" name="key" type="MFFloat"/>
    <field accessType="inputOutput" description="Output values for nonlinear interpolation, each corresponding to an input-fraction value in the key array." name="keyValue" type="MFVec3f"/>
    <field accessType="inputOutput" description="Output values for nonlinear interpolation, each corresponding to an input-fraction value in the key array." name="keyVelocity" type="MFVec3f"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" default="false" description="normalizeVelocity field specifies whether the velocity vectors are normalized to produce smooth speed transitions, or transformed into tangency vectors." name="normalizeVelocity" type="SFBool"/>
    <field accessType="inputOnly" description="set_fraction selects input key for corresponding use of keyValue, keyVelocity values for output computation." inheritedFrom="X3DInterpolatorNode" name="set_fraction" type="SFFloat"/>
    <field accessType="outputOnly" description="Nonlinearly interpolated output value computed by using current time fraction along with corresponding key, keyValue and keyVelocity values." name="value_changed" type="SFVec3f"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="SplinePositionInterpolator2D">
   <InterfaceDefinition appinfo="SplinePositionInterpolator2D performs non-linear interpolation among paired lists of 2-tuple values and velocities to produce an SFVec2f value_changed output event." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/interpolators.html#SplinePositionInterpolator2D">
    <componentInfo level="4" name="Interpolation"/>
    <Inheritance baseType="X3DInterpolatorNode"/>
    <field accessType="inputOutput" default="false" description="Whether or not the curve is closed (i." name="closed" type="SFBool"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="inputOutput" description="Definition parameters for nonlinear-interpolation function time intervals, listed in non-decreasing order and corresponding to keyValue, keyVelocity array values." inheritedFrom="X3DInterpolatorNode" name="key" type="MFFloat"/>
    <field accessType="inputOutput" description="Output values for nonlinear interpolation, each corresponding to an input-fraction value in the key array." name="keyValue" type="MFVec2f"/>
    <field accessType="inputOutput" description="Output values for nonlinear interpolation, each corresponding to an input-fraction value in the key array." name="keyVelocity" type="MFVec2f"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" default="false" description="normalizeVelocity field specifies whether the velocity vectors are normalized to produce smooth speed transitions, or transformed into tangency vectors." name="normalizeVelocity" type="SFBool"/>
    <field accessType="inputOnly" description="set_fraction selects input key for corresponding use of keyValue, keyVelocity values for output computation." inheritedFrom="X3DInterpolatorNode" name="set_fraction" type="SFFloat"/>
    <field accessType="outputOnly" description="Nonlinearly interpolated output value computed by using current time fraction along with corresponding key, keyValue and keyVelocity values." name="value_changed" type="SFVec2f"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="SplineScalarInterpolator">
   <InterfaceDefinition appinfo="SplineScalarInterpolator performs non-linear interpolation among paired lists of float values and velocities to produce an SFFloat value_changed output event." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/interpolators.html#SplineScalarInterpolator">
    <componentInfo level="4" name="Interpolation"/>
    <Inheritance baseType="X3DInterpolatorNode"/>
    <field accessType="inputOutput" default="false" description="Whether or not the curve is closed (i." name="closed" type="SFBool"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="inputOutput" description="Definition parameters for nonlinear-interpolation function time intervals, listed in non-decreasing order and corresponding to keyValue, keyVelocity array values." inheritedFrom="X3DInterpolatorNode" name="key" type="MFFloat"/>
    <field accessType="inputOutput" description="Output values for nonlinear interpolation, each corresponding to an input-fraction value in the key array." name="keyValue" type="MFFloat"/>
    <field accessType="inputOutput" description="Output values for nonlinear interpolation, each corresponding to an input-fraction value in the key array." name="keyVelocity" type="MFFloat"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" default="false" description="normalizeVelocity field specifies whether the velocity vectors are normalized to produce smooth speed transitions, or transformed into tangency vectors." name="normalizeVelocity" type="SFBool"/>
    <field accessType="inputOnly" description="set_fraction selects input key for corresponding use of keyValue, keyVelocity values for output computation." inheritedFrom="X3DInterpolatorNode" name="set_fraction" type="SFFloat"/>
    <field accessType="outputOnly" description="Nonlinearly interpolated output value computed by using current time fraction along with corresponding key, keyValue and keyVelocity values." name="value_changed" type="SFFloat"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="SpotLight">
   <InterfaceDefinition appinfo="Linear attenuation may occur at level 2, full support at level 3." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/lighting.html#SpotLight">
    <componentInfo level="2" name="Lighting"/>
    <Inheritance baseType="X3DLightNode"/>
    <field accessType="inputOutput" baseType="unitIntervalType" default="0" description="Brightness of ambient (nondirectional background) emission from the light." inheritedFrom="X3DLightNode" maxInclusive="1" minInclusive="0" name="ambientIntensity" type="SFFloat"/>
    <field accessType="inputOutput" default="1 0 0" description="Constant, linear-distance and squared-distance dropoff factors as radial distance increases from the source." minInclusive="0" name="attenuation" type="SFVec3f"/>
    <field accessType="inputOutput" default="0.589049" description="Inner conical solid angle (in radians) where light source has uniform full intensity." maxInclusive="1.570796" minExclusive="0" name="beamWidth" type="SFFloat">
     <componentInfo level="3" name="Lighting"/>
    </field>
    <field accessType="inputOutput" default="1 1 1" description="color of light, applied to colors of objects." inheritedFrom="X3DLightNode" maxInclusive="1" minInclusive="0" name="color" type="SFColor"/>
    <field accessType="inputOutput" default="1.570796" description="Outer conical solid angle (in radians) where light source intensity becomes zero." maxInclusive="1.570796" minExclusive="0" name="cutOffAngle" type="SFFloat"/>
    <field accessType="inputOutput" default="0 0 -1" description="Orientation vector of light relative to local coordinate system." name="direction" type="SFVec3f"/>
    <field accessType="inputOutput" default="true" description="Global lights illuminate all objects within their volume of lighting influence." name="global" type="SFBool"/>
    <field accessType="inputOutput" default="1" description="Brightness of direct emission from the light." inheritedFrom="X3DLightNode" minInclusive="0" name="intensity" type="SFFloat"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="inputOutput" default="0 0 0" description="Position of light relative to local coordinate system." name="location" type="SFVec3f"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" default="true" description="Enables/disables this light source." inheritedFrom="X3DLightNode" name="on" type="SFBool"/>
    <field accessType="inputOutput" default="100" description="Maximum effective distance of light relative to local light position, affected by ancestor scaling." minInclusive="0" name="radius" type="SFFloat">
     <componentInfo level="3" name="Lighting"/>
    </field>
    <field accessType="inputOutput" baseType="unitIntervalType" default="1" description="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)." inheritedFrom="X3DLightNode" maxInclusive="1" minInclusive="0" name="shadowIntensity" type="SFFloat"/>
    <field accessType="inputOutput" default="false" description="shadows field indicates whether or not this light casts a shadow behind illuminated X3DShapeNode geometry." inheritedFrom="X3DLightNode" name="shadows" type="SFBool"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="SquadOrientationInterpolator">
   <InterfaceDefinition appinfo="SquadOrientationInterpolator performs non-linear interpolation among paired lists of rotation values to produce an SFRotation value_changed output event." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/interpolators.html#SquadOrientationInterpolator">
    <componentInfo level="5" name="Interpolation"/>
    <Inheritance baseType="X3DInterpolatorNode"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="inputOutput" description="Definition parameters for nonlinear-interpolation function time intervals, listed in non-decreasing order and corresponding to keyValue, keyVelocity array values." inheritedFrom="X3DInterpolatorNode" name="key" type="MFFloat"/>
    <field accessType="inputOutput" description="Output values for nonlinear interpolation, each corresponding to an input-fraction value in the key array." name="keyValue" type="MFRotation"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" default="false" description="normalizeVelocity field specifies whether the velocity vectors are normalized to produce smooth speed transitions, or transformed into tangency vectors." name="normalizeVelocity" type="SFBool"/>
    <field accessType="inputOnly" description="set_fraction selects input key for corresponding use of keyValue, keyVelocity values for output computation." inheritedFrom="X3DInterpolatorNode" name="set_fraction" type="SFFloat"/>
    <field accessType="outputOnly" description="Nonlinearly interpolated output value computed by using current time fraction along with corresponding key, keyValue and keyVelocity values." name="value_changed" type="SFRotation"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="StaticGroup">
   <InterfaceDefinition appinfo="StaticGroup is similar to Group node but does not allow access to children after creation time." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/grouping.html#StaticGroup">
    <componentInfo level="3" name="Grouping"/>
    <Inheritance baseType="X3DChildNode"/>
    <AdditionalInheritance baseType="X3DBoundedObject"/>
    <field accessType="initializeOnly" default="0 0 0" description="Bounding box center accompanies bboxSize and provides an optional hint for bounding box position offset from origin of local coordinate system." inheritedFrom="X3DBoundedObject" name="bboxCenter" type="SFVec3f"/>
    <field accessType="inputOutput" default="false" description="Whether to display bounding box for associated geometry, aligned with world coordinates." inheritedFrom="X3DBoundedObject" name="bboxDisplay" type="SFBool"/>
    <field accessType="initializeOnly" baseType="bboxSizeType" default="-1 -1 -1" description="Bounding box size is usually omitted, and can easily be calculated automatically by an X3D player at scene-loading time with minimal computational cost." inheritedFrom="X3DBoundedObject" name="bboxSize" type="SFVec3f"/>
    <field acceptableNodeTypes="X3DChildNode" accessType="initializeOnly" description="Grouping nodes contain an ordered list of children nodes." name="children" type="MFNode"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" default="true" description="Whether or not renderable content within this node is visually displayed." inheritedFrom="X3DBoundedObject" name="visible" type="SFBool"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
     <GroupContentModel maxOccurs="unbounded" minOccurs="0" name="ChildContentModel"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="StreamAudioDestination">
   <InterfaceDefinition appinfo="StreamAudioDestination node represents the final audio destination via a media stream." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/sound.html#StreamAudioDestination">
    <componentInfo level="2" name="Sound"/>
    <Inheritance baseType="X3DSoundDestinationNode"/>
    <field accessType="outputOnly" description="channelCount reports number of channels provided by input nodes." inheritedFrom="X3DSoundDestinationNode" name="channelCount" type="SFInt32"/>
    <field accessType="inputOutput" additionalEnumerationValuesAllowed="false" baseType="SFString" default="MAX" description="channelCountMode determines how individual channels are counted when up-mixing and down-mixing connections to any inputs." inheritedFrom="X3DSoundDestinationNode" name="channelCountMode" simpleType="channelCountModeChoices" type="SFString">
     <enumeration alias="max" appinfo='X3D version of "max" in Web Audio API.' documentation="https://www.w3.org/TR/webaudio/#enumdef-channelcountmode" value="MAX"/>
     <enumeration alias="clamped-max" appinfo='X3D version of "clamped-max" in Web Audio API.' documentation="https://www.w3.org/TR/webaudio/#enumdef-channelcountmode" value="CLAMPED_MAX"/>
     <enumeration alias="explicit" appinfo='X3D version of "explicit" in Web Audio API.' documentation="https://www.w3.org/TR/webaudio/#enumdef-channelcountmode" value="EXPLICIT"/>
    </field>
    <field accessType="inputOutput" additionalEnumerationValuesAllowed="false" baseType="SFString" default="SPEAKERS" description="channelInterpretation determines how individual channels are treated when up-mixing and down-mixing connections to any inputs." inheritedFrom="X3DSoundDestinationNode" name="channelInterpretation" simpleType="channelInterpretationChoices" type="SFString">
     <enumeration appinfo='X3D version of "speakers" in Web Audio API.' documentation="https://www.w3.org/TR/webaudio/#enumdef-channelinterpretation" value="SPEAKERS"/>
     <enumeration appinfo='X3D version of "discrete" in Web Audio API.' documentation="https://www.w3.org/TR/webaudio/#enumdef-channelinterpretation" value="DISCRETE"/>
    </field>
    <field acceptableNodeTypes="Analyser|AudioClip|AudioDestination|BiquadFilter|BufferAudioSource|ChannelMerger|ChannelSelector|ChannelSplitter|Convolver|Delay|DynamicsCompressor|Gain|ListenerPointSource|MicrophoneSource|MovieTexture|OscillatorSource|Sound|SpatialSound|StreamAudioDestination|StreamAudioSource|WaveShaper" accessType="inputOutput" description="The children field specifies audio-graph sound sources providing input signals for this node." name="children" type="MFNode"/>
    <field accessType="inputOutput" description="Author-provided prose that describes intended purpose of the url asset." inheritedFrom="X3DSoundNode" name="description" type="SFString"/>
    <field accessType="inputOutput" default="true" description="Enables/disables node operation." inheritedFrom="X3DSoundNode" name="enabled" type="SFBool"/>
    <field accessType="inputOutput" default="1" description="The gain field is a factor that represents the amount of linear amplification to apply to the output of the node." inheritedFrom="X3DSoundDestinationNode" name="gain" type="SFFloat"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="outputOnly" description="isActive true/false events are sent when playback starts/stops." inheritedFrom="X3DSoundDestinationNode" name="isActive" type="SFBool"/>
    <field accessType="inputOutput" description="mediaDeviceID field provides ID parameter functionality." inheritedFrom="X3DSoundDestinationNode" name="mediaDeviceID" type="SFString"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" description="Stream identification TBD Hint: W3C Media Capture and Streams https://www." name="streamIdentifier" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="containerFieldChoicesAudioGraph"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
     <GroupContentModel maxOccurs="unbounded" minOccurs="0" name="AudioGraphContentModel"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="StreamAudioSource">
   <InterfaceDefinition appinfo="StreamAudioSource operates as an audio source whose media is received from a MediaStream obtained using the WebRTC or Media Capture and Streams APIs." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/sound.html#StreamAudioSource">
    <componentInfo level="2" name="Sound"/>
    <Inheritance baseType="X3DSoundSourceNode"/>
    <field accessType="inputOutput" additionalEnumerationValuesAllowed="false" baseType="SFString" default="MAX" description="channelCountMode determines how individual channels are counted when up-mixing and down-mixing connections to any inputs." name="channelCountMode" simpleType="channelCountModeChoices" type="SFString">
     <enumeration alias="max" appinfo='X3D version of "max" in Web Audio API.' documentation="https://www.w3.org/TR/webaudio/#enumdef-channelcountmode" value="MAX"/>
     <enumeration alias="clamped-max" appinfo='X3D version of "clamped-max" in Web Audio API.' documentation="https://www.w3.org/TR/webaudio/#enumdef-channelcountmode" value="CLAMPED_MAX"/>
     <enumeration alias="explicit" appinfo='X3D version of "explicit" in Web Audio API.' documentation="https://www.w3.org/TR/webaudio/#enumdef-channelcountmode" value="EXPLICIT"/>
    </field>
    <field accessType="inputOutput" additionalEnumerationValuesAllowed="false" baseType="SFString" default="SPEAKERS" description="channelInterpretation determines how individual channels are treated when up-mixing and down-mixing connections to any inputs." name="channelInterpretation" simpleType="channelInterpretationChoices" type="SFString">
     <enumeration appinfo='X3D version of "speakers" in Web Audio API.' documentation="https://www.w3.org/TR/webaudio/#enumdef-channelinterpretation" value="SPEAKERS"/>
     <enumeration appinfo='X3D version of "discrete" in Web Audio API.' documentation="https://www.w3.org/TR/webaudio/#enumdef-channelinterpretation" value="DISCRETE"/>
    </field>
    <field accessType="inputOutput" description="Author-provided prose that describes intended purpose of the url asset." inheritedFrom="X3DTimeDependentNode" name="description" type="SFString"/>
    <field accessType="outputOnly" description="Current elapsed time since AudioClip activated/running, cumulative in seconds, and not counting any paused time." inheritedFrom="X3DTimeDependentNode" minInclusive="0" name="elapsedTime" type="SFTime"/>
    <field accessType="inputOutput" default="true" description="Enables/disables node operation." inheritedFrom="X3DSoundSourceNode" name="enabled" type="SFBool"/>
    <field accessType="inputOutput" default="1" description="The gain field is a factor that represents the amount of linear amplification to apply to the output of the node." inheritedFrom="X3DSoundSourceNode" name="gain" type="SFFloat"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="outputOnly" description="isActive true/false events are sent when playback starts/stops." inheritedFrom="X3DTimeDependentNode" name="isActive" type="SFBool"/>
    <field accessType="outputOnly" description="isPaused true/false events are sent when AudioClip is paused/resumed." inheritedFrom="X3DTimeDependentNode" name="isPaused" type="SFBool">
     <componentInfo level="2" name="Time"/>
    </field>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" default="0" description="When time now &gt;= pauseTime, isPaused becomes true and AudioClip becomes paused." inheritedFrom="X3DTimeDependentNode" name="pauseTime" type="SFTime">
     <componentInfo level="2" name="Time"/>
    </field>
    <field accessType="inputOutput" default="0" description="When resumeTime becomes &lt;= time now, isPaused becomes false and AudioClip becomes active." inheritedFrom="X3DTimeDependentNode" name="resumeTime" type="SFTime">
     <componentInfo level="2" name="Time"/>
    </field>
    <field accessType="inputOutput" default="0" description="Absolute time: number of seconds since January 1, 1970, 00:00:00 GMT." inheritedFrom="X3DTimeDependentNode" name="startTime" type="SFTime"/>
    <field accessType="inputOutput" default="0" description="Absolute time: number of seconds since January 1, 1970, 00:00:00 GMT." inheritedFrom="X3DTimeDependentNode" name="stopTime" type="SFTime"/>
    <field accessType="inputOutput" description="Stream identification TBD Hint: W3C Media Capture and Streams https://www." name="streamIdentifier" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="containerFieldChoicesSoundSource"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="StringSensor">
   <InterfaceDefinition appinfo="StringSensor generates events as the user presses keys on the keyboard." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/keyDeviceSensor.html#StringSensor">
    <componentInfo level="2" name="KeyDeviceSensor"/>
    <Inheritance baseType="X3DKeyDeviceSensorNode"/>
    <field accessType="inputOutput" default="true" description="If deletionAllowed is true, then previously entered character in enteredText can be removed." name="deletionAllowed" type="SFBool"/>
    <field accessType="inputOutput" description="Author-provided prose that describes intended purpose of the node." inheritedFrom="X3DSensorNode" name="description" type="SFString"/>
    <field accessType="inputOutput" default="true" description="Enables/disables node operation." inheritedFrom="X3DSensorNode" name="enabled" type="SFBool"/>
    <field accessType="outputOnly" description="Events generated as character-producing keys are pressed on keyboard." name="enteredText" type="SFString"/>
    <field accessType="outputOnly" description="Events generated when sequence of keystrokes matches keys in terminationText string when this condition occurs, enteredText is moved to finalText and enteredText is set to empty string." name="finalText" type="SFString"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="outputOnly" description="Select geometry by activating the pointing device (for example, clicking the mouse) to generate isActive events." inheritedFrom="X3DSensorNode" name="isActive" type="SFBool"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="SurfaceEmitter">
   <InterfaceDefinition appinfo="SurfaceEmitter generates particles from the surface of an object." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/particleSystems.html#SurfaceEmitter">
    <componentInfo level="2" name="ParticleSystems"/>
    <Inheritance baseType="X3DParticleEmitterNode"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="inputOutput" default="0" description="Basic mass of each particle, defined in mass base units (default is kilograms)." inheritedFrom="X3DParticleEmitterNode" minInclusive="0" name="mass" type="SFFloat"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" default="true" description="Enables/disables production of particles from this emitter node." inheritedFrom="X3DParticleEmitterNode" name="on" type="SFBool"/>
    <field accessType="inputOutput" default="0" description="Initial linear speed (default is m/s) imparted to all particles along their direction of movement." inheritedFrom="X3DParticleEmitterNode" minInclusive="0" name="speed" type="SFFloat"/>
    <field acceptableNodeTypes="X3DGeometryNode" accessType="initializeOnly" default="NULL" description="The geometry node provides geometry used as the emitting surface." name="surface" type="SFNode"/>
    <field accessType="inputOutput" default="0" description="Particle surface area in area base units (default is meters squared)." inheritedFrom="X3DParticleEmitterNode" minInclusive="0" name="surfaceArea" type="SFFloat"/>
    <field accessType="inputOutput" default="0.25" description="Multiplier for the randomness used to control the range of possible output values." inheritedFrom="X3DParticleEmitterNode" minInclusive="0" name="variation" type="SFFloat"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="emitter" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
     <GroupContentModel name="GeometryContentModel"/>
     <NodeContentModel name="ProtoInstance"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="Switch">
   <InterfaceDefinition appinfo="Switch is a Grouping node that only renders one (or zero) child at a time." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/grouping.html#Switch">
    <componentInfo level="2" name="Grouping"/>
    <Inheritance baseType="X3DGroupingNode"/>
    <field acceptableNodeTypes="X3DChildNode" accessType="inputOnly" inheritedFrom="X3DGroupingNode" name="addChildren" type="MFNode">
     <componentInfo level="2" name="Grouping"/>
    </field>
    <field accessType="initializeOnly" default="0 0 0" description="Bounding box center accompanies bboxSize and provides an optional hint for bounding box position offset from origin of local coordinate system." inheritedFrom="X3DGroupingNode" name="bboxCenter" type="SFVec3f"/>
    <field accessType="inputOutput" default="false" description="Whether to display bounding box for associated geometry, aligned with world coordinates." inheritedFrom="X3DGroupingNode" name="bboxDisplay" type="SFBool"/>
    <field accessType="initializeOnly" baseType="bboxSizeType" default="-1 -1 -1" description="Bounding box size is usually omitted, and can easily be calculated automatically by an X3D player at scene-loading time with minimal computational cost." inheritedFrom="X3DGroupingNode" name="bboxSize" type="SFVec3f"/>
    <field acceptableNodeTypes="X3DChildNode" accessType="inputOutput" description="Grouping nodes contain an ordered list of children nodes." inheritedFrom="X3DGroupingNode" name="children" type="MFNode"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field acceptableNodeTypes="X3DChildNode" accessType="inputOnly" inheritedFrom="X3DGroupingNode" name="removeChildren" type="MFNode">
     <componentInfo level="2" name="Grouping"/>
    </field>
    <field accessType="inputOutput" default="true" description="Whether or not renderable content within this node is visually displayed." inheritedFrom="X3DGroupingNode" name="visible" type="SFBool"/>
    <field accessType="inputOutput" default="-1" description="Index of active child choice, counting from 0." minInclusive="-1" name="whichChoice" type="SFInt32"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="containerFieldChoicesGroupLODShapeTransformSwitch"/>
    <ContentModel>
     <GroupContentModel maxOccurs="unbounded" minOccurs="0" name="ChildContentModel"/>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="TexCoordChaser2D">
   <InterfaceDefinition appinfo="TexCoordChaser2D generates a series of single floating-point values that progressively change from initial value to destination value." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/followers.html#TexCoordChaser2D">
    <componentInfo level="1" name="Followers"/>
    <Inheritance baseType="X3DChaserNode"/>
    <field accessType="initializeOnly" default="1" description="duration is the time interval for filter response in seconds." inheritedFrom="X3DChaserNode" minInclusive="0" name="duration" type="SFTime"/>
    <field accessType="initializeOnly" description="Initial destination value for this node." name="initialDestination" type="MFVec2f"/>
    <field accessType="initializeOnly" description="Initial starting value for this node." name="initialValue" type="MFVec2f"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="outputOnly" description="isActive true/false events are sent when follower-node computation starts/stops." inheritedFrom="X3DFollowerNode" name="isActive" type="SFBool"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOnly" description="set_destination resets destination value of this node." name="set_destination" type="MFVec2f"/>
    <field accessType="inputOnly" description="set_value resets current value of this node." name="set_value" type="MFVec2f"/>
    <field accessType="outputOnly" description="Computed output value that approaches within tolerance of destination value, as determined by elapsed time, order and tau." name="value_changed" type="MFVec2f"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="TexCoordDamper2D">
   <InterfaceDefinition appinfo="TexCoordDamper2D generates a series of 2D floating-point arrays that progressively change from initial value to destination value." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/followers.html#TexCoordDamper2D">
    <componentInfo level="1" name="Followers"/>
    <Inheritance baseType="X3DDamperNode"/>
    <field accessType="initializeOnly" description="Initial destination value for this node." name="initialDestination" type="MFVec2f"/>
    <field accessType="initializeOnly" description="Initial starting value for this node." name="initialValue" type="MFVec2f"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="outputOnly" description="isActive true/false events are sent when follower-node computation starts/stops." inheritedFrom="X3DFollowerNode" name="isActive" type="SFBool"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="initializeOnly" default="3" description="order defines the number of internal filters (larger means smoother response, longer delay)." inheritedFrom="X3DDamperNode" maxInclusive="5" minInclusive="0" name="order" type="SFInt32"/>
    <field accessType="inputOnly" description="set_destination resets destination value of this node." name="set_destination" type="MFVec2f"/>
    <field accessType="inputOnly" description="set_value resets current value of this node." name="set_value" type="MFVec2f"/>
    <field accessType="inputOutput" default="0.3" description="tau is the exponential-decay time constant for filter response in seconds." inheritedFrom="X3DDamperNode" minInclusive="0" name="tau" type="SFTime"/>
    <field accessType="inputOutput" default="-1" description="or -1." inheritedFrom="X3DDamperNode" name="tolerance" type="SFFloat"/>
    <field accessType="outputOnly" description="Computed output value that approaches within tolerance of destination value, as determined by elapsed time, order and tau." name="value_changed" type="MFVec2f"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="Text">
   <InterfaceDefinition appinfo="Text is a 2D (flat) geometry node that can contain multiple lines of string values." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/text.html#Text">
    <componentInfo level="1" name="Text"/>
    <Inheritance baseType="X3DGeometryNode"/>
    <field acceptableNodeTypes="X3DFontStyleNode" accessType="inputOutput" default="NULL" description="The fontStyle field can contain a FontStyle or ScreenFontStyle node defining size, family, and style for presented text." name="fontStyle" type="SFNode"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="inputOutput" description="Array of length values for each text string in the local coordinate system." minInclusive="0" name="length" type="MFFloat"/>
    <field accessType="outputOnly" description="Array of 2D bounding box values for each line of text in the local coordinate system." name="lineBounds" type="MFVec2f"/>
    <field accessType="inputOutput" default="0.0" description="Limits/compresses all text strings if max string length is longer than maxExtent, as measured in local coordinate system." minInclusive="0" name="maxExtent" type="SFFloat"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="outputOnly" description="origin of the text local coordinate system, in units of the coordinate system in which the Text node is embedded." name="origin" type="SFVec3f"/>
    <field accessType="initializeOnly" default="false" description="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)." name="solid" type="SFBool"/>
    <field accessType="inputOutput" description="Single or multiple string values to present as Text." name="string" type="MFString"/>
    <field accessType="outputOnly" description="2D bounding box value for all lines of text in the local coordinate system." name="textBounds" type="SFVec2f"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="geometry" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
     <GroupContentModel name="TextChildContentModel"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="TextureBackground">
   <InterfaceDefinition appinfo="TextureBackground simulates ground and sky, using vertical arrays of wraparound color values, TextureBackground can also provide backdrop texture images on all six sides." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/environmentalEffects.html#TextureBackground">
    <componentInfo level="3" name="EnvironmentalEffects"/>
    <Inheritance baseType="X3DBackgroundNode"/>
    <field acceptableNodeTypes="X3DTexture2DNode|MultiTexture" accessType="inputOutput" default="NULL" description="Parent TextureBackground element can contain up to six image nodes (ImageTexture PixelTexture MovieTexture MultiTexture)." name="backTexture" type="SFNode"/>
    <field accessType="outputOnly" description="event sent when node becomes active/inactive." inheritedFrom="X3DBindableNode" name="bindTime" type="SFTime"/>
    <field acceptableNodeTypes="X3DTexture2DNode|MultiTexture" accessType="inputOutput" default="NULL" description="Parent TextureBackground element can contain up to six image nodes (ImageTexture PixelTexture MovieTexture MultiTexture)." name="bottomTexture" type="SFNode"/>
    <field acceptableNodeTypes="X3DTexture2DNode|MultiTexture" accessType="inputOutput" default="NULL" description="Parent TextureBackground element can contain up to six image nodes (ImageTexture PixelTexture MovieTexture MultiTexture)." name="frontTexture" type="SFNode"/>
    <field accessType="inputOutput" description="The angle array values increase from 0." inheritedFrom="X3DBackgroundNode" maxInclusive="1.5708" minInclusive="0" name="groundAngle" type="MFFloat">
     <componentInfo level="2" name="EnvironmentalEffects"/>
    </field>
    <field accessType="inputOutput" description="Color of the ground at the various angles on the ground partial sphere." inheritedFrom="X3DBackgroundNode" maxInclusive="1" minInclusive="0" name="groundColor" type="MFColor"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="outputOnly" description="event true sent when node becomes active, event false sent when unbound by another node." inheritedFrom="X3DBindableNode" name="isBound" type="SFBool"/>
    <field acceptableNodeTypes="X3DTexture2DNode|MultiTexture" accessType="inputOutput" default="NULL" description="Parent TextureBackground element can contain up to six image nodes (ImageTexture PixelTexture MovieTexture MultiTexture)." name="leftTexture" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field acceptableNodeTypes="X3DTexture2DNode|MultiTexture" accessType="inputOutput" default="NULL" description="Parent TextureBackground element can contain up to six image nodes (ImageTexture PixelTexture MovieTexture MultiTexture)." name="rightTexture" type="SFNode"/>
    <field accessType="inputOnly" description="Input event set_bind=true makes this node active, input event set_bind=false makes this node inactive." inheritedFrom="X3DBindableNode" name="set_bind" type="SFBool"/>
    <field accessType="inputOutput" description="The angle array values increase from 0." inheritedFrom="X3DBackgroundNode" maxInclusive="3.1416" minInclusive="0" name="skyAngle" type="MFFloat">
     <componentInfo level="2" name="EnvironmentalEffects"/>
    </field>
    <field accessType="inputOutput" default="0 0 0" description="Color of the sky at various angles on the sky sphere." inheritedFrom="X3DBackgroundNode" maxInclusive="1" minInclusive="0" name="skyColor" type="MFColor">
     <componentInfo level="2" name="EnvironmentalEffects"/>
    </field>
    <field acceptableNodeTypes="X3DTexture2DNode|MultiTexture" accessType="inputOutput" default="NULL" description="Parent TextureBackground element can contain up to six image nodes (ImageTexture PixelTexture MovieTexture MultiTexture)." name="topTexture" type="SFNode"/>
    <field accessType="inputOutput" baseType="unitIntervalType" default="0" description="transparency applied to texture images, enabling an X3D scene to overlay an HTML page or desktop." inheritedFrom="X3DBackgroundNode" maxInclusive="1" minInclusive="0" name="transparency" type="SFFloat"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
     <GroupContentModel maxOccurs="6" minOccurs="0" name="TextureBackgroundChildContentModel"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="TextureCoordinate">
   <InterfaceDefinition appinfo="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)." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/texturing.html#TextureCoordinate">
    <componentInfo level="1" name="Texturing"/>
    <Inheritance baseType="X3DSingleTextureCoordinateNode"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The mapping label identifies which texture coordinates and transformations are used to compute texture effects from corresponding geometry on a given material." inheritedFrom="X3DSingleTextureCoordinateNode" name="mapping" type="SFString"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" description="pairs of 2D (s,t) texture coordinates, either in range [0,1] or higher if repeating." name="point" type="MFVec2f"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="texCoord" type="containerFieldChoicesTextureCoordinate"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="TextureCoordinate3D">
   <InterfaceDefinition appinfo="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." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/texture3D.html#TextureCoordinate3D">
    <componentInfo level="1" name="Texturing3D"/>
    <Inheritance baseType="X3DSingleTextureCoordinateNode"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The mapping label identifies which texture coordinates and transformations are used to compute texture effects from corresponding geometry on a given material." inheritedFrom="X3DSingleTextureCoordinateNode" name="mapping" type="SFString"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" description="triplets of 3D (s,t,r) texture coordinates, either in range [0,1] or higher if repeating." name="point" type="MFVec3f"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="texCoord" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="TextureCoordinate4D">
   <InterfaceDefinition appinfo="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." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/texture3D.html#TextureCoordinate4D">
    <componentInfo level="1" name="Texturing3D"/>
    <Inheritance baseType="X3DSingleTextureCoordinateNode"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The mapping label identifies which texture coordinates and transformations are used to compute texture effects from corresponding geometry on a given material." inheritedFrom="X3DSingleTextureCoordinateNode" name="mapping" type="SFString"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" description="4-tuple values of 4D texture coordinates, either in range [0,1] or higher if repeating." name="point" type="MFVec4f"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="texCoord" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="TextureCoordinateGenerator">
   <InterfaceDefinition appinfo="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)." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/texturing.html#TextureCoordinateGenerator">
    <componentInfo level="2" name="Texturing"/>
    <Inheritance baseType="X3DSingleTextureCoordinateNode"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The mapping label identifies which texture coordinates and transformations are used to compute texture effects from corresponding geometry on a given material." inheritedFrom="X3DSingleTextureCoordinateNode" name="mapping" type="SFString"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" additionalEnumerationValuesAllowed="false" baseType="xs:NMTOKEN" default="SPHERE" description="parameter field defines the algorithm used to compute texture coordinates." name="mode" simpleType="textureCoordinateGeneratorModeChoices" type="SFString">
     <enumeration appinfo="Creates texture coordinates for a spherical environment." value="SPHERE"/>
     <enumeration appinfo="Use vertex normal, transformed to camera space, as input texture coordinates." value="CAMERASPACENORMAL"/>
     <enumeration appinfo="Use vertex position, transformed to camera space, as input texture coordinates." value="CAMERASPACEPOSITION"/>
     <enumeration appinfo="Use reflection vector, transformed to camera space, as input texture coordinates." value="CAMERASPACEREFLECTIONVECTOR"/>
     <enumeration appinfo="Sphere mapping but in local coordinates." value="SPHERE-LOCAL"/>
     <enumeration appinfo="Use vertex coordinates." value="COORD"/>
     <enumeration appinfo="Use vertex coordinates transformed to camera space." value="COORD-EYE"/>
     <enumeration appinfo="Apply Perlin solid noise function on vertex coordinates." value="NOISE"/>
     <enumeration appinfo="Apply Perlin solid noise function on vertex coordinates transformed to camera space." value="NOISE-EYE"/>
     <enumeration appinfo="similar to CAMERASPACEREFLECTIONVECTOR with optional index of refraction." value="SPHERE-REFLECT"/>
     <enumeration appinfo="Similar to SPHERE-REFLECT transformed to camera space." value="SPHERE-REFLECT-LOCAL"/>
    </field>
    <field accessType="inputOutput" description="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" type="MFFloat"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="texCoord" type="containerFieldChoicesTextureCoordinate"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="TextureProjector">
   <InterfaceDefinition appinfo="TextureProjector is similar to a light that projects a texture into the scene, illuminating geometry that intersects the perspective projection volume." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/textureProjector.html#TextureProjector">
    <componentInfo level="2" name="TextureProjection"/>
    <Inheritance baseType="X3DTextureProjectorNode"/>
    <field accessType="inputOutput" baseType="unitIntervalType" default="0" description="Brightness of ambient (nondirectional background) emission from the light." inheritedFrom="X3DLightNode" maxInclusive="1" minInclusive="0" name="ambientIntensity" type="SFFloat"/>
    <field accessType="outputOnly" description="aspectRatio is the ratio of width and height that is projected." inheritedFrom="X3DTextureProjectorNode" minExclusive="0" name="aspectRatio" type="SFFloat"/>
    <field accessType="inputOutput" default="1 1 1" description="color of light, applied to colors of objects." inheritedFrom="X3DLightNode" maxInclusive="1" minInclusive="0" name="color" type="SFColor"/>
    <field accessType="inputOutput" description="Author-provided prose that describes intended purpose of the url asset." inheritedFrom="X3DTextureProjectorNode" name="description" type="SFString"/>
    <field accessType="inputOutput" default="0 0 1" description="Direction for projection." inheritedFrom="X3DTextureProjectorNode" name="direction" type="SFVec3f"/>
    <field accessType="inputOutput" default="-1" description="maximum distance necessary for texture display." inheritedFrom="X3DTextureProjectorNode" minInclusive="-1" name="farDistance" type="SFFloat"/>
    <field accessType="inputOutput" default="0.7854" description="Preferred minimum viewing angle for this projection in radians, providing minimum height or minimum width (whichever is smaller)." maxInclusive="3.1416" minInclusive="0" name="fieldOfView" type="SFFloat"/>
    <field accessType="inputOutput" default="true" description="Global texture projection illuminates all objects within their volume of influence." inheritedFrom="X3DTextureProjectorNode" name="global" type="SFBool"/>
    <field accessType="inputOutput" default="1" description="Brightness of direct emission from the light." inheritedFrom="X3DLightNode" minInclusive="0" name="intensity" type="SFFloat"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="inputOutput" default="0 0 0" description="Position of center of texture projection relative to local coordinate system." inheritedFrom="X3DTextureProjectorNode" name="location" type="SFVec3f"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" default="-1" description="minimum distance necessary for texture display." inheritedFrom="X3DTextureProjectorNode" minInclusive="-1" name="nearDistance" type="SFFloat"/>
    <field accessType="inputOutput" default="true" description="Enables/disables this texture projection source." inheritedFrom="X3DLightNode" name="on" type="SFBool"/>
    <field accessType="inputOutput" baseType="unitIntervalType" default="1" description="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)." inheritedFrom="X3DLightNode" maxInclusive="1" minInclusive="0" name="shadowIntensity" type="SFFloat"/>
    <field accessType="inputOutput" default="false" description="shadows field indicates whether or not this light casts a shadow behind illuminated X3DShapeNode geometry." inheritedFrom="X3DLightNode" name="shadows" type="SFBool"/>
    <field acceptableNodeTypes="X3DTexture2DNode" accessType="inputOutput" default="NULL" description="Single contained texture node (ImageTexture, MovieTexture, PixelTexture, MultiTexture) that maps image(s) to surface geometry." inheritedFrom="X3DTextureProjectorNode" name="texture" type="SFNode"/>
    <field accessType="inputOutput" default="0 1 0" description="upVector describes the roll of the camera by saying which direction is up for the camera's orientation." inheritedFrom="X3DTextureProjectorNode" name="upVector" type="SFVec3f"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
     <NodeContentModel name="ImageTexture"/>
     <NodeContentModel name="MovieTexture"/>
     <NodeContentModel name="PixelTexture"/>
     <NodeContentModel name="ProtoInstance"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="TextureProjectorParallel">
   <InterfaceDefinition appinfo="TextureProjectorParallel is similar to a light that projects a texture into the scene, illuminating geometry that intersects the parallel projection volume." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/textureProjector.html#TextureProjectorParallel">
    <componentInfo level="2" name="TextureProjection"/>
    <Inheritance baseType="X3DTextureProjectorNode"/>
    <field accessType="inputOutput" baseType="unitIntervalType" default="0" description="Brightness of ambient (nondirectional background) emission from the light." inheritedFrom="X3DLightNode" maxInclusive="1" minInclusive="0" name="ambientIntensity" type="SFFloat"/>
    <field accessType="outputOnly" description="aspectRatio is the ratio of width and height that is projected." inheritedFrom="X3DTextureProjectorNode" minExclusive="0" name="aspectRatio" type="SFFloat"/>
    <field accessType="inputOutput" default="1 1 1" description="color of light, applied to colors of objects." inheritedFrom="X3DLightNode" maxInclusive="1" minInclusive="0" name="color" type="SFColor"/>
    <field accessType="inputOutput" description="Author-provided prose that describes intended purpose of the url asset." inheritedFrom="X3DTextureProjectorNode" name="description" type="SFString"/>
    <field accessType="inputOutput" default="0 0 1" description="Direction for projection." inheritedFrom="X3DTextureProjectorNode" name="direction" type="SFVec3f"/>
    <field accessType="inputOutput" default="-1" description="maximum distance necessary for texture display." inheritedFrom="X3DTextureProjectorNode" minInclusive="-1" name="farDistance" type="SFFloat"/>
    <field accessType="inputOutput" default="-1 -1 1 1" description="Minimum and maximum extents of projection texture in units of local coordinate system." name="fieldOfView" type="SFVec4f"/>
    <field accessType="inputOutput" default="true" description="Global texture projection illuminates all objects within their volume of influence." inheritedFrom="X3DTextureProjectorNode" name="global" type="SFBool"/>
    <field accessType="inputOutput" default="1" description="Brightness of direct emission from the light." inheritedFrom="X3DLightNode" minInclusive="0" name="intensity" type="SFFloat"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="inputOutput" default="0 0 0" description="Position of center of texture projection relative to local coordinate system." inheritedFrom="X3DTextureProjectorNode" name="location" type="SFVec3f"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" default="-1" description="minimum distance necessary for texture display." inheritedFrom="X3DTextureProjectorNode" minInclusive="-1" name="nearDistance" type="SFFloat"/>
    <field accessType="inputOutput" default="true" description="Enables/disables this texture projection source." inheritedFrom="X3DLightNode" name="on" type="SFBool"/>
    <field accessType="inputOutput" baseType="unitIntervalType" default="1" description="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)." inheritedFrom="X3DLightNode" maxInclusive="1" minInclusive="0" name="shadowIntensity" type="SFFloat"/>
    <field accessType="inputOutput" default="false" description="shadows field indicates whether or not this light casts a shadow behind illuminated X3DShapeNode geometry." inheritedFrom="X3DLightNode" name="shadows" type="SFBool"/>
    <field acceptableNodeTypes="X3DTexture2DNode" accessType="inputOutput" default="NULL" description="Single contained texture node (ImageTexture, MovieTexture, PixelTexture, MultiTexture) that maps image(s) to surface geometry." inheritedFrom="X3DTextureProjectorNode" name="texture" type="SFNode"/>
    <field accessType="inputOutput" default="0 1 0" description="upVector describes the roll of the camera by saying which direction is up for the camera's orientation." inheritedFrom="X3DTextureProjectorNode" name="upVector" type="SFVec3f"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
     <NodeContentModel name="ImageTexture"/>
     <NodeContentModel name="MovieTexture"/>
     <NodeContentModel name="PixelTexture"/>
     <NodeContentModel name="ProtoInstance"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="TextureProperties">
   <InterfaceDefinition appinfo="TextureProperties allows precise fine-grained control over application of image textures to geometry." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/texturing.html#TextureProperties">
    <componentInfo level="2" name="Texturing"/>
    <Inheritance baseType="X3DNode"/>
    <field accessType="inputOutput" default="1" description="anisotropicDegree defines minimum degree of anisotropy to account for in texture filtering (1=no effect for symmetric filtering, otherwise provide higher value)." minInclusive="1" name="anisotropicDegree" type="SFFloat"/>
    <field accessType="inputOutput" default="0 0 0 0" description="borderColor defines border pixel color." maxInclusive="1" minInclusive="0" name="borderColor" type="SFColorRGBA"/>
    <field accessType="inputOutput" default="0" description="borderWidth number of pixels for texture border." minInclusive="0" name="borderWidth" type="SFInt32"/>
    <field accessType="inputOutput" additionalEnumerationValuesAllowed="false" baseType="xs:NMTOKEN" default="REPEAT" description="boundaryModeR describes handling of texture-coordinate boundaries." name="boundaryModeR" simpleType="textureBoundaryModeChoices" type="SFString">
     <enumeration appinfo="Clamp texture coordinates to range [0,1]." value="CLAMP"/>
     <enumeration appinfo="Clamp texture coordinates such that a border texel is never sampled." value="CLAMP_TO_EDGE"/>
     <enumeration appinfo="Clamp texture coordinates such that texture samples are border texels for fragments." value="CLAMP_TO_BOUNDARY"/>
     <enumeration appinfo="Texture coordinates are mirrored and then clamped as in CLAMP_TO_EDGE." value="MIRRORED_REPEAT"/>
     <enumeration appinfo="Repeat a texture across the fragment." value="REPEAT"/>
    </field>
    <field accessType="inputOutput" additionalEnumerationValuesAllowed="false" baseType="xs:NMTOKEN" default="REPEAT" description="boundaryModeS describes handling of texture-coordinate boundaries." name="boundaryModeS" simpleType="textureBoundaryModeChoices" type="SFString">
     <enumeration appinfo="Clamp texture coordinates to range [0,1]." value="CLAMP"/>
     <enumeration appinfo="Clamp texture coordinates such that a border texel is never sampled." value="CLAMP_TO_EDGE"/>
     <enumeration appinfo="Clamp texture coordinates such that texture samples are border texels for fragments." value="CLAMP_TO_BOUNDARY"/>
     <enumeration appinfo="Texture coordinates are mirrored and then clamped as in CLAMP_TO_EDGE." value="MIRRORED_REPEAT"/>
     <enumeration appinfo="Repeat a texture across the fragment." value="REPEAT"/>
    </field>
    <field accessType="inputOutput" additionalEnumerationValuesAllowed="false" baseType="xs:NMTOKEN" default="REPEAT" description="boundaryModeT describes handling of texture-coordinate boundaries." name="boundaryModeT" simpleType="textureBoundaryModeChoices" type="SFString">
     <enumeration appinfo="Clamp texture coordinates to range [0,1]." value="CLAMP"/>
     <enumeration appinfo="Clamp texture coordinates such that a border texel is never sampled." value="CLAMP_TO_EDGE"/>
     <enumeration appinfo="Clamp texture coordinates such that texture samples are border texels for fragments." value="CLAMP_TO_BOUNDARY"/>
     <enumeration appinfo="Texture coordinates are mirrored and then clamped as in CLAMP_TO_EDGE." value="MIRRORED_REPEAT"/>
     <enumeration appinfo="Repeat a texture across the fragment." value="REPEAT"/>
    </field>
    <field accessType="initializeOnly" default="false" description="Determines whether MIPMAPs are generated for texture images." name="generateMipMaps" type="SFBool"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="inputOutput" additionalEnumerationValuesAllowed="false" baseType="xs:NMTOKEN" default="FASTEST" description="magnificationFilter indicates texture filter when image is smaller than screen space representation." name="magnificationFilter" simpleType="textureMagnificationModeChoices" type="SFString">
     <enumeration appinfo="weighted average of four texture elements closest to center of pixel being textured." value="AVG_PIXEL"/>
     <enumeration appinfo="browser-specified default magnification mode." value="DEFAULT"/>
     <enumeration appinfo="fastest method available." value="FASTEST"/>
     <enumeration appinfo="texture element nearest to the center of pixel being textured." value="NEAREST_PIXEL"/>
     <enumeration appinfo="highest quality method available." value="NICEST"/>
    </field>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" additionalEnumerationValuesAllowed="false" baseType="xs:NMTOKEN" default="FASTEST" description="minificationFilter indicates texture filter when image is larger than screen space representation." name="minificationFilter" simpleType="textureMinificationModeChoices" type="SFString">
     <enumeration appinfo="weighted average of four texture elements closest to center of pixel being textured." value="AVG_PIXEL"/>
     <enumeration appinfo="tri-linear mipmap filtering." value="AVG_PIXEL_AVG_MIPMAP"/>
     <enumeration appinfo="choose mipmap that most closely matches size of pixel being textured, use weighted average of four texture elements closest to center of pixel." value="AVG_PIXEL_NEAREST_MIPMAP"/>
     <enumeration appinfo="browser-specified default minification mode." value="DEFAULT"/>
     <enumeration appinfo="fastest method available, use mipmaps if possible." value="FASTEST"/>
     <enumeration appinfo="texture element nearest to center of pixel being textured." value="NEAREST_PIXEL"/>
     <enumeration appinfo="texture element nearest to center of pixel being textured, use average of two nearest mipmaps." value="NEAREST_PIXEL_AVG_MIPMAP"/>
     <enumeration appinfo="texture element nearest to center of pixel being textured, use nearest mipmap." value="NEAREST_PIXEL_NEAREST_MIPMAP"/>
     <enumeration appinfo="highest quality method available." value="NICEST"/>
    </field>
    <field accessType="inputOutput" additionalEnumerationValuesAllowed="false" baseType="xs:NMTOKEN" default="FASTEST" description="textureCompression indicates compression algorithm selection mode." name="textureCompression" simpleType="textureCompressionModeChoices" type="SFString">
     <enumeration appinfo="browser-specified default compression mode." value="DEFAULT"/>
     <enumeration appinfo="fastest method available." value="FASTEST"/>
     <enumeration appinfo="greatest amount of compression." value="HIGH"/>
     <enumeration appinfo="least amount of compression." value="LOW"/>
     <enumeration appinfo="moderate amount of compressions." value="MEDIUM"/>
     <enumeration appinfo="highest quality method available." value="NICEST"/>
    </field>
    <field accessType="inputOutput" default="0" description="texturePriority defines relative priority for this texture when allocating texture memory, an important rendering resource in graphics-card hardware." maxInclusive="1" minInclusive="0" name="texturePriority" type="SFFloat"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="textureProperties" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="TextureTransform">
   <InterfaceDefinition appinfo="TextureTransform shifts 2D texture coordinates for positioning, orienting and scaling image textures on geometry." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/texturing.html#TextureTransform">
    <componentInfo level="1" name="Texturing"/>
    <Inheritance baseType="X3DTextureTransformNode"/>
    <field accessType="inputOutput" default="0 0" description="center point in 2D (s,t) texture coordinates for rotation and scaling." name="center" type="SFVec2f"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The mapping label identifies which texture coordinates and transformations are used to compute texture effects from corresponding geometry on a given material." name="mapping" type="SFString"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" default="0" description="single rotation angle of texture about center (opposite effect appears on geometry)." name="rotation" type="SFFloat"/>
    <field accessType="inputOutput" default="1 1" description="Non-uniform planar scaling of texture about center (opposite effect appears on geometry)." name="scale" type="SFVec2f"/>
    <field accessType="inputOutput" default="0 0" description="Lateral/vertical shift in 2D (s,t) texture coordinates (opposite effect appears on geometry)." name="translation" type="SFVec2f"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="textureTransform" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="TextureTransform3D">
   <InterfaceDefinition appinfo="TextureTransform3D applies a 3D transformation to texture coordinates." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/texture3D.html#TextureTransform3D">
    <componentInfo level="1" name="Texturing3D"/>
    <Inheritance baseType="X3DTextureTransformNode"/>
    <field accessType="inputOutput" default="0 0 0" description="center point in 2D (s,t) texture coordinates for rotation and scaling." name="center" type="SFVec3f"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The mapping label identifies which texture coordinates and transformations are used to compute texture effects from corresponding geometry on a given material." name="mapping" type="SFString"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" default="0 0 1 0" description="rotation angle of texture about center (opposite effect appears on geometry)." name="rotation" type="SFRotation"/>
    <field accessType="inputOutput" default="1 1 1" description="Non-uniform planar scaling of texture about center (opposite effect appears on geometry)." name="scale" type="SFVec3f"/>
    <field accessType="inputOutput" default="0 0 0" description="Lateral/vertical shift in 2D (s,t) texture coordinates (opposite effect appears on geometry)." name="translation" type="SFVec3f"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="textureTransform" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="TextureTransformMatrix3D">
   <InterfaceDefinition appinfo="TextureTransformMatrix3D applies a 3D transformation to texture coordinates." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/texture3D.html#TextureTransformMatrix3D">
    <componentInfo level="1" name="Texturing3D"/>
    <Inheritance baseType="X3DTextureTransformNode"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The mapping label identifies which texture coordinates and transformations are used to compute texture effects from corresponding geometry on a given material." name="mapping" type="SFString"/>
    <field accessType="inputOutput" default="1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1" description="matrix is a generalized, unfiltered 4x4 transformation matrix to modify texture (opposite effect appears on geometry)." name="matrix" type="SFMatrix4f"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="textureTransform" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="TimeSensor">
   <InterfaceDefinition appinfo="TimeSensor continuously generates events as time passes." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/time.html#TimeSensor">
    <componentInfo level="1" name="Time"/>
    <Inheritance baseType="X3DTimeDependentNode"/>
    <AdditionalInheritance baseType="X3DSensorNode"/>
    <field accessType="inputOutput" default="1.0" description="cycleInterval is loop duration in seconds." minInclusive="0" name="cycleInterval" type="SFTime"/>
    <field accessType="outputOnly" description="cycleTime sends a time outputOnly at startTime, and also at the beginning of each new cycle (useful for synchronization with other time-based objects)." minInclusive="0" name="cycleTime" type="SFTime"/>
    <field accessType="inputOutput" description="Author-provided prose that describes intended purpose of this node." inheritedFrom="X3DTimeDependentNode" name="description" type="SFString"/>
    <field accessType="outputOnly" description="Current elapsed time since TimeSensor activated/running, cumulative in seconds, and not counting any paused time." inheritedFrom="X3DTimeDependentNode" minInclusive="0" name="elapsedTime" type="SFTime"/>
    <field accessType="inputOutput" default="true" description="Enables/disables node operation." inheritedFrom="X3DSensorNode" name="enabled" type="SFBool"/>
    <field accessType="outputOnly" description="fraction_changed continuously sends value in range [0,1] showing time progress in the current cycle." name="fraction_changed" type="SFFloat"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="outputOnly" description="isActive true/false events are sent when TimeSensor starts/stops running." inheritedFrom="X3DTimeDependentNode" name="isActive" type="SFBool"/>
    <field accessType="outputOnly" description="isPaused true/false events are sent when TimeSensor is paused/resumed." inheritedFrom="X3DTimeDependentNode" name="isPaused" type="SFBool">
     <componentInfo level="2" name="Time"/>
    </field>
    <field accessType="inputOutput" default="false" description="Repeat indefinitely when loop=true, repeat only once when loop=false." name="loop" type="SFBool"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" default="0" description="When time now &gt;= pauseTime, isPaused becomes true and TimeSensor becomes paused." inheritedFrom="X3DTimeDependentNode" name="pauseTime" type="SFTime">
     <componentInfo level="2" name="Time"/>
    </field>
    <field accessType="inputOutput" default="0" description="When resumeTime becomes &lt;= time now, isPaused becomes false and TimeSensor becomes inactive." inheritedFrom="X3DTimeDependentNode" name="resumeTime" type="SFTime">
     <componentInfo level="2" name="Time"/>
    </field>
    <field accessType="inputOutput" default="0" description="When time now &gt;= startTime, isActive becomes true and TimeSensor becomes active." inheritedFrom="X3DTimeDependentNode" name="startTime" type="SFTime"/>
    <field accessType="inputOutput" default="0" description="When stopTime becomes &lt;= time now, isActive becomes false and TimeSensor becomes inactive." inheritedFrom="X3DTimeDependentNode" name="stopTime" type="SFTime"/>
    <field accessType="outputOnly" description="Time continuously sends the absolute time (value 0." minInclusive="0" name="time" type="SFTime"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="TimeTrigger">
   <InterfaceDefinition appinfo="TimeTrigger converts boolean true events to time events." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/eventUtilities.html#TimeTrigger">
    <componentInfo level="1" name="EventUtilities"/>
    <Inheritance baseType="X3DTriggerNode"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOnly" description="If input event set_boolean is true, send output triggerTime event." name="set_boolean" type="SFBool"/>
    <field accessType="outputOnly" description="triggerTime is output time event, sent when input event set_boolean is true." name="triggerTime" type="SFTime"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="ToneMappedVolumeStyle">
   <InterfaceDefinition appinfo="ToneMappedVolumeStyle specifies that volumetric data is rendered with Gooch shading model of two-toned warm/cool coloring." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/volume.html#ToneMappedVolumeStyle">
    <componentInfo level="2" name="VolumeRendering"/>
    <Inheritance baseType="X3DComposableVolumeRenderStyleNode"/>
    <field accessType="inputOutput" default="0 0 1 0" description="coolColor is used for surfaces facing away from the light direction." maxInclusive="1" minInclusive="0" name="coolColor" type="SFColorRGBA"/>
    <field accessType="inputOutput" default="true" description="Enables/disables node operation." inheritedFrom="X3DVolumeRenderStyleNode" name="enabled" type="SFBool"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field acceptableNodeTypes="X3DTexture3DNode" accessType="inputOutput" default="NULL" description="The surfaceNormals field contains a 3D texture with at least three component values." name="surfaceNormals" type="SFNode"/>
    <field accessType="inputOutput" default="1 1 0 0" description="warmColor is used for surfaces facing towards the light." maxInclusive="1" minInclusive="0" name="warmColor" type="SFColorRGBA"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="renderStyle" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
     <GroupContentModel name="Texture3DContentModel"/>
     <NodeContentModel name="ProtoInstance"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="TouchSensor">
   <InterfaceDefinition appinfo="TouchSensor tracks location and state of the pointing device, detecting when a user points at or selects (activates) geometry." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/pointingDeviceSensor.html#TouchSensor">
    <componentInfo level="1" name="PointingDeviceSensor"/>
    <Inheritance baseType="X3DTouchSensorNode"/>
    <field accessType="inputOutput" description="Author-provided prose that describes intended purpose of this node." inheritedFrom="X3DSensorNode" name="description" type="SFString"/>
    <field accessType="inputOutput" default="true" description="Enables/disables node operation." inheritedFrom="X3DSensorNode" name="enabled" type="SFBool"/>
    <field accessType="outputOnly" description="When pointing device selects geometry, send event containing surface normal vector at the hitPoint." name="hitNormal_changed" type="SFVec3f"/>
    <field accessType="outputOnly" description="When pointing device selects geometry, send event containing 3D point on surface of underlying geometry, as measured in reference frame for TouchSensor's local coordinate system." name="hitPoint_changed" type="SFVec3f"/>
    <field accessType="outputOnly" description="When pointing device selects geometry, send event containing texture coordinates of surface at the hitPoint." name="hitTexCoord_changed" type="SFVec2f"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="outputOnly" description="Select geometry by activating the pointing device (for example, clicking the mouse) to generate isActive events." inheritedFrom="X3DSensorNode" name="isActive" type="SFBool"/>
    <field accessType="outputOnly" description="Hover over geometry by aiming the mouse (or pointing device) to generate isOver events." inheritedFrom="X3DPointingDeviceSensorNode" name="isOver" type="SFBool"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="outputOnly" description="Time event generated when sensor is touched by pointing device, and then deselected by the user." inheritedFrom="X3DTouchSensorNode" name="touchTime" type="SFTime"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="Transform">
   <InterfaceDefinition appinfo="Transform is a Grouping node that can contain most nodes." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/grouping.html#Transform">
    <componentInfo level="1" name="Grouping"/>
    <Inheritance baseType="X3DGroupingNode"/>
    <field acceptableNodeTypes="X3DChildNode" accessType="inputOnly" inheritedFrom="X3DGroupingNode" name="addChildren" type="MFNode">
     <componentInfo level="2" name="Grouping"/>
    </field>
    <field accessType="initializeOnly" default="0 0 0" description="Bounding box center accompanies bboxSize and provides an optional hint for bounding box position offset from origin of local coordinate system." inheritedFrom="X3DGroupingNode" name="bboxCenter" type="SFVec3f"/>
    <field accessType="inputOutput" default="false" description="Whether to display bounding box for associated geometry, aligned with world coordinates." inheritedFrom="X3DGroupingNode" name="bboxDisplay" type="SFBool"/>
    <field accessType="initializeOnly" baseType="bboxSizeType" default="-1 -1 -1" description="Bounding box size is usually omitted, and can easily be calculated automatically by an X3D player at scene-loading time with minimal computational cost." inheritedFrom="X3DGroupingNode" name="bboxSize" type="SFVec3f"/>
    <field accessType="inputOutput" default="0 0 0" description="Translation offset from origin of local coordinate system, applied prior to rotation or scaling." name="center" type="SFVec3f"/>
    <field acceptableNodeTypes="X3DChildNode" accessType="inputOutput" description="Grouping nodes contain an ordered list of children nodes." inheritedFrom="X3DGroupingNode" name="children" type="MFNode"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field acceptableNodeTypes="X3DChildNode" accessType="inputOnly" inheritedFrom="X3DGroupingNode" name="removeChildren" type="MFNode">
     <componentInfo level="2" name="Grouping"/>
    </field>
    <field accessType="inputOutput" default="0 0 1 0" description="Orientation (axis, angle in radians) of children relative to local coordinate system." name="rotation" type="SFRotation"/>
    <field accessType="inputOutput" default="1 1 1" description="Non-uniform x-y-z scale of child coordinate system, adjusted by center and scaleOrientation." name="scale" type="SFVec3f"/>
    <field accessType="inputOutput" default="0 0 1 0" description="Preliminary rotation of coordinate system before scaling (to allow scaling around arbitrary orientations)." name="scaleOrientation" type="SFRotation"/>
    <field accessType="inputOutput" default="0 0 0" description="Position (x, y, z in meters) of children relative to local coordinate system." name="translation" type="SFVec3f"/>
    <field accessType="inputOutput" default="true" description="Whether or not renderable content within this node is visually displayed." inheritedFrom="X3DGroupingNode" name="visible" type="SFBool"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="containerFieldChoicesGroupLODShapeTransformSwitch"/>
    <ContentModel>
     <GroupContentModel maxOccurs="unbounded" minOccurs="0" name="ChildContentModel"/>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="TransformSensor">
   <InterfaceDefinition appinfo="TransformSensor generates output events when its targetObject enters, exits, and moves within a region in space (defined by a box)." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/environmentalSensor.html#TransformSensor">
    <componentInfo level="3" name="EnvironmentalSensor"/>
    <Inheritance baseType="X3DEnvironmentalSensorNode"/>
    <field accessType="inputOutput" default="0 0 0" description="Translation offset from origin of local coordinate system." name="center" type="SFVec3f"/>
    <field accessType="inputOutput" description="Author-provided prose that describes intended purpose of the node." inheritedFrom="X3DSensorNode" name="description" type="SFString"/>
    <field accessType="inputOutput" default="true" description="Enables/disables node operation." inheritedFrom="X3DSensorNode" name="enabled" type="SFBool"/>
    <field accessType="outputOnly" description="Time event generated when targetObject enters the box region for sensor." name="enterTime" type="SFTime"/>
    <field accessType="outputOnly" description="Time event generated when targetObject exits the box region for sensor." name="exitTime" type="SFTime"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="outputOnly" description="isActive true/false events are sent when triggering the sensor." inheritedFrom="X3DSensorNode" name="isActive" type="SFBool"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="outputOnly" description="Sends rotation event relative to center whenever the target object is contained within the box region and results change." name="orientation_changed" type="SFRotation"/>
    <field accessType="outputOnly" description="Sends translation event relative to center whenever the target object is contained within the box region and results change." name="position_changed" type="SFVec3f"/>
    <field accessType="inputOutput" default="0 0 0" description="size of transformation-traccking box around center location, oriented within local transformation frame." inheritedFrom="X3DEnvironmentalSensorNode" minInclusive="0" name="size" type="SFVec3f"/>
    <field acceptableNodeTypes="X3DGroupingNode|X3DShapeNode" accessType="inputOutput" default="NULL" description="targetObject is the movable geometry represented by any valid X3DGroupingNode or X3DShapeNode which may enter or exit the box." name="targetObject" type="SFNode"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
     <NodeContentModel name="Anchor"/>
     <NodeContentModel name="Billboard"/>
     <NodeContentModel name="Collision"/>
     <NodeContentModel name="Group"/>
     <NodeContentModel name="LOD"/>
     <NodeContentModel name="Shape"/>
     <NodeContentModel name="StaticGroup"/>
     <NodeContentModel name="Switch"/>
     <NodeContentModel name="Transform"/>
     <NodeContentModel name="EspduTransform"/>
     <NodeContentModel name="ReceiverPdu"/>
     <NodeContentModel name="SignalPdu"/>
     <NodeContentModel name="TransmitterPdu"/>
     <NodeContentModel name="CADAssembly"/>
     <NodeContentModel name="CADLayer"/>
     <NodeContentModel name="CADPart"/>
     <NodeContentModel name="GeoLocation"/>
     <NodeContentModel name="GeoLOD"/>
     <NodeContentModel name="GeoTransform"/>
     <NodeContentModel name="HAnimJoint"/>
     <NodeContentModel name="HAnimSegment"/>
     <NodeContentModel name="HAnimSite"/>
     <NodeContentModel name="PickableGroup"/>
     <NodeContentModel name="ProtoInstance"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="TransmitterPdu">
   <InterfaceDefinition appinfo="TransmitterPdu is a networked Protocol Data Unit (PDU) information node that provides detailed information about a radio transmitter modeled in a simulation." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/dis.html#TransmitterPdu">
    <componentInfo level="1" name="DIS"/>
    <Inheritance baseType="X3DNetworkSensorNode"/>
    <AdditionalInheritance baseType="X3DBoundedObject"/>
    <field accessType="inputOutput" default="localhost" description="Multicast network address, or else 'localhost'." name="address" type="SFString"/>
    <field accessType="inputOutput" default="0 0 0" description="World coordinates for antenna location." name="antennaLocation" type="SFVec3f"/>
    <field accessType="inputOutput" default="0" description="." name="antennaPatternLength" type="SFInt32"/>
    <field accessType="inputOutput" default="0" description="Antenna shape pattern: 0 for omnidirectional, 1 for beam, 2 for spherical harmonic (deprecated), or optional higher value." name="antennaPatternType" type="SFInt32"/>
    <field accessType="inputOutput" default="0" description="Each simulation application that can respond to simulation management PDUs needs to have a unique applicationID." name="applicationID" type="SFInt32"/>
    <field accessType="initializeOnly" default="0 0 0" description="Bounding box center accompanies bboxSize and provides an optional hint for bounding box position offset from origin of local coordinate system." inheritedFrom="X3DBoundedObject" name="bboxCenter" type="SFVec3f"/>
    <field accessType="inputOutput" default="false" description="Whether to display bounding box for associated geometry, aligned with world coordinates." inheritedFrom="X3DBoundedObject" name="bboxDisplay" type="SFBool"/>
    <field accessType="initializeOnly" baseType="bboxSizeType" default="-1 -1 -1" description="Bounding box size is usually omitted, and can easily be calculated automatically by an X3D player at scene-loading time with minimal computational cost." inheritedFrom="X3DBoundedObject" name="bboxSize" type="SFVec3f"/>
    <field accessType="inputOutput" default="0" description="Nonzero value corresponding to the simulated cryptographic key." name="cryptoKeyID" type="SFInt32"/>
    <field accessType="inputOutput" default="0" description="Indicates type of crypto system being used, even if the encryption equipment is not keyed." name="cryptoSystem" type="SFInt32"/>
    <field accessType="inputOutput" description="Author-provided prose that describes intended purpose of the node." inheritedFrom="X3DSensorNode" name="description" type="SFString"/>
    <field accessType="inputOutput" default="true" description="Enables/disables the sensor node." inheritedFrom="X3DSensorNode" name="enabled" type="SFBool"/>
    <field accessType="inputOutput" default="0" description="EntityID unique ID for entity within that application." name="entityID" type="SFInt32"/>
    <field accessType="inputOutput" default="0" description="Transmission frequency in Hz." minInclusive="0" name="frequency" type="SFInt32"/>
    <field accessType="inputOutput" default="0 0 0" description="Geographic location (specified in current geoSystem coordinates) for children geometry (specified in relative coordinate system, in meters)." name="geoCoords" type="SFVec3d"/>
    <field accessType="initializeOnly" additionalEnumerationValuesAllowed="true" baseType="geoSystemType" default='"GD" "WE"' description="Identifies spatial reference frame: Geodetic (GD), Geocentric (GC), Universal Transverse Mercator (UTM)." name="geoSystem" type="MFString"/>
    <field accessType="inputOutput" default="0" description="Source of transmission input." name="inputSource" type="SFInt32"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="outputOnly" description="confirm whether there has been a recent network update." inheritedFrom="X3DSensorNode" name="isActive" type="SFBool"/>
    <field accessType="outputOnly" description="Whether networkMode='remote' (listen to network as copy of remote entity)." name="isNetworkReader" type="SFBool"/>
    <field accessType="outputOnly" description="Whether networkMode='master' (output to network as master entity at writeInterval)." name="isNetworkWriter" type="SFBool"/>
    <field accessType="outputOnly" description="Whether incoming DIS packets have an RTP header prepended." name="isRtpHeaderHeard" type="SFBool"/>
    <field accessType="outputOnly" description="Whether networkMode='local' (ignore network but still respond to local events)." name="isStandAlone" type="SFBool"/>
    <field accessType="inputOutput" default="0" description="." name="lengthOfModulationParameters" type="SFInt32"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" default="0" description="Integer enumeration containing detailed information depending on the major modulation type." name="modulationTypeDetail" type="SFInt32"/>
    <field accessType="inputOutput" default="0" description="Integer enumeration containing major classification of the modulation type." name="modulationTypeMajor" type="SFInt32"/>
    <field accessType="inputOutput" default="0" description="Indicates the spread spectrum technique or combination of spread spectrum techniques in use." name="modulationTypeSpreadSpectrum" type="SFInt32"/>
    <field accessType="inputOutput" default="0" description="Specifies radio system associated with this Transmitter PDU and used to interpret other fields whose values depend on a specific radio system." name="modulationTypeSystem" type="SFInt32"/>
    <field accessType="inputOutput" description="Fallback server address if multicast not available locally." name="multicastRelayHost" type="SFString"/>
    <field accessType="inputOutput" default="0" description="Fallback server port if multicast not available locally." name="multicastRelayPort" type="SFInt32"/>
    <field accessType="inputOutput" additionalEnumerationValuesAllowed="false" baseType="xs:NMTOKEN" default="standAlone" description="Whether this entity is ignoring the network, sending DIS packets to the network, or receiving DIS packets from the network." name="networkMode" simpleType="networkModeChoices" type="SFString">
     <enumeration appinfo="ignore network but still respond to events in local scene." value="standAlone"/>
     <enumeration appinfo="listen to network and read PDU packets at readInterval, act as remotely linked copy of entity." value="networkReader"/>
     <enumeration appinfo="send PDU packets to network at writeInterval, act as master entity." value="networkWriter"/>
    </field>
    <field accessType="inputOutput" default="0" description="Multicast network port, for example: 3000." name="port" type="SFInt32"/>
    <field accessType="inputOutput" default="0.0" description="Power that radio would be capable of outputting if on and transmitting, independent of actual transmit state of the radio." name="power" type="SFFloat"/>
    <field accessType="inputOutput" default="0" description="Integer enumeration containing EntityType of transmitter radio." name="radioEntityTypeCategory" type="SFInt32"/>
    <field accessType="inputOutput" default="0" description="Integer enumerations value for country to which the design of the entity or its design specification is attributed." name="radioEntityTypeCountry" type="SFInt32"/>
    <field accessType="inputOutput" default="0" description="Integer enumerations value for domain in which the entity operates: LAND, AIR, SURFACE, SUBSURFACE, SPACE or OTHER." name="radioEntityTypeDomain" type="SFInt32"/>
    <field accessType="inputOutput" default="0" description="Integer enumerations value for whether entity is a PLATFORM, MUNITION, LIFE_FORM, ENVIRONMENTAL, CULTURAL_FEATURE, SUPPLY, RADIO, EXPENDABLE, SENSOR_EMITTER or OTHER." name="radioEntityTypeKind" type="SFInt32"/>
    <field accessType="inputOutput" default="0" description="Integer enumerations value indicating nomenclature (name) for a particular emitter." name="radioEntityTypeNomenclature" type="SFInt32"/>
    <field accessType="inputOutput" default="0" description="Named equipment version number." name="radioEntityTypeNomenclatureVersion" type="SFInt32"/>
    <field accessType="inputOutput" default="0" description="Identifies a particular radio within a given entity." name="radioID" type="SFInt32"/>
    <field accessType="inputOutput" default="0.1" description="Seconds between read updates, 0 means no reading." minInclusive="0" name="readInterval" type="SFTime"/>
    <field accessType="inputOutput" default="0 0 0" description="Relative coordinates for antenna location." name="relativeAntennaLocation" type="SFVec3f"/>
    <field accessType="inputOutput" default="false" description="Whether RTP headers are prepended to DIS PDUs." name="rtpHeaderExpected" type="SFBool"/>
    <field accessType="inputOutput" default="0" description="Simulation/exercise siteID of the participating LAN or organization." name="siteID" type="SFInt32"/>
    <field accessType="outputOnly" description="DIS timestamp in X3D units (value 0." minInclusive="0" name="timestamp" type="SFTime"/>
    <field accessType="inputOutput" default="0" description="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" type="SFFloat"/>
    <field accessType="inputOutput" default="0" description="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" type="SFInt32"/>
    <field accessType="inputOutput" default="true" description="Whether or not renderable content within this node is visually displayed." inheritedFrom="X3DBoundedObject" name="visible" type="SFBool"/>
    <field accessType="inputOutput" default="1" description="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" type="SFInt32"/>
    <field accessType="inputOutput" default="1.0" description="Seconds between write updates, 0 means no writing (sending)." minInclusive="0" name="writeInterval" type="SFTime"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="TriangleFanSet">
   <InterfaceDefinition appinfo="TriangleFanSet is a geometry node containing a Coordinate|CoordinateDouble node, and can also contain Color|ColorRGBA, Normal and TextureCoordinate nodes." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/rendering.html#TriangleFanSet">
    <componentInfo level="3" name="Rendering"/>
    <Inheritance baseType="X3DComposedGeometryNode"/>
    <field acceptableNodeTypes="X3DVertexAttributeNode" accessType="inputOutput" description="Single contained FloatVertexAttribute node that can specify list of per-vertex attribute information for programmable shaders." inheritedFrom="X3DComposedGeometryNode" name="attrib" type="MFNode"/>
    <field accessType="initializeOnly" default="true" description="ccw defines clockwise/counterclockwise ordering of vertex coordinates, which in turn defines front/back orientation of polygon normals according to Right-Hand Rule (RHR)." inheritedFrom="X3DComposedGeometryNode" name="ccw" type="SFBool"/>
    <field acceptableNodeTypes="X3DColorNode" accessType="inputOutput" default="NULL" description="Single contained Color or ColorRGBA node that can specify color values applied to corresponding vertices according to colorIndex and colorPerVertex fields." inheritedFrom="X3DComposedGeometryNode" name="color" type="SFNode"/>
    <field accessType="initializeOnly" default="true" description="Whether Color|ColorRGBA values are applied to each point vertex (true) or to each polygon face (false)." inheritedFrom="X3DComposedGeometryNode" name="colorPerVertex" type="SFBool"/>
    <field acceptableNodeTypes="X3DCoordinateNode" accessType="inputOutput" default="NULL" description="Single contained Coordinate or CoordinateDouble node that can specify a list of vertex values." inheritedFrom="X3DComposedGeometryNode" name="coord" type="SFNode"/>
    <field accessType="inputOutput" description="fanCount array provides number of vertices in each fan." minInclusive="3" name="fanCount" type="MFInt32"/>
    <field acceptableNodeTypes="FogCoordinate" accessType="inputOutput" default="NULL" description="Single contained FogCoordinate node that can specify depth parameters for fog in corresponding geometry." inheritedFrom="X3DComposedGeometryNode" name="fogCoord" type="SFNode"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field acceptableNodeTypes="X3DNormalNode" accessType="inputOutput" default="NULL" description="Single contained Normal node that can specify perpendicular vectors for corresponding vertices to support rendering computations, applied according to the normalPerVertex field." inheritedFrom="X3DComposedGeometryNode" name="normal" type="SFNode"/>
    <field accessType="initializeOnly" default="true" description="Whether Normal node vector values are applied to each point vertex (true) or to each polygon face (false)." inheritedFrom="X3DComposedGeometryNode" name="normalPerVertex" type="SFBool"/>
    <field accessType="initializeOnly" default="true" description="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)." inheritedFrom="X3DComposedGeometryNode" name="solid" type="SFBool"/>
    <field acceptableNodeTypes="X3DSingleTextureCoordinateNode|MultiTextureCoordinate" accessType="inputOutput" default="NULL" description="Single contained TextureCoordinate, TextureCoordinateGenerator or MultiTextureCoordinate node that can specify coordinates for texture mapping onto corresponding geometry." inheritedFrom="X3DComposedGeometryNode" name="texCoord" type="SFNode"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="geometry" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel maxOccurs="unbounded" minOccurs="0" name="ComposedGeometryContentModel"/>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
    <field acceptableNodeTypes="Tangent" accessType="inputOutput" description="Input/Output field tangent. If there is no Tangent node, the MikkTSpace algorithm is used to generate tangent vectors." name="tangent" type="SFNode"/>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="TriangleSet">
   <InterfaceDefinition appinfo="TriangleSet is a geometry node containing a Coordinate|CoordinateDouble node, and can also contain Color|ColorRGBA, Normal and TextureCoordinate nodes." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/rendering.html#TriangleSet">
    <componentInfo level="3" name="Rendering"/>
    <Inheritance baseType="X3DComposedGeometryNode"/>
    <field acceptableNodeTypes="X3DVertexAttributeNode" accessType="inputOutput" description="Single contained FloatVertexAttribute node that can specify list of per-vertex attribute information for programmable shaders." inheritedFrom="X3DComposedGeometryNode" name="attrib" type="MFNode"/>
    <field accessType="initializeOnly" default="true" description="ccw defines clockwise/counterclockwise ordering of vertex coordinates, which in turn defines front/back orientation of polygon normals according to Right-Hand Rule (RHR)." inheritedFrom="X3DComposedGeometryNode" name="ccw" type="SFBool"/>
    <field acceptableNodeTypes="X3DColorNode" accessType="inputOutput" default="NULL" description="Single contained Color or ColorRGBA node that can specify color values applied to corresponding vertices according to colorIndex and colorPerVertex fields." inheritedFrom="X3DComposedGeometryNode" name="color" type="SFNode"/>
    <field accessType="initializeOnly" default="true" description="Whether Color|ColorRGBA values are applied to each point vertex (true) or to each polygon face (false)." inheritedFrom="X3DComposedGeometryNode" name="colorPerVertex" type="SFBool"/>
    <field acceptableNodeTypes="X3DCoordinateNode" accessType="inputOutput" default="NULL" description="Single contained Coordinate or CoordinateDouble node that can specify a list of vertex values." inheritedFrom="X3DComposedGeometryNode" name="coord" type="SFNode"/>
    <field acceptableNodeTypes="FogCoordinate" accessType="inputOutput" default="NULL" description="Single contained FogCoordinate node that can specify depth parameters for fog in corresponding geometry." inheritedFrom="X3DComposedGeometryNode" name="fogCoord" type="SFNode"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field acceptableNodeTypes="X3DNormalNode" accessType="inputOutput" default="NULL" description="Single contained Normal node that can specify perpendicular vectors for corresponding vertices to support rendering computations, applied according to the normalPerVertex field." inheritedFrom="X3DComposedGeometryNode" name="normal" type="SFNode"/>
    <field accessType="initializeOnly" default="true" description="Whether Normal node vector values are applied to each point vertex (true) or to each polygon face (false)." inheritedFrom="X3DComposedGeometryNode" name="normalPerVertex" type="SFBool"/>
    <field accessType="initializeOnly" default="true" description="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)." inheritedFrom="X3DComposedGeometryNode" name="solid" type="SFBool"/>
    <field acceptableNodeTypes="X3DSingleTextureCoordinateNode|MultiTextureCoordinate" accessType="inputOutput" default="NULL" description="Single contained TextureCoordinate, TextureCoordinateGenerator or MultiTextureCoordinate node that can specify coordinates for texture mapping onto corresponding geometry." inheritedFrom="X3DComposedGeometryNode" name="texCoord" type="SFNode"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="geometry" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel maxOccurs="unbounded" minOccurs="0" name="ComposedGeometryContentModel"/>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
    <field acceptableNodeTypes="Tangent" accessType="inputOutput" description="Input/Output field tangent. If there is no Tangent node, the MikkTSpace algorithm is used to generate tangent vectors." name="tangent" type="SFNode"/>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="TriangleSet2D">
   <InterfaceDefinition appinfo="TriangleSet2D is a geometry node that defines a set of filled 2D triangles in X-Y plane." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/geometry2D.html#TriangleSet2D">
    <componentInfo level="1" name="Geometry2D"/>
    <Inheritance baseType="X3DGeometryNode"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="initializeOnly" default="false" description="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)." name="solid" type="SFBool"/>
    <field accessType="inputOutput" description="2D coordinates of TriangleSet2D vertices." name="vertices" type="MFVec2f"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="geometry" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="TriangleStripSet">
   <InterfaceDefinition appinfo="TriangleStripSet is a geometry node containing a Coordinate|CoordinateDouble node, and can also contain Color|ColorRGBA, Normal and TextureCoordinate nodes." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/rendering.html#TriangleStripSet">
    <componentInfo level="3" name="Rendering"/>
    <Inheritance baseType="X3DComposedGeometryNode"/>
    <field acceptableNodeTypes="X3DVertexAttributeNode" accessType="inputOutput" description="Single contained FloatVertexAttribute node that can specify list of per-vertex attribute information for programmable shaders." inheritedFrom="X3DComposedGeometryNode" name="attrib" type="MFNode"/>
    <field accessType="initializeOnly" default="true" description="ccw defines clockwise/counterclockwise ordering of vertex coordinates, which in turn defines front/back orientation of polygon normals according to Right-Hand Rule (RHR)." inheritedFrom="X3DComposedGeometryNode" name="ccw" type="SFBool"/>
    <field acceptableNodeTypes="X3DColorNode" accessType="inputOutput" default="NULL" description="Single contained Color or ColorRGBA node that can specify color values applied to corresponding vertices according to colorIndex and colorPerVertex fields." inheritedFrom="X3DComposedGeometryNode" name="color" type="SFNode"/>
    <field accessType="initializeOnly" default="true" description="Whether Color|ColorRGBA values are applied to each point vertex (true) or to each polygon face (false)." inheritedFrom="X3DComposedGeometryNode" name="colorPerVertex" type="SFBool"/>
    <field acceptableNodeTypes="X3DCoordinateNode" accessType="inputOutput" default="NULL" description="Single contained Coordinate or CoordinateDouble node that can specify a list of vertex values." inheritedFrom="X3DComposedGeometryNode" name="coord" type="SFNode"/>
    <field acceptableNodeTypes="FogCoordinate" accessType="inputOutput" default="NULL" description="Single contained FogCoordinate node that can specify depth parameters for fog in corresponding geometry." inheritedFrom="X3DComposedGeometryNode" name="fogCoord" type="SFNode"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field acceptableNodeTypes="X3DNormalNode" accessType="inputOutput" default="NULL" description="Single contained Normal node that can specify perpendicular vectors for corresponding vertices to support rendering computations, applied according to the normalPerVertex field." inheritedFrom="X3DComposedGeometryNode" name="normal" type="SFNode"/>
    <field accessType="initializeOnly" default="true" description="Whether Normal node vector values are applied to each point vertex (true) or to each polygon face (false)." inheritedFrom="X3DComposedGeometryNode" name="normalPerVertex" type="SFBool"/>
    <field accessType="initializeOnly" default="true" description="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)." inheritedFrom="X3DComposedGeometryNode" name="solid" type="SFBool"/>
    <field accessType="inputOutput" description="stripCount array provides number of vertices in each strip." minInclusive="3" name="stripCount" type="MFInt32"/>
    <field acceptableNodeTypes="X3DSingleTextureCoordinateNode|MultiTextureCoordinate" accessType="inputOutput" default="NULL" description="Single contained TextureCoordinate, TextureCoordinateGenerator or MultiTextureCoordinate node that can specify coordinates for texture mapping onto corresponding geometry." inheritedFrom="X3DComposedGeometryNode" name="texCoord" type="SFNode"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="geometry" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel maxOccurs="unbounded" minOccurs="0" name="ComposedGeometryContentModel"/>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
    <field acceptableNodeTypes="Tangent" accessType="inputOutput" description="Input/Output field tangent. If there is no Tangent node, the MikkTSpace algorithm is used to generate tangent vectors." name="tangent" type="SFNode"/>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="TwoSidedMaterial">
   <InterfaceDefinition appinfo="TwoSidedMaterial specifies surface rendering properties for associated geometry nodes, for outer (front) and inner (back) sides of polygons." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/shape.html#TwoSidedMaterial">
    <componentInfo level="4" name="Shape"/>
    <Inheritance baseType="X3DMaterialNode"/>
    <field accessType="inputOutput" baseType="unitIntervalType" default="0.2" description="how much ambient omnidirectional light is reflected from all light sources." maxInclusive="1" minInclusive="0" name="ambientIntensity" type="SFFloat"/>
    <field accessType="inputOutput" baseType="unitIntervalType" default="0.2" description="how much ambient omnidirectional light is reflected from all light sources." maxInclusive="1" minInclusive="0" name="backAmbientIntensity" type="SFFloat"/>
    <field accessType="inputOutput" default="0.8 0.8 0.8" description="how much direct, angle-dependent light is reflected from all light sources." maxInclusive="1" minInclusive="0" name="backDiffuseColor" type="SFColor"/>
    <field accessType="inputOutput" default="0 0 0" description="how much glowing light is emitted from this object." maxInclusive="1" minInclusive="0" name="backEmissiveColor" type="SFColor"/>
    <field accessType="inputOutput" baseType="unitIntervalType" default="0.2" description="Lower shininess values provide soft specular glows, while higher values result in sharper, smaller highlights." maxInclusive="1" minInclusive="0" name="backShininess" type="SFFloat"/>
    <field accessType="inputOutput" default="0 0 0" description="specular highlights are brightness reflections (example: shiny spots on an apple)." maxInclusive="1" minInclusive="0" name="backSpecularColor" type="SFColor"/>
    <field accessType="inputOutput" baseType="unitIntervalType" default="0" description='how "clear" an object is: 1.' maxInclusive="1" minInclusive="0" name="backTransparency" type="SFFloat"/>
    <field accessType="inputOutput" default="0.8 0.8 0.8" description="how much direct, angle-dependent light is reflected from all light sources." maxInclusive="1" minInclusive="0" name="diffuseColor" type="SFColor"/>
    <field accessType="inputOutput" default="0 0 0" description="how much glowing light is emitted from this object." maxInclusive="1" minInclusive="0" name="emissiveColor" type="SFColor"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" default="false" description="separateBackColor determines whether separate Material values are used for back faces." name="separateBackColor" type="SFBool"/>
    <field accessType="inputOutput" baseType="unitIntervalType" default="0.2" description="Lower shininess values provide soft specular glows, while higher values result in sharper, smaller highlights." maxInclusive="1" minInclusive="0" name="shininess" type="SFFloat"/>
    <field accessType="inputOutput" default="0 0 0" description="specular highlights are brightness reflections (example: shiny spots on an apple)." maxInclusive="1" minInclusive="0" name="specularColor" type="SFColor"/>
    <field accessType="inputOutput" baseType="unitIntervalType" default="0" description='how "clear" an object is: 1.' maxInclusive="1" minInclusive="0" name="transparency" type="SFFloat"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="material" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="UniversalJoint">
   <InterfaceDefinition appinfo="UniversalJoint is like a BallJoint that constrains an extra degree of rotational freedom." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/rigidBodyPhysics.html#UniversalJoint">
    <componentInfo level="2" name="RigidBodyPhysics"/>
    <Inheritance baseType="X3DRigidJointNode"/>
    <field accessType="inputOutput" default="0 0 0" description="anchorPoint is joint center, specified in world coordinates." name="anchorPoint" type="SFVec3f"/>
    <field accessType="inputOutput" default="1 0 0" description="axis1 defines axis vector of joint connection to body1." name="axis1" type="SFVec3f"/>
    <field accessType="inputOutput" default="0 1 0" description="axis2 defines axis vector of joint connection to body2." name="axis2" type="SFVec3f"/>
    <field acceptableNodeTypes="RigidBody" accessType="inputOutput" default="NULL" description="The body1 and body2 fields indicate the two RigidBody nodes connected by this joint." inheritedFrom="X3DRigidJointNode" name="body1" type="SFNode"/>
    <field accessType="outputOnly" description="body1AnchorPoint describes anchorPoint position relative to local coordinate reference frame." name="body1AnchorPoint" type="SFVec3f"/>
    <field accessType="outputOnly" description="body1Axis describes report the current location of the anchor point relative to the corresponding body." name="body1Axis" type="SFVec3f"/>
    <field acceptableNodeTypes="RigidBody" accessType="inputOutput" default="NULL" description="The body1 and body2 fields indicate the two RigidBody nodes connected by this joint." inheritedFrom="X3DRigidJointNode" name="body2" type="SFNode"/>
    <field accessType="outputOnly" description="body2AnchorPoint describes anchorPoint position relative to local coordinate reference frame." name="body2AnchorPoint" type="SFVec3f"/>
    <field accessType="outputOnly" description="body1Axis describes report the current location of the anchor point relative to the corresponding body." name="body2Axis" type="SFVec3f"/>
    <field accessType="inputOutput" additionalEnumerationValuesAllowed="true" baseType="MFString" default='"NONE"' description="forceOutput controls which output fields are generated for the next frame." inheritedFrom="X3DRigidJointNode" name="forceOutput" simpleType="forceOutputValues" type="MFString">
     <enumeration appinfo="all forceOutput fields computed." value='"ALL"'/>
     <enumeration appinfo="no forceOutput fields computed." value='"NONE"'/>
    </field>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" default="0" description="stop1Bounce is velocity factor for bounce back once stop point is reached." maxInclusive="1" minInclusive="0" name="stop1Bounce" type="SFFloat"/>
    <field accessType="inputOutput" default="0.8" description="stop1ErrorCorrection is fraction of error correction performed during time step once stop point is reached." maxInclusive="1" minInclusive="0" name="stop1ErrorCorrection" type="SFFloat"/>
    <field accessType="inputOutput" default="0" description="stop2Bounce is velocity factor for bounce back once stop point is reached." maxInclusive="1" minInclusive="0" name="stop2Bounce" type="SFFloat"/>
    <field accessType="inputOutput" default="0.8" description="stop2ErrorCorrection is fraction of error correction performed during time step once stop point is reached." maxInclusive="1" minInclusive="0" name="stop2ErrorCorrection" type="SFFloat"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="joints" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
     <GroupContentModel minOccurs="0" name="RigidJointNodeContentModel"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="UnlitMaterial">
   <InterfaceDefinition appinfo="UnlitMaterial specifies surface rendering properties for associated geometry nodes." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/shape.html#UnlitMaterial">
    <componentInfo level="1" name="Shape"/>
    <Inheritance baseType="X3DOneSidedMaterialNode"/>
    <field accessType="inputOutput" default="1 1 1" description="how much glowing light is emitted from this object." maxInclusive="1" minInclusive="0" name="emissiveColor" type="SFColor"/>
    <field acceptableNodeTypes="X3DSingleTextureNode" accessType="inputOutput" default="NULL" description="When applying emissiveColor for this material node, the contained texture provides Physically Based Rendering (PBR) modulation for each pixel." name="emissiveTexture" type="SFNode"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The mapping label identifies which texture coordinates and transformations are used to compute texture effects from corresponding geometry on a given material." inheritedFrom="X3DOneSidedMaterialNode" name="emissiveTextureMapping" type="SFString"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" default="1" description="normalScale controls the degree to which normalTexture RGB values apply XYZ-normal bump mapping to pixels in the parent material." inheritedFrom="X3DOneSidedMaterialNode" minInclusive="0" name="normalScale" type="SFFloat">
     <componentInfo level="2" name="Shape"/>
    </field>
    <field acceptableNodeTypes="X3DSingleTextureNode" accessType="inputOutput" default="NULL" description="When applying normalScale for this material node, the contained texture modulates the texture across the surface." name="normalTexture" type="SFNode"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The mapping label identifies which texture coordinates and transformations are used to compute texture effects from corresponding geometry on a given material." inheritedFrom="X3DOneSidedMaterialNode" name="normalTextureMapping" type="SFString"/>
    <field accessType="inputOutput" baseType="unitIntervalType" default="0" description='how "clear" an object is: 1.' maxInclusive="1" minInclusive="0" name="transparency" type="SFFloat"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="material" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
     <NodeContentModel name="ImageTexture"/>
     <NodeContentModel name="MovieTexture"/>
     <NodeContentModel name="PixelTexture"/>
     <NodeContentModel name="ProtoInstance"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="Viewpoint">
   <InterfaceDefinition appinfo="Viewpoint provides a specific location and direction where the user may view the scene." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/navigation.html#Viewpoint">
    <componentInfo level="1" name="Navigation"/>
    <Inheritance baseType="X3DViewpointNode"/>
    <field accessType="outputOnly" description="Event sent reporting timestamp when node becomes active/inactive." inheritedFrom="X3DBindableNode" name="bindTime" type="SFTime"/>
    <field accessType="inputOutput" default="0 0 0" description="centerOfRotation specifies center point about which to rotate user's eyepoint when in EXAMINE or LOOKAT mode." name="centerOfRotation" type="SFVec3f"/>
    <field accessType="inputOutput" description="Text description or navigation hint to describe the significance of this model Viewpoint." inheritedFrom="X3DViewpointNode" name="description" type="SFString">
     <componentInfo level="2" name="Navigation"/>
    </field>
    <field accessType="inputOutput" default="-1" description="farDistance defines maximum clipping plane distance allowed for object display." inheritedFrom="X3DViewpointNode" name="farDistance" type="SFFloat"/>
    <field accessType="inputOutput" default="0.7854" description="Preferred minimum viewing angle from this viewpoint in radians, providing minimum height or minimum width (whichever is smaller)." maxExclusive="3.1416" minExclusive="0" name="fieldOfView" type="SFFloat">
     <componentInfo level="2" name="Navigation"/>
    </field>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="outputOnly" description="Output event true gets sent when node becomes bound and activated, otherwise output event false gets sent when node becomes unbound and deactivated." inheritedFrom="X3DBindableNode" name="isBound" type="SFBool"/>
    <field accessType="inputOutput" default="true" description="Transition instantly by jumping, otherwise smoothly adjust offsets in place when changing to this Viewpoint." inheritedFrom="X3DViewpointNode" name="jump" type="SFBool"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field acceptableNodeTypes="NavigationInfo" accessType="inputOutput" default="NULL" description="The navigationInfo field defines a dedicated NavigationInfo node for this X3DViewpointNode." inheritedFrom="X3DViewpointNode" name="navigationInfo" type="SFNode"/>
    <field accessType="inputOutput" default="-1" description="nearDistance defines minimum clipping plane distance necessary for object display." inheritedFrom="X3DViewpointNode" name="nearDistance" type="SFFloat"/>
    <field accessType="inputOutput" default="0 0 1 0" description="Rotation (axis, angle in radians) of Viewpoint, relative to default -Z axis direction in local coordinate system." inheritedFrom="X3DViewpointNode" name="orientation" type="SFRotation"/>
    <field accessType="inputOutput" default="0 0 10" description="position (x, y, z in meters) relative to local coordinate system." name="position" type="SFVec3f"/>
    <field accessType="inputOutput" default="false" description="Retain (true) or reset to zero (false) any prior user navigation offsets from defined viewpoint position, orientation." inheritedFrom="X3DViewpointNode" name="retainUserOffsets" type="SFBool">
     <componentInfo level="2" name="Navigation"/>
    </field>
    <field accessType="inputOnly" description="Sending event set_bind=true makes this node active." inheritedFrom="X3DBindableNode" name="set_bind" type="SFBool"/>
    <field accessType="inputOutput" default="false" description="Viewpoint is automatically adjusted to view all visible geometry." inheritedFrom="X3DViewpointNode" name="viewAll" type="SFBool"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
     <NodeContentModel name="NavigationInfo"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="ViewpointGroup">
   <InterfaceDefinition appinfo="ViewpointGroup can contain Viewpoint, OrthoViewpoint, GeoViewpoint and other ViewpointGroup nodes for better user-navigation support with a shared description on the viewpoint list." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/navigation.html#ViewpointGroup">
    <componentInfo level="3" name="Navigation"/>
    <Inheritance baseType="X3DChildNode"/>
    <field accessType="inputOutput" default="0 0 0" description="center specifies center point of proximity box within which ViewpointGroup is usable and displayed on viewpoint list." name="center" type="SFVec3f"/>
    <field acceptableNodeTypes="X3DViewpointNode|ViewpointGroup" accessType="inputOutput" description="ViewpointGroup contains Viewpoint, OrthoViewpoint, GeoViewpoint and other ViewpointGroup nodes that each have containerField='children' default value." name="children" type="MFNode"/>
    <field accessType="inputOutput" description="Text description or navigation hint to identify this ViewpointGroup." name="description" type="SFString"/>
    <field accessType="inputOutput" default="true" description="displayed determines whether this ViewpointGroup is displayed in the current viewpoint list." name="displayed" type="SFBool"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" default="false" description="Retain (true) or reset to zero (false) any prior user navigation offsets from defined viewpoint position, orientation." name="retainUserOffsets" type="SFBool"/>
    <field accessType="inputOutput" default="0 0 0" description="size of Proximity box around center location, oriented within local transformation frame, within which ViewpointGroup is usable and displayed on viewpoint list." name="size" type="SFVec3f"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
     <NodeContentModel name="Viewpoint"/>
     <NodeContentModel name="OrthoViewpoint"/>
     <NodeContentModel name="GeoViewpoint"/>
     <NodeContentModel name="ViewpointGroup"/>
     <NodeContentModel name="ProtoInstance"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="Viewport">
   <InterfaceDefinition appinfo="Viewport is a Grouping node that can contain most nodes." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/layering.html#Viewport">
    <componentInfo level="1" name="Layering"/>
    <Inheritance baseType="X3DViewportNode"/>
    <field acceptableNodeTypes="X3DChildNode" accessType="inputOnly" inheritedFrom="X3DGroupingNode" name="addChildren" type="MFNode">
     <componentInfo level="2" name="Grouping"/>
    </field>
    <field accessType="initializeOnly" default="0 0 0" description="Bounding box center accompanies bboxSize and provides an optional hint for bounding box position offset from origin of local coordinate system." inheritedFrom="X3DGroupingNode" name="bboxCenter" type="SFVec3f"/>
    <field accessType="inputOutput" default="false" description="Whether to display bounding box for associated geometry, aligned with world coordinates." inheritedFrom="X3DGroupingNode" name="bboxDisplay" type="SFBool"/>
    <field accessType="initializeOnly" baseType="bboxSizeType" default="-1 -1 -1" description="Bounding box size is usually omitted, and can easily be calculated automatically by an X3D player at scene-loading time with minimal computational cost." inheritedFrom="X3DGroupingNode" name="bboxSize" type="SFVec3f"/>
    <field acceptableNodeTypes="X3DChildNode" accessType="inputOutput" description="Grouping nodes contain an ordered list of children nodes." inheritedFrom="X3DGroupingNode" name="children" type="MFNode"/>
    <field accessType="inputOutput" default="0 1 0 1" description="clipBoundary is specified in fractions of the normal render surface in the sequence left/right/bottom/top." maxInclusive="1" minInclusive="0" name="clipBoundary" type="MFFloat"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field acceptableNodeTypes="X3DChildNode" accessType="inputOnly" inheritedFrom="X3DGroupingNode" name="removeChildren" type="MFNode">
     <componentInfo level="2" name="Grouping"/>
    </field>
    <field accessType="inputOutput" default="true" description="Whether or not renderable content within this node is visually displayed." inheritedFrom="X3DGroupingNode" name="visible" type="SFBool"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="viewport" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel maxOccurs="unbounded" minOccurs="0" name="ChildContentModel"/>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="VisibilitySensor">
   <InterfaceDefinition appinfo="VisibilitySensor detects when user can see a specific object or region as they navigate the world." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/environmentalSensor.html#VisibilitySensor">
    <componentInfo level="2" name="EnvironmentalSensor"/>
    <Inheritance baseType="X3DEnvironmentalSensorNode"/>
    <field accessType="inputOutput" default="0 0 0" description="Translation offset from origin of local coordinate system." name="center" type="SFVec3f"/>
    <field accessType="inputOutput" description="Author-provided prose that describes intended purpose of the node." inheritedFrom="X3DSensorNode" name="description" type="SFString"/>
    <field accessType="inputOutput" default="true" description="Enables/disables node operation." inheritedFrom="X3DSensorNode" name="enabled" type="SFBool"/>
    <field accessType="outputOnly" description="Time event generated when user's camera enters visibility region for sensor." name="enterTime" type="SFTime"/>
    <field accessType="outputOnly" description="Time event generated when user's camera exits visibility region for sensor." name="exitTime" type="SFTime"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="outputOnly" description="isActive true/false events are sent when triggering the sensor." inheritedFrom="X3DSensorNode" name="isActive" type="SFBool"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" default="0 0 0" description="size of visibility box around center location, oriented within local transformation frame." inheritedFrom="X3DEnvironmentalSensorNode" minInclusive="0" name="size" type="SFVec3f"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="VolumeData">
   <InterfaceDefinition appinfo="VolumeData displays a simple non-segmented voxel dataset with a single RenderStyle node." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/volume.html#VolumeData">
    <componentInfo level="1" name="VolumeRendering"/>
    <Inheritance baseType="X3DVolumeDataNode"/>
    <field accessType="initializeOnly" default="0 0 0" description="Bounding box center accompanies bboxSize and provides an optional hint for bounding box position offset from origin of local coordinate system." inheritedFrom="X3DVolumeDataNode" name="bboxCenter" type="SFVec3f"/>
    <field accessType="inputOutput" default="false" description="Whether to display bounding box for associated geometry, aligned with world coordinates." inheritedFrom="X3DVolumeDataNode" name="bboxDisplay" type="SFBool"/>
    <field accessType="initializeOnly" baseType="bboxSizeType" default="-1 -1 -1" description="Bounding box size is usually omitted, and can easily be calculated automatically by an X3D player at scene-loading time with minimal computational cost." inheritedFrom="X3DVolumeDataNode" name="bboxSize" type="SFVec3f"/>
    <field accessType="inputOutput" default="1 1 1" description="Actual-size X-Y-Z dimensions of volume data in local coordinate system." inheritedFrom="X3DVolumeDataNode" minExclusive="0" name="dimensions" type="SFVec3f"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field acceptableNodeTypes="X3DVolumeRenderStyleNode" accessType="inputOutput" default="NULL" description="Single contained X3DVolumeRenderStyleNode node that defines specific rendering technique for this volumetric object." name="renderStyle" type="SFNode"/>
    <field accessType="inputOutput" default="true" description="Whether or not renderable content within this node is visually displayed." inheritedFrom="X3DVolumeDataNode" name="visible" type="SFBool"/>
    <field acceptableNodeTypes="X3DTexture3DNode" accessType="inputOutput" default="NULL" description="Single contained X3DTexture3DNode (ComposedTexture3D, ImageTexture3D, PixelTexture3D) that provides raw voxel information utilized by corresponding rendering styles." name="voxels" type="SFNode"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
     <GroupContentModel name="VolumeRenderStyleContentModel"/>
     <GroupContentModel name="Texture3DContentModel"/>
     <NodeContentModel name="ProtoInstance"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="VolumeEmitter">
   <InterfaceDefinition appinfo="VolumeEmitter emits particles from a random position confined within the given closed geometry volume." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/particleSystems.html#VolumeEmitter">
    <componentInfo level="2" name="ParticleSystems"/>
    <Inheritance baseType="X3DParticleEmitterNode"/>
    <field acceptableNodeTypes="X3DCoordinateNode" accessType="inputOutput" default="NULL" description="Coordinates for the geometry used as the emitting volume." name="coord" type="SFNode"/>
    <field accessType="initializeOnly" default="-1" description="coordIndex indices are applied to contained Coordinate values in order to define randomly generated initial geometry of the particles." minInclusive="-1" name="coordIndex" type="MFInt32"/>
    <field accessType="inputOutput" default="0 1 0" description="Initial direction from which particles emanate." maxInclusive="1" minInclusive="-1" name="direction" type="SFVec3f"/>
    <field accessType="initializeOnly" default="true" description="TODO, X3D specification is undefined." name="internal" type="SFBool"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="inputOutput" default="0" description="Basic mass of each particle, defined in mass base units (default is kilograms)." inheritedFrom="X3DParticleEmitterNode" minInclusive="0" name="mass" type="SFFloat"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" default="true" description="Enables/disables production of particles from this emitter node." inheritedFrom="X3DParticleEmitterNode" name="on" type="SFBool"/>
    <field accessType="inputOnly" minInclusive="-1" name="set_coordIndex" type="MFInt32"/>
    <field accessType="inputOutput" default="0" description="Initial linear speed (default is m/s) imparted to all particles along their direction of movement." inheritedFrom="X3DParticleEmitterNode" minInclusive="0" name="speed" type="SFFloat"/>
    <field accessType="inputOutput" default="0" description="Particle surface area in area base units (default is meters squared)." inheritedFrom="X3DParticleEmitterNode" minInclusive="0" name="surfaceArea" type="SFFloat"/>
    <field accessType="inputOutput" default="0.25" description="Multiplier for the randomness used to control the range of possible output values." inheritedFrom="X3DParticleEmitterNode" minInclusive="0" name="variation" type="SFFloat"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="emitter" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
     <NodeContentModel name="Coordinate"/>
     <NodeContentModel name="CoordinateDouble"/>
     <NodeContentModel name="GeoCoordinate"/>
     <NodeContentModel name="ProtoInstance"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="VolumePickSensor">
   <InterfaceDefinition appinfo="VolumePickSensor tests picking intersections using the pickingGeometry against the pickTarget geometry volume." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/picking.html#VolumePickSensor">
    <componentInfo level="3" name="Picking"/>
    <Inheritance baseType="X3DPickSensorNode"/>
    <field accessType="inputOutput" description="Author-provided prose that describes intended purpose of the node." inheritedFrom="X3DSensorNode" name="description" type="SFString"/>
    <field accessType="inputOutput" default="true" description="Enables/disables node operation." inheritedFrom="X3DSensorNode" name="enabled" type="SFBool"/>
    <field accessType="initializeOnly" additionalEnumerationValuesAllowed="true" baseType="xs:NMTOKEN" default="BOUNDS" description="intersectionType specifies precision of the collision computation." inheritedFrom="X3DPickSensorNode" name="intersectionType" simpleType="intersectionTypeValues" type="SFString">
     <enumeration appinfo="TODO undefined in X3D specification." documentation="https://www.web3d.org/member-only/mantis/view.php?id=1294" value="BOUNDS"/>
     <enumeration appinfo="TODO undefined in X3D specification." documentation="https://www.web3d.org/member-only/mantis/view.php?id=1294" value="GEOMETRY"/>
    </field>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="outputOnly" description="isActive indicates when the intersecting object is picked by the picking geometry." inheritedFrom="X3DSensorNode" name="isActive" type="SFBool"/>
    <field accessType="inputOutput" additionalEnumerationValuesAllowed="false" baseType="xs:NMTOKEN" default="MATCH_ANY" description="defines whether the intersection test (i." inheritedFrom="X3DPickSensorNode" name="matchCriterion" simpleType="pickSensorMatchCriterionChoices" type="SFString">
     <enumeration appinfo="any match of objectType values is acceptable." value="MATCH_ANY"/>
     <enumeration appinfo="every objectType value in X3DPickSensorNode and X3DPickableObject shall match." value="MATCH_EVERY"/>
     <enumeration appinfo="one and only one objectType value can match." value="MATCH_ONLY_ONE"/>
    </field>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" additionalEnumerationValuesAllowed="true" baseType="MFString" default='"ALL"' description="The objectType field specifies a set of labels used in the picking process." inheritedFrom="X3DPickSensorNode" name="objectType" simpleType="pickableObjectTypeValues" type="MFString">
     <enumeration appinfo="each node is available for picking." value='"ALL"'/>
     <enumeration appinfo="no node is available for picking." value='"NONE"'/>
     <enumeration appinfo="TERRAIN is an example value." value='"TERRAIN"'/>
    </field>
    <field acceptableNodeTypes="X3DChildNode" accessType="outputOnly" description="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." inheritedFrom="X3DPickSensorNode" name="pickedGeometry" type="MFNode"/>
    <field acceptableNodeTypes="X3DGeometryNode" accessType="inputOutput" default="NULL" description="pickingGeometry specifies the exact geometry coordinates that are used to perform the intersection testing of the picking operation." inheritedFrom="X3DPickSensorNode" name="pickingGeometry" type="SFNode"/>
    <field acceptableNodeTypes="X3DGroupingNode|X3DShapeNode|Inline" accessType="inputOutput" description="pickTarget specifies the list of nodes against which picking operations are performed." inheritedFrom="X3DPickSensorNode" name="pickTarget" type="MFNode"/>
    <field accessType="initializeOnly" additionalEnumerationValuesAllowed="true" baseType="xs:NMTOKEN" default="CLOSEST" description="The sortOrder field determines the order provided for picked output events." inheritedFrom="X3DPickSensorNode" name="sortOrder" simpleType="pickSensorSortOrderValues" type="SFString">
     <enumeration appinfo="any single object that can satisfy picking conditions." value="ANY"/>
     <enumeration appinfo="return closest object by distance that satisfies conditions of this pick sensor." value="CLOSEST"/>
     <enumeration appinfo="every object that satisfies picking conditions for this pick sensor is returned." value="ALL"/>
     <enumeration appinfo="every object that satisfies picking conditions for this pick sensor is returned, in sorted order." value="ALL_SORTED"/>
    </field>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
     <GroupContentModel name="GeometryContentModel"/>
     <GroupContentModel name="PickSensorGroupingNodeContentModel"/>
     <NodeContentModel name="Shape"/>
     <NodeContentModel name="ProtoInstance"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="WaveShaper">
   <InterfaceDefinition appinfo="WaveShaper node represents a nonlinear distorter that applies a wave-shaping distortion curve to the signal." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/sound.html#WaveShaper">
    <componentInfo level="2" name="Sound"/>
    <Inheritance baseType="X3DSoundProcessingNode"/>
    <field accessType="outputOnly" description="channelCount reports number of channels provided by input nodes." inheritedFrom="X3DSoundProcessingNode" name="channelCount" type="SFInt32"/>
    <field accessType="inputOutput" additionalEnumerationValuesAllowed="false" baseType="SFString" default="MAX" description="channelCountMode determines how individual channels are counted when up-mixing and down-mixing connections to any inputs." inheritedFrom="X3DSoundProcessingNode" name="channelCountMode" simpleType="channelCountModeChoices" type="SFString">
     <enumeration alias="max" appinfo='X3D version of "max" in Web Audio API.' documentation="https://www.w3.org/TR/webaudio/#enumdef-channelcountmode" value="MAX"/>
     <enumeration alias="clamped-max" appinfo='X3D version of "clamped-max" in Web Audio API.' documentation="https://www.w3.org/TR/webaudio/#enumdef-channelcountmode" value="CLAMPED_MAX"/>
     <enumeration alias="explicit" appinfo='X3D version of "explicit" in Web Audio API.' documentation="https://www.w3.org/TR/webaudio/#enumdef-channelcountmode" value="EXPLICIT"/>
    </field>
    <field accessType="inputOutput" additionalEnumerationValuesAllowed="false" baseType="SFString" default="SPEAKERS" description="channelInterpretation determines how individual channels are treated when up-mixing and down-mixing connections to any inputs." inheritedFrom="X3DSoundProcessingNode" name="channelInterpretation" simpleType="channelInterpretationChoices" type="SFString">
     <enumeration appinfo='X3D version of "speakers" in Web Audio API.' documentation="https://www.w3.org/TR/webaudio/#enumdef-channelinterpretation" value="SPEAKERS"/>
     <enumeration appinfo='X3D version of "discrete" in Web Audio API.' documentation="https://www.w3.org/TR/webaudio/#enumdef-channelinterpretation" value="DISCRETE"/>
    </field>
    <field acceptableNodeTypes="Analyser|AudioClip|AudioDestination|BiquadFilter|BufferAudioSource|ChannelMerger|ChannelSelector|ChannelSplitter|Convolver|Delay|DynamicsCompressor|Gain|ListenerPointSource|MicrophoneSource|MovieTexture|OscillatorSource|Sound|SpatialSound|StreamAudioDestination|StreamAudioSource|WaveShaper" accessType="inputOutput" description="The children field specifies audio-graph sound sources providing input signals for this node." name="children" type="MFNode"/>
    <field accessType="inputOutput" description="Author-provided prose that describes intended purpose of the url asset." inheritedFrom="X3DTimeDependentNode" name="description" type="SFString"/>
    <field accessType="outputOnly" description="Current elapsed time since AudioClip activated/running, cumulative in seconds, and not counting any paused time." inheritedFrom="X3DTimeDependentNode" minInclusive="0" name="elapsedTime" type="SFTime"/>
    <field accessType="inputOutput" default="true" description="Enables/disables node operation." inheritedFrom="X3DSoundProcessingNode" name="enabled" type="SFBool"/>
    <field accessType="inputOutput" default="1" description="The gain field is a factor that represents the amount of linear amplification to apply to the output of the node." inheritedFrom="X3DSoundProcessingNode" name="gain" type="SFFloat"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field accessType="outputOnly" description="isActive true/false events are sent when playback starts/stops." inheritedFrom="X3DTimeDependentNode" name="isActive" type="SFBool"/>
    <field accessType="outputOnly" description="isPaused true/false events are sent when AudioClip is paused/resumed." inheritedFrom="X3DTimeDependentNode" name="isPaused" type="SFBool">
     <componentInfo level="2" name="Time"/>
    </field>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" additionalEnumerationValuesAllowed="false" baseType="SFString" default="NONE" description="The oversample field is specifies what type of oversampling (if any) should be used when applying the shaping curve." name="oversample" simpleType="waveShaperOversampleChoices" type="SFString">
     <enumeration alias="none" appinfo='No oversampling. X3D version of "none" in Web Audio API.' documentation="https://www.w3.org/TR/webaudio/#enumdef-oversampletype" value="NONE"/>
     <enumeration alias="2x" appinfo='Double sampling rate. X3D version of "2x" in Web Audio API.' documentation="https://www.w3.org/TR/webaudio/#enumdef-oversampletype" value="2X"/>
     <enumeration alias="4x" appinfo='Quadruple sampling rate. X3D version of "4x" in Web Audio API.' documentation="https://www.w3.org/TR/webaudio/#enumdef-oversampletype" value="4X"/>
    </field>
    <field accessType="inputOutput" default="0" description="When time now &gt;= pauseTime, isPaused becomes true and AudioClip becomes paused." inheritedFrom="X3DTimeDependentNode" name="pauseTime" type="SFTime">
     <componentInfo level="2" name="Time"/>
    </field>
    <field accessType="inputOutput" default="0" description="When resumeTime becomes &lt;= time now, isPaused becomes false and AudioClip becomes active." inheritedFrom="X3DTimeDependentNode" name="resumeTime" type="SFTime">
     <componentInfo level="2" name="Time"/>
    </field>
    <field accessType="inputOutput" default="0" description="Absolute time: number of seconds since January 1, 1970, 00:00:00 GMT." inheritedFrom="X3DTimeDependentNode" name="startTime" type="SFTime"/>
    <field accessType="inputOutput" default="0" description="Absolute time: number of seconds since January 1, 1970, 00:00:00 GMT." inheritedFrom="X3DTimeDependentNode" name="stopTime" type="SFTime"/>
    <field accessType="inputOutput" default="0" description="tailTime is duration of time that a node continues to provide output signal after the input signal becomes silent." inheritedFrom="X3DSoundProcessingNode" minInclusive="0" name="tailTime" type="SFTime"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="containerFieldChoicesAudioGraph"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
     <GroupContentModel maxOccurs="unbounded" minOccurs="0" name="AudioGraphContentModel"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="WindPhysicsModel">
   <InterfaceDefinition appinfo="WindPhysicsModel applies a wind effect to the particles." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/particleSystems.html#WindPhysicsModel">
    <componentInfo level="1" name="ParticleSystems"/>
    <Inheritance baseType="X3DParticlePhysicsModelNode"/>
    <field accessType="inputOutput" default="1 0 0" description="direction in which wind is travelling in the form of a normalized, unit vector." name="direction" type="SFVec3f"/>
    <field accessType="inputOutput" default="true" description="Enables/disables node operation." inheritedFrom="X3DParticlePhysicsModelNode" name="enabled" type="SFBool"/>
    <field accessType="inputOutput" default="0.1" description="gustiness specifies how much wind speed varies from the average speed." minInclusive="0" name="gustiness" type="SFFloat"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" default="0.1" description="Initial linear speed (default is m/s) imparted to all particles along their direction of movement." minInclusive="0" name="speed" type="SFFloat"/>
    <field accessType="inputOutput" default="0" description="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." maxInclusive="1" minInclusive="0" name="turbulence" type="SFFloat"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="physics" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="WorldInfo">
   <InterfaceDefinition appinfo="WorldInfo contains a title and simple persistent metadata information about an X3D scene. This node is strictly for documentation purposes and has no effect on the visual appearance or behaviour of the world." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/core.html#WorldInfo">
    <componentInfo level="1" name="Core"/>
    <Inheritance baseType="X3DInfoNode"/>
    <field accessType="inputOutput" description="Additional information about this model." name="info" type="MFString"/>
    <field acceptableNodeTypes="IS" accessType="inputOutput" default="NULL" inheritedFrom="X3DNode" name="IS" type="SFNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." inheritedFrom="X3DNode" name="metadata" type="SFNode"/>
    <field accessType="inputOutput" description="title of this world, placed in window title." name="title" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DNode" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DNode" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DNode" name="style" type="SFString"/>
    <containerField default="children" type="xs:NMTOKEN"/>
    <ContentModel>
     <GroupContentModel minOccurs="0" name="ChildContentModelCore"/>
    </ContentModel>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="EnvironmentLight">
   <InterfaceDefinition appinfo="EnvironmentLight ... This node only affects the PhysicalMaterial and SpecularGlossinessMaterial nodes." specificationUrl="https://create3000.github.io/x_ite/components/lighting/environmentlight">
    <componentInfo level="3" name="Lighting"/>
    <Inheritance baseType="X3DLightNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." name="metadata" type="SFNode"/>
    <field accessType="inputOutput" default="FALSE" description="Global lights illuminate all objects within their volume of lighting influence. Scoped lights only illuminate objects within the same transformation hierarchy." name="global" type="SFBool"/>
    <field accessType="inputOutput" default="TRUE" description="Enables/disables this light source." name="on" type="SFBool"/>
    <field accessType="inputOutput" default="1 1 1" description="color of light, applied to colors of objects." maxInclusive="1" minInclusive="0" name="color" type="SFColor"/>
    <field accessType="inputOutput" default="1" description="Brightness of direct emission from the light." minInclusive="0" name="intensity" type="SFFloat"/>
    <field accessType="inputOutput" default="0" description="Brightness of ambient (nondirectional background) emission from the light. Interchange profile" maxInclusive="1" minInclusive="0" name="ambientIntensity" type="SFFloat"/>
    <field accessType="inputOutput" default="0 0 1 0" description="Input/Output field rotation." minInclusive="-1" name="rotation" type="SFRotation"/>
    <field acceptableNodeTypes="X3DEnvironmentTextureNode" accessType="inputOutput" default="NULL" description="Input/Output field diffuseTexture." name="diffuseTexture" type="SFNode"/>
    <field accessType="inputOutput" description="Input/Output field diffuseCoefficients." name="diffuseCoefficients" type="MFFloat"/>
    <field acceptableNodeTypes="X3DEnvironmentTextureNode" accessType="inputOutput" default="NULL" description="Input/Output field specularTexture." name="specularTexture" type="SFNode"/>
    <field accessType="inputOutput" default="FALSE" description="shadows field indicates whether or not this light casts a shadow behind illuminated X3DShapeNode geometry." name="shadows" type="SFBool"/>
    <field accessType="inputOutput" default="1" description="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)." maxInclusive="1" minInclusive="0" name="shadowIntensity" type="SFFloat"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <containerField default="children" type="xs:NMTOKEN"/>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="Tangent">
   <InterfaceDefinition appinfo="Tangent." specificationUrl="https://create3000.github.io/x_ite/components/rendering/tangent">
    <componentInfo level="4" name="Rendering"/>
    <Inheritance baseType="X3DGeometricPropertyNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." name="metadata" type="SFNode"/>
    <field accessType="inputOutput" description="A unit XYZ vector defining a tangent direction on the surface, and a W component whose sign value (-1 or +1) indicates the handedness of the tangent base." maxInclusive="1" minInclusive="-1" name="vector" type="MFVec4f"/>
    <field accessType="inputOutput" baseType="xs:ID" description="DEF defines a unique ID name for this node, referenceable by other nodes." inheritedFrom="X3DNode" name="DEF" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="USE means reuse an already DEF-ed node ID, excluding all child nodes and all other attributes (except for containerField, which can have a different value)." inheritedFrom="X3DNode" name="USE" type="SFString"/>
    <containerField default="tangent" type="xs:NMTOKEN"/>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="ImageTextureAtlas">
   <InterfaceDefinition appinfo="ImageTextureAtlas defines a 3D image-based texture map by specifying a single image file that contains slices for complete 3D data." specificationUrl="https://create3000.github.io/x_ite/components/texturing3d/imagetextureatlas">
    <componentInfo level="1" name="Texturing3D"/>
    <Inheritance baseType="X3DTexture3DNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." name="metadata" type="SFNode"/>
    <field accessType="inputOutput" default="" description="Author-provided prose that describes intended purpose of the url asset." name="description" type="SFString"/>
    <field accessType="inputOutput" default="TRUE" description="load=true means load immediately, load=false means defer loading or else unload a previously loaded scene." name="load" type="SFBool"/>
    <field accessType="inputOutput" description="Location and filename of image. Multiple locations are more reliable, and including a Web address lets e-mail attachments work." name="url" type="MFString"/>
    <field accessType="inputOutput" default="0" description="autoRefresh defines interval in seconds before automatic reload of current url asset is performed." minInclusive="0" name="autoRefresh" type="SFTime"/>
    <field accessType="inputOutput" default="3600" description="autoRefreshTimeLimit defines maximum duration that automatic refresh activity can occur." minInclusive="0" name="autoRefreshTimeLimit" type="SFTime"/>
    <field accessType="inputOutput" default="0" description="Number of images in x direction." minInclusive="0" name="slicesOverX" type="SFInt32"/>
    <field accessType="inputOutput" default="0" description="Number of images in y direction." minInclusive="0" name="slicesOverY" type="SFInt32"/>
    <field accessType="inputOutput" default="0" description="Total number of images." minInclusive="0" name="numberOfSlices" type="SFInt32"/>
    <field accessType="initializeOnly" default="FALSE" description="Whether to repeat texture along S axis horizontally from left to right." name="repeatS" type="SFBool"/>
    <field accessType="initializeOnly" default="FALSE" description="Whether to repeat texture along T axis vertically from top to bottom." name="repeatT" type="SFBool"/>
    <field accessType="initializeOnly" default="FALSE" description="Whether to repeat texture along R axis from front to back." name="repeatR" type="SFBool"/>
    <field acceptableNodeTypes="TextureProperties" accessType="initializeOnly" default="NULL" description="Single contained TextureProperties node that can specify additional visual attributes applied to corresponding texture images." name="textureProperties" type="SFNode"/>
    <containerField default="texture" type="xs:NMTOKEN"/>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="AnisotropyMaterialExtension">
   <InterfaceDefinition appinfo="AnisotropyMaterialExtension is an extension for the PhysicalMaterial and SpecularGlossinessMaterial nodes. For this node to have an effect, add an EnvironmentLight node." specificationUrl="https://create3000.github.io/x_ite/components/x-ite/anisotropymaterialextension">
    <componentInfo level="1" name="X_ITE"/>
    <Inheritance baseType="X3DMaterialExtensionNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." name="metadata" type="SFNode"/>
    <field accessType="inputOutput" default="0" description="The anisotropy strength. When the anisotropy texture is present, this value is multiplied by the texture's blue channel." minInclusive="0" name="anisotropyStrength" type="SFFloat"/>
    <field accessType="inputOutput" default="0" description="The rotation of the anisotropy in tangent, bitangent space, measured in radians counter-clockwise from the tangent. When the anisotropy texture is present, this value provides additional rotation to the vectors in the texture." name="anisotropyRotation" type="SFFloat"/>
    <field accessType="inputOutput" default="" description="Input/Output field anisotropyTextureMapping." name="anisotropyTextureMapping" type="SFString"/>
    <field acceptableNodeTypes="X3DSingleTextureNode" accessType="inputOutput" default="NULL" description="The anisotropy texture. Red and green channels represent the anisotropy direction in tangent, bitangent space to be rotated by the anisotropy rotation. The blue channel contains strength as to be multiplied by the anisotropy strength." name="anisotropyTexture" type="SFNode"/>
    <containerField default="blendMode" type="xs:NMTOKEN"/>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="BlendMode">
   <InterfaceDefinition appinfo="BlendMode controls how pixels of an objects are drawn. Pixels can be drawn using a function that blends the incoming (source) RGBA values with the RGBA values that are already in the frame buffer (the destination values). BlendMode is an X3DAppearanceChildNode node that handles blend operations." specificationUrl="https://create3000.github.io/x_ite/components/x-ite/blendmode">
    <componentInfo level="1" name="X_ITE"/>
    <Inheritance baseType="X3DAppearanceChildNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." name="metadata" type="SFNode"/>
    <field accessType="inputOutput" default="0 0 0 0" description="The blendColor may be used to calculate the source and destination blending factors." maxInclusive="1" minInclusive="0" name="blendColor" type="SFColorRGBA"/>
    <field accessType="inputOutput" default="SRC_ALPHA" description="Specifies how the red, green, and blue source blending factors are computed. Source and destination parameters must be one of the following symbolic constants: - ZERO - ONE - SRC_COLOR - ONE_MINUS_SRC_COLOR - DST_COLOR - ONE_MINUS_DST_COLOR - SRC_ALPHA - ONE_MINUS_SRC_ALPHA - DST_ALPHA - ONE_MINUS_DST_ALPHA - CONSTANT_COLOR - ONE_MINUS_CONSTANT_COLOR - CONSTANT_ALPHA - ONE_MINUS_CONSTANT_ALPHA" name="sourceColorFactor" type="SFString">
     <enumeration value="ZERO"/>
     <enumeration value="ONE"/>
     <enumeration value="SRC_COLOR"/>
     <enumeration value="ONE_MINUS_SRC_COLOR"/>
     <enumeration value="DST_COLOR"/>
     <enumeration value="ONE_MINUS_DST_COLOR"/>
     <enumeration value="SRC_ALPHA"/>
     <enumeration value="ONE_MINUS_SRC_ALPHA"/>
     <enumeration value="DST_ALPHA"/>
     <enumeration value="ONE_MINUS_DST_ALPHA"/>
     <enumeration value="CONSTANT_COLOR"/>
     <enumeration value="ONE_MINUS_CONSTANT_COLOR"/>
     <enumeration value="CONSTANT_ALPHA"/>
     <enumeration value="ONE_MINUS_CONSTANT_ALPHA"/>
    </field>
    <field accessType="inputOutput" default="ONE" description="Specifies how the alpha source blending factors are computed." name="sourceAlphaFactor" type="SFString">
     <enumeration value="ZERO"/>
     <enumeration value="ONE"/>
     <enumeration value="SRC_COLOR"/>
     <enumeration value="ONE_MINUS_SRC_COLOR"/>
     <enumeration value="DST_COLOR"/>
     <enumeration value="ONE_MINUS_DST_COLOR"/>
     <enumeration value="SRC_ALPHA"/>
     <enumeration value="ONE_MINUS_SRC_ALPHA"/>
     <enumeration value="DST_ALPHA"/>
     <enumeration value="ONE_MINUS_DST_ALPHA"/>
     <enumeration value="CONSTANT_COLOR"/>
     <enumeration value="ONE_MINUS_CONSTANT_COLOR"/>
     <enumeration value="CONSTANT_ALPHA"/>
     <enumeration value="ONE_MINUS_CONSTANT_ALPHA"/>
    </field>
    <field accessType="inputOutput" default="ONE_MINUS_SRC_ALPHA" description="Specifies how the red, green, and blue destination blending factors are computed." name="destinationColorFactor" type="SFString">
     <enumeration value="ZERO"/>
     <enumeration value="ONE"/>
     <enumeration value="SRC_COLOR"/>
     <enumeration value="ONE_MINUS_SRC_COLOR"/>
     <enumeration value="DST_COLOR"/>
     <enumeration value="ONE_MINUS_DST_COLOR"/>
     <enumeration value="SRC_ALPHA"/>
     <enumeration value="ONE_MINUS_SRC_ALPHA"/>
     <enumeration value="DST_ALPHA"/>
     <enumeration value="ONE_MINUS_DST_ALPHA"/>
     <enumeration value="CONSTANT_COLOR"/>
     <enumeration value="ONE_MINUS_CONSTANT_COLOR"/>
     <enumeration value="CONSTANT_ALPHA"/>
     <enumeration value="ONE_MINUS_CONSTANT_ALPHA"/>
    </field>
    <field accessType="inputOutput" default="ONE_MINUS_SRC_ALPHA" description="Specifies how the alpha destination blending factors are computed." name="destinationAlphaFactor" type="SFString">
     <enumeration value="ZERO"/>
     <enumeration value="ONE"/>
     <enumeration value="SRC_COLOR"/>
     <enumeration value="ONE_MINUS_SRC_COLOR"/>
     <enumeration value="DST_COLOR"/>
     <enumeration value="ONE_MINUS_DST_COLOR"/>
     <enumeration value="SRC_ALPHA"/>
     <enumeration value="ONE_MINUS_SRC_ALPHA"/>
     <enumeration value="DST_ALPHA"/>
     <enumeration value="ONE_MINUS_DST_ALPHA"/>
     <enumeration value="CONSTANT_COLOR"/>
     <enumeration value="ONE_MINUS_CONSTANT_COLOR"/>
     <enumeration value="CONSTANT_ALPHA"/>
     <enumeration value="ONE_MINUS_CONSTANT_ALPHA"/>
    </field>
    <field accessType="inputOutput" default="FUNC_ADD" description="Specifies the RGB blend equation, how the red, green, and blue components of the source and destination colors are combined. It must be: - FUNC_ADD - FUNC_SUBTRACT - FUNC_REVERSE_SUBTRACT" name="colorEquation" type="SFString">
     <enumeration value="FUNC_ADD"/>
     <enumeration value="FUNC_SUBTRACT"/>
     <enumeration value="FUNC_REVERSE_SUBTRACT"/>
    </field>
    <field accessType="inputOutput" default="FUNC_ADD" description="Specifies the alpha blend equation, how the alpha component of the source and destination colors are combined. It must be: - FUNC_ADD - FUNC_SUBTRACT - FUNC_REVERSE_SUBTRACT" name="alphaEquation" type="SFString">
     <enumeration value="FUNC_ADD"/>
     <enumeration value="FUNC_SUBTRACT"/>
     <enumeration value="FUNC_REVERSE_SUBTRACT"/>
    </field>
    <containerField default="blendMode" type="xs:NMTOKEN"/>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="ClearcoatMaterialExtension">
   <InterfaceDefinition appinfo="ClearcoatMaterialExtension is an extension for the PhysicalMaterial and SpecularGlossinessMaterial nodes. For this node to have an effect, add an EnvironmentLight node." specificationUrl="https://create3000.github.io/x_ite/components/x-ite/clearcoatmaterialextension">
    <componentInfo level="1" name="X_ITE"/>
    <Inheritance baseType="X3DMaterialExtensionNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." name="metadata" type="SFNode"/>
    <field accessType="inputOutput" default="0" description="The clearcoat layer intensity." minInclusive="0" name="clearcoat" type="SFFloat"/>
    <field accessType="inputOutput" default="" description="Input/Output field clearcoatTextureMapping." name="clearcoatTextureMapping" type="SFString"/>
    <field acceptableNodeTypes="X3DSingleTextureNode" accessType="inputOutput" default="NULL" description="The clearcoat layer intensity texture." name="clearcoatTexture" type="SFNode"/>
    <field accessType="inputOutput" default="0" description="The clearcoat layer roughness." minInclusive="0" name="clearcoatRoughness" type="SFFloat"/>
    <field accessType="inputOutput" default="" description="Input/Output field clearcoatRoughnessTextureMapping." name="clearcoatRoughnessTextureMapping" type="SFString"/>
    <field acceptableNodeTypes="X3DSingleTextureNode" accessType="inputOutput" default="NULL" description="The clearcoat layer roughness texture." name="clearcoatRoughnessTexture" type="SFNode"/>
    <field accessType="inputOutput" default="" description="Input/Output field clearcoatNormalTextureMapping." name="clearcoatNormalTextureMapping" type="SFString"/>
    <field acceptableNodeTypes="X3DSingleTextureNode" accessType="inputOutput" default="NULL" description="The clearcoat normal map texture." name="clearcoatNormalTexture" type="SFNode"/>
    <containerField default="depthMode" type="xs:NMTOKEN"/>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="DepthMode">
   <InterfaceDefinition appinfo="DepthMode contains parameters that are specific for depth control, like the value used for depth buffer comparisons." specificationUrl="https://create3000.github.io/x_ite/components/x-ite/depthmode">
    <componentInfo level="1" name="X_ITE"/>
    <Inheritance baseType="X3DAppearanceChildNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." name="metadata" type="SFNode"/>
    <field accessType="inputOutput" default="0 0" description="Specifies the scale factors and units to calculate depth values. The offset is added before the depth test is performed and before the value is written into the depth buffer. The first value is factor, a GLfloat which sets the scale factor for the variable depth offset for each polygon. The default value is 0. The second value is units, a GLfloat which sets the multiplier by which an implementation-specific value is multiplied with to create a constant depth offset. The default value is 0." name="polygonOffset" type="SFVec2f"/>
    <field accessType="inputOutput" default="0 1" description="Specifies the depth range mapping from normalized device coordinates to window or viewport coordinates. The first value is zNear, a GLclampf specifying the mapping of the near clipping plane to window or viewport coordinates. Clamped to the range 0 to 1 and must be less than or equal to zFar. The default value is 0. The second value is zFar, a GLclampf specifying the mapping of the far clipping plane to window or viewport coordinates. Clamped to the range 0 to 1. The default value is 1." maxInclusive="1" minInclusive="0" name="depthRange" type="SFVec2f"/>
    <field accessType="inputOutput" default="TRUE" description="Activates depth comparisons and updates to the depth buffer." name="depthTest" type="SFBool"/>
    <field accessType="inputOutput" default="LESS_EQUAL" description="Specifies a function that compares incoming pixel depth to the current depth buffer value. Must be one of the following symbolic constants: NEVER, LESS, EQUAL, LESS_EQUAL, GREATER, NOT_EQUAL, GREATER_EQUAL, ALWAYS." name="depthFunction" type="SFString">
     <enumeration value="NEVER"/>
     <enumeration value="LESS"/>
     <enumeration value="EQUAL"/>
     <enumeration value="LESS_EQUAL"/>
     <enumeration value="GREATER"/>
     <enumeration value="NOT_EQUAL"/>
     <enumeration value="GREATER_EQUAL"/>
     <enumeration value="ALWAYS"/>
    </field>
    <field accessType="inputOutput" default="TRUE" description="Sets whether writing into the depth buffer is enabled or disabled." name="depthMask" type="SFBool"/>
    <containerField default="depthMode" type="xs:NMTOKEN"/>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="DispersionMaterialExtension">
   <InterfaceDefinition appinfo="DispersionMaterialExtension is an extension for the PhysicalMaterial and SpecularGlossinessMaterial nodes. For this node to have an effect, add an EnvironmentLight node." specificationUrl="https://create3000.github.io/x_ite/components/x-ite/dispersionmaterialextension">
    <componentInfo level="1" name="X_ITE"/>
    <Inheritance baseType="X3DMaterialExtensionNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." name="metadata" type="SFNode"/>
    <field accessType="inputOutput" default="0" description="The strength of the dispersion effect, specified as 20/Abbe number." minInclusive="0" name="dispersion" type="SFFloat"/>
    <containerField default="extensions" type="xs:NMTOKEN"/>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="EmissiveStrengthMaterialExtension">
   <InterfaceDefinition appinfo="EmissiveStrengthMaterialExtension is an extension for the PhysicalMaterial and SpecularGlossinessMaterial nodes." specificationUrl="https://create3000.github.io/x_ite/components/x-ite/emissivestrengthmaterialextension">
    <componentInfo level="1" name="X_ITE"/>
    <Inheritance baseType="X3DMaterialExtensionNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." name="metadata" type="SFNode"/>
    <field accessType="inputOutput" default="1" description="The strength adjustment to be multiplied with the material's emissive value." minInclusive="0" name="emissiveStrength" type="SFFloat"/>
    <containerField default="extensions" type="xs:NMTOKEN"/>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="IORMaterialExtension">
   <InterfaceDefinition appinfo="IORMaterialExtension is an extension for the PhysicalMaterial and SpecularGlossinessMaterial nodes. For this node to have an effect, add an EnvironmentLight node." specificationUrl="https://create3000.github.io/x_ite/components/x-ite/iormaterialextension">
    <componentInfo level="1" name="X_ITE"/>
    <Inheritance baseType="X3DMaterialExtensionNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." name="metadata" type="SFNode"/>
    <field accessType="inputOutput" default="1.5" description="The index of refraction." minInclusive="1" name="indexOfRefraction" type="SFFloat"/>
    <containerField default="children" type="xs:NMTOKEN"/>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="InstancedShape">
   <InterfaceDefinition appinfo="InstancedShape can appear under any grouping node. InstancedShape 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) and this geometry node is instantiated as often as transformations are provided." specificationUrl="https://create3000.github.io/x_ite/components/x-ite/instancedshape">
    <componentInfo level="1" name="X_ITE"/>
    <Inheritance baseType="X3DShapeNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." name="metadata" type="SFNode"/>
    <field accessType="inputOutput" description="Input/Output field translations." name="translations" type="MFVec3f"/>
    <field accessType="inputOutput" description="Input/Output field rotations." name="rotations" type="MFRotation"/>
    <field accessType="inputOutput" description="Input/Output field scales." name="scales" type="MFVec3f"/>
    <field accessType="inputOutput" description="Input/Output field scaleOrientations." name="scaleOrientations" type="MFRotation"/>
    <field accessType="inputOutput" description="Input/Output field centers." name="centers" type="MFVec3f"/>
    <field accessType="inputOutput" default="TRUE" description="pointerEvents defines whether this Shape becomes target for pointer events." name="pointerEvents" type="SFBool"/>
    <field accessType="inputOutput" default="TRUE" description="Input/Output field castShadow." name="castShadow" type="SFBool"/>
    <field accessType="inputOutput" default="TRUE" description="Whether or not renderable content within this node is visually displayed." name="visible" type="SFBool"/>
    <field accessType="inputOutput" default="FALSE" description="Whether to display bounding box for associated geometry, aligned with world coordinates." name="bboxDisplay" type="SFBool"/>
    <field accessType="initializeOnly" default="-1 -1 -1" description="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." minInclusive="0" name="bboxSize" type="SFVec3f"/>
    <field accessType="initializeOnly" default="0 0 0" description="Bounding box center accompanies bboxSize and provides an optional hint for bounding box position offset from origin of local coordinate system." name="bboxCenter" type="SFVec3f"/>
    <field acceptableNodeTypes="X3DAppearanceNode" accessType="inputOutput" default="NULL" description="Input/Output field appearance." name="appearance" type="SFNode"/>
    <field acceptableNodeTypes="X3DGeometryNode" accessType="inputOutput" default="NULL" description="Input/Output field geometry." name="geometry" type="SFNode"/>
    <containerField default="extensions" type="xs:NMTOKEN"/>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="IridescenceMaterialExtension">
   <InterfaceDefinition appinfo="IridescenceMaterialExtension is an extension for the PhysicalMaterial and SpecularGlossinessMaterial nodes. For this node to have an effect, add an EnvironmentLight node." specificationUrl="https://create3000.github.io/x_ite/components/x-ite/iridescencematerialextension">
    <componentInfo level="1" name="X_ITE"/>
    <Inheritance baseType="X3DMaterialExtensionNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." name="metadata" type="SFNode"/>
    <field accessType="inputOutput" default="0" description="The iridescence intensity factor." minInclusive="0" name="iridescence" type="SFFloat"/>
    <field accessType="inputOutput" default="" description="Input/Output field iridescenceTextureMapping." name="iridescenceTextureMapping" type="SFString"/>
    <field acceptableNodeTypes="X3DSingleTextureNode" accessType="inputOutput" default="NULL" description="The iridescence intensity texture." name="iridescenceTexture" type="SFNode"/>
    <field accessType="inputOutput" default="1.3" description="The index of refraction of the dielectric thin-film layer." minInclusive="1" name="iridescenceIndexOfRefraction" type="SFFloat"/>
    <field accessType="inputOutput" default="100" description="The minimum thickness of the thin-film layer given in nanometers." minInclusive="0" name="iridescenceThicknessMinimum" type="SFFloat"/>
    <field accessType="inputOutput" default="400" description="The maximum thickness of the thin-film layer given in nanometers." minInclusive="0" name="iridescenceThicknessMaximum" type="SFFloat"/>
    <field accessType="inputOutput" default="" description="Input/Output field iridescenceThicknessTextureMapping." name="iridescenceThicknessTextureMapping" type="SFString"/>
    <field acceptableNodeTypes="X3DSingleTextureNode" accessType="inputOutput" default="NULL" description="The thickness texture of the thin-film layer." name="iridescenceThicknessTexture" type="SFNode"/>
    <containerField default="extensions" type="xs:NMTOKEN"/>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="SheenMaterialExtension">
   <InterfaceDefinition appinfo="SheenMaterialExtension is an extension for the PhysicalMaterial and SpecularGlossinessMaterial nodes. For this node to have an effect, add an EnvironmentLight node." specificationUrl="https://create3000.github.io/x_ite/components/x-ite/sheenmaterialextension">
    <componentInfo level="1" name="X_ITE"/>
    <Inheritance baseType="X3DMaterialExtensionNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." name="metadata" type="SFNode"/>
    <field accessType="inputOutput" default="0 0 0" description="The sheen color in linear space." maxInclusive="1" minInclusive="0" name="sheenColor" type="SFColor"/>
    <field accessType="inputOutput" default="" description="Input/Output field sheenColorTextureMapping." name="sheenColorTextureMapping" type="SFString"/>
    <field acceptableNodeTypes="X3DSingleTextureNode" accessType="inputOutput" default="NULL" description="The sheen color (RGB). The sheen color is in sRGB transfer function." name="sheenColorTexture" type="SFNode"/>
    <field accessType="inputOutput" default="0" description="The sheen roughness." minInclusive="0" name="sheenRoughness" type="SFFloat"/>
    <field accessType="inputOutput" default="" description="Input/Output field sheenRoughnessTextureMapping." name="sheenRoughnessTextureMapping" type="SFString"/>
    <field acceptableNodeTypes="X3DSingleTextureNode" accessType="inputOutput" default="NULL" description="The sheen roughness (Alpha) texture." name="sheenRoughnessTexture" type="SFNode"/>
    <containerField default="material" type="xs:NMTOKEN"/>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="SpecularGlossinessMaterial">
   <InterfaceDefinition appinfo="SpecularGlossinessMaterial specifies surface rendering properties for associated geometry nodes. Material attributes are used by the X3D lighting equations during rendering." specificationUrl="https://create3000.github.io/x_ite/components/x-ite/specularglossinessmaterial">
    <componentInfo level="1" name="X_ITE"/>
    <Inheritance baseType="X3DOneSidedMaterialNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." name="metadata" type="SFNode"/>
    <field accessType="inputOutput" default="1 1 1" description="The reflected diffuse factor of the material." maxInclusive="1" minInclusive="0" name="diffuseColor" type="SFColor"/>
    <field accessType="inputOutput" default="" description="Input/Output field diffuseTextureMapping." name="diffuseTextureMapping" type="SFString"/>
    <field acceptableNodeTypes="X3DSingleTextureNode" accessType="inputOutput" default="NULL" description="The diffuse texture." name="diffuseTexture" type="SFNode"/>
    <field accessType="inputOutput" default="1 1 1" description="The specular RGB color of the material." maxInclusive="1" minInclusive="0" name="specularColor" type="SFColor"/>
    <field accessType="inputOutput" default="1" description="The glossiness or smoothness of the material." maxInclusive="1" minInclusive="0" name="glossiness" type="SFFloat"/>
    <field accessType="inputOutput" default="" description="Input/Output field specularGlossinessTextureMapping." name="specularGlossinessTextureMapping" type="SFString"/>
    <field acceptableNodeTypes="X3DSingleTextureNode" accessType="inputOutput" default="NULL" description="The specular-glossiness texture." name="specularGlossinessTexture" type="SFNode"/>
    <field accessType="inputOutput" default="0 0 0" description="How much glowing light is emitted from this object." maxInclusive="1" minInclusive="0" name="emissiveColor" type="SFColor"/>
    <field accessType="inputOutput" default="" description="The mapping label identifies which texture coordinates and transformations are used to compute texture effects from corresponding geometry on a given material." name="emissiveTextureMapping" type="SFString"/>
    <field acceptableNodeTypes="X3DSingleTextureNode" accessType="inputOutput" default="NULL" description="When applying emissiveColor for this material node, the contained texture provides Physically Based Rendering (PBR) modulation for each pixel." name="emissiveTexture" type="SFNode"/>
    <field accessType="inputOutput" default="1" description="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." maxInclusive="1" minInclusive="0" name="occlusionStrength" type="SFFloat"/>
    <field accessType="inputOutput" default="" description="The mapping label identifies which texture coordinates and transformations are used to compute texture effects from corresponding geometry on a given material." name="occlusionTextureMapping" type="SFString"/>
    <field acceptableNodeTypes="X3DSingleTextureNode" accessType="inputOutput" default="NULL" description="When applying occlusionStrength for this material node, the contained texture provides Physically Based Rendering (PBR) modulation for each pixel." name="occlusionTexture" type="SFNode"/>
    <field accessType="inputOutput" default="1" description="normalScale controls the degree to which normalTexture RGB values apply XYZ-normal bump mapping to pixels in the parent material." minInclusive="0" name="normalScale" type="SFFloat"/>
    <field accessType="inputOutput" default="" description="The mapping label identifies which texture coordinates and transformations are used to compute texture effects from corresponding geometry on a given material." name="normalTextureMapping" type="SFString"/>
    <field acceptableNodeTypes="X3DSingleTextureNode" accessType="inputOutput" default="NULL" description="When applying normalScale for this material node, the contained texture modulates the texture across the surface." name="normalTexture" type="SFNode"/>
    <field accessType="inputOutput" default="0" description="How 'clear' an object is: 1.0 is completely transparent, 0.0 is completely opaque." maxInclusive="1" minInclusive="0" name="transparency" type="SFFloat"/>
    <field acceptableNodeTypes="X3DMaterialExtensionNode" accessType="inputOutput" description="Input/Output field extensions." name="extensions" type="MFNode"/>
    <containerField default="extensions" type="xs:NMTOKEN"/>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="SpecularMaterialExtension">
   <InterfaceDefinition appinfo="SpecularMaterialExtension is an extension for the PhysicalMaterial and SpecularGlossinessMaterial nodes. For this node to have an effect, add an EnvironmentLight node." specificationUrl="https://create3000.github.io/x_ite/components/x-ite/specularmaterialextension">
    <componentInfo level="1" name="X_ITE"/>
    <Inheritance baseType="X3DMaterialExtensionNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." name="metadata" type="SFNode"/>
    <field accessType="inputOutput" default="1" description="The strength of the specular reflection." minInclusive="0" name="specular" type="SFFloat"/>
    <field accessType="inputOutput" default="" description="Input/Output field specularTextureMapping." name="specularTextureMapping" type="SFString"/>
    <field acceptableNodeTypes="X3DSingleTextureNode" accessType="inputOutput" default="NULL" description=" texture that defines the strength of the specular reflection, stored in the alpha (A) channel. This will be multiplied by specularFactor." name="specularTexture" type="SFNode"/>
    <field accessType="inputOutput" default="1 1 1" description="The F0 color of the specular reflection (linear RGB)." maxInclusive="1" minInclusive="0" name="specularColor" type="SFColor"/>
    <field accessType="inputOutput" default="" description="Input/Output field specularColorTextureMapping." name="specularColorTextureMapping" type="SFString"/>
    <field acceptableNodeTypes="X3DSingleTextureNode" accessType="inputOutput" default="NULL" description="A texture that defines the F0 color of the specular reflection, stored in the RGB channels and encoded in sRGB. This texture will be multiplied by specularColorFactor." name="specularColorTexture" type="SFNode"/>
    <containerField default="extensions" type="xs:NMTOKEN"/>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="TransmissionMaterialExtension">
   <InterfaceDefinition appinfo="TransmissionMaterialExtension is an extension for the PhysicalMaterial and SpecularGlossinessMaterial nodes. For this node to have an effect, add an EnvironmentLight node." specificationUrl="https://create3000.github.io/x_ite/components/x-ite/transmissionmaterialextension">
    <componentInfo level="1" name="X_ITE"/>
    <Inheritance baseType="X3DMaterialExtensionNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." name="metadata" type="SFNode"/>
    <field accessType="inputOutput" default="0" description="The base percentage of light that is transmitted through the surface." minInclusive="0" name="transmission" type="SFFloat"/>
    <field accessType="inputOutput" default="" description="Input/Output field transmissionTextureMapping." name="transmissionTextureMapping" type="SFString"/>
    <field acceptableNodeTypes="X3DSingleTextureNode" accessType="inputOutput" default="NULL" description="A texture that defines the transmission percentage of the surface, stored in the R channel. This will be multiplied by transmissionFactor." name="transmissionTexture" type="SFNode"/>
    <containerField default="extensions" type="xs:NMTOKEN"/>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="VolumeMaterialExtension">
   <InterfaceDefinition appinfo="VolumeMaterialExtension is an extension for the PhysicalMaterial and SpecularGlossinessMaterial nodes. For this node to have an effect, add an EnvironmentLight node." specificationUrl="https://create3000.github.io/x_ite/components/x-ite/volumematerialextension">
    <componentInfo level="1" name="X_ITE"/>
    <Inheritance baseType="X3DMaterialExtensionNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." name="metadata" type="SFNode"/>
    <field accessType="inputOutput" default="0" description="The thickness of the volume beneath the surface. The value is given in the coordinate space of the mesh. If the value is 0 the material is thin-walled. Otherwise the material is a volume boundary. The doubleSided property has no effect on volume boundaries." minInclusive="0" name="thickness" type="SFFloat"/>
    <field accessType="inputOutput" default="" description="Input/Output field thicknessTextureMapping." name="thicknessTextureMapping" type="SFString"/>
    <field acceptableNodeTypes="X3DSingleTextureNode" accessType="inputOutput" default="NULL" description="A texture that defines the thickness, stored in the G channel. This will be multiplied by thicknessFactor." name="thicknessTexture" type="SFNode"/>
    <field accessType="inputOutput" default="1000000" description="Density of the medium given as the average distance that light travels in the medium before interacting with a particle. The value is given in world space." minInclusive="0" name="attenuationDistance" type="SFFloat"/>
    <field accessType="inputOutput" default="1 1 1" description="The color that white light turns into due to absorption when reaching the attenuation distance." maxInclusive="1" minInclusive="0" name="attenuationColor" type="SFColor"/>
    <containerField default="extensions" type="xs:NMTOKEN"/>
   </InterfaceDefinition>
  </ConcreteNode>
  <ConcreteNode name="DiffuseTransmissionMaterialExtension">
   <InterfaceDefinition appinfo="DiffuseTransmissionMaterialExtension is an extension for the PhysicalMaterial and SpecularGlossinessMaterial nodes. For this node to have an effect, add an EnvironmentLight node." specificationUrl="https://create3000.github.io/x_ite/components/x-ite/diffusetransmissionmaterialextension">
    <componentInfo level="1" name="X_ITE"/>
    <Inheritance baseType="X3DMaterialExtensionNode"/>
    <field acceptableNodeTypes="X3DMetadataObject" accessType="inputOutput" default="NULL" description="Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node." name="metadata" type="SFNode"/>
    <field accessType="inputOutput" default="0" description="The percentage of reflected, non-specularly reflected light that is transmitted through the surface via the Lambertian diffuse transmission, i.e., the strength of the diffuse transmission effect." minInclusive="0" name="diffuseTransmission" type="SFFloat"/>
    <field accessType="inputOutput" default="" description="Input/Output field diffuseTransmissionTextureMapping." name="diffuseTransmissionTextureMapping" type="SFString"/>
    <field acceptableNodeTypes="X3DSingleTextureNode" accessType="inputOutput" default="NULL" description="A texture that defines the strength of the diffuse transmission effect, stored in the alpha (A) channel. Will be multiplied by the diffuseTransmissionFactor." name="diffuseTransmissionTexture" type="SFNode"/>
    <field accessType="inputOutput" default="1 1 1" description="The color of the transmitted light." maxInclusive="1" minInclusive="0" name="diffuseTransmissionColor" type="SFColor"/>
    <field accessType="inputOutput" default="" description="Input/Output field diffuseTransmissionColorTextureMapping." name="diffuseTransmissionColorTextureMapping" type="SFString"/>
    <field acceptableNodeTypes="X3DSingleTextureNode" accessType="inputOutput" default="NULL" description="A texture that defines the color of the transmitted light, stored in the RGB channels and encoded in sRGB. This texture will be multiplied by diffuseTransmissionColorFactor." name="diffuseTransmissionColorTexture" type="SFNode"/>
    <containerField default="extensions" type="xs:NMTOKEN"/>
   </InterfaceDefinition>
  </ConcreteNode>
 </ConcreteNodes>
 <Statements>
  <Statement name="component">
   <InterfaceDefinition appinfo="Functional summary: each added component statement indicates needed scene functionality support above the given X3D profile." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/concepts.html#Components">
    <componentInfo level="1" name="Core"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DStatement" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DStatement" name="id" type="SFString"/>
    <field accessType="inputOutput" default="1" description="Necessary level of support for this scene, as defined in corresponding Support table for a given node's component." maxInclusive="5" minInclusive="1" name="level" type="SFInt32" use="required"/>
    <field accessType="inputOutput" additionalEnumerationValuesAllowed="false" baseType="xs:NMTOKEN" description="Provides name of this component, as defined in corresponding X3D Specification component Introduction." name="name" simpleType="componentNameChoices" type="SFString" use="required">
     <enumeration appinfo="The Core component supplies the base functionality for the X3D run-time system, including the abstract base node type, field types, the event model, and routing." documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/core.html" value="Core"/>
     <enumeration appinfo="The CADGeometry component is provided for Computer-Aided Design (CAD) nodes." documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/CADGeometry.html" value="CADGeometry"/>
     <enumeration appinfo="The Cube Map Environmental Texturing component describes how additional texturing effects are defined to produce environmental effects such as reflections from objects." documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/environmentalTexturing" value="CubeMapTexturing"/>
     <enumeration appinfo="The Distributed Interactive Simulation (DIS) component provides networked interoperability with the IEEE DIS protocol for sharing state and conducting real-time platform-level simulations across multiple host computers." documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/dis.html" value="DIS"/>
     <enumeration appinfo="Nodes in the Environmental effects component support the creation of realistic environmental effects such as panoramic backgrounds and fog." documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/environmentalEffects.html" value="EnvironmentalEffects"/>
     <enumeration appinfo="The Environment Sensor nodes emit events indicating activity in the scene environment, usually based on interactions between the viewer and the world." documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/environmentalSensor.html" value="EnvironmentalSensor"/>
     <enumeration appinfo="The Event Utility nodes provide the capability to filter, trigger, convert, or sequence numerous event-types for common interactive applications without the use of a Script node." documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/eventUtilities.html" value="EventUtilities"/>
     <enumeration appinfo="The Follower nodes (Chasers and Dampers) support dynamic creation of smooth parameter transitions at run time." documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/followers.html" value="Followers"/>
     <enumeration appinfo="The Geometry2D component defines how two-dimensional geometry is specified and what shapes are available." documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/geometry2D.html" value="Geometry2D"/>
     <enumeration appinfo="The Geometry3D component describes how three-dimensional geometry is specified and defines ElevationGrid, Extrusion, IndexedFaceSet, and most primitive geometry nodes (Box, Cone, Cylinder, Sphere)." documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/geometry3D.html" value="Geometry3D"/>
     <enumeration appinfo="The Geospatial component defines how to associate real-world locations in an X3D scene and specifies nodes particularly tuned for geospatial applications." documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/geospatial.html" value="Geospatial"/>
     <enumeration appinfo="The Grouping component describes how nodes are organized into groups to establish a transformation hierarchy for the X3D scene graph." documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/grouping.html" value="Grouping"/>
     <enumeration appinfo="The Humanoid Animation (HAnim) component for X3D defines node bindings and other details for implementing ISO/IEC 19774, the HAnim International Specification. Original name was H-Anim for X3D versions 3.0 through 3.3, both enumeration values HAnim and H-Anim are allowed to pass validation." documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/hanim.html" value="HAnim"/>
     <enumeration appinfo="Legacy enumeration H-Anim for X3D versions 3.0-3.3 provides backwards compatibility with Humanoid Animation (HAnim) version 1, preferred form of enumeration value is HAnim." documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/hanim.html" value="H-Anim"/>
     <enumeration appinfo="Interpolator nodes provide keyframe-based animation capability." documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/interpolators.html" value="Interpolation"/>
     <enumeration appinfo="The Key Device Sensor defines how keyboard keystrokes are inserted into an X3D world." documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/keyDeviceSensor.html" value="KeyDeviceSensor"/>
     <enumeration appinfo="The Layering component describes how to layer a set of subscene layers into a composite scene." documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/layering.html" value="Layering"/>
     <enumeration appinfo="The Layout component defines how to precisely position content in a scene in relation to the rendered results, especially for integrating 2D content with 3D content." documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/layout.html" value="Layout"/>
     <enumeration appinfo="The Lighting component specifies how light sources are defined and positioned, as well as how lights effect the rendered image." documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/lighting.html" value="Lighting"/>
     <enumeration appinfo="The Navigation component specifies how a user can effectively and intuitively move through and around a 3D scene." documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/navigation.html" value="Navigation"/>
     <enumeration appinfo="The Networking component defines node types and other features used to access file-based and streaming resources on the World Wide Web." documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/networking.html" value="Networking"/>
     <enumeration appinfo="The NURBS component describes Non-uniform Rational B-Spline (NURBS) geometry and interpolation nodes." documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/nurbs.html" value="NURBS"/>
     <enumeration appinfo="The Particle Systems component specifies how to model particles and their interactions through the application of basic physics principles to affect motion." documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/particleSystems.html" value="ParticleSystems"/>
     <enumeration appinfo="The Picking component provides the ability to test for arbitrary object collision and provide basic capabilities to detecting object intersections and interactions." documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/picking.html" value="Picking"/>
     <enumeration appinfo="Pointing device sensor nodes detect pointing events from user-interface devices, defining activities such as a user selecting a piece of geometry." documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/pointingDeviceSensor.html" value="PointingDeviceSensor"/>
     <enumeration appinfo="TextureProjection nodes project texture images onto geometry in a scene." documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/textureProjector.html" value="TextureProjection"/>
     <enumeration appinfo="The Rendering component includes fundamental rendering primitives such as TriangleSet and PointSet nodes, as well as geometric properties nodes that define how coordinate indices, colors, normals and texture coordinates are specified." documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/rendering.html" value="Rendering"/>
     <enumeration appinfo="The Rigid Body Physics component describes how to model rigid bodies and their interactions through the application of basic physics principles to effect motion." documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/rigidBodyPhysics.html" value="RigidBodyPhysics"/>
     <enumeration appinfo="The Scripting component describes how Script nodes are used to effect changes in X3D worlds." documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/scripting.html" value="Scripting"/>
     <enumeration appinfo="The Programmable Shaders component describes how programmable shaders are specified and how they affect the visual appearance of geometry." documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/shaders.html" value="Shaders"/>
     <enumeration appinfo="The Shape component defines nodes for associating geometry with their visible properties and the scene environment." documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/shape.html" value="Shape"/>
     <enumeration appinfo="The Sound component defines how sound is delivered to an X3D world as well as how sounds are accessed." documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/sound.html" value="Sound"/>
     <enumeration appinfo="The Text component defines how text strings are rendered in an X3D scene." documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/text.html" value="Text"/>
     <enumeration appinfo="The Texturing component specifies how 2D texture images are defined and then positioned on associated geometry." documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/texturing.html" value="Texturing"/>
     <enumeration appinfo="The Texturing3D component specifies how 3D volumetric textures describe surface properties as data points in a volume of space, rather than a flat surface." documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/texture3D.html" value="Texturing3D"/>
     <enumeration appinfo="The Time component defines how time is sensed, computed and associated with events in an X3D scene." documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/time.html" value="Time"/>
     <enumeration appinfo="The Volume Rendering component provides the ability to specify and render volumetric data sets." documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/volume.html" value="VolumeRendering"/>
     <enumeration appinfo="The X_ITE component contains tangents, pointerEvents, GPU Instancing, colorSpaceConversion, EnvironmentLight and material extensions from glTF PBR" documentation="https://create3000.github.io/x_ite/components/index.html" value="X_ITE"/>
    </field>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DStatement" name="style" type="SFString"/>
   </InterfaceDefinition>
  </Statement>
  <Statement name="connect">
   <InterfaceDefinition appinfo="Functional summary: connect statements define event-routing connections between node fields defined inside a ProtoBody declaration back to corresponding ProtoInterface fields." specificationUrl="https://www.web3d.org/documents/specifications/19776-1/V3.3/Part01/concepts.html#IS_ConnectStatementSyntax">
    <componentInfo level="2" name="Core"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DStatement" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DStatement" name="id" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="Name of field within this node which IS CONNECTed to the ancestor ProtoDeclare field definition." name="nodeField" type="SFString" use="required"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="Name of parent ProtoDeclare field definition connecting to field in this node." name="protoField" type="SFString" use="required"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DStatement" name="style" type="SFString"/>
   </InterfaceDefinition>
  </Statement>
  <Statement name="EXPORT">
   <InterfaceDefinition appinfo="Functional summary: 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." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/concepts.html#ImportExportsemantics">
    <componentInfo level="3" name="Networking"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="rename localDEF node AS a different name when exporting." name="AS" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DStatement" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DStatement" name="id" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="localDEF is the DEF name of the local node to be EXPORTed." name="localDEF" type="SFString" use="required"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DStatement" name="style" type="SFString"/>
   </InterfaceDefinition>
  </Statement>
  <Statement name="ExternProtoDeclare">
   <InterfaceDefinition appinfo="ExternProtoDeclare refers to a ProtoDeclare node declaration provided in another file. ExternProtoDeclare interfaces are defined by field statements (and without IS/connect statements)." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/concepts.html#Externalprototypesemantics">
    <componentInfo level="2" name="Core"/>
    <field accessType="inputOutput" description="Application information to provide simple description usable as a tooltip, similar to XML Schema appinfo tag." name="appinfo" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DStatement" name="class" type="SFString"/>
    <field accessType="inputOutput" description="Documentation url for further information, similar to XML Schema documentation tag." name="documentation" type="SFString"/>
    <field acceptableNodeTypes="field" accessType="inputOutput" description="Include a field statement for each field declaration in the corresponding original ProtoDeclare." name="field" type="MFNode"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DStatement" name="id" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="name of the ExternProtoDeclare (External Prototype Declaration) being referenced." name="name" type="SFString" use="required"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DStatement" name="style" type="SFString"/>
    <field accessType="inputOutput" description="Location and filename of ProtoDeclare source declaration of interest." name="url" type="MFString" use="required"/>
    <ContentModel>
     <StatementContentModel name="field"/>
    </ContentModel>
   </InterfaceDefinition>
  </Statement>
  <Statement name="field">
   <InterfaceDefinition appinfo="Functional summary: a field statement defines an interface attribute or node. Each field statement can contain either attribute-value or node content." specificationUrl="https://www.web3d.org/documents/specifications/19776-1/V3.3/Part01/concepts.html#NodeAndFieldStatementSyntax">
    <componentInfo level="1" name="Core"/>
    <field accessType="inputOutput" additionalEnumerationValuesAllowed="false" baseType="xs:NMTOKEN" description="Event-model semantics for field set/get capabilities." name="accessType" simpleType="accessTypeChoices" type="SFString" use="required">
     <enumeration appinfo="A field with accessType initializeOnly can be initialized, but cannot send or receive events." value="initializeOnly"/>
     <enumeration appinfo="A field with accessType inputOnly cannot be initialized or included in a scene file, but can receive input event values via a ROUTE." value="inputOnly"/>
     <enumeration appinfo="A field with accessType outputOnly cannot be initialized or included in a scene file, but can send output event values via a ROUTE." value="outputOnly"/>
     <enumeration appinfo="A field with accessType inputOutput can be initialized, and can also send or receive events." value="inputOutput"/>
    </field>
    <field accessType="inputOutput" description="Application information to provide simple description usable as a tooltip, similar to XML Schema appinfo tag." name="appinfo" type="SFString"/>
    <field acceptableNodeTypes="X3DNode" accessType="inputOutput" description="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." name="children" type="MFNode"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DStatement" name="class" type="SFString"/>
    <field accessType="inputOutput" description="Documentation url for further information, similar to XML Schema documentation tag." name="documentation" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DStatement" name="id" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="Name of this field declaration." name="name" type="SFString" use="required"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DStatement" name="style" type="SFString"/>
    <field accessType="inputOutput" additionalEnumerationValuesAllowed="false" baseType="xs:NMTOKEN" description="Base type of this field variable." name="type" simpleType="fieldTypeChoices" type="SFString" use="required">
     <enumeration appinfo="Single Field (singleton) Boolean." value="SFBool"/>
     <enumeration appinfo="Multiple Field (list) Boolean." value="MFBool"/>
     <enumeration appinfo="Single Field (singleton) color value, red-green-blue." value="SFColor"/>
     <enumeration appinfo="Multiple Field (list) color value, red-green-blue." value="MFColor"/>
     <enumeration appinfo="Single Field (singleton) color value, red-green-blue alpha (opacity)." value="SFColorRGBA"/>
     <enumeration appinfo="Multiple Field (list) color value, red-green-blue alpha (opacity)." value="MFColorRGBA"/>
     <enumeration appinfo="Single Field (singleton) double-precision (64-bit) float." value="SFDouble"/>
     <enumeration appinfo="Multiple Field (list) 2-tuple double-precision (64-bit) float vector." value="MFDouble"/>
     <enumeration appinfo="Single Field (singleton) single-precision (32-bit) float." value="SFFloat"/>
     <enumeration appinfo="Multiple Field (list) single-precision (32-bit) float vector." value="MFFloat"/>
     <enumeration appinfo="Single Field (singleton) image value." value="SFImage"/>
     <enumeration appinfo="Multiple Field (list) image values." value="MFImage"/>
     <enumeration appinfo="Single Field (singleton) 32-bit integer." value="SFInt32"/>
     <enumeration appinfo="Multiple Field (list) 32-bit integer." value="MFInt32"/>
     <enumeration appinfo="Single Field (singleton) node." value="SFNode"/>
     <enumeration appinfo="Multiple Field (list) nodes." value="MFNode"/>
     <enumeration appinfo="Single Field (singleton) rotation value using 3-tuple axis, radian angle." value="SFRotation"/>
     <enumeration appinfo="Multiple Field (list) rotation values using 3-tuple axis, radian angle." value="MFRotation"/>
     <enumeration appinfo="Single Field (singleton) string value." value="SFString"/>
     <enumeration appinfo="Multiple Field (list) SFString array." value="MFString"/>
     <enumeration appinfo="Single Field (singleton) time value in seconds." value="SFTime"/>
     <enumeration appinfo="Multiple Field (list) time array in seconds." value="MFTime"/>
     <enumeration appinfo="Single Field (singleton) 2-tuple double-precision float vector." value="SFVec2d"/>
     <enumeration appinfo="Multiple Field (list) 2-tuple double-precision float vectors." value="MFVec2d"/>
     <enumeration appinfo="Single Field (singleton) 2-tuple single-precision float vector." value="SFVec2f"/>
     <enumeration appinfo="Multiple Field (list) 2-tuple single-precision float vectors." value="MFVec2f"/>
     <enumeration appinfo="Single Field (singleton) 3-tuple double-precision float vector." value="SFVec3d"/>
     <enumeration appinfo="Multiple Field (list) 3-tuple double-precision float vectors." value="MFVec3d"/>
     <enumeration appinfo="Single Field (singleton) 3-tuple single-precision float vector." value="SFVec3f"/>
     <enumeration appinfo="Multiple Field (list) 3-tuple single-precision float vectors." value="MFVec3f"/>
     <enumeration appinfo="Single Field (singleton) 4-tuple double-precision float vector." value="SFVec4d"/>
     <enumeration appinfo="Multiple Field (list) 4-tuple double-precision float vectors." value="MFVec4d"/>
     <enumeration appinfo="Single Field (singleton) 4-tuple single-precision float vector." value="SFVec4f"/>
     <enumeration appinfo="Multiple Field (list) 4-tuple single-precision float vectors." value="MFVec4f"/>
     <enumeration appinfo="Single Field (singleton) 3×3 matrix of double-precision floating point numbers." value="SFMatrix3d"/>
     <enumeration appinfo="Multiple Field (list) 3×3 matrices of double-precision floating point numbers." value="MFMatrix3d"/>
     <enumeration appinfo="Single Field (singleton) 3×3 matrix of single-precision floating point numbers." value="SFMatrix3f"/>
     <enumeration appinfo="Multiple Field (list) 3×3 matrices of double-precision floating point numbers." value="MFMatrix3f"/>
     <enumeration appinfo="Single Field (singleton) 4×4 matrix of double-precision floating point numbers." value="SFMatrix4d"/>
     <enumeration appinfo="Multiple Field (list) 4×4 matric3w of double-precision floating point numbers." value="MFMatrix4d"/>
     <enumeration appinfo="Single Field (singleton) 4×4 matrix of single-precision floating point numbers." value="SFMatrix4f"/>
     <enumeration appinfo="Multiple Field (list) 4×4 matrices of single-precision floating point numbers." value="MFMatrix4f"/>
    </field>
    <field accessType="inputOutput" description="Provide default initialization value for this field variable (which may be re-initialized later by instantiation value of a named ProtoInstance fieldValue)." name="value" type="SFString"/>
    <ContentModel>
     <GroupContentModel name="SceneGraphFragmentContentModel"/>
    </ContentModel>
   </InterfaceDefinition>
  </Statement>
  <Statement name="fieldValue">
   <InterfaceDefinition appinfo="Functional summary: a fieldValue statement re-initializes the default value of a field in a ProtoInstance. Each fieldValue statement can contain either attribute-value or node content." specificationUrl="https://www.web3d.org/documents/specifications/19776-1/V3.3/Part01/concepts.html#ProtoInstanceAndFieldValueStatement">
    <componentInfo level="2" name="Core"/>
    <field acceptableNodeTypes="X3DNode" accessType="inputOutput" description="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." name="children" type="MFNode"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DStatement" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DStatement" name="id" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="Name of the ProtoInstance field being re-initialized (corresponding to field name already defined in ProtoDeclare or ExternProtoDeclare)." name="name" type="SFString" use="required"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DStatement" name="style" type="SFString"/>
    <field accessType="inputOutput" description="Initial value for this field, which overrides default initialization value defined in original ProtoDeclare field." name="value" type="SFString"/>
    <ContentModel>
     <GroupContentModel name="SceneGraphFragmentContentModel"/>
    </ContentModel>
   </InterfaceDefinition>
  </Statement>
  <Statement name="head">
   <InterfaceDefinition appinfo="Functional summary: each X3D scene includes a head statement that can contain component, unit and meta statements." specificationUrl="https://www.web3d.org/documents/specifications/19776-1/V3.3/Part01/concepts.html#Header">
    <componentInfo level="1" name="Core"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DStatement" name="class" type="SFString"/>
    <field acceptableNodeTypes="component" accessType="inputOutput" description="Add component statements to indicate necessary scene functionality above the given profile for this X3D model." name="component" type="MFNode"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DStatement" name="id" type="SFString"/>
    <field acceptableNodeTypes="meta" accessType="inputOutput" description="Add meta statements to provide metadata information about this X3D model." name="meta" type="MFNode"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DStatement" name="style" type="SFString"/>
    <field acceptableNodeTypes="unit" accessType="inputOutput" description="Add unit statements to define data-conversion factors for typed values defined within a scene." name="unit" type="MFNode"/>
    <ContentModel>
     <StatementContentModel maxOccurs="unbounded" minOccurs="0" name="component"/>
     <StatementContentModel maxOccurs="unbounded" minOccurs="0" name="unit"/>
     <StatementContentModel maxOccurs="unbounded" minOccurs="0" name="meta"/>
    </ContentModel>
   </InterfaceDefinition>
  </Statement>
  <Statement name="IMPORT">
   <InterfaceDefinition appinfo="Functional summary: IMPORT provides ROUTE access to a node that has a corresponding EXPORT statement within an Inline scene. These connections allow event values to be exchanged via ROUTE statements between a parent model and a child Inline model." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/concepts.html#ImportExportsemantics">
    <componentInfo level="3" name="Networking"/>
    <field accessType="inputOutput" baseType="xs:ID" description="map importedDEF name AS a new name in current scene." name="AS" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DStatement" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DStatement" name="id" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="importedDEF is DEF name of the node of interest that is exported by the remote inlineDEF model." name="importedDEF" type="SFString" use="required"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="inlineDEF is the DEF name of Inline node in the same scene as this IMPORT statement." name="inlineDEF" type="SFString" use="required"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DStatement" name="style" type="SFString"/>
   </InterfaceDefinition>
  </Statement>
  <Statement name="IS">
   <InterfaceDefinition appinfo="Functional summary: the IS statement connects node fields defined inside a ProtoBody declaration back to corresponding ProtoInterface fields. IS/connect statements can be added if the parent node is within a ProtoBody and connect statements define correspondences between prototype fields and built-in node fields." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/concepts.html#PROTOdefinitionsemantics">
    <componentInfo level="2" name="Core"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DStatement" name="class" type="SFString"/>
    <field acceptableNodeTypes="connect" accessType="inputOutput" description="When inside a ProtoBody declaration and an IS statement, add a connect statement to define event-routing connections between a parent node's field to a corresponding ProtoInterface field." name="connect" type="MFNode"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DStatement" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DStatement" name="style" type="SFString"/>
    <ContentModel>
     <StatementContentModel name="connect"/>
    </ContentModel>
   </InterfaceDefinition>
  </Statement>
  <Statement name="meta">
   <InterfaceDefinition appinfo="Functional summary: the meta statement provides metadata information about a scene, where name and content attributes provide attribute=value metadata pairs." specificationUrl="https://www.web3d.org/documents/specifications/19776-1/V3.3/Part01/concepts.html#Header">
    <componentInfo level="1" name="Core"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DStatement" name="class" type="SFString"/>
    <field accessType="inputOutput" description="The content attribute provides metadata information relevant to the name attribute provided." name="content" type="SFString" use="required"/>
    <field accessType="inputOutput" additionalEnumerationValuesAllowed="false" baseType="xs:NMTOKEN" description="Direction for weak/neutral text (ltr=left-to-right, rtl=right-to-left)." name="dir" simpleType="metaDirectionChoices" type="SFString">
     <enumeration appinfo="right-to-left." value="rtl"/>
     <enumeration appinfo="left-to-right." value="ltr"/>
    </field>
    <field accessType="inputOutput" description="The http-equiv attribute provides an HTTP header for the value of the content attribute." name="http-equiv" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DStatement" name="id" type="SFString"/>
    <field accessType="inputOutput" description="Language code, as per [IETF BCP47/RFC5646]." name="lang" type="SFString"/>
    <field accessType="inputOutput" additionalEnumerationValuesAllowed="true" baseType="xs:NMTOKEN" description="Keyword name of the meta attribute, following the same naming conventions as HTML's meta tag." name="name" simpleType="metaNameValues" type="SFString" use="required">
     <enumeration appinfo="permission required to access resource or security status." documentation="https://www.dublincore.org/documents/dcmi-terms/#terms-accessRights" value="accessRights"/>
     <enumeration appinfo="name of individual author." documentation="https://www.w3.org/TR/html5/document-metadata.html#author" value="author"/>
     <enumeration appinfo="Chemistry Markup Language (CML) version used." documentation="https://www.web3d.org/x3d/content/examples/Basic/ChemicalMarkupLanguage" value="CML-version"/>
     <enumeration appinfo="name of individual contributing to this resource." documentation="https://www.dublincore.org/documents/dcmi-terms/#terms-contributor" value="contributor"/>
     <enumeration appinfo="date of initial version." documentation="https://www.dublincore.org/documents/dcmi-terms/#terms-created" value="created"/>
     <enumeration appinfo="name of original author." documentation="https://www.dublincore.org/documents/dcmi-terms/#terms-creator" value="creator"/>
     <enumeration appinfo="summary overview describing this resource." documentation="https://www.dublincore.org/documents/dcmi-terms/#terms-description" value="description"/>
     <enumeration appinfo="statement of denial or disavowal regarding potential claims or responsiblity." value="disclaimer"/>
     <enumeration appinfo="name or reference link to a supporting drawing or sketch file." value="drawing"/>
     <enumeration appinfo="information about an error (or known problem) that can prevent proper operation." value="error"/>
     <enumeration appinfo="authoring tool or translation tool." documentation="https://www.w3.org/TR/html5/document-metadata.html#generator" value="generator"/>
     <enumeration appinfo="user hint about resource features or operation." value="hint"/>
     <enumeration appinfo="url address or unique Uniform Resource Identifier (URI) for resource." documentation="https://www.dublincore.org/documents/dcmi-terms/#terms-identifier" value="identifier"/>
     <enumeration appinfo="name or reference link to supporting image file." documentation="https://www.dublincore.org/documents/dcmi-terms/#dcmitype-Image" value="Image"/>
     <enumeration appinfo="additional info of interest." value="info"/>
     <enumeration appinfo="additional information of interest." value="information"/>
     <enumeration appinfo="Related resource of which the described resource is a version, edition, or adaptation." documentation="https://www.dublincore.org/documents/dcmi-terms/#terms-isVersionOf" value="isVersionOf"/>
     <enumeration appinfo="comma-separated tokens, each of which is a keyword of interest." documentation="https://www.w3.org/TR/html5/document-metadata.html#keywords" value="keywords"/>
     <enumeration appinfo="content or software license." documentation="https://www.dublincore.org/documents/dcmi-terms/#terms-license" value="license"/>
     <enumeration appinfo="entity that mediates access to resource and for whom resource is intended or useful." documentation="https://www.dublincore.org/documents/dcmi-terms/#terms-mediator" value="mediator"/>
     <enumeration appinfo="date of modified version." documentation="https://www.dublincore.org/documents/dcmi-terms/#terms-modified" value="modified"/>
     <enumeration appinfo="name or reference link to supporting movie file (note that Dublin Core term is MovingImage)." value="movie"/>
     <enumeration appinfo="name or reference link to supporting movie." documentation="https://www.dublincore.org/documents/dcmi-terms/#dcmitype-MovingImage" value="MovingImage"/>
     <enumeration appinfo="name or reference link to original file or resource." value="original"/>
     <enumeration appinfo="name or reference link to supporting photo file (note that Dublin Core term is Image)." value="photo"/>
     <enumeration appinfo="name or reference link to supporting photograph file (note that Dublin Core term is Image)." value="photograph"/>
     <enumeration appinfo="entity responsible for making the resource available." documentation="https://www.dublincore.org/documents/dcmi-terms/#terms-publisher" value="publisher"/>
     <enumeration appinfo="name or reference link to supporting reference." documentation="https://www.dublincore.org/documents/dcmi-terms/#terms-references" value="reference"/>
     <enumeration appinfo="prerequisites for operation or viewing." documentation="https://www.dublincore.org/documents/dcmi-terms/#terms-requires" value="requires"/>
     <enumeration appinfo="intellectual property rights (IPR)." documentation="https://www.dublincore.org/documents/dcmi-terms/#terms-rights" value="rights"/>
     <enumeration appinfo="search engine and web-spider guidance value: noindex to block page indexing, nofollow to block following links." documentation="https://developers.google.com/search/reference/robots_meta_tag" value="robots"/>
     <enumeration appinfo="name or reference link to supporting sound file." documentation="https://www.dublincore.org/documents/dcmi-terms/#dcmitype-Sound" value="Sound"/>
     <enumeration appinfo="related resource from which the described resource is derived." documentation="https://www.dublincore.org/documents/dcmi-terms/#terms-source" value="source"/>
     <enumeration appinfo="title of relevant specification section." value="specificationSection"/>
     <enumeration appinfo="url for relevant specification section." documentation="https://www.web3d.org/standards" value="specificationUrl"/>
     <enumeration appinfo="search-index subject keywords, key phrases, or classification codes." documentation="https://www.dublincore.org/documents/dcmi-terms/#terms-subject" value="subject"/>
     <enumeration appinfo="resource consisting primarily of words for reading." documentation="https://www.dublincore.org/documents/dcmi-terms/#dcmitype-Text" value="Text"/>
     <enumeration appinfo="file name for this resource." documentation="https://www.dublincore.org/documents/dcmi-terms/#terms-title" value="title"/>
     <enumeration appinfo='action item "to do" that still needs to be performed.' value="TODO"/>
     <enumeration appinfo="name of person performing translation from another format or language." value="translator"/>
     <enumeration appinfo="date of translation from another format or language." value="translated"/>
     <enumeration appinfo="current version number or ID of this resource." value="version"/>
     <enumeration appinfo="warning information about a known problem that impedes proper operation." value="warning"/>
    </field>
    <field accessType="inputOutput" description="The scheme attribute allows authors to provide user agents more context for the correct interpretation of meta information." name="scheme" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DStatement" name="style" type="SFString"/>
   </InterfaceDefinition>
  </Statement>
  <Statement name="ProtoBody">
   <InterfaceDefinition appinfo="ProtoBody contains the definition nodes for new Prototype nodes." specificationUrl="https://www.web3d.org/documents/specifications/19776-1/V3.3/Part01/concepts.html#PrototypeAndFieldDeclarationSyntax">
    <componentInfo level="2" name="Core"/>
    <field acceptableNodeTypes="X3DNode" accessType="inputOutput" description="ProtoBody can contain nodes, statements and comments." name="children" type="MFNode"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DStatement" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DStatement" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DStatement" name="style" type="SFString"/>
    <ContentModel>
     <GroupContentModel maxOccurs="unbounded" name="SceneGraphFragmentWithPrototypeDeclarationsContentModel"/>
     <StatementContentModel minOccurs="0" name="LayerSet"/>
    </ContentModel>
   </InterfaceDefinition>
  </Statement>
  <Statement name="ProtoDeclare">
   <InterfaceDefinition appinfo="ProtoDeclare defines new Prototype nodes. Nested ProtoDeclares and ProtoInstances are allowed by the specification." specificationUrl="https://www.web3d.org/documents/specifications/19776-1/V3.3/Part01/concepts.html#PrototypeAndFieldDeclarationSyntax">
    <componentInfo level="2" name="Core"/>
    <field accessType="inputOutput" description="Application information to provide simple description usable as a tooltip, similar to XML Schema appinfo tag." name="appinfo" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DStatement" name="class" type="SFString"/>
    <field accessType="inputOutput" description="Documentation url for further information, similar to XML Schema documentation tag." name="documentation" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DStatement" name="id" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="name of this prototype being declared." name="name" type="SFString" use="required"/>
    <field acceptableNodeTypes="ProtoBody" accessType="inputOutput" default="NULL" description="Include one ProtoBody statement after the ProtoInterface statement." name="ProtoBody" type="SFNode"/>
    <field acceptableNodeTypes="ProtoInterface" accessType="inputOutput" default="NULL" description="Include an optional ProtoInterface statement if this ProtoDeclare has field declarations." name="ProtoInterface" type="SFNode"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DStatement" name="style" type="SFString"/>
    <ContentModel>
     <StatementContentModel minOccurs="0" name="ProtoInterface"/>
     <StatementContentModel name="ProtoBody"/>
    </ContentModel>
   </InterfaceDefinition>
  </Statement>
  <Statement name="ProtoInterface">
   <InterfaceDefinition appinfo="ProtoInterface defines fields for new Prototype nodes." specificationUrl="https://www.web3d.org/documents/specifications/19776-1/V3.3/Part01/concepts.html#PrototypeAndFieldDeclarationSyntax">
    <componentInfo level="2" name="Core"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DStatement" name="class" type="SFString"/>
    <field acceptableNodeTypes="field" accessType="inputOutput" description="Include a field statement for each field declaration in this ProtoDeclare's ProtoInterface." name="field" type="MFNode"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DStatement" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DStatement" name="style" type="SFString"/>
    <ContentModel>
     <StatementContentModel maxOccurs="unbounded" minOccurs="0" name="field"/>
    </ContentModel>
   </InterfaceDefinition>
  </Statement>
  <Statement name="ROUTE">
   <InterfaceDefinition appinfo="ROUTE connects output fields of event-producing nodes to input fields of event-consuming nodes." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/concepts.html#ModifyingObjectsRoutes">
    <componentInfo level="1" name="Core"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DStatement" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="fromField is the field name in the source node which is originating an event." name="fromField" type="SFString" use="required"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="fromNode is the DEF name of the node originating an event." name="fromNode" type="SFString" use="required"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DStatement" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DStatement" name="style" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="toField is the field name in the destination node which is receiving an event." name="toField" type="SFString" use="required"/>
    <field accessType="inputOutput" baseType="xs:IDREF" description="toNode is the DEF name of the destination node receiving an event." name="toNode" type="SFString" use="required"/>
   </InterfaceDefinition>
  </Statement>
  <Statement name="Scene">
   <InterfaceDefinition appinfo="Scene is the implicit root node of the X3D scene graph." specificationUrl="https://www.web3d.org/documents/specifications/19776-1/V3.3/Part01/concepts.html#Header">
    <componentInfo level="1" name="Core"/>
    <field acceptableNodeTypes="X3DChildNode|X3DMetadataObject|LayerSet" accessType="inputOutput" description="Scene can contain nodes, statements and comments." name="children" type="MFNode"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DStatement" name="class" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DStatement" name="id" type="SFString"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DStatement" name="style" type="SFString"/>
    <ContentModel>
     <GroupContentModel name="ChildContentModelCore"/>
     <GroupContentModel name="GroupingNodeChildContentModel"/>
     <StatementContentModel minOccurs="0" name="LayerSet"/>
    </ContentModel>
   </InterfaceDefinition>
  </Statement>
  <Statement name="unit">
   <InterfaceDefinition appinfo="Functional summary: unit statement defines data-conversion factors for typed values defined in a scene." specificationUrl="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/components/core.html#UNITStatement">
    <componentInfo level="1" name="Core"/>
    <field accessType="initializeOnly" additionalEnumerationValuesAllowed="false" baseType="xs:NMTOKEN" description="Base-unit category as defined in X3D Specification." name="category" simpleType="unitCategoryChoices" type="SFString" use="required">
     <enumeration appinfo="angle default is radians." value="angle"/>
     <enumeration appinfo="force default is newtons." value="force"/>
     <enumeration appinfo="length default is meters." value="length"/>
     <enumeration appinfo="mass default is kilograms." value="mass"/>
    </field>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DStatement" name="class" type="SFString"/>
    <field accessType="inputOutput" default="1.0" description="Positive double-precision factor that converts new base unit to default base unit." minExclusive="0" name="conversionFactor" type="SFDouble" use="required"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DStatement" name="id" type="SFString"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="Author-defined name for this unit conversionFactor value (for example, FeetToMeters)." name="name" type="SFString" use="required"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DStatement" name="style" type="SFString"/>
   </InterfaceDefinition>
  </Statement>
  <Statement name="X3D">
   <InterfaceDefinition appinfo="X3D is the root node for an Extensible 3D (X3D) Graphics model." specificationUrl="https://www.web3d.org/documents/specifications/19776-1/V3.3/Part01/concepts.html#Header">
    <componentInfo level="1" name="Core"/>
    <field accessType="inputOutput" baseType="xs:NMTOKENS" description="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." inheritedFrom="X3DStatement" name="class" type="SFString"/>
    <field acceptableNodeTypes="head" accessType="inputOutput" default="NULL" description="Include a head element to contain component, unit or meta statements for this X3D model." name="head" type="SFNode"/>
    <field accessType="inputOutput" baseType="xs:NMTOKEN" description="The id attribute on each X3D node and statement is considered a unique identifier when used as part of an encompassing HTML/DOM context." inheritedFrom="X3DStatement" name="id" type="SFString"/>
    <field accessType="inputOutput" additionalEnumerationValuesAllowed="false" baseType="xs:NMTOKEN" default="Full" description="profile attribute is required and defines the player or tool support needed for this model." name="profile" simpleType="profileNameChoices" type="SFString" use="required">
     <enumeration appinfo="Core Profile includes no nodes and is provided as the basis for custom componentization. Allowed X3D statements for all profiles are: connect ExternProtoDeclare EXPORT field fieldValue IMPORT IS ProtoBody ProtoDeclare ProtoInterface ProtoInstance ROUTE X3D. Allowed X3D nodes for this profile are: MetadataBoolean MetadataDouble MetadataFloat MetadataInteger MetadataSet MetadataString." documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/coreprofile.html" value="Core"/>
     <enumeration appinfo="Interchange Profile equals the minimum subset of nodes needed to display lightweight compelling content. Allowed X3D nodes for this profile are: Appearance Background Box Color ColorInterpolator ColorRGBA Cone Coordinate CoordinateInterpolator Cylinder DirectionalLight Group ImageTexture IndexedFaceSet IndexedLineSet IndexedTriangleFanSet IndexedTriangleSet IndexedTriangleStripSet LineSet Material MetadataBoolean MetadataDouble MetadataFloat MetadataInteger MetadataSet MetadataString MultiTexture MultiTextureCoordinate MultiTextureTransform NavigationInfo Normal NormalInterpolator OrientationInterpolator PixelTexture PointSet PositionInterpolator ScalarInterpolator Shape Sphere TextureCoordinate TextureCoordinateGenerator TextureTransform TimeSensor Transform TriangleFanSet TriangleSet TriangleStripSet Viewpoint WorldInfo." documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/interchange.html" value="Interchange"/>
     <enumeration appinfo="CADInterchange Profile adds support for CADGeometry component nodes to Interchange Profile. Allowed X3D nodes for this profile are: Anchor Appearance CADAssembly CADFace CADLayer CADPart Billboard Collision Color ColorRGBA Coordinate DirectionalLight FragmentShader Group ImageTexture IndexedLineSet IndexedQuadSet IndexedTriangleFanSet IndexedTriangleSet IndexedTriangleStripSet Inline LineProperties LineSet LOD Material MetadataBoolean MetadataDouble MetadataFloat MetadataInteger MetadataSet MetadataString MultiShader MultiTexture MultiTextureCoordinate MultiTextureTransform NavigationInfo Normal PixelTexture PointSet QuadSet Shader ShaderAppearance Shape TextureCoordinate TextureCoordinateGenerator TextureTransform Transform TriangleFanSet TriangleSet TriangleStripSet Viewpoint VertexShader WorldInfo." documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/CADInterchange.html" value="CADInterchange"/>
     <enumeration appinfo="Interactive Profile adds interaction nodes (Anchor, KeySensor) to the minimum subset of nodes needed to display lightweight compelling content. Allowed X3D nodes for this profile are: Anchor Appearance Background BooleanFilter BooleanSequencer BooleanToggle BooleanTrigger Box Color ColorInterpolator ColorRGBA Cone Coordinate CoordinateInterpolator Cylinder CylinderSensor DirectionalLight ElevationGrid Group ImageTexture IndexedFaceSet IndexedLineSet IndexedTriangleFanSet IndexedTriangleSet IndexedTriangleStripSet Inline IntegerSequencer IntegerTrigger KeySensor LineSet Material MetadataBoolean MetadataDouble MetadataFloat MetadataInteger MetadataSet MetadataString MultiTexture MultiTextureCoordinate MultiTextureTransform NavigationInfo Normal NormalInterpolator OrientationInterpolator IndexedTriangleStripSet Inline IntegerSequencer IntegerTrigger KeySensor LineSet Material MetadataBoolean MetadataDouble MetadataFloat MetadataInteger MetadataSet MetadataString MultiTexture MultiTextureCoordinate MultiTextureTransform NavigationInfo Normal NormalInterpolator OrientationInterpolator PixelTexture PlaneSensor PointLight PointSet PositionInterpolator ProximitySensor ScalarInterpolator Shape Sphere SphereSensor SpotLight StringSensor Switch TextureCoordinate TextureCoordinateGenerator TextureTransform TimeSensor TimeTrigger TouchSensor Transform TriangleFanSet TriangleSet TriangleStripSet Viewpoint VisibilitySensor WorldInfo." documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/interactive.html" value="Interactive"/>
     <enumeration appinfo="Immersive Profile equals all of the nodes in the VRML97 Specification, plus various X3D node additions including KeySensor, StringSensor and Scene. Allowed X3D nodes for this profile are: Anchor Appearance AudioClip Background Billboard BooleanFilter BooleanSequencer BooleanToggle BooleanTrigger Box Collision Color ColorInterpolator ColorRGBA Cone Coordinate CoordinateInterpolator Cylinder CylinderSensor DirectionalLight ElevationGrid Extrusion Fog FontStyle Group ImageTexture IndexedFaceSet IndexedLineSet IndexedTriangleFan IndexedTriangleSet IndexedTriangleStripSet Inline IntegerSequencer IntegerTrigger KeySensor LineProperties LineSet LoadSensor LOD Material MetadataBoolean MetadataDouble MetadataFloat MetadataInteger MetadataSet MetadataString MovieTexture MultiTexture MultiTextureCoordinate MultiTextureTransform NavigationInfo Normal NormalInterpolator OrientationInterpolator PixelTexture PlaneSensor PointLight PointSet Polyline2D Polypoint2D PositionInterpolator ProximitySensor Rectangle2D ScalarInterpolator Script Shape Sound Sphere SphereSensor SpotLight StringSensor Switch Text TextureCoordinate TextureCoordinateGenerator TextureTransform TimeSensor TimeTrigger TouchSensor TriangleFanSet TriangleSet TriangleSet2D TriangleStripSet Transform Viewpoint VisibilitySensor WorldInfo." documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/immersive.html" value="Immersive"/>
     <enumeration appinfo="The MedicalInterchange profile adds support for VolumeRendering component to Interchange profile. Allowed X3D nodes for this profile are: Anchor Arc2D ArcClose2D Appearance Background Billboard BlendedVolumeStyle BooleanFilter BooleanSequencer BooleanToggle BooleanTrigger BoundaryEnhancementVolumeStyle Box CartoonVolumeStyle Circle2D ClipPlane Collision Color ColorInterpolator ColorRGBA ComposedVolumeStyle CompositeTexture3D Cone Coordinate CoordinateDouble CoordinateInterpolator Cylinder DirectionalLight Disk2D EdgeEnhancementVolumeStyle FillProperties FontStyle Group ImageTexture ImageTexture3D IndexedFaceSet IndexedLineSet IndexedTriangleFanSet IndexedTriangleSet IndexedTriangleStripSet Inline IntegerSequencer IntegerTrigger IsoSurfaceVolumeData LineProperties LineSet LOD Material MetadataBoolean MetadataDouble MetadataFloat MetadataInteger MetadataSet MetadataString MultiTexture MultiTextureCoordinate MultiTextureTransform NavigationInfo Normal NormalInterpolator OctTree OpacityMapVolumeStyle OrientationInterpolator OrthoViewpoint PixelTexture PixelTexture3D PointSet Polyline2D Polypoint2D PositionInterpolator ProjectionVolumeStyle Rectangle2D ScalarInterpolator SegmentedVolumeData ShadedVolumeStyle Shape SilhouetteEnhancementVolumeStyle Sphere StaticGroup Switch Text TextureCoordinate TextureCoordinate3D TextureCoordinate4D TextureCoordinateGenerator TextureMatrixTransform TextureProperties TextureTransform TextureTransform3D TimeSensor TimeTrigger ToneMappedVolumeStyle Transform TriangleFanSet TriangleSet TriangleStripSet Viewpoint ViewpointGroup VolumeData WorldInfo." documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/MedInterchange.html" value="MedicalInterchange"/>
     <enumeration appinfo="MPEGInteractive Profile defines base interoperability with MPEG4 standards to a small subset of nodes needed to display lightweight compelling content. Allowed X3D nodes for this profile are: Anchor Appearance Background Box Color ColorInterpolator ColorRGBA Cone Coordinate CoordinateInterpolator Cylinder CylinderSensor DirectionalLight ElevationGrid Group ImageTexture IndexedFaceSet IndexedLineSet Inline LineSet Material MetadataBoolean MetadataDouble MetadataFloat MetadataInteger MetadataSet MetadataString NavigationInfo NormalInterpolator OrientationInterpolator PixelTexture PlaneSensor PointLight PointSet PositionInterpolator ProximitySensor ScalarInterpolator Shape Sphere SphereSensor SpotLight Switch TextureCoordinate TextureTransform TimeSensor TouchSensor Transform Viewpoint WorldInfo." documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/MPEG4interactive.html" value="MPEG4Interactive"/>
     <enumeration appinfo="The Full Profile corresponds to all Immersive X3D nodes plus all approved/implemented extensions. All X3D nodes and statements are allowed in this profile." documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/fullProfile.html" value="Full"/>
    </field>
    <field acceptableNodeTypes="Scene" accessType="inputOutput" default="NULL" description="Include a Scene element to contain scene-graph nodes for this X3D model." name="Scene" type="SFNode"/>
    <field accessType="inputOutput" description="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." inheritedFrom="X3DStatement" name="style" type="SFString"/>
    <field accessType="inputOutput" additionalEnumerationValuesAllowed="false" baseType="xs:NMTOKEN" default="4.0" description="Default is highest value matching schema and DOCTYPE in the scene." name="version" simpleType="x3dVersionChoices" type="SFString" use="required">
     <enumeration appinfo="X3D version 3.0 approved by ISO in 2004." documentation="https://www.web3d.org/documents/specifications/19775-1/V3.0/index.html" value="3.0"/>
     <enumeration appinfo="X3D version 3.1 Amendment 1 approved by ISO in 2005. Backwards compatibility maintained with version 3.0." documentation="https://www.web3d.org/documents/specifications/19775-1/V3.1/index.html" value="3.1"/>
     <enumeration appinfo="X3D version 3.2 Amendment 2 approved by ISO in 2007. Backwards compatibility maintained with versions 3.0 and 3.1." documentation="https://www.web3d.org/documents/specifications/19775-1/V3.2/index.html" value="3.2"/>
     <enumeration appinfo="X3D version 3.3 approved by ISO in 2013 as International Standard (IS). Backwards compatibility maintained with versions 3.0, 3.1 and 3.2." documentation="https://www.web3d.org/specifications/X3Dv4/ISO-IEC19775-1v4-IS/Part01/X3D.html" value="3.3"/>
     <enumeration appinfo="X3D version 4.0 under final development by Web3D Consortium. Backwards compatibility maintained with versions 3.0, 3.1, 3.2 and 3.3." documentation="https://www.web3d.org/x3d4" value="4.0"/>
    </field>
    <ContentModel>
     <StatementContentModel minOccurs="0" name="head"/>
     <StatementContentModel name="Scene"/>
     <StatementContentModel minOccurs="0" name="ds:Signature"/>
    </ContentModel>
   </InterfaceDefinition>
  </Statement>
 </Statements>
</X3dUnifiedObjectModel>

