[x3d-public] Fwd: using AllX3dElementsAttributes.xml as a code-coverage test for X3dToJson.xslt conversion stylesheet

Don Brutzman brutzman at nps.edu
Sat Feb 20 11:10:11 PST 2016


[Originally sent to x3d working group, now thinking this has long-term general interest.  Attachments updated.]

	http://web3d.org/mailman/private/x3d_web3d.org/2016-February/004337.html

-------- Forwarded Message --------
Subject: using AllX3dElementsAttributes.xml as a code-coverage test for X3dToJson.xslt conversion stylesheet
Date: Sun, 14 Feb 2016 15:25:13 -0800
From: Don Brutzman <brutzman at nps.edu>
Organization: Naval Postgraduate School
To: Roy Walmsley <roy.walmsley at ntlworld.com>, John Carlson <yottzumm at gmail.com>
CC: x3d at web3d.org

Finding and handling every nook and cranny of the X3D specification can certainly be a tricky business.

The just-completed effort with the X3dToJson.xslt stylesheet produced an XSLT code block that figured out data type for every attribute.

Testing all our many example scenes provides excellent coverage, but does not guarantee 100% testing of all nodes and fields.  Some X3D components do not have good support for example scenes, as listed on the X3D Projects Wish List.

	http://www.web3d.org/projects/wish-list

	4. Example X3D scenes for the open-source X3D Examples archives showing
	- MultiTexture nodes, Texturing3D and Cube map environmental texturing components
	- Particle systems, Picking Sensor, Layering and Layout components
	- Shader examples for all shader programming languages of interest

To work around those long-running gaps in the example scene archives, here is a new testing technique.  Instead of converting yet-another regular .x3d scene, I applied X3dToJson.xslt against the schema-generated document AllX3dElementsAttributes.xml which includes (as the file name says) all X3D elements and attributes.  Current version is maintained up-to-date at

	http://www.web3d.org/x3d/stylesheets/AllX3dElementsAttributes.xml
	http://www.web3d.org/x3d/stylesheets/AllX3dElementsAttributes.txt

Voila: a test output that shows coverage by reporting what node/field combinations were not tested.  From the X3D Stylesheets project test.X3dToJson.xslt:

=====================================
translation input: AllX3dElementsAttributes3.3.xml
..expected output: test/AllX3dElementsAttributes3.3.json

Warning: X3dToJson.xslt error, attribute type not found for GeoProximitySensor size
Warning: X3dToJson.xslt error, attribute type not found for GeoViewpoint retainUserOffsets
Warning: X3dToJson.xslt error, attribute type not found for LocalFog color
Warning: X3dToJson.xslt error, attribute type not found for LocalFog fogType
Warning: X3dToJson.xslt error, attribute type not found:    LocalFog fogType
Warning: X3dToJson.xslt error, attribute type not found for LocalFog visibilityRange
Warning: X3dToJson.xslt error, attribute type not found for OrthoViewpoint centerOfRotation
Warning: X3dToJson.xslt error, attribute type not found for OrthoViewpoint position
Warning: X3dToJson.xslt error, attribute type not found for OrthoViewpoint retainUserOffsets
Warning: X3dToJson.xslt error, attribute type not found for TransformSensor size
Warning: X3dToJson.xslt error, attribute type not found for MovieTexture pitch
Warning: X3dToJson.xslt error, attribute type not found for TextureTransformMatrix3D matrix
Warning: comments outside of the X3D element are not translated as part of the X3D JSON object.
<!-- All X3D elements and attributes, with default values, as defined in X3D Schema version 3.3 -->
=====================================

The stylesheet results in a JSON file - not a valid X3D scene, per se, but still quite thorough.  As it turns out, that is quite useful.

But wait there's more... Since the stylesheet is also attempting to remove any schema-default values from the json output, any attribute values that make it through aren't getting filtered properly.  This is another form of unit test and an excellent further benefit.  Initial result attached.

Just too cool... I'm mailing these outputs so that there is a record of prior errors... the gaps will soon be fixed.  They will also "stay fixed" as we continue working towards X3D 4.0.  8)

Perhaps we are even beginning a new category of X3D Quality Assurance (QA): capabilities for intended for X3D tool developers, in addition to those that we provide to X3D scene authors.

	http://www.web3d.org/x3d/content/examples/X3dResources.html#QualityAssurance

Anyway, getting better + better with tools improving tools.  This one cuts across XML, JSON, XSLT stylesheets, X3D Schema, X3D Example Archive scenes, Ant build files, etc. etc.  Onward we go producing reliable, enterprise-ready capabilities for X3D graphics.

Have fun developing with X3D!  8)

all the best, Don
-- 
Don Brutzman  Naval Postgraduate School, Code USW/Br       brutzman at nps.edu
Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA   +1.831.656.2149
X3D graphics, virtual worlds, navy robotics http://faculty.nps.edu/brutzman

-------------- next part --------------
A non-text attachment was scrubbed...
Name: AllX3dElementsAttributes3.3.xml
Type: text/xml
Size: 30557 bytes
Desc: not available
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20160220/ebadf136/attachment-0001.xml>
-------------- next part --------------
<!-- All X3D elements and attributes, with default values, as defined in X3D Schema version 3.3 -->
<Anchor bboxCenter='0 0 0' bboxSize='-1 -1 -1' description='' parameter='' url='' containerField='children'/>
<Appearance containerField='appearance'/>
<Arc2D endAngle='1.570796' radius='1' startAngle='0' containerField='geometry'/>
<ArcClose2D closureType='PIE' endAngle='1.570796' radius='1' solid='false' startAngle='0' containerField='geometry'/>
<AudioClip description='' loop='false' pauseTime='0' pitch='1.0' resumeTime='0' startTime='0' stopTime='0' url='' containerField='source'/>
<Background backUrl='' bottomUrl='' frontUrl='' groundAngle='' groundColor='' leftUrl='' rightUrl='' skyAngle='' skyColor='0 0 0' topUrl='' transparency='0' containerField='children'/>
<BallJoint anchorPoint='0 0 0' forceOutput='"NONE"' containerField='joints'/>
<Billboard axisOfRotation='0 1 0' bboxCenter='0 0 0' bboxSize='-1 -1 -1' containerField='children'/>
<BlendedVolumeStyle enabled='true' weightConstant1='0.5' weightConstant2='0.5' weightFunction1='CONSTANT' weightFunction2='CONSTANT' containerField='renderStyle'/>
<BooleanFilter containerField='children'/>
<BooleanSequencer key='' keyValue='' containerField='children'/>
<BooleanToggle toggle='false' containerField='children'/>
<BooleanTrigger containerField='children'/>
<BoundaryEnhancementVolumeStyle boundaryOpacity='0.9' enabled='true' opacityFactor='2' retainedOpacity='0.2' containerField='renderStyle'/>
<BoundedPhysicsModel enabled='true' containerField='physics'/>
<Box size='2 2 2' solid='true' containerField='geometry'/>
<CADAssembly bboxCenter='0 0 0' bboxSize='-1 -1 -1' name='' containerField='children'/>
<CADFace bboxCenter='0 0 0' bboxSize='-1 -1 -1' name='' containerField='children'/>
<CADLayer bboxCenter='0 0 0' bboxSize='-1 -1 -1' name='' visible='' containerField='children'/>
<CADPart bboxCenter='0 0 0' bboxSize='-1 -1 -1' center='0 0 0' name='' rotation='0 0 1 0' scale='1 1 1' scaleOrientation='0 0 1 0' translation='0 0 0' containerField='children'/>
<CartoonVolumeStyle colorSteps='4' enabled='true' orthogonalColor='1 1 1 1' parallelColor='0 0 0 1' containerField='renderStyle'/>
<Circle2D radius='1' containerField='geometry'/>
<ClipPlane enabled='true' plane='0 1 0 0' containerField='children'/>
<CollidableOffset bboxCenter='0 0 0' bboxSize='-1 -1 -1' enabled='true' rotation='0 0 1 0' translation='0 0 0' containerField='children'/>
<CollidableShape bboxCenter='0 0 0' bboxSize='-1 -1 -1' enabled='true' rotation='0 0 1 0' translation='0 0 0' containerField='children'/>
<Collision bboxCenter='0 0 0' bboxSize='-1 -1 -1' enabled='true' containerField='children'/>
<CollisionCollection appliedParameters='"BOUNCE"' bounce='0' enabled='true' frictionCoefficients='0 0' minBounceSpeed='0.1' slipFactors='0 0' softnessConstantForceMix='0.0001' softnessErrorCorrection='0.8' surfaceSpeed='0 0' containerField='collider'/>
<CollisionSensor enabled='true' containerField='children'/>
<CollisionSpace bboxCenter='0 0 0' bboxSize='-1 -1 -1' enabled='true' useGeometry='false' containerField='children'/>
<Color color='' containerField='color'/>
<ColorChaser duration='1' initialDestination='0.8 0.8 0.8' initialValue='0.8 0.8 0.8' containerField='children'/>
<ColorDamper initialDestination='0.8 0.8 0.8' initialValue='0.8 0.8 0.8' order='3' tau='0.3' tolerance='-1' containerField='children'/>
<ColorInterpolator key='' keyValue='' containerField='children'/>
<ColorRGBA color='' containerField='color'/>
<component level='' name=''/>
<ComposedCubeMapTexture containerField='texture'/>
<ComposedShader language='' containerField='shaders'/>
<ComposedTexture3D repeatR='false' repeatS='false' repeatT='false' containerField='texture'/>
<ComposedVolumeStyle enabled='true' containerField='renderStyle'/>
<Cone bottom='true' bottomRadius='1' height='2' side='true' solid='true' containerField='geometry'/>
<ConeEmitter angle='0.7854' direction='0 1 0' mass='0' position='0 0 0' speed='0' surfaceArea='0' variation='0.25' containerField='emitter'/>
<connect nodeField='' protoField=''/>
<Contact appliedParameters='"BOUNCE"' bounce='0' contactNormal='0 1 0' depth='0' frictionCoefficients='0 0' frictionDirection='0 1 0' minBounceSpeed='0' position='0 0 0' slipCoefficients='0 0' softnessConstantForceMix='0.0001' softnessErrorCorrection='0.8' surfaceSpeed='0 0' containerField='contacts'/>
<Contour2D containerField='trimmingContour'/>
<ContourPolyline2D controlPoint='' containerField='children'/>
<Coordinate point='' containerField='coord'/>
<CoordinateChaser duration='1' initialDestination='0 0 0' initialValue='0 0 0' containerField='children'/>
<CoordinateDamper initialDestination='0 0 0' initialValue='0 0 0' order='3' tau='0.3' tolerance='-1' containerField='children'/>
<CoordinateDouble point='' containerField='coord'/>
<CoordinateInterpolator key='' keyValue='' containerField='children'/>
<CoordinateInterpolator2D key='' keyValue='' containerField='children'/>
<Cylinder bottom='true' height='2' radius='1' side='true' solid='true' top='true' containerField='geometry'/>
<CylinderSensor autoOffset='true' axisRotation='0 1 0 0' description='' diskAngle='0.26179167' enabled='true' maxAngle='-1' minAngle='0' offset='0' containerField='children'/>
<DirectionalLight ambientIntensity='0' color='1 1 1' direction='0 0 -1' global='false' intensity='1' on='true' containerField='children'/>
<DISEntityManager address='localhost' applicationID='0' port='0' siteID='0' containerField='children'/>
<DISEntityTypeMapping category='0' country='0' domain='0' extra='0' kind='0' specific='0' subcategory='0' url='' containerField='mapping'/>
<Disk2D innerRadius='0' outerRadius='1' solid='false' containerField='geometry'/>
<DoubleAxisHingeJoint anchorPoint='0 0 0' axis1='0 0 0' axis2='0 0 0' desiredAngularVelocity1='0' desiredAngularVelocity2='0' forceOutput='"NONE"' maxAngle1='3.141592653' maxTorque1='0' maxTorque2='0' minAngle1='-3.141592653' stop1Bounce='0' stop1ConstantForceMix='0.001' stop1ErrorCorrection='0.8' suspensionErrorCorrection='0.8' suspensionForce='0' containerField='joints'/>
<EaseInEaseOut easeInEaseOut='' key='' containerField='children'/>
<EdgeEnhancementVolumeStyle edgeColor='0 0 0 1' enabled='true' gradientThreshold='0.4' containerField='renderStyle'/>
<ElevationGrid ccw='true' colorPerVertex='true' creaseAngle='0' height='0 0 0 0' normalPerVertex='true' solid='true' xDimension='2' xSpacing='1.0' zDimension='2' zSpacing='1.0' containerField='geometry'/>
<EspduTransform address='localhost' applicationID='0' articulationParameterArray='' articulationParameterChangeIndicatorArray='' articulationParameterCount='0' articulationParameterDesignatorArray='' articulationParameterIdPartAttachedToArray='' articulationParameterTypeArray='' bboxCenter='0 0 0' bboxSize='-1 -1 -1' center='0 0 0' collisionType='0' deadReckoning='0' detonationLocation='0 0 0' detonationRelativeLocation='0 0 0' detonationResult='0' enabled='true' entityCategory='0' entityCountry='0' entityDomain='0' entityExtra='0' entityID='0' entityKind='0' entitySpecific='0' entitySubcategory='0' eventApplicationID='0' eventEntityID='0' eventNumber='0' eventSiteID='0' fireMissionIndex='0' fired1='false' fired2='false' firingRange='0' firingRate='0' forceID='0' fuse='0' geoCoords='0 0 0' geoSystem='"GD" "WE"' linearAcceleration='0 0 0' linearVelocity='0 0 0' marking='' multicastRelayHost='' multicastRelayPort='0' munitionApplicationID='0' munitionEndPoint='0 0 0' munitionEntityID='0' munitionQuantity='0' munitionSiteID='0' munitionStartPoint='0 0 0' networkMode='standAlone' port='0' readInterval='0.1' rotation='0 0 1 0' rtpHeaderExpected='false' scale='1 1 1' scaleOrientation='0 0 1 0' siteID='0' translation='0 0 0' warhead='0' writeInterval='1.0' containerField='children'/>
<ExplosionEmitter mass='0' position='0 0 0' speed='0' surfaceArea='0' variation='0.25' containerField='emitter'/>
<EXPORT AS='' localDEF=''/>
<ExternProtoDeclare appinfo='' documentation='' name='' url=''/>
<Extrusion beginCap='true' ccw='true' convex='true' creaseAngle='0.0' crossSection='1 1 1 -1 -1 -1 -1 1 1 1' endCap='true' orientation='0 0 1 0' scale='1 1' solid='true' spine='0 0 0 0 1 0' containerField='geometry'/>
<field accessType='' appinfo='' documentation='' name='' type='' value=''/>
<fieldValue name='' value=''/>
<FillProperties filled='true' hatchColor='1 1 1' hatchStyle='1' hatched='true' containerField='fillProperties'/>
<FloatVertexAttribute name='' numComponents='4' value='' containerField='attrib'/>
<Fog color='1 1 1' fogType='LINEAR' visibilityRange='0' containerField='children'/>
<FogCoordinate depth='' containerField='fogCoord'/>
<FontStyle family='"SERIF"' horizontal='true' justify='"BEGIN"' language='' leftToRight='true' size='1.0' spacing='1.0' style='PLAIN' topToBottom='true' containerField='fontStyle'/>
<ForcePhysicsModel enabled='true' force='0 -9.8 0' containerField='physics'/>
<GeneratedCubeMapTexture size='128' update='NONE' containerField='texture'/>
<GeoCoordinate geoSystem='"GD" "WE"' point='' containerField='coord'/>
<GeoElevationGrid ccw='true' colorPerVertex='true' creaseAngle='0' geoGridOrigin='0 0 0' geoSystem='"GD" "WE"' height='0 0 0 0' normalPerVertex='true' solid='true' xDimension='2' xSpacing='1.0' yScale='1' zDimension='2' zSpacing='1.0' containerField='geometry'/>
<GeoLocation bboxCenter='0 0 0' bboxSize='-1 -1 -1' geoCoords='0 0 0' geoSystem='"GD" "WE"' containerField='children'/>
<GeoLOD bboxCenter='0 0 0' bboxSize='-1 -1 -1' center='0 0 0' child1Url='' child2Url='' child3Url='' child4Url='' geoSystem='"GD" "WE"' range='10' rootUrl='' containerField='children'/>
<GeoMetadata summary='' url='' containerField='children'/>
<GeoOrigin geoCoords='0 0 0' geoSystem='"GD" "WE"' rotateYUp='false' containerField='geoOrigin'/>
<GeoPositionInterpolator geoSystem='"GD" "WE"' key='' keyValue='' containerField='children'/>
<GeoProximitySensor center='0 0 0' enabled='true' geoCenter='0 0 0' geoSystem='"GD" "WE"' size='0 0 0' containerField='children'/>
<GeoTouchSensor description='' enabled='true' geoSystem='"GD" "WE"' containerField='children'/>
<GeoTransform bboxCenter='0 0 0' bboxSize='-1 -1 -1' geoCenter='0 0 0' geoSystem='"GD" "WE"' rotation='0 0 1 0' scale='1 1 1' scaleOrientation='0 0 1 0' translation='0 0 0' containerField='children'/>
<GeoViewpoint centerOfRotation='0 0 0' description='' fieldOfView='0.7854' geoSystem='"GD" "WE"' jump='true' orientation='0 0 1 0' position='0 0 100000' retainUserOffsets='false' speedFactor='1.0' containerField='children'/>
<Group bboxCenter='0 0 0' bboxSize='-1 -1 -1' containerField='children'/>
<HAnimDisplacer coordIndex='' displacements='' name='' weight='0.0' containerField='displacers'/>
<HAnimHumanoid bboxCenter='0 0 0' bboxSize='-1 -1 -1' center='0 0 0' info='' name='' rotation='0 0 1 0' scale='1 1 1' scaleOrientation='0 0 1 0' translation='0 0 0' version='' containerField='children'/>
<HAnimJoint bboxCenter='0 0 0' bboxSize='-1 -1 -1' center='0 0 0' limitOrientation='0 0 1 0' llimit='' name='' rotation='0 0 1 0' scale='1 1 1' scaleOrientation='0 0 1 0' skinCoordIndex='' skinCoordWeight='' stiffness='0 0 0' translation='0 0 0' ulimit='' containerField='children'/>
<HAnimSegment bboxCenter='0 0 0' bboxSize='-1 -1 -1' centerOfMass='0 0 0' mass='0' momentsOfInertia='0 0 0 0 0 0 0 0 0' name='' containerField='children'/>
<HAnimSite bboxCenter='0 0 0' bboxSize='-1 -1 -1' center='0 0 0' name='' rotation='0 0 1 0' scale='1 1 1' scaleOrientation='0 0 1 0' translation='0 0 0' containerField='children'/>
<head/>
<ImageCubeMapTexture url='' containerField='texture'/>
<ImageTexture repeatS='true' repeatT='true' url='' containerField='texture'/>
<ImageTexture3D repeatR='false' repeatS='false' repeatT='false' url='' containerField='texture'/>
<IMPORT AS='' importedDEF='' inlineDEF=''/>
<IndexedFaceSet ccw='true' colorIndex='' colorPerVertex='true' convex='true' coordIndex='' creaseAngle='0' normalIndex='' normalPerVertex='true' solid='true' texCoordIndex='' containerField='geometry'/>
<IndexedLineSet colorIndex='' colorPerVertex='true' coordIndex='' containerField='geometry'/>
<IndexedQuadSet ccw='true' colorPerVertex='true' index='' normalPerVertex='true' solid='true' containerField='geometry'/>
<IndexedTriangleFanSet ccw='true' colorPerVertex='true' index='' normalPerVertex='true' solid='true' containerField='geometry'/>
<IndexedTriangleSet ccw='true' colorPerVertex='true' index='' normalPerVertex='true' solid='true' containerField='geometry'/>
<IndexedTriangleStripSet ccw='true' colorPerVertex='true' index='' normalPerVertex='true' solid='true' containerField='geometry'/>
<Inline bboxCenter='0 0 0' bboxSize='-1 -1 -1' load='true' url='' containerField='children'/>
<IntegerSequencer key='' keyValue='' containerField='children'/>
<IntegerTrigger integerKey='-1' containerField='children'/>
<IS/>
<IsoSurfaceVolumeData bboxCenter='0 0 0' bboxSize='-1 -1 -1' contourStepSize='0' dimensions='1 1 1' surfaceTolerance='0' surfaceValues='' containerField='children'/>
<KeySensor enabled='true' containerField='children'/>
<Layer isPickable='true' containerField='layers'/>
<LayerSet activeLayer='0' order='0' containerField='children'/>
<Layout align='"CENTER" "CENTER"' offset='0 0' offsetUnits='"WORLD" "WORLD"' scaleMode='"NONE" "NONE"' size='1 1' sizeUnits='"WORLD" "WORLD"' containerField='layout'/>
<LayoutGroup bboxCenter='0 0 0' bboxSize='-1 -1 -1' containerField='children'/>
<LayoutLayer isPickable='true' containerField='layers'/>
<LinePickSensor enabled='true' intersectionType='BOUNDS' matchCriterion='MATCH_ANY' objectType='"ALL"' sortOrder='CLOSEST' containerField='children'/>
<LineProperties applied='true' linetype='1' linewidthScaleFactor='0' containerField='lineProperties'/>
<LineSet vertexCount='' containerField='geometry'/>
<LoadSensor enabled='true' timeOut='0' containerField='children'/>
<LocalFog color='1 1 1' enabled='true' fogType='LINEAR' visibilityRange='0' containerField='children'/>
<LOD bboxCenter='0 0 0' bboxSize='-1 -1 -1' center='0 0 0' forceTransitions='false' range='' containerField='children'/>
<Material ambientIntensity='0.2' diffuseColor='0.8 0.8 0.8' emissiveColor='0 0 0' shininess='0.2' specularColor='0 0 0' transparency='0' containerField='material'/>
<Matrix3VertexAttribute name='' value='' containerField='attrib'/>
<Matrix4VertexAttribute name='' value='' containerField='attrib'/>
<meta content='' dir='' http-equiv='' lang='' name='' scheme=''/>
<MetadataBoolean name='' reference='' value='' containerField='metadata'/>
<MetadataDouble name='' reference='' value='' containerField='metadata'/>
<MetadataFloat name='' reference='' value='' containerField='metadata'/>
<MetadataInteger name='' reference='' value='' containerField='metadata'/>
<MetadataSet name='' reference='' containerField='metadata'/>
<MetadataString name='' reference='' value='' containerField='metadata'/>
<MotorJoint autoCalc='false' axis1Angle='0' axis1Torque='0' axis2Angle='0' axis2Torque='0' axis3Angle='0' axis3Torque='0' enabledAxes='1' forceOutput='"NONE"' motor1Axis='0 0 0' motor2Axis='0 0 0' motor3Axis='0 0 0' stop1Bounce='0' stop1ErrorCorrection='0.8' stop2Bounce='0' stop2ErrorCorrection='0.8' stop3Bounce='0' stop3ErrorCorrection='0.8' containerField='joints'/>
<MovieTexture description='' loop='false' pauseTime='0' pitch='1.0' repeatS='true' repeatT='true' resumeTime='0' speed='1.0' startTime='0' stopTime='0' url='' containerField='texture'/>
<MultiTexture alpha='1' color='1 1 1' function='' mode='' source='' containerField='texture'/>
<MultiTextureCoordinate containerField='texCoord'/>
<MultiTextureTransform containerField='textureTransform'/>
<NavigationInfo avatarSize='0.25 1.6 0.75' headlight='true' speed='1' transitionTime='1.0' transitionType='"LINEAR"' type='"EXAMINE" "ANY"' visibilityLimit='0' containerField='children'/>
<Normal vector='' containerField='normal'/>
<NormalInterpolator key='' keyValue='' containerField='children'/>
<NurbsCurve closed='false' knot='' order='3' tessellation='0' weight='' containerField='geometry'/>
<NurbsCurve2D closed='false' controlPoint='' knot='' order='3' tessellation='0' weight='' containerField='children'/>
<NurbsOrientationInterpolator knot='' order='3' weight='' containerField='children'/>
<NurbsPatchSurface solid='true' uClosed='false' uDimension='0' uKnot='' uOrder='3' uTessellation='0' vClosed='false' vDimension='0' vKnot='' vOrder='3' vTessellation='0' weight='' containerField='geometry'/>
<NurbsPositionInterpolator knot='' order='3' weight='' containerField='children'/>
<NurbsSet bboxCenter='0 0 0' bboxSize='-1 -1 -1' tessellationScale='1.0' containerField='children'/>
<NurbsSurfaceInterpolator uDimension='0' uKnot='' uOrder='3' vDimension='0' vKnot='' vOrder='3' weight='' containerField='children'/>
<NurbsSweptSurface ccw='true' solid='true' containerField='geometry'/>
<NurbsSwungSurface ccw='true' solid='true' containerField='geometry'/>
<NurbsTextureCoordinate controlPoint='' uDimension='0' uKnot='' uOrder='3' vDimension='0' vKnot='' vOrder='3' weight='' containerField='texCoord'/>
<NurbsTrimmedSurface solid='true' uClosed='false' uDimension='0' uKnot='' uOrder='3' uTessellation='0' vClosed='false' vDimension='0' vKnot='' vOrder='3' vTessellation='0' weight='' containerField='geometry'/>
<OpacityMapVolumeStyle enabled='true' containerField='renderStyle'/>
<OrientationChaser duration='1' initialDestination='0 1 0 0' initialValue='0 1 0 0' containerField='children'/>
<OrientationDamper initialDestination='0 1 0 0' initialValue='0 1 0 0' order='3' tau='0.3' tolerance='-1' containerField='children'/>
<OrientationInterpolator key='' keyValue='' containerField='children'/>
<OrthoViewpoint centerOfRotation='0 0 0' description='' fieldOfView='-1 -1 1 1' jump='true' orientation='0 0 1 0' position='0 0 10' retainUserOffsets='false' containerField='children'/>
<PackagedShader language='' url='' containerField='shaders'/>
<ParticleSystem bboxCenter='0 0 0' bboxSize='-1 -1 -1' colorKey='' createParticles='true' enabled='true' geometryType='QUAD' lifetimeVariation='0.25' maxParticles='200' particleLifetime='5' particleSize='0.02 0.02' texCoordKey='' containerField='children'/>
<PickableGroup bboxCenter='0 0 0' bboxSize='-1 -1 -1' objectType='"ALL"' pickable='true' containerField='children'/>
<PixelTexture image='0 0 0' repeatS='true' repeatT='true' containerField='texture'/>
<PixelTexture3D image='0 0 0 0' repeatR='false' repeatS='false' repeatT='false' containerField='texture'/>
<PlaneSensor autoOffset='true' axisRotation='0 1 0 0' description='' enabled='true' maxPosition='-1 -1' minPosition='0 0' offset='0 0 0' containerField='children'/>
<PointEmitter direction='0 1 0' mass='0' position='0 0 0' speed='0' surfaceArea='0' variation='0.25' containerField='emitter'/>
<PointLight ambientIntensity='0' attenuation='1 0 0' color='1 1 1' global='true' intensity='1' location='0 0 0' on='true' radius='100' containerField='children'/>
<PointPickSensor enabled='true' intersectionType='BOUNDS' matchCriterion='MATCH_ANY' objectType='"ALL"' sortOrder='CLOSEST' containerField='children'/>
<PointSet containerField='geometry'/>
<Polyline2D lineSegments='' containerField='geometry'/>
<PolylineEmitter coordIndex='-1' direction='0 1 0' mass='0' speed='0' surfaceArea='0' variation='0.25' containerField='emitter'/>
<Polypoint2D point='' containerField='geometry'/>
<PositionChaser duration='1' initialDestination='0 0 0' initialValue='0 0 0' containerField='children'/>
<PositionChaser2D duration='1' initialDestination='0 0' initialValue='0 0' containerField='children'/>
<PositionDamper initialDestination='0 0 0' initialValue='0 0 0' order='3' tau='0.3' tolerance='-1' containerField='children'/>
<PositionDamper2D initialDestination='0 0' initialValue='0 0' order='3' tau='0.3' tolerance='-1' containerField='children'/>
<PositionInterpolator key='' keyValue='' containerField='children'/>
<PositionInterpolator2D key='' keyValue='' containerField='children'/>
<PrimitivePickSensor enabled='true' intersectionType='BOUNDS' matchCriterion='MATCH_ANY' objectType='"ALL"' sortOrder='CLOSEST' containerField='children'/>
<ProgramShader language='' containerField='shaders'/>
<ProjectionVolumeStyle enabled='true' intensityThreshold='0' type='MAX' containerField='renderStyle'/>
<ProtoBody/>
<ProtoDeclare appinfo='' documentation='' name=''/>
<ProtoInstance name='' containerField='children'/>
<ProtoInterface/>
<ProximitySensor center='0 0 0' enabled='true' size='0 0 0' containerField='children'/>
<QuadSet ccw='true' colorPerVertex='true' normalPerVertex='true' solid='true' containerField='geometry'/>
<ReceiverPdu address='localhost' applicationID='0' bboxCenter='0 0 0' bboxSize='-1 -1 -1' enabled='true' entityID='0' geoCoords='0 0 0' geoSystem='"GD" "WE"' multicastRelayHost='' multicastRelayPort='0' networkMode='standAlone' port='0' radioID='0' readInterval='0.1' receivedPower='0.0' receiverState='0' rtpHeaderExpected='false' siteID='0' transmitterApplicationID='0' transmitterEntityID='0' transmitterRadioID='0' transmitterSiteID='0' whichGeometry='1' writeInterval='1.0' containerField='children'/>
<Rectangle2D size='2 2' solid='false' containerField='geometry'/>
<RigidBody angularDampingFactor='0.001' angularVelocity='0 0 0' autoDamp='false' autoDisable='false' centerOfMass='0 0 0' disableAngularSpeed='0' disableLinearSpeed='0' disableTime='0' enabled='true' finiteRotationAxis='0 1 0' fixed='false' forces='' inertia='1 0 0 0 1 0 0 0 1' linearDampingFactor='0.001' linearVelocity='0 0 0' mass='1' orientation='0 0 1 0' position='0 0 0' torques='' useFiniteRotation='false' useGlobalGravity='true' containerField='bodies'/>
<RigidBodyCollection autoDisable='false' constantForceMix='0.0001' contactSurfaceThickness='0' disableAngularSpeed='0' disableLinearSpeed='0' disableTime='0' enabled='true' errorCorrection='0.8' gravity='0 -9.8 0' iterations='10' maxCorrectionSpeed='-1' preferAccuracy='false' containerField='children'/>
<ROUTE fromField='' fromNode='' toField='' toNode=''/>
<ScalarChaser duration='1' initialDestination='0' initialValue='0' containerField='children'/>
<ScalarDamper initialDestination='0' initialValue='0' order='3' tau='0.3' tolerance='-1' containerField='children'/>
<ScalarInterpolator key='' keyValue='' containerField='children'/>
<Scene/>
<ScreenFontStyle family='"SERIF"' horizontal='true' justify='"BEGIN"' language='' leftToRight='true' pointSize='12.0' spacing='1.0' style='PLAIN' topToBottom='true' containerField='fontStyle'/>
<ScreenGroup bboxCenter='0 0 0' bboxSize='-1 -1 -1' containerField='children'/>
<Script directOutput='false' mustEvaluate='false' url='' containerField='children'/>
<SegmentedVolumeData bboxCenter='0 0 0' bboxSize='-1 -1 -1' dimensions='1 1 1' segmentEnabled='' containerField='children'/>
<ShadedVolumeStyle enabled='true' lighting='false' phaseFunction='Henyey-Greenstein' shadows='false' containerField='renderStyle'/>
<ShaderPart type='' url='' containerField='parts'/>
<ShaderProgram type='' url='' containerField='programs'/>
<Shape bboxCenter='0 0 0' bboxSize='-1 -1 -1' containerField='children'/>
<SignalPdu address='localhost' applicationID='0' bboxCenter='0 0 0' bboxSize='-1 -1 -1' data='' dataLength='0' enabled='true' encodingScheme='0' entityID='0' geoCoords='0 0 0' geoSystem='"GD" "WE"' multicastRelayHost='' multicastRelayPort='0' networkMode='standAlone' port='0' radioID='0' readInterval='0.1' rtpHeaderExpected='false' sampleRate='0' samples='0' siteID='0' tdlType='0' whichGeometry='1' writeInterval='1.0' containerField='children'/>
<SilhouetteEnhancementVolumeStyle enabled='true' silhouetteBoundaryOpacity='0' silhouetteRetainedOpacity='1' silhouetteSharpness='0.5' containerField='renderStyle'/>
<SingleAxisHingeJoint anchorPoint='0 0 0' axis='0 0 0' forceOutput='"NONE"' maxAngle='3.141592653' minAngle='-3.141592653' stopBounce='0' stopErrorCorrection='0.8' containerField='joints'/>
<SliderJoint axis='0 1 0' forceOutput='"NONE"' maxSeparation='1' minSeparation='0' sliderForce='0' stopBounce='0' stopErrorCorrection='1' containerField='joints'/>
<Sound direction='0 0 1' intensity='1' location='0 0 0' maxBack='10' maxFront='10' minBack='1' minFront='1' priority='0' spatialize='true' containerField='children'/>
<Sphere radius='1' solid='true' containerField='geometry'/>
<SphereSensor autoOffset='true' description='' enabled='true' offset='0 1 0 0' containerField='children'/>
<SplinePositionInterpolator closed='false' key='' keyValue='' keyVelocity='' normalizeVelocity='false' containerField='children'/>
<SplinePositionInterpolator2D closed='false' key='' keyValue='' keyVelocity='' normalizeVelocity='false' containerField='children'/>
<SplineScalarInterpolator closed='false' key='' keyValue='' keyVelocity='' normalizeVelocity='false' containerField='children'/>
<SpotLight ambientIntensity='0' attenuation='1 0 0' beamWidth='0.7854' color='1 1 1' cutOffAngle='1.570796' direction='0 0 -1' global='true' intensity='1' location='0 0 0' on='true' radius='100' containerField='children'/>
<SquadOrientationInterpolator key='' keyValue='' normalizeVelocity='false' containerField='children'/>
<StaticGroup bboxCenter='0 0 0' bboxSize='-1 -1 -1' containerField='children'/>
<StringSensor deletionAllowed='true' enabled='true' containerField='children'/>
<SurfaceEmitter coordIndex='-1' mass='0' speed='0' surfaceArea='0' variation='0.25' containerField='emitter'/>
<Switch bboxCenter='0 0 0' bboxSize='-1 -1 -1' whichChoice='-1' containerField='children'/>
<TexCoordChaser2D duration='1' initialDestination='' initialValue='' containerField='children'/>
<TexCoordDamper2D initialDestination='' initialValue='' order='3' tau='0.3' tolerance='-1' containerField='children'/>
<Text length='' maxExtent='0.0' solid='false' string='' containerField='geometry'/>
<TextureBackground groundAngle='' groundColor='' skyAngle='' skyColor='0 0 0' transparency='0' containerField='children'/>
<TextureCoordinate point='' containerField='texCoord'/>
<TextureCoordinate3D point='' containerField='texCoord'/>
<TextureCoordinate4D point='' containerField='texCoord'/>
<TextureCoordinateGenerator mode='SPHERE' parameter='' containerField='texCoord'/>
<TextureProperties anisotropicDegree='1' borderColor='0 0 0 0' borderWidth='0' boundaryModeR='REPEAT' boundaryModeS='REPEAT' boundaryModeT='REPEAT' generateMipMaps='false' magnificationFilter='FASTEST' minificationFilter='FASTEST' textureCompression='FASTEST' texturePriority='0' containerField='textureProperties'/>
<TextureTransform center='0 0' rotation='0' scale='1 1' translation='0 0' containerField='textureTransform'/>
<TextureTransform3D center='0 0 0' rotation='0 0 1 0' scale='1 1 1' translation='0 0 0' containerField='textureTransform'/>
<TextureTransformMatrix3D matrix='1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1' containerField='textureTransform'/>
<TimeSensor cycleInterval='1.0' enabled='true' loop='false' pauseTime='0' resumeTime='0' startTime='0' stopTime='0' containerField='children'/>
<TimeTrigger containerField='children'/>
<ToneMappedVolumeStyle coolColor='0 0 1 0' enabled='true' warmColor='1 1 0 0' containerField='renderStyle'/>
<TouchSensor description='' enabled='true' containerField='children'/>
<Transform bboxCenter='0 0 0' bboxSize='-1 -1 -1' center='0 0 0' rotation='0 0 1 0' scale='1 1 1' scaleOrientation='0 0 1 0' translation='0 0 0' containerField='children'/>
<TransformSensor center='0 0 0' enabled='true' size='0 0 0' containerField='children'/>
<TransmitterPdu address='localhost' antennaLocation='0 0 0' antennaPatternLength='0' antennaPatternType='0' applicationID='0' bboxCenter='0 0 0' bboxSize='-1 -1 -1' cryptoKeyID='0' cryptoSystem='0' enabled='true' entityID='0' frequency='0' geoCoords='0 0 0' geoSystem='"GD" "WE"' inputSource='0' lengthOfModulationParameters='0' modulationTypeDetail='0' modulationTypeMajor='0' modulationTypeSpreadSpectrum='0' modulationTypeSystem='0' multicastRelayHost='' multicastRelayPort='0' networkMode='standAlone' port='0' power='0.0' radioEntityTypeCategory='0' radioEntityTypeCountry='0' radioEntityTypeDomain='0' radioEntityTypeKind='0' radioEntityTypeNomenclature='0' radioEntityTypeNomenclatureVersion='0' radioID='0' readInterval='0.1' relativeAntennaLocation='0 0 0' rtpHeaderExpected='false' siteID='0' transmitFrequencyBandwidth='0' transmitState='0' whichGeometry='1' writeInterval='1.0' containerField='children'/>
<TriangleFanSet ccw='true' colorPerVertex='true' fanCount='' normalPerVertex='true' solid='true' containerField='geometry'/>
<TriangleSet ccw='true' colorPerVertex='true' normalPerVertex='true' solid='true' containerField='geometry'/>
<TriangleSet2D solid='false' vertices='' containerField='geometry'/>
<TriangleStripSet ccw='true' colorPerVertex='true' normalPerVertex='true' solid='true' stripCount='' containerField='geometry'/>
<TwoSidedMaterial ambientIntensity='0.2' backAmbientIntensity='0.2' backDiffuseColor='0.8 0.8 0.8' backEmissiveColor='0 0 0' backShininess='0.2' backSpecularColor='0 0 0' backTransparency='0' diffuseColor='0.8 0.8 0.8' emissiveColor='0 0 0' separateBackColor='false' shininess='0.2' specularColor='0 0 0' transparency='0' containerField='material'/>
<unit category='' conversionFactor='' name=''/>
<UniversalJoint anchorPoint='0 0 0' axis1='0 0 0' axis2='0 0 0' forceOutput='"NONE"' stop1Bounce='0' stop1ErrorCorrection='0.8' stop2Bounce='0' stop2ErrorCorrection='0.8' containerField='joints'/>
<Viewpoint centerOfRotation='0 0 0' description='' fieldOfView='0.7854' jump='true' orientation='0 0 1 0' position='0 0 10' retainUserOffsets='false' containerField='children'/>
<ViewpointGroup center='0 0 0' description='' displayed='true' retainUserOffsets='false' size='0 0 0' containerField='children'/>
<Viewport bboxCenter='0 0 0' bboxSize='-1 -1 -1' clipBoundary='0 1 0 1' containerField='viewport'/>
<VisibilitySensor center='0 0 0' enabled='true' size='0 0 0' containerField='children'/>
<VolumeData bboxCenter='0 0 0' bboxSize='-1 -1 -1' dimensions='1 1 1' containerField='children'/>
<VolumeEmitter coordIndex='-1' direction='0 1 0' internal='true' mass='0' speed='0' surfaceArea='0' variation='0.25' containerField='emitter'/>
<VolumePickSensor enabled='true' intersectionType='BOUNDS' matchCriterion='MATCH_ANY' objectType='"ALL"' sortOrder='CLOSEST' containerField='children'/>
<WindPhysicsModel direction='1 0 0' enabled='true' gustiness='0.1' speed='0.1' turbulence='0' containerField='physics'/>
<WorldInfo info='' title='' containerField='children'/>
<X3D profile='' version='3.3'/>
-------------- next part --------------
{ "AllX3dElementsAttributes": {
    "-children":[
      { "Anchor":
        {
        }
      },
      { "Background":
        {
        }
      },
      { "Billboard":
        {
        }
      },
      { "BooleanFilter":
        {
        }
      },
      { "BooleanSequencer":
        {
        }
      },
      { "BooleanToggle":
        {
        }
      },
      { "BooleanTrigger":
        {
        }
      },
      { "CADAssembly":
        {
        }
      },
      { "CADFace":
        {
        }
      },
      { "CADLayer":
        {
        }
      },
      { "CADPart":
        {
        }
      },
      { "ClipPlane":
        {
        }
      },
      { "CollidableOffset":
        {
        }
      },
      { "CollidableShape":
        {
        }
      },
      { "Collision":
        {
        }
      },
      { "CollisionSensor":
        {
        }
      },
      { "CollisionSpace":
        {
        }
      },
      { "ColorChaser":
        {
        }
      },
      { "ColorDamper":
        {
        }
      },
      { "ColorInterpolator":
        {
        }
      },
      { "ContourPolyline2D":
        {
        }
      },
      { "CoordinateChaser":
        {
        }
      },
      { "CoordinateDamper":
        {
        }
      },
      { "CoordinateInterpolator":
        {
        }
      },
      { "CoordinateInterpolator2D":
        {
        }
      },
      { "CylinderSensor":
        {
        }
      },
      { "DirectionalLight":
        {
        }
      },
      { "DISEntityManager":
        {
        }
      },
      { "EaseInEaseOut":
        {
        }
      },
      { "EspduTransform":
        {
        }
      },
      { "ExternProtoDeclare":
        {
        }
      },
      { "Fog":
        {
        }
      },
      { "GeoLocation":
        {
        }
      },
      { "GeoLOD":
        {
        }
      },
      { "GeoMetadata":
        {
        }
      },
      { "GeoPositionInterpolator":
        {
        }
      },
      { "GeoProximitySensor":
        {
        }
      },
      { "GeoTouchSensor":
        {
        }
      },
      { "GeoTransform":
        {
        }
      },
      { "GeoViewpoint":
        {
        }
      },
      { "Group":
        {
        }
      },
      { "HAnimHumanoid":
        {
        }
      },
      { "HAnimJoint":
        {
        }
      },
      { "HAnimSegment":
        {
        }
      },
      { "HAnimSite":
        {
        }
      },
      { "Inline":
        {
        }
      },
      { "IntegerSequencer":
        {
        }
      },
      { "IntegerTrigger":
        {
        }
      },
      { "IsoSurfaceVolumeData":
        {
        }
      },
      { "KeySensor":
        {
        }
      },
      { "LayerSet":
        {
        }
      },
      { "LayoutGroup":
        {
        }
      },
      { "LinePickSensor":
        {
        }
      },
      { "LoadSensor":
        {
        }
      },
      { "LocalFog":
        {
        }
      },
      { "LOD":
        {
        }
      },
      { "NavigationInfo":
        {
        }
      },
      { "NormalInterpolator":
        {
        }
      },
      { "NurbsCurve2D":
        {
        }
      },
      { "NurbsOrientationInterpolator":
        {
        }
      },
      { "NurbsPositionInterpolator":
        {
        }
      },
      { "NurbsSet":
        {
        }
      },
      { "NurbsSurfaceInterpolator":
        {
        }
      },
      { "OrientationChaser":
        {
        }
      },
      { "OrientationDamper":
        {
        }
      },
      { "OrientationInterpolator":
        {
        }
      },
      { "OrthoViewpoint":
        {
        }
      },
      { "ParticleSystem":
        {
        }
      },
      { "PickableGroup":
        {
        }
      },
      { "PlaneSensor":
        {
        }
      },
      { "PointLight":
        {
        }
      },
      { "PointPickSensor":
        {
        }
      },
      { "PositionChaser":
        {
        }
      },
      { "PositionChaser2D":
        {
        }
      },
      { "PositionDamper":
        {
        }
      },
      { "PositionDamper2D":
        {
        }
      },
      { "PositionInterpolator":
        {
        }
      },
      { "PositionInterpolator2D":
        {
        }
      },
      { "PrimitivePickSensor":
        {
        }
      },
      { "ProtoDeclare":
        {
        }
      },
      { "ProtoInstance":
        {
        }
      },
      { "ProximitySensor":
        {
        }
      },
      { "ReceiverPdu":
        {
        }
      },
      { "RigidBodyCollection":
        {
        }
      },
      { "ROUTE":
        {
        }
      },
      { "ScalarChaser":
        {
        }
      },
      { "ScalarDamper":
        {
        }
      },
      { "ScalarInterpolator":
        {
        }
      },
      { "ScreenGroup":
        {
        }
      },
      { "Script":
        {
        }
      },
      { "SegmentedVolumeData":
        {
        }
      },
      { "Shape":
        {
        }
      },
      { "SignalPdu":
        {
        }
      },
      { "Sound":
        {
        }
      },
      { "SphereSensor":
        {
        }
      },
      { "SplinePositionInterpolator":
        {
        }
      },
      { "SplinePositionInterpolator2D":
        {
        }
      },
      { "SplineScalarInterpolator":
        {
        }
      },
      { "SpotLight":
        {
        }
      },
      { "SquadOrientationInterpolator":
        {
        }
      },
      { "StaticGroup":
        {
        }
      },
      { "StringSensor":
        {
        }
      },
      { "Switch":
        {
          "@whichChoice":-1
        }
      },
      { "TexCoordChaser2D":
        {
        }
      },
      { "TexCoordDamper2D":
        {
        }
      },
      { "TextureBackground":
        {
        }
      },
      { "TimeSensor":
        {
        }
      },
      { "TimeTrigger":
        {
        }
      },
      { "TouchSensor":
        {
        }
      },
      { "Transform":
        {
        }
      },
      { "TransformSensor":
        {
        }
      },
      { "TransmitterPdu":
        {
        }
      },
      { "Viewpoint":
        {
        }
      },
      { "ViewpointGroup":
        {
        }
      },
      { "VisibilitySensor":
        {
        }
      },
      { "VolumeData":
        {
        }
      },
      { "VolumePickSensor":
        {
        }
      },
      { "WorldInfo":
        {
        }
      }
    ],
    "-appearance":[
      { "Appearance":
        {
        }
      }
    ],
    "-geometry":[
      { "Arc2D":
        {
        }
      },
      { "ArcClose2D":
        {
        }
      },
      { "Box":
        {
        }
      },
      { "Circle2D":
        {
        }
      },
      { "Cone":
        {
        }
      },
      { "Cylinder":
        {
        }
      },
      { "Disk2D":
        {
        }
      },
      { "ElevationGrid":
        {
        }
      },
      { "Extrusion":
        {
        }
      },
      { "GeoElevationGrid":
        {
        }
      },
      { "IndexedFaceSet":
        {
        }
      },
      { "IndexedLineSet":
        {
        }
      },
      { "IndexedQuadSet":
        {
        }
      },
      { "IndexedTriangleFanSet":
        {
        }
      },
      { "IndexedTriangleSet":
        {
        }
      },
      { "IndexedTriangleStripSet":
        {
        }
      },
      { "LineSet":
        {
        }
      },
      { "NurbsCurve":
        {
        }
      },
      { "NurbsPatchSurface":
        {
        }
      },
      { "NurbsSweptSurface":
        {
        }
      },
      { "NurbsSwungSurface":
        {
        }
      },
      { "NurbsTrimmedSurface":
        {
        }
      },
      { "PointSet":
        {
        }
      },
      { "Polyline2D":
        {
        }
      },
      { "Polypoint2D":
        {
        }
      },
      { "QuadSet":
        {
        }
      },
      { "Rectangle2D":
        {
        }
      },
      { "Sphere":
        {
        }
      },
      { "Text":
        {
        }
      },
      { "TriangleFanSet":
        {
        }
      },
      { "TriangleSet":
        {
        }
      },
      { "TriangleSet2D":
        {
        }
      },
      { "TriangleStripSet":
        {
        }
      }
    ],
    "-source":[
      { "AudioClip":
        {
        }
      }
    ],
    "-joints":[
      { "BallJoint":
        {
        }
      },
      { "DoubleAxisHingeJoint":
        {
        }
      },
      { "MotorJoint":
        {
        }
      },
      { "SingleAxisHingeJoint":
        {
        }
      },
      { "SliderJoint":
        {
        }
      },
      { "UniversalJoint":
        {
        }
      }
    ],
    "-renderStyle":[
      { "BlendedVolumeStyle":
        {
        }
      },
      { "BoundaryEnhancementVolumeStyle":
        {
        }
      },
      { "CartoonVolumeStyle":
        {
        }
      },
      { "ComposedVolumeStyle":
        {
        }
      },
      { "EdgeEnhancementVolumeStyle":
        {
        }
      },
      { "OpacityMapVolumeStyle":
        {
        }
      },
      { "ProjectionVolumeStyle":
        {
        }
      },
      { "ShadedVolumeStyle":
        {
        }
      },
      { "SilhouetteEnhancementVolumeStyle":
        {
        }
      },
      { "ToneMappedVolumeStyle":
        {
        }
      }
    ],
    "-physics":[
      { "BoundedPhysicsModel":
        {
        }
      },
      { "ForcePhysicsModel":
        {
        }
      },
      { "WindPhysicsModel":
        {
        }
      }
    ],
    "-collider":[
      { "CollisionCollection":
        {
        }
      }
    ],
    "-color":[
      { "Color":
        {
        }
      },
      { "ColorRGBA":
        {
        }
      }
    ],
    "component": [
      {
      }
    ],
    "-texture":[
      { "ComposedCubeMapTexture":
        {
        }
      },
      { "ComposedTexture3D":
        {
        }
      },
      { "GeneratedCubeMapTexture":
        {
        }
      },
      { "ImageCubeMapTexture":
        {
        }
      },
      { "ImageTexture":
        {
        }
      },
      { "ImageTexture3D":
        {
        }
      },
      { "MovieTexture":
        {
        }
      },
      { "MultiTexture":
        {
        }
      },
      { "PixelTexture":
        {
        }
      },
      { "PixelTexture3D":
        {
        }
      }
    ],
    "-shaders":[
      { "ComposedShader":
        {
        }
      },
      { "PackagedShader":
        {
        }
      },
      { "ProgramShader":
        {
        }
      }
    ],
    "-emitter":[
      { "ConeEmitter":
        {
        }
      },
      { "ExplosionEmitter":
        {
        }
      },
      { "PointEmitter":
        {
        }
      },
      { "PolylineEmitter":
        {
        }
      },
      { "SurfaceEmitter":
        {
        }
      },
      { "VolumeEmitter":
        {
        }
      }
    ],
    "connect": [
      {
      }
    ],
    "-contacts":[
      { "Contact":
        {
        }
      }
    ],
    "-trimmingContour":[
      { "Contour2D":
        {
        }
      }
    ],
    "-coord":[
      { "Coordinate":
        {
        }
      },
      { "CoordinateDouble":
        {
        }
      },
      { "GeoCoordinate":
        {
        }
      }
    ],
    "-mapping":[
      { "DISEntityTypeMapping":
        {
        }
      }
    ],
    "EXPORT": [
      {
      }
    ],
    "field": [
      {
      }
    ],
    "fieldValue": [
      {
      }
    ],
    "-fillProperties":[
      { "FillProperties":
        {
        }
      }
    ],
    "-attrib":[
      { "FloatVertexAttribute":
        {
        }
      },
      { "Matrix3VertexAttribute":
        {
        }
      },
      { "Matrix4VertexAttribute":
        {
        }
      }
    ],
    "-fogCoord":[
      { "FogCoordinate":
        {
        }
      }
    ],
    "-fontStyle":[
      { "FontStyle":
        {
        }
      },
      { "ScreenFontStyle":
        {
        }
      }
    ],
    "-geoOrigin":[
      { "GeoOrigin":
        {
        }
      }
    ],
    "-displacers":[
      { "HAnimDisplacer":
        {
        }
      }
    ],
    "head": {
    },
    "IMPORT": [
      {
      }
    ],
    "IS": {
    },
    "-layers":[
      { "Layer":
        {
        }
      },
      { "LayoutLayer":
        {
        }
      }
    ],
    "-layout":[
      { "Layout":
        {
        }
      }
    ],
    "-lineProperties":[
      { "LineProperties":
        {
        }
      }
    ],
    "-material":[
      { "Material":
        {
        }
      },
      { "TwoSidedMaterial":
        {
        }
      }
    ],
    "meta": [
      {
      }
    ],
    "-metadata":[
      { "MetadataBoolean":
        {
        }
      },
      { "MetadataDouble":
        {
        }
      },
      { "MetadataFloat":
        {
        }
      },
      { "MetadataInteger":
        {
        }
      },
      { "MetadataSet":
        {
        }
      },
      { "MetadataString":
        {
        }
      }
    ],
    "-texCoord":[
      { "MultiTextureCoordinate":
        {
        }
      },
      { "NurbsTextureCoordinate":
        {
        }
      },
      { "TextureCoordinate":
        {
        }
      },
      { "TextureCoordinate3D":
        {
        }
      },
      { "TextureCoordinate4D":
        {
        }
      },
      { "TextureCoordinateGenerator":
        {
        }
      }
    ],
    "-textureTransform":[
      { "MultiTextureTransform":
        {
        }
      },
      { "TextureTransform":
        {
        }
      },
      { "TextureTransform3D":
        {
        }
      },
      { "TextureTransformMatrix3D":
        {
        }
      }
    ],
    "-normal":[
      { "Normal":
        {
        }
      }
    ],
    "ProtoBody": {
    },
    "ProtoInterface": {
    },
    "-bodies":[
      { "RigidBody":
        {
        }
      }
    ],
    "Scene": {
    },
    "-parts":[
      { "ShaderPart":
        {
        }
      }
    ],
    "-programs":[
      { "ShaderProgram":
        {
        }
      }
    ],
    "-textureProperties":[
      { "TextureProperties":
        {
        }
      }
    ],
    "unit": [
      {
      }
    ],
    "-viewport":[
      { "Viewport":
        {
        }
      }
    ],
    "X3D": {
        "@version":"3.3"
      }
    }
}


More information about the x3d-public mailing list