x_ite 8.8.7 → 8.9.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Makefile +6 -0
- package/README.md +3 -7
- package/build/docs/nodes.pl +434 -0
- package/dist/assets/components/Annotation.js +13 -13
- package/dist/assets/components/Annotation.min.js +1 -1
- package/dist/assets/components/CADGeometry.js +13 -13
- package/dist/assets/components/CADGeometry.min.js +1 -1
- package/dist/assets/components/CubeMapTexturing.js +26 -26
- package/dist/assets/components/CubeMapTexturing.min.js +1 -1
- package/dist/assets/components/DIS.js +14 -14
- package/dist/assets/components/DIS.min.js +1 -1
- package/dist/assets/components/EventUtilities.js +9 -9
- package/dist/assets/components/EventUtilities.min.js +1 -1
- package/dist/assets/components/Geometry2D.js +19 -19
- package/dist/assets/components/Geometry2D.min.js +1 -1
- package/dist/assets/components/Geospatial.js +33 -33
- package/dist/assets/components/Geospatial.min.js +1 -1
- package/dist/assets/components/HAnim.js +129 -90
- package/dist/assets/components/HAnim.min.js +1 -1
- package/dist/assets/components/KeyDeviceSensor.js +8 -8
- package/dist/assets/components/KeyDeviceSensor.min.js +1 -1
- package/dist/assets/components/Layout.js +27 -27
- package/dist/assets/components/Layout.min.js +1 -1
- package/dist/assets/components/NURBS.js +24 -24
- package/dist/assets/components/NURBS.min.js +1 -1
- package/dist/assets/components/ParticleSystems.js +24 -24
- package/dist/assets/components/ParticleSystems.min.js +1 -1
- package/dist/assets/components/Picking.js +18 -18
- package/dist/assets/components/Picking.min.js +1 -1
- package/dist/assets/components/RigidBodyPhysics.js +18 -18
- package/dist/assets/components/RigidBodyPhysics.min.js +1 -1
- package/dist/assets/components/Scripting.js +37 -37
- package/dist/assets/components/Scripting.min.js +1 -1
- package/dist/assets/components/Text.js +24 -24
- package/dist/assets/components/Text.min.js +1 -1
- package/dist/assets/components/TextureProjector.js +14 -14
- package/dist/assets/components/TextureProjector.min.js +1 -1
- package/dist/assets/components/Texturing3D.js +30 -30
- package/dist/assets/components/Texturing3D.min.js +1 -1
- package/dist/assets/components/VolumeRendering.js +18 -18
- package/dist/assets/components/VolumeRendering.min.js +1 -1
- package/dist/assets/components/X_ITE.js +9 -9
- package/dist/assets/components/X_ITE.min.js +1 -1
- package/dist/x_ite.css +1 -1
- package/dist/x_ite.js +1320 -166
- package/dist/x_ite.min.js +1 -1
- package/dist/x_ite.zip +0 -0
- package/docs/_config.yml +2 -2
- package/docs/_posts/components/CADGeometry/CADAssembly.md +45 -19
- package/docs/_posts/components/CADGeometry/CADFace.md +44 -18
- package/docs/_posts/components/CADGeometry/CADLayer.md +48 -19
- package/docs/_posts/components/CADGeometry/CADPart.md +54 -24
- package/docs/_posts/components/CADGeometry/IndexedQuadSet.md +55 -26
- package/docs/_posts/components/CADGeometry/QuadSet.md +52 -20
- package/docs/_posts/components/Core/MetadataBoolean.md +29 -18
- package/docs/_posts/components/Core/MetadataDouble.md +31 -16
- package/docs/_posts/components/Core/MetadataFloat.md +31 -16
- package/docs/_posts/components/Core/MetadataInteger.md +31 -16
- package/docs/_posts/components/Core/MetadataSet.md +30 -15
- package/docs/_posts/components/Core/MetadataString.md +31 -16
- package/docs/_posts/components/Core/WorldInfo.md +21 -10
- package/docs/_posts/components/CubeMapTexturing/ComposedCubeMapTexture.md +30 -25
- package/docs/_posts/components/CubeMapTexturing/GeneratedCubeMapTexture.md +19 -10
- package/docs/_posts/components/CubeMapTexturing/ImageCubeMapTexture.md +22 -18
- package/docs/_posts/components/DIS/DISEntityManager.md +40 -15
- package/docs/_posts/components/DIS/DISEntityTypeMapping.md +34 -25
- package/docs/_posts/components/DIS/EspduTransform.md +174 -41
- package/docs/_posts/components/DIS/ReceiverPdu.md +77 -27
- package/docs/_posts/components/DIS/SignalPdu.md +82 -28
- package/docs/_posts/components/DIS/TransmitterPdu.md +86 -36
- package/docs/_posts/components/EnvironmentalEffects/Background.md +80 -39
- package/docs/_posts/components/EnvironmentalEffects/Fog.md +39 -18
- package/docs/_posts/components/EnvironmentalEffects/FogCoordinate.md +10 -6
- package/docs/_posts/components/EnvironmentalEffects/LocalFog.md +21 -14
- package/docs/_posts/components/EnvironmentalEffects/TextureBackground.md +83 -31
- package/docs/_posts/components/EnvironmentalSensor/ProximitySensor.md +36 -8
- package/docs/_posts/components/EnvironmentalSensor/TransformSensor.md +31 -7
- package/docs/_posts/components/EnvironmentalSensor/VisibilitySensor.md +23 -7
- package/docs/_posts/components/EventUtilities/BooleanFilter.md +23 -10
- package/docs/_posts/components/EventUtilities/BooleanSequencer.md +46 -17
- package/docs/_posts/components/EventUtilities/BooleanToggle.md +29 -8
- package/docs/_posts/components/EventUtilities/BooleanTrigger.md +24 -7
- package/docs/_posts/components/EventUtilities/IntegerSequencer.md +46 -17
- package/docs/_posts/components/EventUtilities/IntegerTrigger.md +34 -9
- package/docs/_posts/components/EventUtilities/TimeTrigger.md +30 -9
- package/docs/_posts/components/Followers/ColorChaser.md +35 -11
- package/docs/_posts/components/Followers/ColorDamper.md +32 -12
- package/docs/_posts/components/Followers/CoordinateChaser.md +33 -9
- package/docs/_posts/components/Followers/CoordinateDamper.md +30 -10
- package/docs/_posts/components/Followers/OrientationChaser.md +34 -10
- package/docs/_posts/components/Followers/OrientationDamper.md +31 -11
- package/docs/_posts/components/Followers/PositionChaser.md +33 -9
- package/docs/_posts/components/Followers/PositionChaser2D.md +33 -9
- package/docs/_posts/components/Followers/PositionDamper.md +30 -10
- package/docs/_posts/components/Followers/PositionDamper2D.md +30 -10
- package/docs/_posts/components/Followers/ScalarChaser.md +33 -9
- package/docs/_posts/components/Followers/ScalarDamper.md +30 -10
- package/docs/_posts/components/Followers/TexCoordChaser2D.md +33 -9
- package/docs/_posts/components/Followers/TexCoordDamper2D.md +30 -10
- package/docs/_posts/components/Geometry2D/Arc2D.md +39 -14
- package/docs/_posts/components/Geometry2D/ArcClose2D.md +43 -19
- package/docs/_posts/components/Geometry2D/Circle2D.md +21 -10
- package/docs/_posts/components/Geometry2D/Disk2D.md +32 -14
- package/docs/_posts/components/Geometry2D/Polyline2D.md +24 -9
- package/docs/_posts/components/Geometry2D/Polypoint2D.md +16 -8
- package/docs/_posts/components/Geometry2D/Rectangle2D.md +23 -12
- package/docs/_posts/components/Geometry2D/TriangleSet2D.md +23 -12
- package/docs/_posts/components/Geometry3D/Box.md +26 -13
- package/docs/_posts/components/Geometry3D/Cone.md +30 -22
- package/docs/_posts/components/Geometry3D/Cylinder.md +30 -26
- package/docs/_posts/components/Geometry3D/ElevationGrid.md +73 -29
- package/docs/_posts/components/Geometry3D/Extrusion.md +100 -48
- package/docs/_posts/components/Geometry3D/IndexedFaceSet.md +92 -38
- package/docs/_posts/components/Geometry3D/Sphere.md +25 -13
- package/docs/_posts/components/Geospatial/GeoCoordinate.md +30 -14
- package/docs/_posts/components/Geospatial/GeoElevationGrid.md +82 -37
- package/docs/_posts/components/Geospatial/GeoLOD.md +66 -27
- package/docs/_posts/components/Geospatial/GeoLocation.md +64 -26
- package/docs/_posts/components/Geospatial/GeoMetadata.md +28 -22
- package/docs/_posts/components/Geospatial/GeoOrigin.md +34 -19
- package/docs/_posts/components/Geospatial/GeoPositionInterpolator.md +64 -18
- package/docs/_posts/components/Geospatial/GeoProximitySensor.md +67 -18
- package/docs/_posts/components/Geospatial/GeoTouchSensor.md +63 -18
- package/docs/_posts/components/Geospatial/GeoTransform.md +72 -28
- package/docs/_posts/components/Geospatial/GeoViewpoint.md +79 -40
- package/docs/_posts/components/Grouping/Group.md +32 -16
- package/docs/_posts/components/Grouping/StaticGroup.md +37 -16
- package/docs/_posts/components/Grouping/Switch.md +39 -20
- package/docs/_posts/components/Grouping/Transform.md +45 -28
- package/docs/_posts/components/HAnim/HAnimDisplacer.md +38 -27
- package/docs/_posts/components/HAnim/HAnimHumanoid.md +215 -56
- package/docs/_posts/components/HAnim/HAnimJoint.md +104 -38
- package/docs/_posts/components/HAnim/HAnimMotion.md +120 -10
- package/docs/_posts/components/HAnim/HAnimSegment.md +72 -32
- package/docs/_posts/components/HAnim/HAnimSite.md +75 -32
- package/docs/_posts/components/Interpolation/ColorInterpolator.md +41 -11
- package/docs/_posts/components/Interpolation/CoordinateInterpolator.md +39 -13
- package/docs/_posts/components/Interpolation/CoordinateInterpolator2D.md +43 -14
- package/docs/_posts/components/Interpolation/EaseInEaseOut.md +36 -12
- package/docs/_posts/components/Interpolation/NormalInterpolator.md +40 -10
- package/docs/_posts/components/Interpolation/OrientationInterpolator.md +40 -10
- package/docs/_posts/components/Interpolation/PositionInterpolator.md +40 -10
- package/docs/_posts/components/Interpolation/PositionInterpolator2D.md +43 -14
- package/docs/_posts/components/Interpolation/ScalarInterpolator.md +39 -13
- package/docs/_posts/components/Interpolation/SplinePositionInterpolator.md +41 -16
- package/docs/_posts/components/Interpolation/SplinePositionInterpolator2D.md +41 -16
- package/docs/_posts/components/Interpolation/SplineScalarInterpolator.md +40 -24
- package/docs/_posts/components/Interpolation/SquadOrientationInterpolator.md +35 -11
- package/docs/_posts/components/KeyDeviceSensor/KeySensor.md +51 -9
- package/docs/_posts/components/KeyDeviceSensor/StringSensor.md +31 -9
- package/docs/_posts/components/Layering/Layer.md +27 -14
- package/docs/_posts/components/Layering/LayerSet.md +19 -13
- package/docs/_posts/components/Layering/Viewport.md +31 -15
- package/docs/_posts/components/Layout/Layout.md +27 -16
- package/docs/_posts/components/Layout/LayoutGroup.md +34 -18
- package/docs/_posts/components/Layout/LayoutLayer.md +28 -15
- package/docs/_posts/components/Layout/ScreenFontStyle.md +72 -45
- package/docs/_posts/components/Layout/ScreenGroup.md +32 -16
- package/docs/_posts/components/Lighting/DirectionalLight.md +19 -11
- package/docs/_posts/components/Lighting/EnvironmentLight.md +2 -6
- package/docs/_posts/components/Lighting/PointLight.md +23 -11
- package/docs/_posts/components/Lighting/SpotLight.md +32 -19
- package/docs/_posts/components/NURBS/Contour2D.md +17 -9
- package/docs/_posts/components/NURBS/ContourPolyline2D.md +10 -6
- package/docs/_posts/components/NURBS/CoordinateDouble.md +13 -9
- package/docs/_posts/components/NURBS/NurbsCurve.md +15 -11
- package/docs/_posts/components/NURBS/NurbsCurve2D.md +14 -10
- package/docs/_posts/components/NURBS/NurbsOrientationInterpolator.md +28 -12
- package/docs/_posts/components/NURBS/NurbsPatchSurface.md +19 -13
- package/docs/_posts/components/NURBS/NurbsPositionInterpolator.md +27 -11
- package/docs/_posts/components/NURBS/NurbsSet.md +48 -14
- package/docs/_posts/components/NURBS/NurbsSurfaceInterpolator.md +31 -11
- package/docs/_posts/components/NURBS/NurbsSweptSurface.md +31 -14
- package/docs/_posts/components/NURBS/NurbsSwungSurface.md +25 -14
- package/docs/_posts/components/NURBS/NurbsTextureCoordinate.md +11 -7
- package/docs/_posts/components/NURBS/NurbsTrimmedSurface.md +26 -16
- package/docs/_posts/components/Navigation/Billboard.md +33 -17
- package/docs/_posts/components/Navigation/Collision.md +59 -22
- package/docs/_posts/components/Navigation/LOD.md +53 -23
- package/docs/_posts/components/Navigation/NavigationInfo.md +68 -25
- package/docs/_posts/components/Navigation/OrthoViewpoint.md +80 -37
- package/docs/_posts/components/Navigation/Viewpoint.md +86 -39
- package/docs/_posts/components/Navigation/ViewpointGroup.md +28 -17
- package/docs/_posts/components/Networking/Anchor.md +54 -56
- package/docs/_posts/components/Networking/Inline.md +42 -29
- package/docs/_posts/components/Networking/LoadSensor.md +41 -9
- package/docs/_posts/components/ParticleSystems/BoundedPhysicsModel.md +16 -8
- package/docs/_posts/components/ParticleSystems/ConeEmitter.md +25 -10
- package/docs/_posts/components/ParticleSystems/ExplosionEmitter.md +18 -11
- package/docs/_posts/components/ParticleSystems/ForcePhysicsModel.md +15 -8
- package/docs/_posts/components/ParticleSystems/ParticleSystem.md +92 -46
- package/docs/_posts/components/ParticleSystems/PointEmitter.md +19 -12
- package/docs/_posts/components/ParticleSystems/PolylineEmitter.md +23 -15
- package/docs/_posts/components/ParticleSystems/SurfaceEmitter.md +21 -14
- package/docs/_posts/components/ParticleSystems/VolumeEmitter.md +25 -18
- package/docs/_posts/components/ParticleSystems/WindPhysicsModel.md +11 -7
- package/docs/_posts/components/Picking/LinePickSensor.md +37 -15
- package/docs/_posts/components/Picking/PickableGroup.md +40 -22
- package/docs/_posts/components/Picking/PointPickSensor.md +29 -12
- package/docs/_posts/components/Picking/PrimitivePickSensor.md +25 -17
- package/docs/_posts/components/Picking/VolumePickSensor.md +25 -12
- package/docs/_posts/components/PointingDeviceSensor/CylinderSensor.md +43 -18
- package/docs/_posts/components/PointingDeviceSensor/PlaneSensor.md +40 -17
- package/docs/_posts/components/PointingDeviceSensor/SphereSensor.md +35 -13
- package/docs/_posts/components/PointingDeviceSensor/TouchSensor.md +48 -14
- package/docs/_posts/components/Rendering/ClipPlane.md +20 -15
- package/docs/_posts/components/Rendering/Color.md +14 -14
- package/docs/_posts/components/Rendering/ColorRGBA.md +13 -9
- package/docs/_posts/components/Rendering/Coordinate.md +11 -7
- package/docs/_posts/components/Rendering/IndexedLineSet.md +58 -24
- package/docs/_posts/components/Rendering/IndexedTriangleFanSet.md +44 -23
- package/docs/_posts/components/Rendering/IndexedTriangleSet.md +45 -24
- package/docs/_posts/components/Rendering/IndexedTriangleStripSet.md +45 -20
- package/docs/_posts/components/Rendering/LineSet.md +26 -14
- package/docs/_posts/components/Rendering/Normal.md +28 -6
- package/docs/_posts/components/Rendering/PointSet.md +24 -11
- package/docs/_posts/components/Rendering/TriangleFanSet.md +44 -19
- package/docs/_posts/components/Rendering/TriangleSet.md +44 -19
- package/docs/_posts/components/Rendering/TriangleStripSet.md +45 -20
- package/docs/_posts/components/RigidBodyPhysics/BallJoint.md +22 -10
- package/docs/_posts/components/RigidBodyPhysics/CollidableOffset.md +37 -14
- package/docs/_posts/components/RigidBodyPhysics/CollidableShape.md +34 -16
- package/docs/_posts/components/RigidBodyPhysics/CollisionCollection.md +17 -12
- package/docs/_posts/components/RigidBodyPhysics/CollisionSensor.md +21 -12
- package/docs/_posts/components/RigidBodyPhysics/CollisionSpace.md +31 -12
- package/docs/_posts/components/RigidBodyPhysics/Contact.md +19 -15
- package/docs/_posts/components/RigidBodyPhysics/DoubleAxisHingeJoint.md +33 -27
- package/docs/_posts/components/RigidBodyPhysics/MotorJoint.md +63 -11
- package/docs/_posts/components/RigidBodyPhysics/RigidBody.md +22 -12
- package/docs/_posts/components/RigidBodyPhysics/RigidBodyCollection.md +30 -14
- package/docs/_posts/components/RigidBodyPhysics/SingleAxisHingeJoint.md +26 -14
- package/docs/_posts/components/RigidBodyPhysics/SliderJoint.md +24 -12
- package/docs/_posts/components/RigidBodyPhysics/UniversalJoint.md +23 -15
- package/docs/_posts/components/Scripting/Script.md +43 -27
- package/docs/_posts/components/Shaders/ComposedShader.md +30 -17
- package/docs/_posts/components/Shaders/FloatVertexAttribute.md +18 -9
- package/docs/_posts/components/Shaders/Matrix3VertexAttribute.md +17 -8
- package/docs/_posts/components/Shaders/Matrix4VertexAttribute.md +17 -8
- package/docs/_posts/components/Shaders/PackagedShader.md +36 -30
- package/docs/_posts/components/Shaders/ProgramShader.md +35 -15
- package/docs/_posts/components/Shaders/ShaderPart.md +27 -18
- package/docs/_posts/components/Shaders/ShaderProgram.md +28 -17
- package/docs/_posts/components/Shape/AcousticProperties.md +34 -6
- package/docs/_posts/components/Shape/Appearance.md +29 -22
- package/docs/_posts/components/Shape/FillProperties.md +19 -12
- package/docs/_posts/components/Shape/LineProperties.md +18 -10
- package/docs/_posts/components/Shape/Material.md +64 -38
- package/docs/_posts/components/Shape/PhysicalMaterial.md +49 -25
- package/docs/_posts/components/Shape/PointProperties.md +21 -14
- package/docs/_posts/components/Shape/Shape.md +35 -17
- package/docs/_posts/components/Shape/TwoSidedMaterial.md +35 -36
- package/docs/_posts/components/Shape/UnlitMaterial.md +29 -17
- package/docs/_posts/components/Sound/Analyser.md +133 -4
- package/docs/_posts/components/Sound/AudioClip.md +64 -30
- package/docs/_posts/components/Sound/AudioDestination.md +76 -4
- package/docs/_posts/components/Sound/BiquadFilter.md +143 -4
- package/docs/_posts/components/Sound/BufferAudioSource.md +165 -13
- package/docs/_posts/components/Sound/ChannelMerger.md +62 -4
- package/docs/_posts/components/Sound/ChannelSelector.md +64 -4
- package/docs/_posts/components/Sound/ChannelSplitter.md +68 -4
- package/docs/_posts/components/Sound/Convolver.md +124 -4
- package/docs/_posts/components/Sound/Delay.md +119 -4
- package/docs/_posts/components/Sound/DynamicsCompressor.md +127 -4
- package/docs/_posts/components/Sound/Gain.md +115 -4
- package/docs/_posts/components/Sound/ListenerPointSource.md +109 -4
- package/docs/_posts/components/Sound/MicrophoneSource.md +91 -4
- package/docs/_posts/components/Sound/OscillatorSource.md +95 -4
- package/docs/_posts/components/Sound/PeriodicWave.md +43 -5
- package/docs/_posts/components/Sound/Sound.md +53 -20
- package/docs/_posts/components/Sound/SpatialSound.md +120 -4
- package/docs/_posts/components/Sound/StreamAudioDestination.md +80 -4
- package/docs/_posts/components/Sound/StreamAudioSource.md +91 -4
- package/docs/_posts/components/Sound/WaveShaper.md +123 -4
- package/docs/_posts/components/Text/FontStyle.md +73 -47
- package/docs/_posts/components/Text/Text.md +48 -26
- package/docs/_posts/components/TextureProjector/TextureProjector.md +55 -6
- package/docs/_posts/components/TextureProjector/TextureProjectorParallel.md +56 -6
- package/docs/_posts/components/Texturing/ImageTexture.md +28 -20
- package/docs/_posts/components/Texturing/MovieTexture.md +69 -38
- package/docs/_posts/components/Texturing/MultiTexture.md +47 -19
- package/docs/_posts/components/Texturing/MultiTextureCoordinate.md +27 -10
- package/docs/_posts/components/Texturing/MultiTextureTransform.md +32 -10
- package/docs/_posts/components/Texturing/PixelTexture.md +34 -14
- package/docs/_posts/components/Texturing/TextureCoordinate.md +20 -10
- package/docs/_posts/components/Texturing/TextureCoordinateGenerator.md +22 -12
- package/docs/_posts/components/Texturing/TextureProperties.md +44 -19
- package/docs/_posts/components/Texturing/TextureTransform.md +17 -8
- package/docs/_posts/components/Texturing3D/ComposedTexture3D.md +21 -13
- package/docs/_posts/components/Texturing3D/ImageTexture3D.md +32 -23
- package/docs/_posts/components/Texturing3D/ImageTextureAtlas.md +22 -16
- package/docs/_posts/components/Texturing3D/PixelTexture3D.md +25 -13
- package/docs/_posts/components/Texturing3D/TextureCoordinate3D.md +22 -10
- package/docs/_posts/components/Texturing3D/TextureCoordinate4D.md +21 -9
- package/docs/_posts/components/Texturing3D/TextureTransform3D.md +17 -8
- package/docs/_posts/components/Texturing3D/TextureTransformMatrix3D.md +20 -10
- package/docs/_posts/components/Time/TimeSensor.md +66 -23
- package/docs/_posts/components/VolumeRendering/BlendedVolumeStyle.md +36 -15
- package/docs/_posts/components/VolumeRendering/BoundaryEnhancementVolumeStyle.md +15 -5
- package/docs/_posts/components/VolumeRendering/CartoonVolumeStyle.md +20 -17
- package/docs/_posts/components/VolumeRendering/ComposedVolumeStyle.md +15 -7
- package/docs/_posts/components/VolumeRendering/EdgeEnhancementVolumeStyle.md +16 -8
- package/docs/_posts/components/VolumeRendering/IsoSurfaceVolumeData.md +43 -21
- package/docs/_posts/components/VolumeRendering/OpacityMapVolumeStyle.md +16 -8
- package/docs/_posts/components/VolumeRendering/ProjectionVolumeStyle.md +17 -7
- package/docs/_posts/components/VolumeRendering/SegmentedVolumeData.md +50 -17
- package/docs/_posts/components/VolumeRendering/ShadedVolumeStyle.md +18 -10
- package/docs/_posts/components/VolumeRendering/SilhouetteEnhancementVolumeStyle.md +16 -8
- package/docs/_posts/components/VolumeRendering/ToneMappedVolumeStyle.md +20 -11
- package/docs/_posts/components/VolumeRendering/VolumeData.md +32 -15
- package/docs/_posts/components/X_ITE/BlendMode.md +9 -2
- package/docs/_posts/getting-started.md +4 -7
- package/docs/_posts/laboratory/x3d-file-converter.md +1 -1
- package/docs/laboratory/gltf-sample-viewer.html +52 -4
- package/package.json +2 -1
- package/src/standard/Math/Geometry/Box2.js +12 -2
- package/src/standard/Math/Geometry/Box3.js +12 -2
- package/src/x_ite/Base/X3DObjectArrayField.js +3 -2
- package/src/x_ite/Base/X3DTypedArrayField.js +3 -2
- package/src/x_ite/Browser/Core/X3DCoreContext.js +10 -3
- package/src/x_ite/Browser/DOMIntegration.js +13 -8
- package/src/x_ite/Browser/VERSION.js +1 -1
- package/src/x_ite/Components/CubeMapTexturing/ComposedCubeMapTexture.js +1 -1
- package/src/x_ite/Components/DIS/DISEntityManager.js +1 -1
- package/src/x_ite/Components/Grouping/Switch.js +1 -1
- package/src/x_ite/Components/HAnim/HAnimHumanoid.js +105 -68
- package/src/x_ite/Components/HAnim/HAnimMotion.js +3 -3
- package/src/x_ite/Components/Layering/X3DLayerNode.js +1 -1
- package/src/x_ite/Components/Lighting/DirectionalLight.js +1 -1
- package/src/x_ite/Components/Navigation/Collision.js +1 -1
- package/src/x_ite/Components/Navigation/LOD.js +1 -1
- package/src/x_ite/Components/Navigation/X3DViewpointNode.js +1 -1
- package/src/x_ite/Components/Networking/LoadSensor.js +1 -1
- package/src/x_ite/Components/ParticleSystems/ParticleSystem.js +1 -1
- package/src/x_ite/Components/Rendering/X3DComposedGeometryNode.js +1 -1
- package/src/x_ite/Components/Shape/AcousticProperties.js +1 -1
- package/src/x_ite/Components/Shape/Appearance.js +1 -1
- package/src/x_ite/Components/Shape/Material.js +1 -1
- package/src/x_ite/Components/Shape/TwoSidedMaterial.js +1 -1
- package/src/x_ite/Components/Sound/PeriodicWave.js +1 -1
- package/src/x_ite/Components/Texturing/TextureProperties.js +1 -1
- package/src/x_ite/Fields/ArrayFields.js +9 -7
- package/src/x_ite/Fields/SFColor.js +1 -1
- package/src/x_ite/Fields/SFMatrixPrototypeTemplate.js +1 -1
- package/src/x_ite/Fields/SFRotation.js +3 -3
- package/src/x_ite/Fields/SFVecPrototypeTemplate.js +1 -1
- package/src/x_ite/Parser/GLTF2Parser.js +316 -55
- package/src/x_ite/Parser/GoldenGate.js +16 -5
- package/src/x_ite/Parser/PLYAParser.js +615 -0
- package/src/x_ite/Parser/PLYBParser.js +222 -0
- package/src/x_ite/Parser/STLAParser.js +0 -1
- package/src/x_ite/Parser/SVGParser.js +1 -1
- /package/build/{bin → docs}/components.js +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: HAnimJoint
|
|
3
|
-
date:
|
|
3
|
+
date: 2023-01-07
|
|
4
4
|
nav: components-HAnim
|
|
5
5
|
categories: [components, HAnim]
|
|
6
6
|
tags: [HAnimJoint, HAnim]
|
|
@@ -13,9 +13,9 @@ tags: [HAnimJoint, HAnim]
|
|
|
13
13
|
|
|
14
14
|
## Overview
|
|
15
15
|
|
|
16
|
-
|
|
16
|
+
HAnimJoint node can represent each joint in a body. The child HAnimSegment node provides a visual representation of the skeleton segment.
|
|
17
17
|
|
|
18
|
-
The HAnimJoint node belongs to the **HAnim** component and its default container field is *children.* It is available
|
|
18
|
+
The HAnimJoint node belongs to the **HAnim** component and its default container field is *children.* It is available from X3D version 3.0 or higher.
|
|
19
19
|
|
|
20
20
|
## Hierarchy
|
|
21
21
|
|
|
@@ -30,44 +30,60 @@ The HAnimJoint node belongs to the **HAnim** component and its default container
|
|
|
30
30
|
|
|
31
31
|
### SFNode [in, out] **metadata** NULL <small>[X3DMetadataObject]</small>
|
|
32
32
|
|
|
33
|
-
|
|
33
|
+
Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.
|
|
34
|
+
|
|
35
|
+
#### Hint
|
|
36
|
+
|
|
37
|
+
- [X3D Architecture 7.2.4 Metadata](https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata){:target="_blank"}
|
|
34
38
|
|
|
35
39
|
### SFString [in, out] **description** ""
|
|
36
40
|
|
|
37
|
-
Author-provided prose that describes intended purpose of
|
|
41
|
+
Author-provided prose that describes intended purpose of this node.
|
|
38
42
|
|
|
39
43
|
#### Hint
|
|
40
44
|
|
|
41
|
-
- Many XML tools substitute XML character references for special characters automatically if needed within an attribute value (such as &#38; for & ampersand character, or &#34; for " quotation-mark character).
|
|
45
|
+
- Many XML tools substitute XML character references for special characters automatically if needed within an attribute value (such as &#38; for & ampersand character, or &#34; for " quotation-mark character).
|
|
42
46
|
|
|
43
47
|
### SFString [in, out] **name** ""
|
|
44
48
|
|
|
45
|
-
Unique name attribute must be defined so that HAnimJoint node can be identified at run time for animation purposes.
|
|
49
|
+
Unique *name* attribute must be defined so that HAnimJoint node can be identified at run time for animation purposes.
|
|
46
50
|
|
|
47
|
-
####
|
|
51
|
+
#### Hints
|
|
48
52
|
|
|
49
|
-
-
|
|
53
|
+
- [HAnim Specification part 1, Humanoid Joint-Segment Hierarchy](https://www.web3d.org/documents/specifications/19774/V2.0/Architecture/concepts.html#Hierarchy){:target="_blank"}
|
|
54
|
+
- Well-defined names can simplify design and debugging through improved author understanding.
|
|
55
|
+
- [X3D Scene Authoring Hints, Naming Conventions](https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions){:target="_blank"}
|
|
56
|
+
- [HAnim2 Names HAnim1 Alias Tables](https://www.web3d.org/x3d/content/examples/HumanoidAnimation/HAnim2NameHAnim1AliasTables.txt){:target="_blank"}
|
|
50
57
|
|
|
51
|
-
####
|
|
58
|
+
#### Warnings
|
|
52
59
|
|
|
53
|
-
-
|
|
54
|
-
-
|
|
60
|
+
- *name* prefix must match ancestor HAnimHumanoid *name* followed by underscore character, if more than one humanoid appears within a scene file. For example, 'Nancy_' prepended before location *name*.
|
|
61
|
+
- *name* field is not included if this instance is a USE node, in order to avoid potential mismatches. Examples: humanoid_root sacroiliac l_hip l_knee l_ankle etc. as listed in HAnim Specification.
|
|
62
|
+
- [Note precise spelling of special HAnimJoint *name*='humanoid_root' according to](https://www.web3d.org/documents/specifications/19774/V2.0/Architecture/concepts.html#TheBody){:target="_blank"}
|
|
55
63
|
|
|
56
64
|
### SFVec3f [in, out] **translation** 0 0 0 <small>(-∞,∞)</small>
|
|
57
65
|
|
|
58
66
|
Position of children relative to local coordinate system.
|
|
59
67
|
|
|
68
|
+
#### Hint
|
|
69
|
+
|
|
70
|
+
- Since default pose faces along +Z axis, -x values are right side and +x values are left side within HAnimHumanoid.
|
|
71
|
+
|
|
60
72
|
#### Warning
|
|
61
73
|
|
|
62
|
-
- Usually HAnimJoint position is controlled by the center field, not the translation field.
|
|
74
|
+
- Usually HAnimJoint position is controlled by the center field, not the *translation* field.
|
|
63
75
|
|
|
64
76
|
### SFRotation [in, out] **rotation** 0 0 1 0 <small>(-∞,∞) or [-1,1]</small>
|
|
65
77
|
|
|
66
78
|
Orientation of children relative to local coordinate system.
|
|
67
79
|
|
|
80
|
+
#### Warning
|
|
81
|
+
|
|
82
|
+
- Default pose is typically empty (or an identity *rotation*) to avoid distorted body animations.
|
|
83
|
+
|
|
68
84
|
### SFVec3f [in, out] **scale** 1 1 1 <small>(0,∞)</small>
|
|
69
85
|
|
|
70
|
-
Non-uniform x-y-z scale of child coordinate system, adjusted by center and scaleOrientation.
|
|
86
|
+
Non-uniform x-y-z *scale* of child coordinate system, adjusted by center and scaleOrientation.
|
|
71
87
|
|
|
72
88
|
### SFRotation [in, out] **scaleOrientation** 0 0 1 0 <small>(-∞,∞) or [-1,1]</small>
|
|
73
89
|
|
|
@@ -79,23 +95,33 @@ Translation offset from origin of local coordinate system.
|
|
|
79
95
|
|
|
80
96
|
#### Hint
|
|
81
97
|
|
|
82
|
-
- Usually HAnimJoint position is controlled by the center field, not the translation field.
|
|
98
|
+
- Usually HAnimJoint position is controlled by the *center* field, not the translation field.
|
|
83
99
|
|
|
84
100
|
### MFFloat [in, out] **llimit** [ ] <small>(-∞,∞)</small>
|
|
85
101
|
|
|
86
102
|
Lower limit for minimum joint rotation in radians.
|
|
87
103
|
|
|
88
|
-
####
|
|
104
|
+
#### Hints
|
|
89
105
|
|
|
90
106
|
- Always contains 3 values, one for each local axis.
|
|
107
|
+
- An empty array is equivalent to 0 0 0.
|
|
108
|
+
|
|
109
|
+
#### Warning
|
|
110
|
+
|
|
111
|
+
- Field shall contain three values or else be an empty array. Behavior is undefined when array length is 1, 2, or greater than 3.
|
|
91
112
|
|
|
92
113
|
### MFFloat [in, out] **ulimit** [ ] <small>(-∞,∞)</small>
|
|
93
114
|
|
|
94
115
|
Upper limit for maximum joint rotation in radians.
|
|
95
116
|
|
|
96
|
-
####
|
|
117
|
+
#### Hints
|
|
97
118
|
|
|
98
119
|
- Always contains 3 values, one for each local axis.
|
|
120
|
+
- An empty array is equivalent to 0 0 0.
|
|
121
|
+
|
|
122
|
+
#### Warning
|
|
123
|
+
|
|
124
|
+
- Field shall contain three values or else be an empty array. Behavior is undefined when array length is 1, 2, or greater than 3.
|
|
99
125
|
|
|
100
126
|
### SFRotation [in, out] **limitOrientation** 0 0 1 0 <small>(-∞,∞) or [-1,1]</small>
|
|
101
127
|
|
|
@@ -103,12 +129,17 @@ Orientation of upper/lower rotation limits, relative to HAnimJoint center.
|
|
|
103
129
|
|
|
104
130
|
### MFFloat [in, out] **stiffness** [ 0, 0, 0 ] <small>[0,1]</small>
|
|
105
131
|
|
|
106
|
-
|
|
132
|
+
A scale factor of (1 - *stiffness*) is applied around the corresponding axis (X, Y, or Z for entries 0, 1 and 2 of the *stiffness* field). Thus a *stiffness* value of zero means that no rotation scaling occurs, while a *stiffness* value of one means that no rotation occurs regardless of any provided rotation.
|
|
107
133
|
|
|
108
|
-
####
|
|
134
|
+
#### Hints
|
|
109
135
|
|
|
136
|
+
- An empty array is equivalent to 0 0 0.
|
|
110
137
|
- Used by inverse kinematics (IK) systems.
|
|
111
138
|
|
|
139
|
+
#### Warning
|
|
140
|
+
|
|
141
|
+
- Field shall contain three values or else be an empty array. Behavior is undefined when array length is 1, 2, or greater than 3.
|
|
142
|
+
|
|
112
143
|
### MFInt32 [in, out] **skinCoordIndex** [ ] <small>[0,∞)</small>
|
|
113
144
|
|
|
114
145
|
Coordinate index values referencing which vertices are influenced by the HAnimJoint.
|
|
@@ -117,26 +148,35 @@ Coordinate index values referencing which vertices are influenced by the HAnimJo
|
|
|
117
148
|
|
|
118
149
|
- Corresponding skinCoord Coordinate and skinNormal Normal nodes are directly contained within the ancestor HAnimHumanoid node for this HAnimJoint.
|
|
119
150
|
|
|
120
|
-
####
|
|
151
|
+
#### Warnings
|
|
121
152
|
|
|
122
153
|
- -1 sentinel values are not allowed.
|
|
154
|
+
- Index values for HanimHumanoid skin IndexedFaceSet, skinCoord and skinNormal nodes must all be consistently defined together with HAnimJoint HAnimSegment and HAnimDisplacer nodes for proper skin animation.
|
|
123
155
|
|
|
124
156
|
### MFFloat [in, out] **skinCoordWeight** [ ]
|
|
125
157
|
|
|
126
158
|
Weight deformation values for the corresponding values in the skinCoordIndex field.
|
|
127
159
|
|
|
160
|
+
#### Warning
|
|
161
|
+
|
|
162
|
+
- Index values for HanimHumanoid skin IndexedFaceSet, skinCoord and skinNormal nodes must all be consistently defined together with HAnimJoint HAnimSegment and HAnimDisplacer nodes for proper skin animation.
|
|
163
|
+
|
|
128
164
|
### MFNode [in, out] **displacers** [ ] <small>[HAnimDisplacer]</small>
|
|
129
165
|
|
|
130
|
-
|
|
166
|
+
The *displacers* field stores HAnimDisplacer objects for a particular HAnimJoint object.
|
|
167
|
+
|
|
168
|
+
#### Warning
|
|
169
|
+
|
|
170
|
+
- Index values for HanimHumanoid skin IndexedFaceSet, skinCoord and skinNormal nodes must all be consistently defined together with HAnimJoint HAnimSegment and HAnimDisplacer nodes for proper skin animation.
|
|
131
171
|
|
|
132
172
|
### SFBool [in, out] **visible** TRUE
|
|
133
173
|
|
|
134
174
|
Whether or not renderable content within this node is visually displayed.
|
|
135
175
|
|
|
136
|
-
####
|
|
176
|
+
#### Hints
|
|
137
177
|
|
|
138
|
-
- The visible field has no effect on animation behaviors, event passing or other non-visual characteristics.
|
|
139
|
-
- Content must be visible to be collidable and to be pickable.
|
|
178
|
+
- The *visible* field has no effect on animation behaviors, event passing or other non-visual characteristics.
|
|
179
|
+
- Content must be *visible* to be collidable and to be pickable.
|
|
140
180
|
|
|
141
181
|
### SFBool [in, out] **bboxDisplay** FALSE
|
|
142
182
|
|
|
@@ -150,41 +190,67 @@ Whether to display bounding box for associated geometry, aligned with world coor
|
|
|
150
190
|
|
|
151
191
|
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.
|
|
152
192
|
|
|
153
|
-
####
|
|
193
|
+
#### Hints
|
|
154
194
|
|
|
155
195
|
- Can be useful for collision computations or inverse-kinematics (IK) engines.
|
|
196
|
+
- Precomputation and inclusion of bounding box information can speed up the initialization of large detailed models, with a corresponding cost of increased file size.
|
|
197
|
+
- [X3D Architecture, 10.2.2 Bounding boxes](https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#BoundingBoxes){:target="_blank"}
|
|
198
|
+
- [X3D Architecture, 10.3.1 X3DBoundedObject](https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#X3DBoundedObject){:target="_blank"}
|
|
156
199
|
|
|
157
200
|
### SFVec3f [ ] **bboxCenter** 0 0 0 <small>(-∞,∞)</small>
|
|
158
201
|
|
|
159
|
-
Bounding box center
|
|
202
|
+
Bounding box center accompanies bboxSize and provides an optional hint for bounding box position offset from origin of local coordinate system.
|
|
203
|
+
|
|
204
|
+
#### Hints
|
|
205
|
+
|
|
206
|
+
- Precomputation and inclusion of bounding box information can speed up the initialization of large detailed models, with a corresponding cost of increased file size.
|
|
207
|
+
- [X3D Architecture, 10.2.2 Bounding boxes](https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#BoundingBoxes){:target="_blank"}
|
|
208
|
+
- [X3D Architecture, 10.3.1 X3DBoundedObject](https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#X3DBoundedObject){:target="_blank"}
|
|
160
209
|
|
|
161
210
|
### MFNode [in] **addChildren**
|
|
162
211
|
|
|
163
|
-
Input field addChildren
|
|
212
|
+
Input field *addChildren*.
|
|
164
213
|
|
|
165
214
|
### MFNode [in] **removeChildren**
|
|
166
215
|
|
|
167
|
-
Input field removeChildren
|
|
216
|
+
Input field *removeChildren*.
|
|
168
217
|
|
|
169
218
|
### MFNode [in, out] **children** [ ] <small>[HAnimJoint,HAnimSegment,HAnimSite]</small>
|
|
170
219
|
|
|
171
|
-
|
|
220
|
+
Grouping nodes contain an ordered list of *children* nodes.
|
|
221
|
+
|
|
222
|
+
#### Hints
|
|
223
|
+
|
|
224
|
+
- Each grouping node defines a coordinate space for its *children*, relative to the coordinate space of its parent node. Thus transformations accumulate down the scene graph hierarchy.
|
|
225
|
+
- Place any geometry for this HAnimJoint in the child HAnimSegment, wrapped within a Transform having the same translation value as the current HAnimJoint center value.
|
|
226
|
+
- InputOnly MFNode addChildren field can append new X3DChildNode nodes via a ROUTE connection, duplicate input nodes (i.e. matching DEF, USE values) are ignored.
|
|
227
|
+
- InputOnly MFNode removeChildren field can remove nodes from the *children* list, unrecognized input nodes (i.e. nonmatching DEF, USE values) are ignored.
|
|
228
|
+
- [X3D Architecture 10.2.1 Grouping and *children* node types](https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#GroupingAndChildrenNodes){:target="_blank"}
|
|
229
|
+
|
|
230
|
+
#### Warning
|
|
231
|
+
|
|
232
|
+
- HAnimJoint can only contain HAnimJoint or HAnimSegment nodes (each having default `containerField='children').`
|
|
172
233
|
|
|
173
|
-
##
|
|
234
|
+
## Advisories
|
|
174
235
|
|
|
175
236
|
### Hints
|
|
176
237
|
|
|
177
|
-
- HAnimJoint may only
|
|
178
|
-
- HAnimJoint can only contain nodes HAnimJoint, HAnimSegment, HAnimSite with containerField='children' and also HAnimDisplacer nodes with containerField='displacers'.
|
|
238
|
+
- HAnimJoint may only get inserted as one (or more) root nodes of HAnimHumanoid skeleton field, as a child of another HAnimJoint node, or as a USE node in the HAnimHumanoid joints field.
|
|
179
239
|
- Visualization shapes for HAnimJoint nodes can be placed in child HAnimSegment or HAnimSite nodes.
|
|
180
|
-
-
|
|
240
|
+
- [HAnim Specification](https://www.web3d.org/documents/specifications/19774/V2.0){:target="_blank"}
|
|
241
|
+
- [HAnim Specification part 1, Joint](https://www.web3d.org/documents/specifications/19774/V2.0/Architecture/ObjectInterfaces.html#Joint){:target="_blank"}
|
|
242
|
+
- [X3D for Advanced Modeling (X3D4AM) slideset](https://x3dgraphics.com/slidesets/X3dForAdvancedModeling/HumanoidAnimation.pdf){:target="_blank"}
|
|
243
|
+
- [HAnim2 default values for Joint and Site (feature point) nodes](https://www.web3d.org/x3d/content/examples/HumanoidAnimation/HAnim2DefaultValuesJointsFeaturePoints.txt){:target="_blank"}
|
|
181
244
|
|
|
182
|
-
###
|
|
245
|
+
### Warnings
|
|
183
246
|
|
|
247
|
+
- HAnimJoint can only contain certain nodes: HAnimJoint, HAnimSegment, HAnimSite (with `containerField='children')` and also HAnimDisplacer nodes (with `containerField='displacers').`
|
|
184
248
|
- An HAnimJoint may not be a child of an HAnimSegment.
|
|
249
|
+
- Requires X3D `profile='Full'` or else include `<component name='HAnim' level='1'/>`
|
|
250
|
+
- For X3D3 HAnim1, spelling of component name is 'H-Anim' (including hyphen).
|
|
251
|
+
- For X3D3 HAnim1, spelling of component name is 'H-Anim' (including hyphen).
|
|
252
|
+
- The number of contained \<HAnimJoint USE='*' `containerField='joints'/>` nodes at top level of HAnimHumanoid needs to match the number of corresponding HAnimJoint node instances found within the preceding skeleton hierarchy.
|
|
185
253
|
|
|
186
|
-
##
|
|
254
|
+
## See Also
|
|
187
255
|
|
|
188
|
-
- [X3D Specification of HAnimJoint](https://www.web3d.org/documents/specifications/19775-1/V4.0/Part01/components/hanim.html#HAnimJoint){:target="_blank"}
|
|
189
|
-
- [HAnim Specification](https://www.web3d.org/documents/specifications/19774-1/V2.0/HAnim/HAnimArchitecture.html){:target="_blank"}
|
|
190
|
-
- [HAnim Specification, Joint](https://www.web3d.org/documents/specifications/19774-1/V2.0/HAnim/ObjectInterfaces.html#Joint){:target="_blank"}
|
|
256
|
+
- [X3D Specification of HAnimJoint node](https://www.web3d.org/documents/specifications/19775-1/V4.0/Part01/components/hanim.html#HAnimJoint){:target="_blank"}
|
|
@@ -13,64 +13,174 @@ tags: [HAnimMotion, HAnim]
|
|
|
13
13
|
|
|
14
14
|
## Overview
|
|
15
15
|
|
|
16
|
-
HAnimMotion
|
|
16
|
+
An HAnimMotion node supports discrete frame-by-frame playback for HAnim motion data animation. Design characteristics include integration with HAnim figure data and HAnimJoint nodes, animation control, and playback of raw motion data.
|
|
17
17
|
|
|
18
|
-
The HAnimMotion node belongs to the **HAnim** component and its default container field is *children.* It is available
|
|
18
|
+
The HAnimMotion node belongs to the **HAnim** component and its default container field is *children.* It is available from X3D version 4.0 or higher.
|
|
19
19
|
|
|
20
20
|
## Hierarchy
|
|
21
21
|
|
|
22
22
|
```
|
|
23
23
|
+ X3DNode
|
|
24
|
+
+ X3DChildNode
|
|
25
|
+
+ HAnimMotion
|
|
24
26
|
```
|
|
25
27
|
|
|
26
28
|
## Fields
|
|
27
29
|
|
|
28
30
|
### SFNode [in, out] **metadata** NULL <small>[X3DMetadataObject]</small>
|
|
29
31
|
|
|
30
|
-
|
|
32
|
+
Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.
|
|
33
|
+
|
|
34
|
+
#### Hint
|
|
35
|
+
|
|
36
|
+
- [X3D Architecture 7.2.4 Metadata](https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata){:target="_blank"}
|
|
31
37
|
|
|
32
38
|
### SFString [in, out] **description** ""
|
|
33
39
|
|
|
34
|
-
Author-provided prose that describes intended purpose of
|
|
40
|
+
Author-provided prose that describes intended purpose of this node.
|
|
35
41
|
|
|
36
42
|
#### Hint
|
|
37
43
|
|
|
38
|
-
- Many XML tools substitute XML character references for special characters automatically if needed within an attribute value (such as &#38; for & ampersand character, or &#34; for " quotation-mark character).
|
|
44
|
+
- Many XML tools substitute XML character references for special characters automatically if needed within an attribute value (such as &#38; for & ampersand character, or &#34; for " quotation-mark character).
|
|
39
45
|
|
|
40
46
|
### SFBool [in, out] **enabled** TRUE
|
|
41
47
|
|
|
48
|
+
Enables/disables node operation.
|
|
49
|
+
|
|
42
50
|
### SFBool [in] **next**
|
|
43
51
|
|
|
52
|
+
Send *next* output value in keyValue array, and reset internal fraction field to match corresponding value in key array.
|
|
53
|
+
|
|
54
|
+
#### Hint
|
|
55
|
+
|
|
56
|
+
- This input event will "wrap around" boundary of frame array, i.e. continue from endFrame next to startFrame if necessary.
|
|
57
|
+
|
|
58
|
+
#### Warning
|
|
59
|
+
|
|
60
|
+
- It is an error to define this transient inputOnly field in an X3D file, instead only use it a destination for ROUTE events.
|
|
61
|
+
|
|
44
62
|
### SFBool [in] **previous**
|
|
45
63
|
|
|
64
|
+
Send *previous* output value in keyValue array, and reset internal fraction field to match corresponding value in key array.
|
|
65
|
+
|
|
66
|
+
#### Hint
|
|
67
|
+
|
|
68
|
+
- This input event will "wrap around" boundary of frame array, i.e. continue from startFrame next to endFrame if necessary.
|
|
69
|
+
|
|
70
|
+
#### Warning
|
|
71
|
+
|
|
72
|
+
- It is an error to define this transient inputOnly field in an X3D file, instead only use it a destination for ROUTE events.
|
|
73
|
+
|
|
74
|
+
### SFInt32 [in, out] **startFrame** 0 <small>[0,∞)</small>
|
|
75
|
+
|
|
76
|
+
*startFrame* indicates initial index of animated frame. Note that *startFrame* can precede, equal or follow endFrame.
|
|
77
|
+
|
|
78
|
+
#### Hint
|
|
79
|
+
|
|
80
|
+
- *startFrame* starts at 0 and is no greater than (frameCount - 1).
|
|
81
|
+
|
|
82
|
+
### SFInt32 [in, out] **endFrame** 0 <small>[0,∞)</small>
|
|
83
|
+
|
|
84
|
+
*endFrame* indicates final index of animated frame. Note that *endFrame* can precede, equal or follow *endFrame*. The default *endFrame* value is reset to (frameCount - 1) whenever frameCount is changed.
|
|
85
|
+
|
|
86
|
+
#### Hint
|
|
87
|
+
|
|
88
|
+
- *endFrame* starts at 0 and is no greater than (frameCount - 1).
|
|
89
|
+
|
|
46
90
|
### SFTime [in, out] **frameDuration** 0.1 <small>(0,∞)</small>
|
|
47
91
|
|
|
92
|
+
*frameDuration* specifies the duration of each frame in seconds.
|
|
93
|
+
|
|
48
94
|
### SFInt32 [in, out] **frameIncrement** 1 <small>(-∞,∞)</small>
|
|
49
95
|
|
|
96
|
+
*frameIncrement* field controls whether playback direction is forwards or backwards, and also whether frames are skipped (for example, subsampled replay). For a single animation step, the next frameIndex value equals (frameIndex + *frameIncrement*) modulo frameCount.
|
|
97
|
+
|
|
98
|
+
#### Hint
|
|
99
|
+
|
|
100
|
+
- Note that setting *frameIncrement* to 0 prevents automatic advancement of frameIndex and pauses animation of HAnimMotion node.
|
|
101
|
+
|
|
50
102
|
### SFInt32 [in, out] **frameIndex** 0 <small>[0,∞)</small>
|
|
51
103
|
|
|
104
|
+
*frameIndex* indicates index of current frame. Note that *frameIndex* can be modified whether the Motion node is enabled or not, and becomes effective when the next animation cycle occurs. Thus the *frameIndex* value indicates the frame currently (or next) being processed.
|
|
105
|
+
|
|
106
|
+
#### Hint
|
|
107
|
+
|
|
108
|
+
- *frameIndex* starts at 0 and is no greater than (frameCount - 1). Values less than 0 are reset as 0. Values greater or equal to frameCount are stored as (frameCount - 1). Thus the value of *frameIndex* shall be greater than or equal to zero, and less than frameCount.
|
|
109
|
+
|
|
52
110
|
### SFBool [in, out] **loop** FALSE
|
|
53
111
|
|
|
54
|
-
|
|
112
|
+
Repeat indefinitely when *loop*=true, repeat only once when *loop*=false.
|
|
55
113
|
|
|
56
114
|
### MFBool [in, out] **channelsEnabled** [ ]
|
|
57
115
|
|
|
116
|
+
Boolean values for each channel indicating whether enabled.
|
|
117
|
+
|
|
118
|
+
### SFString [in, out] **channels** ""
|
|
119
|
+
|
|
120
|
+
List of number of *channels* for transformation, followed by transformation type of each channel of data. Each value is space or comma separated.
|
|
121
|
+
|
|
122
|
+
#### Hint
|
|
123
|
+
|
|
124
|
+
- *channels* are enabled by default, unless otherwise indicated by channelsEnabled field.
|
|
125
|
+
|
|
58
126
|
### SFString [in, out] **joints** ""
|
|
59
127
|
|
|
128
|
+
*joints* field lists names of *joints* that raw motion data is to be applied to. The number and order of the names in the *joints* field shall match the number and order of the channels field information, and the number and order of the sets of values in the values field for each frame of the animation.
|
|
129
|
+
|
|
130
|
+
#### Hints
|
|
131
|
+
|
|
132
|
+
- Values are space or comma separated.
|
|
133
|
+
- The joint name IGNORED shall be used for channel of motion data that is not used for any joint.
|
|
134
|
+
|
|
60
135
|
### SFInt32 [in, out] **loa** -1 <small>[-1,4]</small>
|
|
61
136
|
|
|
62
|
-
|
|
137
|
+
Level Of Articulation 0..4 indicates complexity and detail of joints for given humanoid skeletal hierarchy.
|
|
63
138
|
|
|
64
|
-
|
|
139
|
+
#### Hints
|
|
140
|
+
|
|
141
|
+
- *loa* value of -1 indicates that no LOA conformance is provided.
|
|
142
|
+
- [Humanoid Animation (HAnim) Specification, Part 1 Architecture, 4.8.4 Levels of articulation](https://www.web3d.org/documents/specifications/19774/V2.0/Architecture/concepts.html#LevelsOfArticulation){:target="_blank"}
|
|
65
143
|
|
|
66
144
|
### MFFloat [in, out] **values** [ ] <small>(-∞,∞)</small>
|
|
67
145
|
|
|
146
|
+
*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.
|
|
147
|
+
|
|
68
148
|
### SFTime [out] **cycleTime**
|
|
69
149
|
|
|
150
|
+
*cycleTime* sends a time event at initial starting time and at beginning of each new cycle.
|
|
151
|
+
|
|
152
|
+
#### Hint
|
|
153
|
+
|
|
154
|
+
- This event is useful for synchronization with other time-based animation objects.
|
|
155
|
+
|
|
156
|
+
#### Warning
|
|
157
|
+
|
|
158
|
+
- It is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events.
|
|
159
|
+
|
|
70
160
|
### SFTime [out] **elapsedTime**
|
|
71
161
|
|
|
162
|
+
*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.
|
|
163
|
+
|
|
164
|
+
#### Hint
|
|
165
|
+
|
|
166
|
+
- *elapsedTime* is a nonnegative SFTime duration interval, not an absolute clock time.
|
|
167
|
+
|
|
168
|
+
#### Warning
|
|
169
|
+
|
|
170
|
+
- It is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events.
|
|
171
|
+
|
|
72
172
|
### SFInt32 [out] **frameCount**
|
|
73
173
|
|
|
74
|
-
|
|
174
|
+
*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.
|
|
175
|
+
|
|
176
|
+
## Advisories
|
|
177
|
+
|
|
178
|
+
### Hints
|
|
179
|
+
|
|
180
|
+
- [HAnim Specification](https://www.web3d.org/documents/specifications/19774/V2.0){:target="_blank"}
|
|
181
|
+
- HAnim Specification, clause 6.2 Introduction to Motion objectshttps://www.web3d.org/documents/specifications/19774/V2.0/MotionDataAnimation/MotionNodes.html#IntroductionToMotionNodes
|
|
182
|
+
- [HAnim Specification part 2, clause 6.6 Example Usage of Motion object](https://www.web3d.org/documents/specifications/19774/V2.0/MotionDataAnimation/MotionNodes.html#MotionObjectExample){:target="_blank"}
|
|
183
|
+
|
|
184
|
+
## See Also
|
|
75
185
|
|
|
76
|
-
- [X3D Specification of HAnimMotion](https://www.web3d.org/documents/specifications/19775-1/V4.0/Part01/components/hanim.html#HAnimMotion){:target="_blank"}
|
|
186
|
+
- [X3D Specification of HAnimMotion node](https://www.web3d.org/documents/specifications/19775-1/V4.0/Part01/components/hanim.html#HAnimMotion){:target="_blank"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: HAnimSegment
|
|
3
|
-
date:
|
|
3
|
+
date: 2023-01-07
|
|
4
4
|
nav: components-HAnim
|
|
5
5
|
categories: [components, HAnim]
|
|
6
6
|
tags: [HAnimSegment, HAnim]
|
|
@@ -13,9 +13,9 @@ tags: [HAnimSegment, HAnim]
|
|
|
13
13
|
|
|
14
14
|
## Overview
|
|
15
15
|
|
|
16
|
-
|
|
16
|
+
HAnimSegment node contains Shape geometry for each body segment, providing a visual representation of the skeleton segment. Parent/child translation and rotation relationships are defined in ancestor/descendant HAnimSegment nodes. HAnimSegment contains Coordinate or CoordinateDouble with `containerField='coord',` HAnimDisplacer with `containerField='displacers'` and Shape or grouping nodes with `containerField='children'.`
|
|
17
17
|
|
|
18
|
-
The HAnimSegment node belongs to the **HAnim** component and its default container field is *children.* It is available
|
|
18
|
+
The HAnimSegment node belongs to the **HAnim** component and its default container field is *children.* It is available from X3D version 3.0 or higher.
|
|
19
19
|
|
|
20
20
|
## Hierarchy
|
|
21
21
|
|
|
@@ -30,36 +30,45 @@ The HAnimSegment node belongs to the **HAnim** component and its default contain
|
|
|
30
30
|
|
|
31
31
|
### SFNode [in, out] **metadata** NULL <small>[X3DMetadataObject]</small>
|
|
32
32
|
|
|
33
|
-
|
|
33
|
+
Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.
|
|
34
|
+
|
|
35
|
+
#### Hint
|
|
36
|
+
|
|
37
|
+
- [X3D Architecture 7.2.4 Metadata](https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata){:target="_blank"}
|
|
34
38
|
|
|
35
39
|
### SFString [in, out] **description** ""
|
|
36
40
|
|
|
37
|
-
Author-provided prose that describes intended purpose of
|
|
41
|
+
Author-provided prose that describes intended purpose of this node.
|
|
38
42
|
|
|
39
43
|
#### Hint
|
|
40
44
|
|
|
41
|
-
- Many XML tools substitute XML character references for special characters automatically if needed within an attribute value (such as &#38; for & ampersand character, or &#34; for " quotation-mark character).
|
|
45
|
+
- Many XML tools substitute XML character references for special characters automatically if needed within an attribute value (such as &#38; for & ampersand character, or &#34; for " quotation-mark character).
|
|
42
46
|
|
|
43
47
|
### SFString [in, out] **name** ""
|
|
44
48
|
|
|
45
|
-
Unique name attribute must be defined so that HAnimSegment node can be identified at run time for animation purposes.
|
|
49
|
+
Unique *name* attribute must be defined so that HAnimSegment node can be identified at run time for animation purposes.
|
|
46
50
|
|
|
47
|
-
####
|
|
51
|
+
#### Hints
|
|
48
52
|
|
|
49
|
-
- For
|
|
53
|
+
- For abitrary humanoids, HAnimSegment *name* can describe geometry between parent HAnimJoint and sibling HAnimJoint nodes (for example LeftHip_to_LeftKnee).
|
|
54
|
+
- [HAnim Specification part 1, Humanoid Joint-Segment Hierarchy](https://www.web3d.org/documents/specifications/19774/V2.0/Architecture/concepts.html#Hierarchy){:target="_blank"}
|
|
55
|
+
- Well-defined names can simplify design and debugging through improved author understanding.
|
|
56
|
+
- [X3D Scene Authoring Hints, Naming Conventions](https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#NamingConventions){:target="_blank"}
|
|
57
|
+
- [HAnim2 Names HAnim1 Alias Tables](https://www.web3d.org/x3d/content/examples/HumanoidAnimation/HAnim2NameHAnim1AliasTables.txt){:target="_blank"}
|
|
50
58
|
|
|
51
|
-
####
|
|
59
|
+
#### Warnings
|
|
52
60
|
|
|
53
|
-
-
|
|
61
|
+
- *name* prefix must match ancestor HAnimHumanoid *name* followed by underscore character, if more than one humanoid appears within a scene file. For example, 'Nancy_' prepended before location *name*.
|
|
62
|
+
- *name* field is not included if this instance is a USE node, in order to avoid potential mismatches. Examples: sacrum pelvis l_thigh l_calf etc. as listed in HAnim Specification.
|
|
54
63
|
|
|
55
|
-
|
|
64
|
+
### SFFloat [in, out] **mass** 0 <small>[0,∞)</small>
|
|
56
65
|
|
|
57
|
-
|
|
58
|
-
- [HAnim Specification, Humanoid Joint-Segment Hierarchy](https://www.web3d.org/documents/specifications/19774-1/V2.0/HAnim/concepts.html#Hierarchy){:target="_blank"}
|
|
66
|
+
Total *mass* of the segment, 0 if not available, defined in *mass* base units (default is kilograms).
|
|
59
67
|
|
|
60
|
-
|
|
68
|
+
#### Hints
|
|
61
69
|
|
|
62
|
-
|
|
70
|
+
- [Kilogram](https://en.wikipedia.org/wiki/Kilogram){:target="_blank"}
|
|
71
|
+
- [X3D Architecture 4.3.6 Standard units and coordinate system](https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/concepts.html#Standardunitscoordinates){:target="_blank"}
|
|
63
72
|
|
|
64
73
|
### SFVec3f [in, out] **centerOfMass** 0 0 0 <small>(-∞,∞)</small>
|
|
65
74
|
|
|
@@ -71,20 +80,28 @@ Location within segment of center of mass.
|
|
|
71
80
|
|
|
72
81
|
### MFNode [in, out] **displacers** [ ] <small>[HAnimDisplacer]</small>
|
|
73
82
|
|
|
74
|
-
|
|
83
|
+
The *displacers* field stores HAnimDisplacer objects for a particular HAnimSegment object.
|
|
84
|
+
|
|
85
|
+
#### Warning
|
|
86
|
+
|
|
87
|
+
- Index values for HanimHumanoid skin IndexedFaceSet, skinCoord and skinNormal nodes must all be consistently defined together with HAnimJoint HAnimSegment and HAnimDisplacer nodes for proper skin animation.
|
|
75
88
|
|
|
76
89
|
### SFNode [in, out] **coord** NULL <small>[X3DCoordinateNode]</small>
|
|
77
90
|
|
|
78
|
-
|
|
91
|
+
The *coord* field is used for HAnimSegment objects that have deformable meshes and shall contain coordinates referenced from the IndexedFaceSet for the paarent HAnimSegment object. The coordinates are given the same name as the HAnim Segment object, but with "_coords" appended to the name (for example, "skull_coords").
|
|
92
|
+
|
|
93
|
+
#### Warning
|
|
94
|
+
|
|
95
|
+
- Index values for HanimHumanoid skin IndexedFaceSet, skinCoord and skinNormal nodes must all be consistently defined together with HAnimJoint HAnimSegment and HAnimDisplacer nodes for proper skin animation.
|
|
79
96
|
|
|
80
97
|
### SFBool [in, out] **visible** TRUE
|
|
81
98
|
|
|
82
99
|
Whether or not renderable content within this node is visually displayed.
|
|
83
100
|
|
|
84
|
-
####
|
|
101
|
+
#### Hints
|
|
85
102
|
|
|
86
|
-
- The visible field has no effect on animation behaviors, event passing or other non-visual characteristics.
|
|
87
|
-
- Content must be visible to be collidable and to be pickable.
|
|
103
|
+
- The *visible* field has no effect on animation behaviors, event passing or other non-visual characteristics.
|
|
104
|
+
- Content must be *visible* to be collidable and to be pickable.
|
|
88
105
|
|
|
89
106
|
### SFBool [in, out] **bboxDisplay** FALSE
|
|
90
107
|
|
|
@@ -98,35 +115,58 @@ Whether to display bounding box for associated geometry, aligned with world coor
|
|
|
98
115
|
|
|
99
116
|
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.
|
|
100
117
|
|
|
101
|
-
####
|
|
118
|
+
#### Hints
|
|
102
119
|
|
|
103
120
|
- Can be useful for collision computations or inverse-kinematics (IK) engines.
|
|
121
|
+
- Precomputation and inclusion of bounding box information can speed up the initialization of large detailed models, with a corresponding cost of increased file size.
|
|
122
|
+
- [X3D Architecture, 10.2.2 Bounding boxes](https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#BoundingBoxes){:target="_blank"}
|
|
123
|
+
- [X3D Architecture, 10.3.1 X3DBoundedObject](https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#X3DBoundedObject){:target="_blank"}
|
|
104
124
|
|
|
105
125
|
### SFVec3f [ ] **bboxCenter** 0 0 0 <small>(-∞,∞)</small>
|
|
106
126
|
|
|
107
|
-
Bounding box center
|
|
127
|
+
Bounding box center accompanies bboxSize and provides an optional hint for bounding box position offset from origin of local coordinate system.
|
|
128
|
+
|
|
129
|
+
#### Hints
|
|
130
|
+
|
|
131
|
+
- Precomputation and inclusion of bounding box information can speed up the initialization of large detailed models, with a corresponding cost of increased file size.
|
|
132
|
+
- [X3D Architecture, 10.2.2 Bounding boxes](https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#BoundingBoxes){:target="_blank"}
|
|
133
|
+
- [X3D Architecture, 10.3.1 X3DBoundedObject](https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#X3DBoundedObject){:target="_blank"}
|
|
108
134
|
|
|
109
135
|
### MFNode [in] **addChildren**
|
|
110
136
|
|
|
111
|
-
Input field addChildren
|
|
137
|
+
Input field *addChildren*.
|
|
112
138
|
|
|
113
139
|
### MFNode [in] **removeChildren**
|
|
114
140
|
|
|
115
|
-
Input field removeChildren
|
|
141
|
+
Input field *removeChildren*.
|
|
116
142
|
|
|
117
143
|
### MFNode [in, out] **children** [ ] <small>[X3DChildNode]</small>
|
|
118
144
|
|
|
119
|
-
|
|
145
|
+
Grouping nodes contain an ordered list of *children* nodes.
|
|
146
|
+
|
|
147
|
+
#### Hints
|
|
148
|
+
|
|
149
|
+
- Each grouping node defines a coordinate space for its *children*, relative to the coordinate space of its parent node. Thus transformations accumulate down the scene graph hierarchy.
|
|
150
|
+
- Place any geometry for parent HAnimJoint within a child Transform having the same translation value as the parent HAnimJoint center value.
|
|
151
|
+
- InputOnly MFNode addChildren field can append new X3DChildNode nodes via a ROUTE connection, duplicate input nodes (i.e. matching DEF, USE values) are ignored.
|
|
152
|
+
- InputOnly MFNode removeChildren field can remove nodes from the *children* list, unrecognized input nodes (i.e. nonmatching DEF, USE values) are ignored.
|
|
153
|
+
- [X3D Architecture 10.2.1 Grouping and *children* node types](https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#GroupingAndChildrenNodes){:target="_blank"}
|
|
120
154
|
|
|
121
|
-
##
|
|
155
|
+
## Advisories
|
|
122
156
|
|
|
123
157
|
### Hints
|
|
124
158
|
|
|
125
159
|
- HAnimSegment displays geometry between parent HAnimJoint and sibling HAnimJoint nodes.
|
|
126
|
-
-
|
|
160
|
+
- [HAnim Specification](https://www.web3d.org/documents/specifications/19774/V2.0){:target="_blank"}
|
|
161
|
+
- [HAnim Specification part 1, Segment](https://www.web3d.org/documents/specifications/19774/V2.0/Architecture/ObjectInterfaces.html#Segment){:target="_blank"}
|
|
162
|
+
- [X3D for Advanced Modeling (X3D4AM) slideset](https://x3dgraphics.com/slidesets/X3dForAdvancedModeling/HumanoidAnimation.pdf){:target="_blank"}
|
|
163
|
+
|
|
164
|
+
### Warnings
|
|
165
|
+
|
|
166
|
+
- Requires X3D `profile='Full'` or else include `<component name='HAnim' level='1'/>`
|
|
167
|
+
- For X3D3 HAnim1, spelling of component name is 'H-Anim' (including hyphen).
|
|
168
|
+
- The number of contained \<HAnimSegment USE='*' `containerField='segments'/>` nodes at top level of HAnimHumanoid needs to match the number of corresponding HAnimJoint node instances found within the preceding skeleton hierarchy.
|
|
127
169
|
|
|
128
|
-
##
|
|
170
|
+
## See Also
|
|
129
171
|
|
|
130
|
-
- [X3D Specification of HAnimSegment](https://www.web3d.org/documents/specifications/19775-1/V4.0/Part01/components/hanim.html#HAnimSegment){:target="_blank"}
|
|
131
|
-
- [HAnim Specification](https://www.web3d.org/documents/specifications/19774-1/V2.0/HAnim/HAnimArchitecture.html){:target="_blank"}
|
|
132
|
-
- [HAnim Specification, Segment](https://www.web3d.org/documents/specifications/19774-1/V2.0/HAnim/ObjectInterfaces.html#Segment){:target="_blank"}
|
|
172
|
+
- [X3D Specification of HAnimSegment node](https://www.web3d.org/documents/specifications/19775-1/V4.0/Part01/components/hanim.html#HAnimSegment){:target="_blank"}
|