x_ite 8.8.7 → 8.9.0

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.
Files changed (341) hide show
  1. package/Makefile +6 -0
  2. package/build/docs/nodes.pl +434 -0
  3. package/dist/assets/components/Annotation.js +13 -13
  4. package/dist/assets/components/Annotation.min.js +1 -1
  5. package/dist/assets/components/CADGeometry.js +13 -13
  6. package/dist/assets/components/CADGeometry.min.js +1 -1
  7. package/dist/assets/components/CubeMapTexturing.js +26 -26
  8. package/dist/assets/components/CubeMapTexturing.min.js +1 -1
  9. package/dist/assets/components/DIS.js +14 -14
  10. package/dist/assets/components/DIS.min.js +1 -1
  11. package/dist/assets/components/EventUtilities.js +9 -9
  12. package/dist/assets/components/EventUtilities.min.js +1 -1
  13. package/dist/assets/components/Geometry2D.js +19 -19
  14. package/dist/assets/components/Geometry2D.min.js +1 -1
  15. package/dist/assets/components/Geospatial.js +33 -33
  16. package/dist/assets/components/Geospatial.min.js +1 -1
  17. package/dist/assets/components/HAnim.js +18 -18
  18. package/dist/assets/components/HAnim.min.js +1 -1
  19. package/dist/assets/components/KeyDeviceSensor.js +8 -8
  20. package/dist/assets/components/KeyDeviceSensor.min.js +1 -1
  21. package/dist/assets/components/Layout.js +27 -27
  22. package/dist/assets/components/Layout.min.js +1 -1
  23. package/dist/assets/components/NURBS.js +24 -24
  24. package/dist/assets/components/NURBS.min.js +1 -1
  25. package/dist/assets/components/ParticleSystems.js +24 -24
  26. package/dist/assets/components/ParticleSystems.min.js +1 -1
  27. package/dist/assets/components/Picking.js +18 -18
  28. package/dist/assets/components/Picking.min.js +1 -1
  29. package/dist/assets/components/RigidBodyPhysics.js +18 -18
  30. package/dist/assets/components/RigidBodyPhysics.min.js +1 -1
  31. package/dist/assets/components/Scripting.js +37 -37
  32. package/dist/assets/components/Scripting.min.js +1 -1
  33. package/dist/assets/components/Text.js +24 -24
  34. package/dist/assets/components/Text.min.js +1 -1
  35. package/dist/assets/components/TextureProjector.js +14 -14
  36. package/dist/assets/components/TextureProjector.min.js +1 -1
  37. package/dist/assets/components/Texturing3D.js +30 -30
  38. package/dist/assets/components/Texturing3D.min.js +1 -1
  39. package/dist/assets/components/VolumeRendering.js +18 -18
  40. package/dist/assets/components/VolumeRendering.min.js +1 -1
  41. package/dist/assets/components/X_ITE.js +9 -9
  42. package/dist/assets/components/X_ITE.min.js +1 -1
  43. package/dist/x_ite.css +1 -1
  44. package/dist/x_ite.js +965 -96
  45. package/dist/x_ite.min.js +1 -1
  46. package/dist/x_ite.zip +0 -0
  47. package/docs/_config.yml +2 -2
  48. package/docs/_posts/components/CADGeometry/CADAssembly.md +45 -19
  49. package/docs/_posts/components/CADGeometry/CADFace.md +44 -18
  50. package/docs/_posts/components/CADGeometry/CADLayer.md +48 -19
  51. package/docs/_posts/components/CADGeometry/CADPart.md +54 -24
  52. package/docs/_posts/components/CADGeometry/IndexedQuadSet.md +55 -26
  53. package/docs/_posts/components/CADGeometry/QuadSet.md +52 -20
  54. package/docs/_posts/components/Core/MetadataBoolean.md +29 -18
  55. package/docs/_posts/components/Core/MetadataDouble.md +31 -16
  56. package/docs/_posts/components/Core/MetadataFloat.md +31 -16
  57. package/docs/_posts/components/Core/MetadataInteger.md +31 -16
  58. package/docs/_posts/components/Core/MetadataSet.md +30 -15
  59. package/docs/_posts/components/Core/MetadataString.md +31 -16
  60. package/docs/_posts/components/Core/WorldInfo.md +21 -10
  61. package/docs/_posts/components/CubeMapTexturing/ComposedCubeMapTexture.md +30 -25
  62. package/docs/_posts/components/CubeMapTexturing/GeneratedCubeMapTexture.md +19 -10
  63. package/docs/_posts/components/CubeMapTexturing/ImageCubeMapTexture.md +22 -18
  64. package/docs/_posts/components/DIS/DISEntityManager.md +40 -15
  65. package/docs/_posts/components/DIS/DISEntityTypeMapping.md +34 -25
  66. package/docs/_posts/components/DIS/EspduTransform.md +174 -41
  67. package/docs/_posts/components/DIS/ReceiverPdu.md +77 -27
  68. package/docs/_posts/components/DIS/SignalPdu.md +82 -28
  69. package/docs/_posts/components/DIS/TransmitterPdu.md +86 -36
  70. package/docs/_posts/components/EnvironmentalEffects/Background.md +80 -39
  71. package/docs/_posts/components/EnvironmentalEffects/Fog.md +39 -18
  72. package/docs/_posts/components/EnvironmentalEffects/FogCoordinate.md +10 -6
  73. package/docs/_posts/components/EnvironmentalEffects/LocalFog.md +21 -14
  74. package/docs/_posts/components/EnvironmentalEffects/TextureBackground.md +83 -31
  75. package/docs/_posts/components/EnvironmentalSensor/ProximitySensor.md +36 -8
  76. package/docs/_posts/components/EnvironmentalSensor/TransformSensor.md +31 -7
  77. package/docs/_posts/components/EnvironmentalSensor/VisibilitySensor.md +23 -7
  78. package/docs/_posts/components/EventUtilities/BooleanFilter.md +23 -10
  79. package/docs/_posts/components/EventUtilities/BooleanSequencer.md +46 -17
  80. package/docs/_posts/components/EventUtilities/BooleanToggle.md +29 -8
  81. package/docs/_posts/components/EventUtilities/BooleanTrigger.md +24 -7
  82. package/docs/_posts/components/EventUtilities/IntegerSequencer.md +46 -17
  83. package/docs/_posts/components/EventUtilities/IntegerTrigger.md +34 -9
  84. package/docs/_posts/components/EventUtilities/TimeTrigger.md +30 -9
  85. package/docs/_posts/components/Followers/ColorChaser.md +35 -11
  86. package/docs/_posts/components/Followers/ColorDamper.md +32 -12
  87. package/docs/_posts/components/Followers/CoordinateChaser.md +33 -9
  88. package/docs/_posts/components/Followers/CoordinateDamper.md +30 -10
  89. package/docs/_posts/components/Followers/OrientationChaser.md +34 -10
  90. package/docs/_posts/components/Followers/OrientationDamper.md +31 -11
  91. package/docs/_posts/components/Followers/PositionChaser.md +33 -9
  92. package/docs/_posts/components/Followers/PositionChaser2D.md +33 -9
  93. package/docs/_posts/components/Followers/PositionDamper.md +30 -10
  94. package/docs/_posts/components/Followers/PositionDamper2D.md +30 -10
  95. package/docs/_posts/components/Followers/ScalarChaser.md +33 -9
  96. package/docs/_posts/components/Followers/ScalarDamper.md +30 -10
  97. package/docs/_posts/components/Followers/TexCoordChaser2D.md +33 -9
  98. package/docs/_posts/components/Followers/TexCoordDamper2D.md +30 -10
  99. package/docs/_posts/components/Geometry2D/Arc2D.md +39 -14
  100. package/docs/_posts/components/Geometry2D/ArcClose2D.md +43 -19
  101. package/docs/_posts/components/Geometry2D/Circle2D.md +21 -10
  102. package/docs/_posts/components/Geometry2D/Disk2D.md +32 -14
  103. package/docs/_posts/components/Geometry2D/Polyline2D.md +24 -9
  104. package/docs/_posts/components/Geometry2D/Polypoint2D.md +16 -8
  105. package/docs/_posts/components/Geometry2D/Rectangle2D.md +23 -12
  106. package/docs/_posts/components/Geometry2D/TriangleSet2D.md +23 -12
  107. package/docs/_posts/components/Geometry3D/Box.md +26 -13
  108. package/docs/_posts/components/Geometry3D/Cone.md +30 -22
  109. package/docs/_posts/components/Geometry3D/Cylinder.md +30 -26
  110. package/docs/_posts/components/Geometry3D/ElevationGrid.md +73 -29
  111. package/docs/_posts/components/Geometry3D/Extrusion.md +100 -48
  112. package/docs/_posts/components/Geometry3D/IndexedFaceSet.md +92 -38
  113. package/docs/_posts/components/Geometry3D/Sphere.md +25 -13
  114. package/docs/_posts/components/Geospatial/GeoCoordinate.md +30 -14
  115. package/docs/_posts/components/Geospatial/GeoElevationGrid.md +82 -37
  116. package/docs/_posts/components/Geospatial/GeoLOD.md +66 -27
  117. package/docs/_posts/components/Geospatial/GeoLocation.md +64 -26
  118. package/docs/_posts/components/Geospatial/GeoMetadata.md +28 -22
  119. package/docs/_posts/components/Geospatial/GeoOrigin.md +34 -19
  120. package/docs/_posts/components/Geospatial/GeoPositionInterpolator.md +64 -18
  121. package/docs/_posts/components/Geospatial/GeoProximitySensor.md +67 -18
  122. package/docs/_posts/components/Geospatial/GeoTouchSensor.md +63 -18
  123. package/docs/_posts/components/Geospatial/GeoTransform.md +72 -28
  124. package/docs/_posts/components/Geospatial/GeoViewpoint.md +79 -40
  125. package/docs/_posts/components/Grouping/Group.md +32 -16
  126. package/docs/_posts/components/Grouping/StaticGroup.md +37 -16
  127. package/docs/_posts/components/Grouping/Switch.md +39 -20
  128. package/docs/_posts/components/Grouping/Transform.md +45 -28
  129. package/docs/_posts/components/HAnim/HAnimDisplacer.md +38 -27
  130. package/docs/_posts/components/HAnim/HAnimHumanoid.md +197 -38
  131. package/docs/_posts/components/HAnim/HAnimJoint.md +104 -38
  132. package/docs/_posts/components/HAnim/HAnimMotion.md +117 -7
  133. package/docs/_posts/components/HAnim/HAnimSegment.md +72 -32
  134. package/docs/_posts/components/HAnim/HAnimSite.md +75 -32
  135. package/docs/_posts/components/Interpolation/ColorInterpolator.md +41 -11
  136. package/docs/_posts/components/Interpolation/CoordinateInterpolator.md +39 -13
  137. package/docs/_posts/components/Interpolation/CoordinateInterpolator2D.md +43 -14
  138. package/docs/_posts/components/Interpolation/EaseInEaseOut.md +36 -12
  139. package/docs/_posts/components/Interpolation/NormalInterpolator.md +40 -10
  140. package/docs/_posts/components/Interpolation/OrientationInterpolator.md +40 -10
  141. package/docs/_posts/components/Interpolation/PositionInterpolator.md +40 -10
  142. package/docs/_posts/components/Interpolation/PositionInterpolator2D.md +43 -14
  143. package/docs/_posts/components/Interpolation/ScalarInterpolator.md +39 -13
  144. package/docs/_posts/components/Interpolation/SplinePositionInterpolator.md +41 -16
  145. package/docs/_posts/components/Interpolation/SplinePositionInterpolator2D.md +41 -16
  146. package/docs/_posts/components/Interpolation/SplineScalarInterpolator.md +40 -24
  147. package/docs/_posts/components/Interpolation/SquadOrientationInterpolator.md +35 -11
  148. package/docs/_posts/components/KeyDeviceSensor/KeySensor.md +51 -9
  149. package/docs/_posts/components/KeyDeviceSensor/StringSensor.md +31 -9
  150. package/docs/_posts/components/Layering/Layer.md +27 -14
  151. package/docs/_posts/components/Layering/LayerSet.md +19 -13
  152. package/docs/_posts/components/Layering/Viewport.md +31 -15
  153. package/docs/_posts/components/Layout/Layout.md +27 -16
  154. package/docs/_posts/components/Layout/LayoutGroup.md +34 -18
  155. package/docs/_posts/components/Layout/LayoutLayer.md +28 -15
  156. package/docs/_posts/components/Layout/ScreenFontStyle.md +72 -45
  157. package/docs/_posts/components/Layout/ScreenGroup.md +32 -16
  158. package/docs/_posts/components/Lighting/DirectionalLight.md +19 -11
  159. package/docs/_posts/components/Lighting/EnvironmentLight.md +2 -6
  160. package/docs/_posts/components/Lighting/PointLight.md +23 -11
  161. package/docs/_posts/components/Lighting/SpotLight.md +32 -19
  162. package/docs/_posts/components/NURBS/Contour2D.md +17 -9
  163. package/docs/_posts/components/NURBS/ContourPolyline2D.md +10 -6
  164. package/docs/_posts/components/NURBS/CoordinateDouble.md +13 -9
  165. package/docs/_posts/components/NURBS/NurbsCurve.md +15 -11
  166. package/docs/_posts/components/NURBS/NurbsCurve2D.md +14 -10
  167. package/docs/_posts/components/NURBS/NurbsOrientationInterpolator.md +28 -12
  168. package/docs/_posts/components/NURBS/NurbsPatchSurface.md +19 -13
  169. package/docs/_posts/components/NURBS/NurbsPositionInterpolator.md +27 -11
  170. package/docs/_posts/components/NURBS/NurbsSet.md +48 -14
  171. package/docs/_posts/components/NURBS/NurbsSurfaceInterpolator.md +31 -11
  172. package/docs/_posts/components/NURBS/NurbsSweptSurface.md +31 -14
  173. package/docs/_posts/components/NURBS/NurbsSwungSurface.md +25 -14
  174. package/docs/_posts/components/NURBS/NurbsTextureCoordinate.md +11 -7
  175. package/docs/_posts/components/NURBS/NurbsTrimmedSurface.md +26 -16
  176. package/docs/_posts/components/Navigation/Billboard.md +33 -17
  177. package/docs/_posts/components/Navigation/Collision.md +59 -22
  178. package/docs/_posts/components/Navigation/LOD.md +53 -23
  179. package/docs/_posts/components/Navigation/NavigationInfo.md +68 -25
  180. package/docs/_posts/components/Navigation/OrthoViewpoint.md +80 -37
  181. package/docs/_posts/components/Navigation/Viewpoint.md +86 -39
  182. package/docs/_posts/components/Navigation/ViewpointGroup.md +28 -17
  183. package/docs/_posts/components/Networking/Anchor.md +54 -56
  184. package/docs/_posts/components/Networking/Inline.md +42 -29
  185. package/docs/_posts/components/Networking/LoadSensor.md +41 -9
  186. package/docs/_posts/components/ParticleSystems/BoundedPhysicsModel.md +16 -8
  187. package/docs/_posts/components/ParticleSystems/ConeEmitter.md +25 -10
  188. package/docs/_posts/components/ParticleSystems/ExplosionEmitter.md +18 -11
  189. package/docs/_posts/components/ParticleSystems/ForcePhysicsModel.md +15 -8
  190. package/docs/_posts/components/ParticleSystems/ParticleSystem.md +92 -46
  191. package/docs/_posts/components/ParticleSystems/PointEmitter.md +19 -12
  192. package/docs/_posts/components/ParticleSystems/PolylineEmitter.md +23 -15
  193. package/docs/_posts/components/ParticleSystems/SurfaceEmitter.md +21 -14
  194. package/docs/_posts/components/ParticleSystems/VolumeEmitter.md +25 -18
  195. package/docs/_posts/components/ParticleSystems/WindPhysicsModel.md +11 -7
  196. package/docs/_posts/components/Picking/LinePickSensor.md +37 -15
  197. package/docs/_posts/components/Picking/PickableGroup.md +40 -22
  198. package/docs/_posts/components/Picking/PointPickSensor.md +29 -12
  199. package/docs/_posts/components/Picking/PrimitivePickSensor.md +25 -17
  200. package/docs/_posts/components/Picking/VolumePickSensor.md +25 -12
  201. package/docs/_posts/components/PointingDeviceSensor/CylinderSensor.md +43 -18
  202. package/docs/_posts/components/PointingDeviceSensor/PlaneSensor.md +40 -17
  203. package/docs/_posts/components/PointingDeviceSensor/SphereSensor.md +35 -13
  204. package/docs/_posts/components/PointingDeviceSensor/TouchSensor.md +48 -14
  205. package/docs/_posts/components/Rendering/ClipPlane.md +20 -15
  206. package/docs/_posts/components/Rendering/Color.md +14 -14
  207. package/docs/_posts/components/Rendering/ColorRGBA.md +13 -9
  208. package/docs/_posts/components/Rendering/Coordinate.md +11 -7
  209. package/docs/_posts/components/Rendering/IndexedLineSet.md +58 -24
  210. package/docs/_posts/components/Rendering/IndexedTriangleFanSet.md +44 -23
  211. package/docs/_posts/components/Rendering/IndexedTriangleSet.md +45 -24
  212. package/docs/_posts/components/Rendering/IndexedTriangleStripSet.md +45 -20
  213. package/docs/_posts/components/Rendering/LineSet.md +26 -14
  214. package/docs/_posts/components/Rendering/Normal.md +28 -6
  215. package/docs/_posts/components/Rendering/PointSet.md +24 -11
  216. package/docs/_posts/components/Rendering/TriangleFanSet.md +44 -19
  217. package/docs/_posts/components/Rendering/TriangleSet.md +44 -19
  218. package/docs/_posts/components/Rendering/TriangleStripSet.md +45 -20
  219. package/docs/_posts/components/RigidBodyPhysics/BallJoint.md +22 -10
  220. package/docs/_posts/components/RigidBodyPhysics/CollidableOffset.md +37 -14
  221. package/docs/_posts/components/RigidBodyPhysics/CollidableShape.md +34 -16
  222. package/docs/_posts/components/RigidBodyPhysics/CollisionCollection.md +17 -12
  223. package/docs/_posts/components/RigidBodyPhysics/CollisionSensor.md +21 -12
  224. package/docs/_posts/components/RigidBodyPhysics/CollisionSpace.md +31 -12
  225. package/docs/_posts/components/RigidBodyPhysics/Contact.md +19 -15
  226. package/docs/_posts/components/RigidBodyPhysics/DoubleAxisHingeJoint.md +33 -27
  227. package/docs/_posts/components/RigidBodyPhysics/MotorJoint.md +63 -11
  228. package/docs/_posts/components/RigidBodyPhysics/RigidBody.md +22 -12
  229. package/docs/_posts/components/RigidBodyPhysics/RigidBodyCollection.md +30 -14
  230. package/docs/_posts/components/RigidBodyPhysics/SingleAxisHingeJoint.md +26 -14
  231. package/docs/_posts/components/RigidBodyPhysics/SliderJoint.md +24 -12
  232. package/docs/_posts/components/RigidBodyPhysics/UniversalJoint.md +23 -15
  233. package/docs/_posts/components/Scripting/Script.md +43 -27
  234. package/docs/_posts/components/Shaders/ComposedShader.md +30 -17
  235. package/docs/_posts/components/Shaders/FloatVertexAttribute.md +18 -9
  236. package/docs/_posts/components/Shaders/Matrix3VertexAttribute.md +17 -8
  237. package/docs/_posts/components/Shaders/Matrix4VertexAttribute.md +17 -8
  238. package/docs/_posts/components/Shaders/PackagedShader.md +36 -30
  239. package/docs/_posts/components/Shaders/ProgramShader.md +35 -15
  240. package/docs/_posts/components/Shaders/ShaderPart.md +27 -18
  241. package/docs/_posts/components/Shaders/ShaderProgram.md +28 -17
  242. package/docs/_posts/components/Shape/AcousticProperties.md +34 -6
  243. package/docs/_posts/components/Shape/Appearance.md +29 -22
  244. package/docs/_posts/components/Shape/FillProperties.md +19 -12
  245. package/docs/_posts/components/Shape/LineProperties.md +18 -10
  246. package/docs/_posts/components/Shape/Material.md +64 -38
  247. package/docs/_posts/components/Shape/PhysicalMaterial.md +49 -25
  248. package/docs/_posts/components/Shape/PointProperties.md +21 -14
  249. package/docs/_posts/components/Shape/Shape.md +35 -17
  250. package/docs/_posts/components/Shape/TwoSidedMaterial.md +35 -36
  251. package/docs/_posts/components/Shape/UnlitMaterial.md +29 -17
  252. package/docs/_posts/components/Sound/Analyser.md +133 -4
  253. package/docs/_posts/components/Sound/AudioClip.md +64 -30
  254. package/docs/_posts/components/Sound/AudioDestination.md +76 -4
  255. package/docs/_posts/components/Sound/BiquadFilter.md +143 -4
  256. package/docs/_posts/components/Sound/BufferAudioSource.md +165 -13
  257. package/docs/_posts/components/Sound/ChannelMerger.md +62 -4
  258. package/docs/_posts/components/Sound/ChannelSelector.md +64 -4
  259. package/docs/_posts/components/Sound/ChannelSplitter.md +68 -4
  260. package/docs/_posts/components/Sound/Convolver.md +124 -4
  261. package/docs/_posts/components/Sound/Delay.md +119 -4
  262. package/docs/_posts/components/Sound/DynamicsCompressor.md +127 -4
  263. package/docs/_posts/components/Sound/Gain.md +115 -4
  264. package/docs/_posts/components/Sound/ListenerPointSource.md +109 -4
  265. package/docs/_posts/components/Sound/MicrophoneSource.md +91 -4
  266. package/docs/_posts/components/Sound/OscillatorSource.md +95 -4
  267. package/docs/_posts/components/Sound/PeriodicWave.md +43 -5
  268. package/docs/_posts/components/Sound/Sound.md +53 -20
  269. package/docs/_posts/components/Sound/SpatialSound.md +120 -4
  270. package/docs/_posts/components/Sound/StreamAudioDestination.md +80 -4
  271. package/docs/_posts/components/Sound/StreamAudioSource.md +91 -4
  272. package/docs/_posts/components/Sound/WaveShaper.md +123 -4
  273. package/docs/_posts/components/Text/FontStyle.md +73 -47
  274. package/docs/_posts/components/Text/Text.md +48 -26
  275. package/docs/_posts/components/TextureProjector/TextureProjector.md +55 -6
  276. package/docs/_posts/components/TextureProjector/TextureProjectorParallel.md +56 -6
  277. package/docs/_posts/components/Texturing/ImageTexture.md +28 -20
  278. package/docs/_posts/components/Texturing/MovieTexture.md +69 -38
  279. package/docs/_posts/components/Texturing/MultiTexture.md +47 -19
  280. package/docs/_posts/components/Texturing/MultiTextureCoordinate.md +27 -10
  281. package/docs/_posts/components/Texturing/MultiTextureTransform.md +32 -10
  282. package/docs/_posts/components/Texturing/PixelTexture.md +34 -14
  283. package/docs/_posts/components/Texturing/TextureCoordinate.md +20 -10
  284. package/docs/_posts/components/Texturing/TextureCoordinateGenerator.md +22 -12
  285. package/docs/_posts/components/Texturing/TextureProperties.md +44 -19
  286. package/docs/_posts/components/Texturing/TextureTransform.md +17 -8
  287. package/docs/_posts/components/Texturing3D/ComposedTexture3D.md +21 -13
  288. package/docs/_posts/components/Texturing3D/ImageTexture3D.md +32 -23
  289. package/docs/_posts/components/Texturing3D/ImageTextureAtlas.md +22 -16
  290. package/docs/_posts/components/Texturing3D/PixelTexture3D.md +25 -13
  291. package/docs/_posts/components/Texturing3D/TextureCoordinate3D.md +22 -10
  292. package/docs/_posts/components/Texturing3D/TextureCoordinate4D.md +21 -9
  293. package/docs/_posts/components/Texturing3D/TextureTransform3D.md +17 -8
  294. package/docs/_posts/components/Texturing3D/TextureTransformMatrix3D.md +20 -10
  295. package/docs/_posts/components/Time/TimeSensor.md +66 -23
  296. package/docs/_posts/components/VolumeRendering/BlendedVolumeStyle.md +36 -15
  297. package/docs/_posts/components/VolumeRendering/BoundaryEnhancementVolumeStyle.md +15 -5
  298. package/docs/_posts/components/VolumeRendering/CartoonVolumeStyle.md +20 -17
  299. package/docs/_posts/components/VolumeRendering/ComposedVolumeStyle.md +15 -7
  300. package/docs/_posts/components/VolumeRendering/EdgeEnhancementVolumeStyle.md +16 -8
  301. package/docs/_posts/components/VolumeRendering/IsoSurfaceVolumeData.md +43 -21
  302. package/docs/_posts/components/VolumeRendering/OpacityMapVolumeStyle.md +16 -8
  303. package/docs/_posts/components/VolumeRendering/ProjectionVolumeStyle.md +17 -7
  304. package/docs/_posts/components/VolumeRendering/SegmentedVolumeData.md +50 -17
  305. package/docs/_posts/components/VolumeRendering/ShadedVolumeStyle.md +18 -10
  306. package/docs/_posts/components/VolumeRendering/SilhouetteEnhancementVolumeStyle.md +16 -8
  307. package/docs/_posts/components/VolumeRendering/ToneMappedVolumeStyle.md +20 -11
  308. package/docs/_posts/components/VolumeRendering/VolumeData.md +32 -15
  309. package/docs/_posts/components/X_ITE/BlendMode.md +9 -2
  310. package/docs/_posts/getting-started.md +1 -0
  311. package/docs/_posts/laboratory/x3d-file-converter.md +1 -1
  312. package/package.json +1 -1
  313. package/src/x_ite/Browser/Core/X3DCoreContext.js +10 -3
  314. package/src/x_ite/Browser/DOMIntegration.js +13 -8
  315. package/src/x_ite/Browser/VERSION.js +1 -1
  316. package/src/x_ite/Components/CubeMapTexturing/ComposedCubeMapTexture.js +1 -1
  317. package/src/x_ite/Components/DIS/DISEntityManager.js +1 -1
  318. package/src/x_ite/Components/Grouping/Switch.js +1 -1
  319. package/src/x_ite/Components/Layering/X3DLayerNode.js +1 -1
  320. package/src/x_ite/Components/Lighting/DirectionalLight.js +1 -1
  321. package/src/x_ite/Components/Navigation/Collision.js +1 -1
  322. package/src/x_ite/Components/Navigation/LOD.js +1 -1
  323. package/src/x_ite/Components/Navigation/X3DViewpointNode.js +1 -1
  324. package/src/x_ite/Components/Networking/LoadSensor.js +1 -1
  325. package/src/x_ite/Components/ParticleSystems/ParticleSystem.js +1 -1
  326. package/src/x_ite/Components/Shape/AcousticProperties.js +1 -1
  327. package/src/x_ite/Components/Shape/Appearance.js +1 -1
  328. package/src/x_ite/Components/Shape/Material.js +1 -1
  329. package/src/x_ite/Components/Shape/TwoSidedMaterial.js +1 -1
  330. package/src/x_ite/Components/Sound/PeriodicWave.js +1 -1
  331. package/src/x_ite/Components/Texturing/TextureProperties.js +1 -1
  332. package/src/x_ite/Fields/ArrayFields.js +2 -2
  333. package/src/x_ite/Fields/SFColor.js +1 -1
  334. package/src/x_ite/Fields/SFMatrixPrototypeTemplate.js +1 -1
  335. package/src/x_ite/Fields/SFRotation.js +3 -3
  336. package/src/x_ite/Fields/SFVecPrototypeTemplate.js +1 -1
  337. package/src/x_ite/Parser/GoldenGate.js +16 -5
  338. package/src/x_ite/Parser/PLYAParser.js +615 -0
  339. package/src/x_ite/Parser/PLYBParser.js +222 -0
  340. package/src/x_ite/Parser/STLAParser.js +0 -1
  341. /package/build/{bin → docs}/components.js +0 -0
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  title: HAnimHumanoid
3
- date: 2022-01-07
3
+ date: 2023-01-07
4
4
  nav: components-HAnim
5
5
  categories: [components, HAnim]
6
6
  tags: [HAnimHumanoid, HAnim]
@@ -13,9 +13,9 @@ tags: [HAnimHumanoid, HAnim]
13
13
 
14
14
  ## Overview
15
15
 
16
- The HAnimHumanoid node is used to: (a) store references to the joints, segments, sites, skin and viewpoints, (b) serve as a container for the entire humanoid, (c) provide a convenient way of moving the humanoid through its environment, and (d) store human-readable data such as author and copyright information. HAnimHumanoid contains HAnimJoint, HAnimSegment and HAnimSite nodes, plus a single optional Coordinate/CoordinateDouble mesh with a single corresponding Normal node.
16
+ The HAnimHumanoid node is used to: (a) store references to the joints, segments, sites, skeleton, optional skin, and fixed viewpoints, (b) serve as a container for the entire humanoid, (c) provide a convenient way of moving the humanoid through its environment, and (d) store human-readable metadata such as name, version, author, copyright, age, gender and other information. HAnimHumanoid contains a skeleton consisting of HAnimJoint, HAnimSegment and HAnimSite nodes. HAnimHumanoid can also contain an optional skin consisting of an IndexedFaceSet mesh with corresponding skinCoord Coordinate or CoordinateDouble vertices and skinNormal Normal vectors.
17
17
 
18
- The HAnimHumanoid node belongs to the **HAnim** component and its default container field is *children.* It is available since X3D version 3.0 or later.
18
+ The HAnimHumanoid 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
 
@@ -31,26 +31,30 @@ The HAnimHumanoid node belongs to the **HAnim** component and its default contai
31
31
 
32
32
  ### SFNode [in, out] **metadata** NULL <small>[X3DMetadataObject]</small>
33
33
 
34
- Metadata are not part of the X3D world and not interpreted by the X3D browser, but they can be accessed via the ECMAScript interface.
34
+ Information about this node can be contained in a MetadataBoolean, MetadataDouble, MetadataFloat, MetadataInteger, MetadataString or MetadataSet node.
35
+
36
+ #### Hint
37
+
38
+ - [X3D Architecture 7.2.4 Metadata](https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/core.html#Metadata){:target="_blank"}
35
39
 
36
40
  ### SFString [in, out] **description** ""
37
41
 
38
- Author-provided prose that describes intended purpose of the url asset.
42
+ Author-provided prose that describes intended purpose of this node.
39
43
 
40
44
  #### Hint
41
45
 
42
- - Many XML tools substitute XML character references for special characters automatically if needed within an attribute value (such as &amp;#38; for & ampersand character, or &amp;#34; for " quotation-mark character).
46
+ - Many XML tools substitute XML character references for special characters automatically if needed within an attribute value (such as &amp;#38; for &amp; ampersand character, or &amp;#34; for " quotation-mark character).
43
47
 
44
48
  ### SFString [in, out] **name** ""
45
49
 
46
- Unique name attribute must be defined so that each HAnimHumanoid node in a scene can be identified at run time for animation purposes.
50
+ Unique *name* attribute must be defined so that each HAnimHumanoid node in a scene can be identified at run time for animation purposes.
47
51
 
48
52
  #### Hints
49
53
 
50
- - This same name is a required name prefix for all other HAnim nodes within the HAnimHumanoid, if more than one humanoid appears within a scene file.
54
+ - This same *name* is a required *name* prefix for all other HAnim nodes within the HAnimHumanoid, if more than one humanoid appears within a scene file.
51
55
  - Well-defined names can simplify design and debugging through improved author understanding.
52
- - [X3D Scene Authoring Hints, Naming Conventions](https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints)html#NamingConventions
53
- - [HAnim2 Names HAnim1 Alias Tables](https://www.web3d.org/x3d/content/examples/HumanoidAnimation/HAnim2NameHAnim1AliasTables.txt)
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"}
54
58
 
55
59
  #### Warning
56
60
 
@@ -58,27 +62,45 @@ Unique name attribute must be defined so that each HAnimHumanoid node in a scene
58
62
 
59
63
  ### SFString [in, out] **version** ""
60
64
 
61
- HAnimHumanoid version, where standardized ISO 19774 value is 2.0.
65
+ HAnimHumanoid *version*, where allowed value is 2.0 for final ISO 19774 *version* 2019.
62
66
 
63
- #### Warning
67
+ #### Hint
68
+
69
+ - Default HAnimHumanoid *version* is 1.0 for X3D *version* 3, and HAnimHumanoid required *version* is 2.0 for X3D *version* 4.
64
70
 
65
- - Prior versions of HAnim nodes might not validate correctly.
71
+ #### Warnings
72
+
73
+ - No other values are allowed for strict validation.
74
+ - Prior developmental versions of HAnim nodes, such as *version* 1 of standardized ISO 19774 *version* 2006, might not validate correctly due to small changes in the contained-node content model, so conversion of such models is recommended.
66
75
 
67
76
  ### MFString [in, out] **info** [ ]
68
77
 
69
78
  Contains metadata keyword=value pairs, where approved keyword terms are humanoidVersion authorName authorEmail copyright creationDate usageRestrictions age gender height and weight.
70
79
 
80
+ #### Hints
81
+
82
+ - Height and weight are in base units (typically meters), hanimVersion is for author use and separate from HAnimHumanoid version field.
83
+ - Alternate metadata keywords are also allowed.
84
+
71
85
  ### SFVec3f [in, out] **translation** 0 0 0 <small>(-∞,∞)</small>
72
86
 
73
87
  Position of children relative to local coordinate system.
74
88
 
89
+ #### Hint
90
+
91
+ - Since default pose faces along +Z axis, -x values are right side and +x values are left side within HAnimHumanoid.
92
+
75
93
  ### SFRotation [in, out] **rotation** 0 0 1 0 <small>(-∞,∞) or [-1,1]</small>
76
94
 
77
95
  Orientation of children relative to local coordinate system.
78
96
 
97
+ #### Warning
98
+
99
+ - Default pose is typically empty (or an identity *rotation*) to avoid distorted body animations.
100
+
79
101
  ### SFVec3f [in, out] **scale** 1 1 1 <small>(0,∞)</small>
80
102
 
81
- Non-uniform x-y-z scale of child coordinate system, adjusted by center and scaleOrientation.
103
+ Non-uniform x-y-z *scale* of child coordinate system, adjusted by center and scaleOrientation.
82
104
 
83
105
  ### SFRotation [in, out] **scaleOrientation** 0 0 1 0 <small>(-∞,∞) or [-1,1]</small>
84
106
 
@@ -90,24 +112,69 @@ Translation offset from origin of local coordinate system.
90
112
 
91
113
  ### MFVec3f [in, out] **jointBindingPositions** [ ] <small>(-∞,∞)</small>
92
114
 
115
+ Specifies an array of position values for each HAnimJoint node in the joints field, in order, corresponding to each binding pose.
116
+
117
+ #### Hint
118
+
119
+ - If only one value is provided, it is provided to each Joint equivalently.
120
+
121
+ #### Warning
122
+
123
+ - Not used when skeletalConfiguration='BASIC'.
124
+
93
125
  ### MFRotation [in, out] **jointBindingRotations** [ ] <small>(-∞,∞) or [-1,1]</small>
94
126
 
127
+ Specifies an array of rotation values for each HAnimJoint node in the joints field, in order, corresponding to each binding pose.
128
+
129
+ #### Hint
130
+
131
+ - If only one value is provided, it is provided to each Joint equivalently.
132
+
133
+ #### Warning
134
+
135
+ - Not used when skeletalConfiguration='BASIC'.
136
+
95
137
  ### MFVec3f [in, out] **jointBindingScales** [ ] <small>(-∞,∞)</small>
96
138
 
139
+ Specifies an array of scale values for each HAnimJoint node in the joints field, in order, corresponding to each binding pose.
140
+
141
+ #### Hint
142
+
143
+ - If only one value is provided, it is provided to each Joint equivalently.
144
+
145
+ #### Warning
146
+
147
+ - Not used when skeletalConfiguration='BASIC'.
148
+
97
149
  ### MFBool [in, out] **motionsEnabled** [ ]
98
150
 
151
+ Array of boolean values corresponding to HAnimMotion nodes indicating which can animate the HAnimHumanoid.
152
+
99
153
  ### SFInt32 [in, out] **loa** -1 <small>[-1,∞)</small>
100
154
 
155
+ Level Of Articulation 0..4 indicates complexity and detail of joints for given humanoid skeletal hierarchy.
156
+
157
+ #### Hints
158
+
159
+ - *loa* value of -1 indicates that no LOA conformance is provided.
160
+ - [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"}
161
+
101
162
  ### SFString [in, out] **skeletalConfiguration** "BASIC"
102
163
 
164
+ Models sharing a common skeletal configuration can share animations and binding poses.
165
+
166
+ #### Hint
167
+
168
+ - [A value of 'BASIC' conforms to restrictive skeletal model in X3D Humanoid Animation (HAnim) Specification, Part 1 Architecture, 4.8 Modelling of humanoids](https://www.web3d.org/documents/specifications/19774/V2.0/Architecture/concepts.html#ModellingOfHumanoids){:target="_blank"}
169
+
103
170
  ### SFBool [in, out] **visible** TRUE
104
171
 
105
172
  Whether or not renderable content within this node is visually displayed.
106
173
 
107
- #### Hint
174
+ #### Hints
108
175
 
109
- - The visible field has no effect on animation behaviors, event passing or other non-visual characteristics.
110
- - Content must be visible to be collidable and to be pickable.
176
+ - The *visible* field has no effect on animation behaviors, event passing or other non-visual characteristics.
177
+ - Content must be *visible* to be collidable and to be pickable.
111
178
 
112
179
  ### SFBool [in, out] **bboxDisplay** FALSE
113
180
 
@@ -121,72 +188,164 @@ Whether to display bounding box for associated geometry, aligned with world coor
121
188
 
122
189
  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.
123
190
 
124
- #### Hint
191
+ #### Hints
125
192
 
126
193
  - Can be useful for collision computations or inverse-kinematics (IK) engines.
194
+ - Precomputation and inclusion of bounding box information can speed up the initialization of large detailed models, with a corresponding cost of increased file size.
195
+ - [X3D Architecture, 10.2.2 Bounding boxes](https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#BoundingBoxes){:target="_blank"}
196
+ - [X3D Architecture, 10.3.1 X3DBoundedObject](https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#X3DBoundedObject){:target="_blank"}
127
197
 
128
198
  ### SFVec3f [ ] **bboxCenter** 0 0 0 <small>(-∞,∞)</small>
129
199
 
130
- Bounding box center: optional hint for position offset from origin of local coordinate system.
200
+ Bounding box center accompanies bboxSize and provides an optional hint for bounding box position offset from origin of local coordinate system.
201
+
202
+ #### Hints
203
+
204
+ - Precomputation and inclusion of bounding box information can speed up the initialization of large detailed models, with a corresponding cost of increased file size.
205
+ - [X3D Architecture, 10.2.2 Bounding boxes](https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#BoundingBoxes){:target="_blank"}
206
+ - [X3D Architecture, 10.3.1 X3DBoundedObject](https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/grouping.html#X3DBoundedObject){:target="_blank"}
131
207
 
132
208
  ### MFNode [in, out] **skeleton** [ ] <small>[HAnimJoint, HAnimSite]</small>
133
209
 
134
- Input/Output field skeleton.
210
+ List of top-level HAnimJoint and HAnimSite nodes that create the *skeleton* model. The *skeleton* field contains the humanoid_root Joint object, and thus the entire hierarchy of HAnimJoint/HAnimSegment nodes making up the articulated *skeleton* model.
211
+
212
+ #### Hints
213
+
214
+ - Typically contains HAnimJoint with name='humanoid_root'.
215
+ - Immediate children in the *skeleton* field can also include top-level HAnimSite node declarations, which are landmarks for the overall humanoid figure that are not affected by HAnimJoint movement.
216
+
217
+ #### Warning
218
+
219
+ - Top-level HAnimJoint and HAnimSite nodes must include `containerField='skeleton'` for proper validation and operation.
135
220
 
136
221
  ### MFNode [in, out] **viewpoints** [ ] <small>[HAnimSite]</small>
137
222
 
138
- Input/Output field viewpoints.
223
+ List of HAnimSite nodes containing Viewpoint nodes that appear in the skeleton model, usually as USE node references. The *viewpoints* field contains zero or more special HAnimSite nodes that are only affected by HAnimHumanoid transformations (and no HAnimJoint transformations). Each HAnimSite can contain a Viewpoint as virtual camera in the HAnimHumanoid reference frame (such as viewing the face or profile of the human figure).
224
+
225
+ #### Hints
226
+
227
+ - The viewpoint field has different functionality than the joints, segments and sites fields.
228
+ - The *viewpoints* field connects internal Site nodes that in turn hold relative Viewpoint nodes, such as `<HAnimSite USE='ObserveFaceSite_view' containerField='viewpoints'/>` which has corresponding counterpart nodes `<HAnimSite DEF='ObserveFaceSite_view' name='ObserveFaceSite_view' containerField='children'>` `<Viewpoint description='look at me!'/>` \</HAnimSite\>.
229
+
230
+ #### Warnings
231
+
232
+ - These are actual node declarations, not USE nodes.
233
+ - Top-level HAnimSite nodes (in turn containing Viewpoint nodes) must include `containerField='viewpoints'` for proper validation and operation.
139
234
 
140
235
  ### MFNode [in, out] **sites** [ ] <small>[HAnimSite]</small>
141
236
 
142
- Input/Output field sites.
237
+ *sites* field contains a list of USE references for all HAnimSite node instances found within the preceding skeleton hierarchy.
238
+
239
+ #### Hints
240
+
241
+ - Order is irrelevant since names are contained in the original DEF objects.
242
+ - These USE nodes can be utilized by inverse kinematics (IK) and animation engines.
243
+
244
+ #### Warnings
245
+
246
+ - The number of contained `<HAnimSite USE='*' containerField='sites, skeleton or viewpoints'/>` nodes at top level of HAnimHumanoid needs to match the number of corresponding HAnimSite node instances found within the preceding skeleton hierarchy.
247
+ - Top-level HAnimSite USE nodes must include `containerField='sites'` for proper validation and operation.
143
248
 
144
249
  ### MFNode [in, out] **segments** [ ] <small>[HAnimSegment]</small>
145
250
 
146
- Input/Output field segments.
251
+ The *segments* field contains a list of USE references for all HAnimSegment node instances found within the preceding skeleton hierarchy.
252
+
253
+ #### Hints
254
+
255
+ - Order is irrelevant since names are contained in the original DEF objects.
256
+ - These USE nodes can be utilized by inverse kinematics (IK) and animation engines.
257
+
258
+ #### Warnings
259
+
260
+ - The number of contained `<HAnimSegment USE='*' containerField='segments'/>` nodes at top level of HAnimHumanoid needs to match the number of corresponding HAnimSegment node instances found within the preceding skeleton hierarchy.
261
+ - Top-level HAnimSegment USE nodes must include `containerField='segments'` for proper validation and operation.
147
262
 
148
263
  ### MFNode [in, out] **joints** [ ] <small>[HAnimJoint]</small>
149
264
 
150
- Input/Output field joints.
265
+ The *joints* field contains a list of USE references for all HAnimJoint node instances found within the preceding skeleton hierarchy.
266
+
267
+ #### Hints
268
+
269
+ - Order is irrelevant since names are contained in the original DEF objects.
270
+ - These USE nodes can be utilized by inverse kinematics (IK) and animation engines.
271
+
272
+ #### Warnings
273
+
274
+ - 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.
275
+ - Top-level HAnimJoint USE nodes must include `containerField='joints'` for proper validation and operation.
151
276
 
152
277
  ### MFNode [in, out] **motions** [ ] <small>[HAnimMotion]</small>
153
278
 
154
- Input/Output field motions.
279
+ Contains any HAnimMotion nodes that can animate the HAnimHumanoid.
155
280
 
156
281
  ### SFNode [in, out] **skinBindingNormal** NULL <small>[X3DNormalNode]</small>
157
282
 
158
- Input/Output field skinBindingNormal.
283
+ Input/Output field *skinBindingNormal*.
159
284
 
160
285
  ### SFNode [in, out] **skinBindingCoord** NULL <small>[X3DCoordinateNode]</small>
161
286
 
162
- Input/Output field skinBindingCoord.
287
+ Input/Output field *skinBindingCoord*.
163
288
 
164
289
  ### SFNode [in, out] **skinNormal** NULL <small>[X3DNormalNode]</small>
165
290
 
166
- Input/Output field skinNormal.
291
+ Single Normal node utilized by indexed mesh definitions for skin. The *skinNormal* field contains a single sequence of normal values, used by internal HAnimHumanoid mechanisms to create appropriate surface deformations as well as by the indexed face set definitions within the skin field that perform the actual rendering of surface geometry.
292
+
293
+ #### Warnings
294
+
295
+ - 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.
296
+ - Top-level Normal node must include `containerField='skinNormal'` for proper validation and operation.
297
+ - (X3D version 4.0 draft) requires X3D `profile='Full'` or else include `<component name='HAnim' level='2'/>`
298
+ - For X3D3 HAnim1, spelling of component name is 'H-Anim' (including hyphen)
167
299
 
168
300
  ### SFNode [in, out] **skinCoord** NULL <small>[X3DCoordinateNode]</small>
169
301
 
170
- Input/Output field skinCoord.
302
+ Coordinate node utilized by indexed mesh definitions for skin. The *skinCoord* field contains a single sequence of points, used by internal HAnimHumanoid mechanisms to create appropriate surface deformations as well as by the indexed face set definitions within the skin field that perform the actual rendering of surface geometry.
303
+
304
+ #### Hint
305
+
306
+ - A single node is used so that coordIndex references are consistent for all references to these coordinates.
307
+
308
+ #### Warnings
309
+
310
+ - 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.
311
+ - Top-level Coordinate or CoordinateDouble node must include `containerField='skinCoord'` for proper validation and operation.
312
+ - (X3D version 4.0 draft) requires X3D `profile='Full'` or else include `<component name='HAnim' level='2'/>`
313
+ - For X3D3 HAnim1, spelling of component name is 'H-Anim' (including hyphen)
171
314
 
172
315
  ### MFNode [in, out] **skin** [ ] <small>[X3DChildNode]</small>
173
316
 
174
- Input/Output field skin.
317
+ List of one or more indexed mesh definitions (such as IndexedFaceSet) that utilize skinCoord point and skinNormal normal data.
318
+
319
+ #### Hint
175
320
 
176
- ## Description
321
+ - Put *skin* node first and provide DEF label to simplify USE node usage within the skeleton hierarchy.
322
+
323
+ #### Warnings
324
+
325
+ - 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.
326
+ - Top-level node must include `containerField='skin'` for proper validation and operation.
327
+ - (X3D version 4.0 draft) requires X3D `profile='Full'` or else include `<component name='HAnim' level='2'/>`
328
+ - For X3D3 HAnim1, spelling of component name is 'H-Anim' (including hyphen)
329
+
330
+ ## Advisories
177
331
 
178
332
  ### Hints
179
333
 
180
- - MFNode arrays for joints, segments, sites, skin and viewpoints usually follow the human body definition and contain USE node references.
181
- - The viewpoints field connects internal Site nodes that in turn hold relative Viewpoint nodes, such as `<HAnimSite USE='ObserveFace_viewSite' containerField='viewpoints'/>` which has a corresponding `<HAnimSite DEF='ObserveFace_viewSite' name='ObserveFace_view' containerField='children' description='look at me!'/>` node.
182
- - Include `<component name='HAnim' level='1'/>`
334
+ - MFNode arrays for the joints, segments, sites, and viewpoints fields provide lists for all HAnim nodes found in the skeleton hierarchy and thus only contain USE node references.
335
+ - [HAnim Specification](https://www.web3d.org/documents/specifications/19774/V2.0){:target="_blank"}
336
+ - [HAnim Specification part 1, Humanoid](https://www.web3d.org/documents/specifications/19774/V2.0/Architecture/ObjectInterfaces.html#Humanoid){:target="_blank"}
337
+ - [HAnim Specification part 2, clause 6.4 Extended definition of Humanoid object](https://www.web3d.org/documents/specifications/19774/V2.0/MotionDataAnimation/MotionNodes.html#HumanoidObjectExtension){:target="_blank"}
338
+ - [X3D for Advanced Modeling (X3D4AM) slideset](https://x3dgraphics.com/slidesets/X3dForAdvancedModeling/HumanoidAnimation.pdf){:target="_blank"}
339
+
340
+ ### Warnings
341
+
342
+ - Requires X3D `profile='Full'` or else include `<component name='HAnim' level='1'/>`
343
+ - For X3D3 HAnim1, spelling of component name is 'H-Anim' (including hyphen)
183
344
 
184
345
  ## Example
185
346
 
186
347
  <x3d-canvas src="https://create3000.github.io/media/examples/HAnim/HAnimHumanoid/HAnimHumanoid.x3d" update="auto"></x3d-canvas>
187
348
 
188
- ## External Links
349
+ ## See Also
189
350
 
190
- - [X3D Specification of HAnimHumanoid](https://www.web3d.org/documents/specifications/19775-1/V4.0/Part01/components/hanim.html#HAnimHumanoid){:target="_blank"}
191
- - [HAnim Specification](https://www.web3d.org/documents/specifications/19774-1/V2.0/HAnim/HAnimArchitecture.html){:target="_blank"}
192
- - [HAnim Specification, Humanoid](https://www.web3d.org/documents/specifications/19774-1/V2.0/HAnim/ObjectInterfaces.html#Humanoid){:target="_blank"}
351
+ - [X3D Specification of HAnimHumanoid node](https://www.web3d.org/documents/specifications/19775-1/V4.0/Part01/components/hanim.html#HAnimHumanoid){:target="_blank"}
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  title: HAnimJoint
3
- date: 2022-01-07
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
- Each joint in the body is represented by an HAnimJoint node.
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 since X3D version 3.0 or later.
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
- Metadata are not part of the X3D world and not interpreted by the X3D browser, but they can be accessed via the ECMAScript interface.
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 the url asset.
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 &amp;#38; for & ampersand character, or &amp;#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 &amp;#38; for &amp; ampersand character, or &amp;#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
- #### Warning
51
+ #### Hints
48
52
 
49
- - Name is not included if this instance is a USE node. Examples: HumanoidRoot sacroiliac l_hip l_knee l_ankle etc. as listed in HAnim Specification.
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
- #### See Also
58
+ #### Warnings
52
59
 
53
- - [HAnim Humanoid Joint Names](https://www.web3d.org/x3d/content/examples/Basic/HumanoidAnimation/tables/HAnimJointNames19774V1.0.txt){:target="_blank"}
54
- - [HAnim Specification, Humanoid Joint-Segment Hierarchy](https://www.web3d.org/documents/specifications/19774-1/V2.0/HAnim/concepts.html#Hierarchy){:target="_blank"}
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
- #### Hint
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
- #### Hint
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
- Axial values (0,1) indicating willingness of joint to move (about local X, Y, Z axes), larger stiffness values means greater resistance.
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
- #### Hint
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
- #### Warning
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
- Input/Output field displacers.
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
- #### Hint
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
- #### Hint
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: optional hint for position offset from origin of local coordinate system.
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
- Input/Output field children.
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
- ## Description
234
+ ## Advisories
174
235
 
175
236
  ### Hints
176
237
 
177
- - HAnimJoint may only be a child of another HAnimJoint node, or skeleton field for the HAnimHumanoid.
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
- - Include `<component name='HAnim' level='1'/>`
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
- ### Warning
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
- ## External Links
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"}