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.
Files changed (352) hide show
  1. package/Makefile +6 -0
  2. package/README.md +3 -7
  3. package/build/docs/nodes.pl +434 -0
  4. package/dist/assets/components/Annotation.js +13 -13
  5. package/dist/assets/components/Annotation.min.js +1 -1
  6. package/dist/assets/components/CADGeometry.js +13 -13
  7. package/dist/assets/components/CADGeometry.min.js +1 -1
  8. package/dist/assets/components/CubeMapTexturing.js +26 -26
  9. package/dist/assets/components/CubeMapTexturing.min.js +1 -1
  10. package/dist/assets/components/DIS.js +14 -14
  11. package/dist/assets/components/DIS.min.js +1 -1
  12. package/dist/assets/components/EventUtilities.js +9 -9
  13. package/dist/assets/components/EventUtilities.min.js +1 -1
  14. package/dist/assets/components/Geometry2D.js +19 -19
  15. package/dist/assets/components/Geometry2D.min.js +1 -1
  16. package/dist/assets/components/Geospatial.js +33 -33
  17. package/dist/assets/components/Geospatial.min.js +1 -1
  18. package/dist/assets/components/HAnim.js +129 -90
  19. package/dist/assets/components/HAnim.min.js +1 -1
  20. package/dist/assets/components/KeyDeviceSensor.js +8 -8
  21. package/dist/assets/components/KeyDeviceSensor.min.js +1 -1
  22. package/dist/assets/components/Layout.js +27 -27
  23. package/dist/assets/components/Layout.min.js +1 -1
  24. package/dist/assets/components/NURBS.js +24 -24
  25. package/dist/assets/components/NURBS.min.js +1 -1
  26. package/dist/assets/components/ParticleSystems.js +24 -24
  27. package/dist/assets/components/ParticleSystems.min.js +1 -1
  28. package/dist/assets/components/Picking.js +18 -18
  29. package/dist/assets/components/Picking.min.js +1 -1
  30. package/dist/assets/components/RigidBodyPhysics.js +18 -18
  31. package/dist/assets/components/RigidBodyPhysics.min.js +1 -1
  32. package/dist/assets/components/Scripting.js +37 -37
  33. package/dist/assets/components/Scripting.min.js +1 -1
  34. package/dist/assets/components/Text.js +24 -24
  35. package/dist/assets/components/Text.min.js +1 -1
  36. package/dist/assets/components/TextureProjector.js +14 -14
  37. package/dist/assets/components/TextureProjector.min.js +1 -1
  38. package/dist/assets/components/Texturing3D.js +30 -30
  39. package/dist/assets/components/Texturing3D.min.js +1 -1
  40. package/dist/assets/components/VolumeRendering.js +18 -18
  41. package/dist/assets/components/VolumeRendering.min.js +1 -1
  42. package/dist/assets/components/X_ITE.js +9 -9
  43. package/dist/assets/components/X_ITE.min.js +1 -1
  44. package/dist/x_ite.css +1 -1
  45. package/dist/x_ite.js +1320 -166
  46. package/dist/x_ite.min.js +1 -1
  47. package/dist/x_ite.zip +0 -0
  48. package/docs/_config.yml +2 -2
  49. package/docs/_posts/components/CADGeometry/CADAssembly.md +45 -19
  50. package/docs/_posts/components/CADGeometry/CADFace.md +44 -18
  51. package/docs/_posts/components/CADGeometry/CADLayer.md +48 -19
  52. package/docs/_posts/components/CADGeometry/CADPart.md +54 -24
  53. package/docs/_posts/components/CADGeometry/IndexedQuadSet.md +55 -26
  54. package/docs/_posts/components/CADGeometry/QuadSet.md +52 -20
  55. package/docs/_posts/components/Core/MetadataBoolean.md +29 -18
  56. package/docs/_posts/components/Core/MetadataDouble.md +31 -16
  57. package/docs/_posts/components/Core/MetadataFloat.md +31 -16
  58. package/docs/_posts/components/Core/MetadataInteger.md +31 -16
  59. package/docs/_posts/components/Core/MetadataSet.md +30 -15
  60. package/docs/_posts/components/Core/MetadataString.md +31 -16
  61. package/docs/_posts/components/Core/WorldInfo.md +21 -10
  62. package/docs/_posts/components/CubeMapTexturing/ComposedCubeMapTexture.md +30 -25
  63. package/docs/_posts/components/CubeMapTexturing/GeneratedCubeMapTexture.md +19 -10
  64. package/docs/_posts/components/CubeMapTexturing/ImageCubeMapTexture.md +22 -18
  65. package/docs/_posts/components/DIS/DISEntityManager.md +40 -15
  66. package/docs/_posts/components/DIS/DISEntityTypeMapping.md +34 -25
  67. package/docs/_posts/components/DIS/EspduTransform.md +174 -41
  68. package/docs/_posts/components/DIS/ReceiverPdu.md +77 -27
  69. package/docs/_posts/components/DIS/SignalPdu.md +82 -28
  70. package/docs/_posts/components/DIS/TransmitterPdu.md +86 -36
  71. package/docs/_posts/components/EnvironmentalEffects/Background.md +80 -39
  72. package/docs/_posts/components/EnvironmentalEffects/Fog.md +39 -18
  73. package/docs/_posts/components/EnvironmentalEffects/FogCoordinate.md +10 -6
  74. package/docs/_posts/components/EnvironmentalEffects/LocalFog.md +21 -14
  75. package/docs/_posts/components/EnvironmentalEffects/TextureBackground.md +83 -31
  76. package/docs/_posts/components/EnvironmentalSensor/ProximitySensor.md +36 -8
  77. package/docs/_posts/components/EnvironmentalSensor/TransformSensor.md +31 -7
  78. package/docs/_posts/components/EnvironmentalSensor/VisibilitySensor.md +23 -7
  79. package/docs/_posts/components/EventUtilities/BooleanFilter.md +23 -10
  80. package/docs/_posts/components/EventUtilities/BooleanSequencer.md +46 -17
  81. package/docs/_posts/components/EventUtilities/BooleanToggle.md +29 -8
  82. package/docs/_posts/components/EventUtilities/BooleanTrigger.md +24 -7
  83. package/docs/_posts/components/EventUtilities/IntegerSequencer.md +46 -17
  84. package/docs/_posts/components/EventUtilities/IntegerTrigger.md +34 -9
  85. package/docs/_posts/components/EventUtilities/TimeTrigger.md +30 -9
  86. package/docs/_posts/components/Followers/ColorChaser.md +35 -11
  87. package/docs/_posts/components/Followers/ColorDamper.md +32 -12
  88. package/docs/_posts/components/Followers/CoordinateChaser.md +33 -9
  89. package/docs/_posts/components/Followers/CoordinateDamper.md +30 -10
  90. package/docs/_posts/components/Followers/OrientationChaser.md +34 -10
  91. package/docs/_posts/components/Followers/OrientationDamper.md +31 -11
  92. package/docs/_posts/components/Followers/PositionChaser.md +33 -9
  93. package/docs/_posts/components/Followers/PositionChaser2D.md +33 -9
  94. package/docs/_posts/components/Followers/PositionDamper.md +30 -10
  95. package/docs/_posts/components/Followers/PositionDamper2D.md +30 -10
  96. package/docs/_posts/components/Followers/ScalarChaser.md +33 -9
  97. package/docs/_posts/components/Followers/ScalarDamper.md +30 -10
  98. package/docs/_posts/components/Followers/TexCoordChaser2D.md +33 -9
  99. package/docs/_posts/components/Followers/TexCoordDamper2D.md +30 -10
  100. package/docs/_posts/components/Geometry2D/Arc2D.md +39 -14
  101. package/docs/_posts/components/Geometry2D/ArcClose2D.md +43 -19
  102. package/docs/_posts/components/Geometry2D/Circle2D.md +21 -10
  103. package/docs/_posts/components/Geometry2D/Disk2D.md +32 -14
  104. package/docs/_posts/components/Geometry2D/Polyline2D.md +24 -9
  105. package/docs/_posts/components/Geometry2D/Polypoint2D.md +16 -8
  106. package/docs/_posts/components/Geometry2D/Rectangle2D.md +23 -12
  107. package/docs/_posts/components/Geometry2D/TriangleSet2D.md +23 -12
  108. package/docs/_posts/components/Geometry3D/Box.md +26 -13
  109. package/docs/_posts/components/Geometry3D/Cone.md +30 -22
  110. package/docs/_posts/components/Geometry3D/Cylinder.md +30 -26
  111. package/docs/_posts/components/Geometry3D/ElevationGrid.md +73 -29
  112. package/docs/_posts/components/Geometry3D/Extrusion.md +100 -48
  113. package/docs/_posts/components/Geometry3D/IndexedFaceSet.md +92 -38
  114. package/docs/_posts/components/Geometry3D/Sphere.md +25 -13
  115. package/docs/_posts/components/Geospatial/GeoCoordinate.md +30 -14
  116. package/docs/_posts/components/Geospatial/GeoElevationGrid.md +82 -37
  117. package/docs/_posts/components/Geospatial/GeoLOD.md +66 -27
  118. package/docs/_posts/components/Geospatial/GeoLocation.md +64 -26
  119. package/docs/_posts/components/Geospatial/GeoMetadata.md +28 -22
  120. package/docs/_posts/components/Geospatial/GeoOrigin.md +34 -19
  121. package/docs/_posts/components/Geospatial/GeoPositionInterpolator.md +64 -18
  122. package/docs/_posts/components/Geospatial/GeoProximitySensor.md +67 -18
  123. package/docs/_posts/components/Geospatial/GeoTouchSensor.md +63 -18
  124. package/docs/_posts/components/Geospatial/GeoTransform.md +72 -28
  125. package/docs/_posts/components/Geospatial/GeoViewpoint.md +79 -40
  126. package/docs/_posts/components/Grouping/Group.md +32 -16
  127. package/docs/_posts/components/Grouping/StaticGroup.md +37 -16
  128. package/docs/_posts/components/Grouping/Switch.md +39 -20
  129. package/docs/_posts/components/Grouping/Transform.md +45 -28
  130. package/docs/_posts/components/HAnim/HAnimDisplacer.md +38 -27
  131. package/docs/_posts/components/HAnim/HAnimHumanoid.md +215 -56
  132. package/docs/_posts/components/HAnim/HAnimJoint.md +104 -38
  133. package/docs/_posts/components/HAnim/HAnimMotion.md +120 -10
  134. package/docs/_posts/components/HAnim/HAnimSegment.md +72 -32
  135. package/docs/_posts/components/HAnim/HAnimSite.md +75 -32
  136. package/docs/_posts/components/Interpolation/ColorInterpolator.md +41 -11
  137. package/docs/_posts/components/Interpolation/CoordinateInterpolator.md +39 -13
  138. package/docs/_posts/components/Interpolation/CoordinateInterpolator2D.md +43 -14
  139. package/docs/_posts/components/Interpolation/EaseInEaseOut.md +36 -12
  140. package/docs/_posts/components/Interpolation/NormalInterpolator.md +40 -10
  141. package/docs/_posts/components/Interpolation/OrientationInterpolator.md +40 -10
  142. package/docs/_posts/components/Interpolation/PositionInterpolator.md +40 -10
  143. package/docs/_posts/components/Interpolation/PositionInterpolator2D.md +43 -14
  144. package/docs/_posts/components/Interpolation/ScalarInterpolator.md +39 -13
  145. package/docs/_posts/components/Interpolation/SplinePositionInterpolator.md +41 -16
  146. package/docs/_posts/components/Interpolation/SplinePositionInterpolator2D.md +41 -16
  147. package/docs/_posts/components/Interpolation/SplineScalarInterpolator.md +40 -24
  148. package/docs/_posts/components/Interpolation/SquadOrientationInterpolator.md +35 -11
  149. package/docs/_posts/components/KeyDeviceSensor/KeySensor.md +51 -9
  150. package/docs/_posts/components/KeyDeviceSensor/StringSensor.md +31 -9
  151. package/docs/_posts/components/Layering/Layer.md +27 -14
  152. package/docs/_posts/components/Layering/LayerSet.md +19 -13
  153. package/docs/_posts/components/Layering/Viewport.md +31 -15
  154. package/docs/_posts/components/Layout/Layout.md +27 -16
  155. package/docs/_posts/components/Layout/LayoutGroup.md +34 -18
  156. package/docs/_posts/components/Layout/LayoutLayer.md +28 -15
  157. package/docs/_posts/components/Layout/ScreenFontStyle.md +72 -45
  158. package/docs/_posts/components/Layout/ScreenGroup.md +32 -16
  159. package/docs/_posts/components/Lighting/DirectionalLight.md +19 -11
  160. package/docs/_posts/components/Lighting/EnvironmentLight.md +2 -6
  161. package/docs/_posts/components/Lighting/PointLight.md +23 -11
  162. package/docs/_posts/components/Lighting/SpotLight.md +32 -19
  163. package/docs/_posts/components/NURBS/Contour2D.md +17 -9
  164. package/docs/_posts/components/NURBS/ContourPolyline2D.md +10 -6
  165. package/docs/_posts/components/NURBS/CoordinateDouble.md +13 -9
  166. package/docs/_posts/components/NURBS/NurbsCurve.md +15 -11
  167. package/docs/_posts/components/NURBS/NurbsCurve2D.md +14 -10
  168. package/docs/_posts/components/NURBS/NurbsOrientationInterpolator.md +28 -12
  169. package/docs/_posts/components/NURBS/NurbsPatchSurface.md +19 -13
  170. package/docs/_posts/components/NURBS/NurbsPositionInterpolator.md +27 -11
  171. package/docs/_posts/components/NURBS/NurbsSet.md +48 -14
  172. package/docs/_posts/components/NURBS/NurbsSurfaceInterpolator.md +31 -11
  173. package/docs/_posts/components/NURBS/NurbsSweptSurface.md +31 -14
  174. package/docs/_posts/components/NURBS/NurbsSwungSurface.md +25 -14
  175. package/docs/_posts/components/NURBS/NurbsTextureCoordinate.md +11 -7
  176. package/docs/_posts/components/NURBS/NurbsTrimmedSurface.md +26 -16
  177. package/docs/_posts/components/Navigation/Billboard.md +33 -17
  178. package/docs/_posts/components/Navigation/Collision.md +59 -22
  179. package/docs/_posts/components/Navigation/LOD.md +53 -23
  180. package/docs/_posts/components/Navigation/NavigationInfo.md +68 -25
  181. package/docs/_posts/components/Navigation/OrthoViewpoint.md +80 -37
  182. package/docs/_posts/components/Navigation/Viewpoint.md +86 -39
  183. package/docs/_posts/components/Navigation/ViewpointGroup.md +28 -17
  184. package/docs/_posts/components/Networking/Anchor.md +54 -56
  185. package/docs/_posts/components/Networking/Inline.md +42 -29
  186. package/docs/_posts/components/Networking/LoadSensor.md +41 -9
  187. package/docs/_posts/components/ParticleSystems/BoundedPhysicsModel.md +16 -8
  188. package/docs/_posts/components/ParticleSystems/ConeEmitter.md +25 -10
  189. package/docs/_posts/components/ParticleSystems/ExplosionEmitter.md +18 -11
  190. package/docs/_posts/components/ParticleSystems/ForcePhysicsModel.md +15 -8
  191. package/docs/_posts/components/ParticleSystems/ParticleSystem.md +92 -46
  192. package/docs/_posts/components/ParticleSystems/PointEmitter.md +19 -12
  193. package/docs/_posts/components/ParticleSystems/PolylineEmitter.md +23 -15
  194. package/docs/_posts/components/ParticleSystems/SurfaceEmitter.md +21 -14
  195. package/docs/_posts/components/ParticleSystems/VolumeEmitter.md +25 -18
  196. package/docs/_posts/components/ParticleSystems/WindPhysicsModel.md +11 -7
  197. package/docs/_posts/components/Picking/LinePickSensor.md +37 -15
  198. package/docs/_posts/components/Picking/PickableGroup.md +40 -22
  199. package/docs/_posts/components/Picking/PointPickSensor.md +29 -12
  200. package/docs/_posts/components/Picking/PrimitivePickSensor.md +25 -17
  201. package/docs/_posts/components/Picking/VolumePickSensor.md +25 -12
  202. package/docs/_posts/components/PointingDeviceSensor/CylinderSensor.md +43 -18
  203. package/docs/_posts/components/PointingDeviceSensor/PlaneSensor.md +40 -17
  204. package/docs/_posts/components/PointingDeviceSensor/SphereSensor.md +35 -13
  205. package/docs/_posts/components/PointingDeviceSensor/TouchSensor.md +48 -14
  206. package/docs/_posts/components/Rendering/ClipPlane.md +20 -15
  207. package/docs/_posts/components/Rendering/Color.md +14 -14
  208. package/docs/_posts/components/Rendering/ColorRGBA.md +13 -9
  209. package/docs/_posts/components/Rendering/Coordinate.md +11 -7
  210. package/docs/_posts/components/Rendering/IndexedLineSet.md +58 -24
  211. package/docs/_posts/components/Rendering/IndexedTriangleFanSet.md +44 -23
  212. package/docs/_posts/components/Rendering/IndexedTriangleSet.md +45 -24
  213. package/docs/_posts/components/Rendering/IndexedTriangleStripSet.md +45 -20
  214. package/docs/_posts/components/Rendering/LineSet.md +26 -14
  215. package/docs/_posts/components/Rendering/Normal.md +28 -6
  216. package/docs/_posts/components/Rendering/PointSet.md +24 -11
  217. package/docs/_posts/components/Rendering/TriangleFanSet.md +44 -19
  218. package/docs/_posts/components/Rendering/TriangleSet.md +44 -19
  219. package/docs/_posts/components/Rendering/TriangleStripSet.md +45 -20
  220. package/docs/_posts/components/RigidBodyPhysics/BallJoint.md +22 -10
  221. package/docs/_posts/components/RigidBodyPhysics/CollidableOffset.md +37 -14
  222. package/docs/_posts/components/RigidBodyPhysics/CollidableShape.md +34 -16
  223. package/docs/_posts/components/RigidBodyPhysics/CollisionCollection.md +17 -12
  224. package/docs/_posts/components/RigidBodyPhysics/CollisionSensor.md +21 -12
  225. package/docs/_posts/components/RigidBodyPhysics/CollisionSpace.md +31 -12
  226. package/docs/_posts/components/RigidBodyPhysics/Contact.md +19 -15
  227. package/docs/_posts/components/RigidBodyPhysics/DoubleAxisHingeJoint.md +33 -27
  228. package/docs/_posts/components/RigidBodyPhysics/MotorJoint.md +63 -11
  229. package/docs/_posts/components/RigidBodyPhysics/RigidBody.md +22 -12
  230. package/docs/_posts/components/RigidBodyPhysics/RigidBodyCollection.md +30 -14
  231. package/docs/_posts/components/RigidBodyPhysics/SingleAxisHingeJoint.md +26 -14
  232. package/docs/_posts/components/RigidBodyPhysics/SliderJoint.md +24 -12
  233. package/docs/_posts/components/RigidBodyPhysics/UniversalJoint.md +23 -15
  234. package/docs/_posts/components/Scripting/Script.md +43 -27
  235. package/docs/_posts/components/Shaders/ComposedShader.md +30 -17
  236. package/docs/_posts/components/Shaders/FloatVertexAttribute.md +18 -9
  237. package/docs/_posts/components/Shaders/Matrix3VertexAttribute.md +17 -8
  238. package/docs/_posts/components/Shaders/Matrix4VertexAttribute.md +17 -8
  239. package/docs/_posts/components/Shaders/PackagedShader.md +36 -30
  240. package/docs/_posts/components/Shaders/ProgramShader.md +35 -15
  241. package/docs/_posts/components/Shaders/ShaderPart.md +27 -18
  242. package/docs/_posts/components/Shaders/ShaderProgram.md +28 -17
  243. package/docs/_posts/components/Shape/AcousticProperties.md +34 -6
  244. package/docs/_posts/components/Shape/Appearance.md +29 -22
  245. package/docs/_posts/components/Shape/FillProperties.md +19 -12
  246. package/docs/_posts/components/Shape/LineProperties.md +18 -10
  247. package/docs/_posts/components/Shape/Material.md +64 -38
  248. package/docs/_posts/components/Shape/PhysicalMaterial.md +49 -25
  249. package/docs/_posts/components/Shape/PointProperties.md +21 -14
  250. package/docs/_posts/components/Shape/Shape.md +35 -17
  251. package/docs/_posts/components/Shape/TwoSidedMaterial.md +35 -36
  252. package/docs/_posts/components/Shape/UnlitMaterial.md +29 -17
  253. package/docs/_posts/components/Sound/Analyser.md +133 -4
  254. package/docs/_posts/components/Sound/AudioClip.md +64 -30
  255. package/docs/_posts/components/Sound/AudioDestination.md +76 -4
  256. package/docs/_posts/components/Sound/BiquadFilter.md +143 -4
  257. package/docs/_posts/components/Sound/BufferAudioSource.md +165 -13
  258. package/docs/_posts/components/Sound/ChannelMerger.md +62 -4
  259. package/docs/_posts/components/Sound/ChannelSelector.md +64 -4
  260. package/docs/_posts/components/Sound/ChannelSplitter.md +68 -4
  261. package/docs/_posts/components/Sound/Convolver.md +124 -4
  262. package/docs/_posts/components/Sound/Delay.md +119 -4
  263. package/docs/_posts/components/Sound/DynamicsCompressor.md +127 -4
  264. package/docs/_posts/components/Sound/Gain.md +115 -4
  265. package/docs/_posts/components/Sound/ListenerPointSource.md +109 -4
  266. package/docs/_posts/components/Sound/MicrophoneSource.md +91 -4
  267. package/docs/_posts/components/Sound/OscillatorSource.md +95 -4
  268. package/docs/_posts/components/Sound/PeriodicWave.md +43 -5
  269. package/docs/_posts/components/Sound/Sound.md +53 -20
  270. package/docs/_posts/components/Sound/SpatialSound.md +120 -4
  271. package/docs/_posts/components/Sound/StreamAudioDestination.md +80 -4
  272. package/docs/_posts/components/Sound/StreamAudioSource.md +91 -4
  273. package/docs/_posts/components/Sound/WaveShaper.md +123 -4
  274. package/docs/_posts/components/Text/FontStyle.md +73 -47
  275. package/docs/_posts/components/Text/Text.md +48 -26
  276. package/docs/_posts/components/TextureProjector/TextureProjector.md +55 -6
  277. package/docs/_posts/components/TextureProjector/TextureProjectorParallel.md +56 -6
  278. package/docs/_posts/components/Texturing/ImageTexture.md +28 -20
  279. package/docs/_posts/components/Texturing/MovieTexture.md +69 -38
  280. package/docs/_posts/components/Texturing/MultiTexture.md +47 -19
  281. package/docs/_posts/components/Texturing/MultiTextureCoordinate.md +27 -10
  282. package/docs/_posts/components/Texturing/MultiTextureTransform.md +32 -10
  283. package/docs/_posts/components/Texturing/PixelTexture.md +34 -14
  284. package/docs/_posts/components/Texturing/TextureCoordinate.md +20 -10
  285. package/docs/_posts/components/Texturing/TextureCoordinateGenerator.md +22 -12
  286. package/docs/_posts/components/Texturing/TextureProperties.md +44 -19
  287. package/docs/_posts/components/Texturing/TextureTransform.md +17 -8
  288. package/docs/_posts/components/Texturing3D/ComposedTexture3D.md +21 -13
  289. package/docs/_posts/components/Texturing3D/ImageTexture3D.md +32 -23
  290. package/docs/_posts/components/Texturing3D/ImageTextureAtlas.md +22 -16
  291. package/docs/_posts/components/Texturing3D/PixelTexture3D.md +25 -13
  292. package/docs/_posts/components/Texturing3D/TextureCoordinate3D.md +22 -10
  293. package/docs/_posts/components/Texturing3D/TextureCoordinate4D.md +21 -9
  294. package/docs/_posts/components/Texturing3D/TextureTransform3D.md +17 -8
  295. package/docs/_posts/components/Texturing3D/TextureTransformMatrix3D.md +20 -10
  296. package/docs/_posts/components/Time/TimeSensor.md +66 -23
  297. package/docs/_posts/components/VolumeRendering/BlendedVolumeStyle.md +36 -15
  298. package/docs/_posts/components/VolumeRendering/BoundaryEnhancementVolumeStyle.md +15 -5
  299. package/docs/_posts/components/VolumeRendering/CartoonVolumeStyle.md +20 -17
  300. package/docs/_posts/components/VolumeRendering/ComposedVolumeStyle.md +15 -7
  301. package/docs/_posts/components/VolumeRendering/EdgeEnhancementVolumeStyle.md +16 -8
  302. package/docs/_posts/components/VolumeRendering/IsoSurfaceVolumeData.md +43 -21
  303. package/docs/_posts/components/VolumeRendering/OpacityMapVolumeStyle.md +16 -8
  304. package/docs/_posts/components/VolumeRendering/ProjectionVolumeStyle.md +17 -7
  305. package/docs/_posts/components/VolumeRendering/SegmentedVolumeData.md +50 -17
  306. package/docs/_posts/components/VolumeRendering/ShadedVolumeStyle.md +18 -10
  307. package/docs/_posts/components/VolumeRendering/SilhouetteEnhancementVolumeStyle.md +16 -8
  308. package/docs/_posts/components/VolumeRendering/ToneMappedVolumeStyle.md +20 -11
  309. package/docs/_posts/components/VolumeRendering/VolumeData.md +32 -15
  310. package/docs/_posts/components/X_ITE/BlendMode.md +9 -2
  311. package/docs/_posts/getting-started.md +4 -7
  312. package/docs/_posts/laboratory/x3d-file-converter.md +1 -1
  313. package/docs/laboratory/gltf-sample-viewer.html +52 -4
  314. package/package.json +2 -1
  315. package/src/standard/Math/Geometry/Box2.js +12 -2
  316. package/src/standard/Math/Geometry/Box3.js +12 -2
  317. package/src/x_ite/Base/X3DObjectArrayField.js +3 -2
  318. package/src/x_ite/Base/X3DTypedArrayField.js +3 -2
  319. package/src/x_ite/Browser/Core/X3DCoreContext.js +10 -3
  320. package/src/x_ite/Browser/DOMIntegration.js +13 -8
  321. package/src/x_ite/Browser/VERSION.js +1 -1
  322. package/src/x_ite/Components/CubeMapTexturing/ComposedCubeMapTexture.js +1 -1
  323. package/src/x_ite/Components/DIS/DISEntityManager.js +1 -1
  324. package/src/x_ite/Components/Grouping/Switch.js +1 -1
  325. package/src/x_ite/Components/HAnim/HAnimHumanoid.js +105 -68
  326. package/src/x_ite/Components/HAnim/HAnimMotion.js +3 -3
  327. package/src/x_ite/Components/Layering/X3DLayerNode.js +1 -1
  328. package/src/x_ite/Components/Lighting/DirectionalLight.js +1 -1
  329. package/src/x_ite/Components/Navigation/Collision.js +1 -1
  330. package/src/x_ite/Components/Navigation/LOD.js +1 -1
  331. package/src/x_ite/Components/Navigation/X3DViewpointNode.js +1 -1
  332. package/src/x_ite/Components/Networking/LoadSensor.js +1 -1
  333. package/src/x_ite/Components/ParticleSystems/ParticleSystem.js +1 -1
  334. package/src/x_ite/Components/Rendering/X3DComposedGeometryNode.js +1 -1
  335. package/src/x_ite/Components/Shape/AcousticProperties.js +1 -1
  336. package/src/x_ite/Components/Shape/Appearance.js +1 -1
  337. package/src/x_ite/Components/Shape/Material.js +1 -1
  338. package/src/x_ite/Components/Shape/TwoSidedMaterial.js +1 -1
  339. package/src/x_ite/Components/Sound/PeriodicWave.js +1 -1
  340. package/src/x_ite/Components/Texturing/TextureProperties.js +1 -1
  341. package/src/x_ite/Fields/ArrayFields.js +9 -7
  342. package/src/x_ite/Fields/SFColor.js +1 -1
  343. package/src/x_ite/Fields/SFMatrixPrototypeTemplate.js +1 -1
  344. package/src/x_ite/Fields/SFRotation.js +3 -3
  345. package/src/x_ite/Fields/SFVecPrototypeTemplate.js +1 -1
  346. package/src/x_ite/Parser/GLTF2Parser.js +316 -55
  347. package/src/x_ite/Parser/GoldenGate.js +16 -5
  348. package/src/x_ite/Parser/PLYAParser.js +615 -0
  349. package/src/x_ite/Parser/PLYBParser.js +222 -0
  350. package/src/x_ite/Parser/STLAParser.js +0 -1
  351. package/src/x_ite/Parser/SVGParser.js +1 -1
  352. /package/build/{bin → docs}/components.js +0 -0
package/dist/x_ite.js CHANGED
@@ -1,4 +1,4 @@
1
- /* X_ITE v8.8.7 */(function webpackUniversalModuleDefinition(root, factory) {
1
+ /* X_ITE v8.9.1 */(function webpackUniversalModuleDefinition(root, factory) {
2
2
  if(typeof exports === 'object' && typeof module === 'object')
3
3
  module.exports = factory();
4
4
  else if(typeof define === 'function' && define.amd)
@@ -11,11 +11,11 @@
11
11
  return /******/ (() => { // webpackBootstrap
12
12
  /******/ var __webpack_modules__ = ({
13
13
 
14
- /***/ 504:
14
+ /***/ 399:
15
15
  /***/ (function(module, exports, __webpack_require__) {
16
16
 
17
17
  "use strict";
18
- /* provided dependency */ var jQuery = __webpack_require__(834);
18
+ /* provided dependency */ var jQuery = __webpack_require__(501);
19
19
  var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;
20
20
 
21
21
  /**
@@ -387,10 +387,10 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;
387
387
 
388
388
  /***/ }),
389
389
 
390
- /***/ 692:
390
+ /***/ 892:
391
391
  /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
392
392
 
393
- /* provided dependency */ var jQuery = __webpack_require__(834);
393
+ /* provided dependency */ var jQuery = __webpack_require__(501);
394
394
  /**
395
395
  * @preserve jquery.fullscreen 1.1.5
396
396
  * https://github.com/code-lts/jquery-fullscreen-plugin
@@ -586,7 +586,7 @@ installFullScreenHandlers();
586
586
 
587
587
  /***/ }),
588
588
 
589
- /***/ 789:
589
+ /***/ 659:
590
590
  /***/ ((module, exports, __webpack_require__) => {
591
591
 
592
592
  var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!
@@ -600,7 +600,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_
600
600
  (function (factory) {
601
601
  if ( true ) {
602
602
  // AMD. Register as an anonymous module.
603
- !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(834)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),
603
+ !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(501)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),
604
604
  __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?
605
605
  (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),
606
606
  __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
@@ -811,7 +811,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_
811
811
 
812
812
  /***/ }),
813
813
 
814
- /***/ 834:
814
+ /***/ 501:
815
815
  /***/ (function(module, exports) {
816
816
 
817
817
  var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!
@@ -11523,7 +11523,7 @@ return jQuery;
11523
11523
 
11524
11524
  /***/ }),
11525
11525
 
11526
- /***/ 492:
11526
+ /***/ 173:
11527
11527
  /***/ ((module) => {
11528
11528
 
11529
11529
  /**
@@ -16302,7 +16302,7 @@ if (true) {
16302
16302
 
16303
16303
  /***/ }),
16304
16304
 
16305
- /***/ 660:
16305
+ /***/ 234:
16306
16306
  /***/ (function(__unused_webpack_module, exports) {
16307
16307
 
16308
16308
 
@@ -19547,7 +19547,7 @@ if (true) {
19547
19547
 
19548
19548
  /***/ }),
19549
19549
 
19550
- /***/ 1:
19550
+ /***/ 611:
19551
19551
  /***/ (function(module, exports) {
19552
19552
 
19553
19553
  var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*
@@ -24047,7 +24047,7 @@ Object .assign (Object .setPrototypeOf (SFColor .prototype, Base_X3DField .proto
24047
24047
  for (let i = 0; i < last; ++ i)
24048
24048
  {
24049
24049
  generator .string += generator .FloatFormat (value [i]);
24050
- generator .string += generator .TidySpace ();
24050
+ generator .string += generator .Space ();
24051
24051
  }
24052
24052
 
24053
24053
  generator .string += generator .FloatFormat (value [last]);
@@ -25031,7 +25031,7 @@ function SFMatrixPrototypeTemplate (Constructor, TypeName, Matrix, SFVec, double
25031
25031
  for (let i = 0; i < last; ++ i)
25032
25032
  {
25033
25033
  generator .string += generator [_formatter] (value [i]);
25034
- generator .string += generator .TidySpace ();
25034
+ generator .string += generator .Space ();
25035
25035
  }
25036
25036
 
25037
25037
  generator .string += generator [_formatter] (value [last]);
@@ -25236,7 +25236,7 @@ function SFVecPrototypeTemplate (Constructor, TypeName, Vector, double)
25236
25236
  for (let i = 0; i < last; ++ i)
25237
25237
  {
25238
25238
  generator .string += generator [_formatter] (generator .ToUnit (category, value [i]));
25239
- generator .string += generator .TidySpace ();
25239
+ generator .string += generator .Space ();
25240
25240
  }
25241
25241
 
25242
25242
  generator .string += generator [_formatter] (generator .ToUnit (category, value [last]));
@@ -30305,11 +30305,11 @@ Object .assign (Object .setPrototypeOf (SFRotation .prototype, Base_X3DField .pr
30305
30305
  const { x, y, z, angle } = this .getValue ();
30306
30306
 
30307
30307
  generator .string += generator .DoubleFormat (x);
30308
- generator .string += generator .TidySpace ();
30308
+ generator .string += generator .Space ();
30309
30309
  generator .string += generator .DoubleFormat (y);
30310
- generator .string += generator .TidySpace ();
30310
+ generator .string += generator .Space ();
30311
30311
  generator .string += generator .DoubleFormat (z);
30312
- generator .string += generator .TidySpace ();
30312
+ generator .string += generator .Space ();
30313
30313
  generator .string += generator .DoubleFormat (generator .ToUnit ("angle", angle));
30314
30314
  },
30315
30315
  toVRMLStream (generator)
@@ -31080,7 +31080,7 @@ const X3DObjectArrayField_handler =
31080
31080
  },
31081
31081
  };
31082
31082
 
31083
- function X3DObjectArrayField (value)
31083
+ function X3DObjectArrayField (values)
31084
31084
  {
31085
31085
  const proxy = new Proxy (this, X3DObjectArrayField_handler);
31086
31086
 
@@ -31089,7 +31089,8 @@ function X3DObjectArrayField (value)
31089
31089
  this [X3DObjectArrayField_target] = this;
31090
31090
  this [X3DObjectArrayField_proxy] = proxy;
31091
31091
 
31092
- this .push (... value);
31092
+ for (const value of values)
31093
+ this .push (value);
31093
31094
 
31094
31095
  return proxy;
31095
31096
  }
@@ -31663,7 +31664,7 @@ const X3DTypedArrayField_handler =
31663
31664
  },
31664
31665
  };
31665
31666
 
31666
- function X3DTypedArrayField (args)
31667
+ function X3DTypedArrayField (values)
31667
31668
  {
31668
31669
  const proxy = new Proxy (this, X3DTypedArrayField_handler);
31669
31670
 
@@ -31678,7 +31679,8 @@ function X3DTypedArrayField (args)
31678
31679
  this [_tmp] = [ ]; // Array with components size.
31679
31680
  }
31680
31681
 
31681
- this .push (... args);
31682
+ for (const value of values)
31683
+ this .push (value);
31682
31684
 
31683
31685
  return proxy;
31684
31686
  }
@@ -32629,9 +32631,10 @@ Object .assign (Object .setPrototypeOf (MFNode .prototype, Base_X3DObjectArrayFi
32629
32631
  {
32630
32632
  const
32631
32633
  target = this .getTarget (),
32632
- array = target .getValue ();
32634
+ array = target .getValue (),
32635
+ length = array .length;
32633
32636
 
32634
- switch (array .length)
32637
+ switch (length)
32635
32638
  {
32636
32639
  case 0:
32637
32640
  {
@@ -32657,11 +32660,11 @@ Object .assign (Object .setPrototypeOf (MFNode .prototype, Base_X3DObjectArrayFi
32657
32660
  generator .string += generator .TidyBreak ();
32658
32661
  generator .IncIndent ();
32659
32662
 
32660
- for (let i = 0, length = array .length; i < length; ++ i)
32663
+ for (let i = 0; i < length; ++ i)
32661
32664
  {
32662
32665
  generator .string += generator .Indent ();
32663
32666
  array [i] .toStream (generator);
32664
- generator .string += generator .TidyBreak ();
32667
+ generator .string += generator .string .at (-1) === "}" ? generator .TidyBreak () : generator .Break ();
32665
32668
  }
32666
32669
 
32667
32670
  generator .DecIndent ();
@@ -32677,9 +32680,10 @@ Object .assign (Object .setPrototypeOf (MFNode .prototype, Base_X3DObjectArrayFi
32677
32680
  {
32678
32681
  const
32679
32682
  target = this .getTarget (),
32680
- array = target .getValue ();
32683
+ array = target .getValue (),
32684
+ length = array .length;
32681
32685
 
32682
- switch (array .length)
32686
+ switch (length)
32683
32687
  {
32684
32688
  case 0:
32685
32689
  {
@@ -32709,7 +32713,7 @@ Object .assign (Object .setPrototypeOf (MFNode .prototype, Base_X3DObjectArrayFi
32709
32713
  {
32710
32714
  generator .string += generator .Indent ();
32711
32715
  element .toVRMLStream (generator);
32712
- generator .string += generator .TidyBreak ();
32716
+ generator .string += generator .string .at (-1) === "}" ? generator .TidyBreak () : generator .Break ();
32713
32717
  }
32714
32718
 
32715
32719
  generator .DecIndent ();
@@ -34234,7 +34238,7 @@ x_ite_Namespace .set ("x_ite/Base/X3DBaseNode", X3DBaseNode_default_);
34234
34238
  *
34235
34239
  ******************************************************************************/
34236
34240
 
34237
- const VERSION_default_ = "8.8.7";
34241
+ const VERSION_default_ = "8.9.1";
34238
34242
  ;
34239
34243
 
34240
34244
  x_ite_Namespace .set ("x_ite/Browser/VERSION", VERSION_default_);
@@ -38519,7 +38523,7 @@ const X3DUrlObject_default_ = X3DUrlObject;
38519
38523
  x_ite_Namespace .set ("x_ite/Components/Networking/X3DUrlObject", X3DUrlObject_default_);
38520
38524
  /* harmony default export */ const Networking_X3DUrlObject = (X3DUrlObject_default_);
38521
38525
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/X3DParser.js
38522
- /* provided dependency */ var $ = __webpack_require__(834);
38526
+ /* provided dependency */ var $ = __webpack_require__(501);
38523
38527
  /*******************************************************************************
38524
38528
  *
38525
38529
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -38767,7 +38771,7 @@ const Expressions_default_ = Expressions;
38767
38771
  x_ite_Namespace .set ("x_ite/Parser/Expressions", Expressions_default_);
38768
38772
  /* harmony default export */ const Parser_Expressions = (Expressions_default_);
38769
38773
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/VRMLParser.js
38770
- /* provided dependency */ var VRMLParser_$ = __webpack_require__(834);
38774
+ /* provided dependency */ var VRMLParser_$ = __webpack_require__(501);
38771
38775
  /*******************************************************************************
38772
38776
  *
38773
38777
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -41319,7 +41323,7 @@ const VRMLParser_default_ = VRMLParser;
41319
41323
  x_ite_Namespace .set ("x_ite/Parser/VRMLParser", VRMLParser_default_);
41320
41324
  /* harmony default export */ const Parser_VRMLParser = (VRMLParser_default_);
41321
41325
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/XMLParser.js
41322
- /* provided dependency */ var XMLParser_$ = __webpack_require__(834);
41326
+ /* provided dependency */ var XMLParser_$ = __webpack_require__(501);
41323
41327
  /*******************************************************************************
41324
41328
  *
41325
41329
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -43291,7 +43295,7 @@ const URLs_default_ = URLs;
43291
43295
  x_ite_Namespace .set ("x_ite/Browser/Networking/URLs", URLs_default_);
43292
43296
  /* harmony default export */ const Networking_URLs = (URLs_default_);
43293
43297
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/GLTF2Parser.js
43294
- /* provided dependency */ var GLTF2Parser_$ = __webpack_require__(834);
43298
+ /* provided dependency */ var GLTF2Parser_$ = __webpack_require__(501);
43295
43299
  /*******************************************************************************
43296
43300
  *
43297
43301
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -43382,6 +43386,10 @@ function GLTF2Parser (scene)
43382
43386
  this .cameras = [ ];
43383
43387
  this .viewpoints = 0;
43384
43388
  this .nodes = [ ];
43389
+ this .skins = [ ];
43390
+ this .joints = new Set ();
43391
+ this .skeletons = new Set ();
43392
+ this .inverseBindMatrices = new Map ();
43385
43393
  this .animations = 0;
43386
43394
  }
43387
43395
 
@@ -43424,10 +43432,10 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
43424
43432
  "meshes",
43425
43433
  "cameras",
43426
43434
  "nodes",
43435
+ "skins",
43427
43436
  "scenes",
43428
43437
  "scene",
43429
43438
  "animations",
43430
- "skins",
43431
43439
  ]);
43432
43440
 
43433
43441
  return function ()
@@ -43470,6 +43478,9 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
43470
43478
  scene .setEncoding ("GLTF");
43471
43479
  scene .setProfile (browser .getProfile ("Interchange"));
43472
43480
 
43481
+ if (glTF .skins)
43482
+ scene .addComponent (browser .getComponent ("HAnim"));
43483
+
43473
43484
  // Parse root objects.
43474
43485
 
43475
43486
  this .assetObject (glTF .asset);
@@ -43494,9 +43505,9 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
43494
43505
  this .meshesArray (glTF .meshes);
43495
43506
  this .camerasArray (glTF .cameras);
43496
43507
  this .nodesArray (glTF .nodes);
43508
+ this .skinsArray (glTF .skins);
43497
43509
  this .scenesArray (glTF .scenes, glTF .scene);
43498
43510
  this .animationsArray (glTF .animations);
43499
- this .skinsArray (glTF .skins);
43500
43511
 
43501
43512
  //this .optimizeSceneGraph (this .getExecutionContext () .getRootNodes ());
43502
43513
 
@@ -44025,8 +44036,7 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
44025
44036
 
44026
44037
  const texCoordIndices = this .texCoordIndices ("", material);
44027
44038
 
44028
- this .texCoordIndex = [... texCoordIndices] .reduce (Math .max, -1);
44029
-
44039
+ this .texCoordIndex = [... texCoordIndices] .reduce (Math .max, -1);
44030
44040
  this .textureTransformNodes = [ ];
44031
44041
  this .texCoordMappings = new Map ();
44032
44042
  material .texCoordMappings = this .texCoordMappings;
@@ -44322,7 +44332,7 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
44322
44332
 
44323
44333
  this .meshes = meshes;
44324
44334
  },
44325
- meshObject (mesh)
44335
+ meshObject (mesh, skin)
44326
44336
  {
44327
44337
  if (!(mesh instanceof Object))
44328
44338
  return;
@@ -44330,7 +44340,16 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
44330
44340
  if (mesh .shapeNodes)
44331
44341
  return mesh .shapeNodes;
44332
44342
 
44333
- const shapeNodes = this .primitivesArray (mesh .primitives);
44343
+ if (skin instanceof Object)
44344
+ {
44345
+ const scene = this .getScene ();
44346
+
44347
+ skin .textureCoordinateNode = scene .createNode ("TextureCoordinate", false);
44348
+ skin .normalNode = scene .createNode ("Normal", false);
44349
+ skin .coordinateNode = scene .createNode ("Coordinate", false);
44350
+ }
44351
+
44352
+ const shapeNodes = this .primitivesArray (mesh .primitives, skin);
44334
44353
 
44335
44354
  // Name Shape nodes.
44336
44355
 
@@ -44347,9 +44366,16 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
44347
44366
  }
44348
44367
  }
44349
44368
 
44369
+ if (skin instanceof Object)
44370
+ {
44371
+ skin .textureCoordinateNode .setup ();
44372
+ skin .normalNode .setup ();
44373
+ skin .coordinateNode .setup ();
44374
+ }
44375
+
44350
44376
  return mesh .shapeNodes = shapeNodes;
44351
44377
  },
44352
- primitivesArray (primitives)
44378
+ primitivesArray (primitives, skin)
44353
44379
  {
44354
44380
  if (!(primitives instanceof Array))
44355
44381
  return [ ];
@@ -44357,11 +44383,11 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
44357
44383
  const shapeNodes = [ ];
44358
44384
 
44359
44385
  for (const primitive of primitives)
44360
- this .primitiveObject (primitive, shapeNodes);
44386
+ this .primitiveObject (primitive, skin, shapeNodes);
44361
44387
 
44362
44388
  return shapeNodes;
44363
44389
  },
44364
- primitiveObject (primitive, shapeNodes)
44390
+ primitiveObject (primitive, skin, shapeNodes)
44365
44391
  {
44366
44392
  if (!(primitive instanceof Object))
44367
44393
  return;
@@ -44374,7 +44400,7 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
44374
44400
 
44375
44401
  this .primitiveExtensionsObject (primitive .extensions, primitive)
44376
44402
 
44377
- shapeNodes .push (this .createShape (primitive));
44403
+ shapeNodes .push (this .createShape (primitive, skin));
44378
44404
  },
44379
44405
  attributesObject (attributes)
44380
44406
  {
@@ -44659,7 +44685,7 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
44659
44685
 
44660
44686
  this .nodes = nodes;
44661
44687
  },
44662
- nodeObject (node)
44688
+ nodeObject (node, index)
44663
44689
  {
44664
44690
  if (!(node instanceof Object))
44665
44691
  return;
@@ -44671,7 +44697,8 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
44671
44697
 
44672
44698
  const
44673
44699
  scene = this .getExecutionContext (),
44674
- transformNode = scene .createNode ("Transform", false),
44700
+ typeName = this .joints .has (index) ? "HAnimJoint" : "Transform",
44701
+ transformNode = scene .createNode (typeName, false),
44675
44702
  name = this .sanitizeName (node .name);
44676
44703
 
44677
44704
  // Name
@@ -44680,6 +44707,9 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
44680
44707
  {
44681
44708
  scene .addNamedNode (scene .getUniqueName (name), transformNode);
44682
44709
  scene .addExportedNode (scene .getUniqueExportName (name), transformNode);
44710
+
44711
+ if (typeName === "HAnimJoint")
44712
+ transformNode ._name = node .name;
44683
44713
  }
44684
44714
 
44685
44715
  // Set transformation matrix.
@@ -44729,7 +44759,52 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
44729
44759
  const mesh = this .meshes [node .mesh];
44730
44760
 
44731
44761
  if (mesh)
44732
- transformNode ._children .push (... this .meshObject (mesh));
44762
+ {
44763
+ const
44764
+ skin = this .skins [node .skin],
44765
+ shapeNodes = this .meshObject (mesh, skin);
44766
+
44767
+ transformNode ._children .push (... shapeNodes);
44768
+
44769
+ if (skin && shapeNodes .length)
44770
+ {
44771
+ var humanoidNode = scene .createNode ("HAnimHumanoid", false);
44772
+
44773
+ const name = this .sanitizeName (skin .name);
44774
+
44775
+ if (name)
44776
+ scene .addNamedNode (scene .getUniqueName (name), humanoidNode);
44777
+
44778
+ humanoidNode ._name = skin .name;
44779
+ humanoidNode ._version = "2.0";
44780
+ humanoidNode ._skeletalConfiguration = "NONE";
44781
+
44782
+ const skeletonNode = this .nodeObject (this .nodes [skin .skeleton], skin .skeleton);
44783
+
44784
+ if (skeletonNode)
44785
+ humanoidNode ._skeleton .push (skeletonNode);
44786
+
44787
+ for (const joint of skin .joints)
44788
+ {
44789
+ const inverseBindMatrix = this .inverseBindMatrices .get (joint);
44790
+
44791
+ inverseBindMatrix .get (translation, rotation, scale);
44792
+
44793
+ humanoidNode ._joints .push (this .nodeObject (this .nodes [joint], joint));
44794
+ humanoidNode ._jointBindingPositions .push (translation);
44795
+ humanoidNode ._jointBindingRotations .push (rotation);
44796
+ humanoidNode ._jointBindingScales .push (scale);
44797
+ }
44798
+
44799
+ humanoidNode ._skinBindingNormal = shapeNodes [0] ._geometry .normal ?.getValue () ?.copy ();
44800
+ humanoidNode ._skinBindingCoord = shapeNodes [0] ._geometry .coord ?.getValue () ?.copy ();
44801
+ humanoidNode ._skinNormal = shapeNodes [0] ._geometry .normal;
44802
+ humanoidNode ._skinCoord = shapeNodes [0] ._geometry .coord;
44803
+ humanoidNode ._skin .push (transformNode);
44804
+
44805
+ humanoidNode .setup ();
44806
+ }
44807
+ }
44733
44808
 
44734
44809
  // Get children.
44735
44810
 
@@ -44739,10 +44814,13 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
44739
44814
 
44740
44815
  transformNode .setup ();
44741
44816
 
44742
- if (transformNode ._children .length === 0)
44743
- return node .childNode = null;
44817
+ if (typeName === "Transform")
44818
+ {
44819
+ if (!transformNode ._children .length)
44820
+ return node .childNode = null;
44821
+ }
44744
44822
 
44745
- return node .childNode = transformNode;
44823
+ return node .childNode = humanoidNode ?? transformNode;
44746
44824
  },
44747
44825
  nodeExtensions (extensions, transformNode)
44748
44826
  {
@@ -44771,9 +44849,68 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
44771
44849
  return [ ];
44772
44850
 
44773
44851
  return children
44852
+ .filter (index => !this .skeletons .has (index))
44774
44853
  .map (index => this .nodeObject (this .nodes [index], index))
44775
44854
  .filter (node => node);
44776
44855
  },
44856
+ skinsArray (skins)
44857
+ {
44858
+ if (!(skins instanceof Array))
44859
+ return;
44860
+
44861
+ this .skins = skins;
44862
+
44863
+ for (const skin of skins)
44864
+ this .skinObject (skin);
44865
+ },
44866
+ skinObject: function (skin)
44867
+ {
44868
+ if (!(skin instanceof Object))
44869
+ return;
44870
+
44871
+ skin .joints = this .jointsArray (skin .joints);
44872
+
44873
+ if (skin .skeleton === undefined)
44874
+ skin .skeleton = this .skeleton (skin .joints);
44875
+
44876
+ this .skeletons .add (skin .skeleton);
44877
+
44878
+ this .inverseBindMatricesAccessors (this .accessors [skin .inverseBindMatrices], skin .joints);
44879
+ },
44880
+ jointsArray: function (joints)
44881
+ {
44882
+ if (!(joints instanceof Array))
44883
+ return [ ];
44884
+
44885
+ joints .forEach (index => this .joints .add (index));
44886
+
44887
+ return joints;
44888
+ },
44889
+ skeleton: function (joints)
44890
+ {
44891
+ const children = new Set (joints
44892
+ .map (index => this .nodes [index])
44893
+ .filter (node => node instanceof Object)
44894
+ .filter (node => node .children instanceof Array)
44895
+ .flatMap (node => node .children));
44896
+
44897
+ return joints .filter (index => !children .has (index)) [0];
44898
+ },
44899
+ inverseBindMatricesAccessors: function (inverseBindMatrices, joints)
44900
+ {
44901
+ if (!inverseBindMatrices)
44902
+ return;
44903
+
44904
+ const
44905
+ array = inverseBindMatrices .array,
44906
+ length = array .length,
44907
+ matrices = [ ];
44908
+
44909
+ for (let i = 0; i < length; i += 16)
44910
+ matrices .push (new Numbers_Matrix4 (... array .subarray (i, i + 16)));
44911
+
44912
+ matrices .forEach ((matrix, i) => this .inverseBindMatrices .set (joints [i], matrix));
44913
+ },
44777
44914
  scenesArray (scenes, sceneNumber)
44778
44915
  {
44779
44916
  if (!(scenes instanceof Array))
@@ -44935,7 +45072,7 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
44935
45072
 
44936
45073
  const cycleInterval = samplers
44937
45074
  .map (sampler => this .accessors [sampler .input])
44938
- .filter (input => input && input .array .length)
45075
+ .filter (input => input ?.array .length)
44939
45076
  .reduce ((value, input) => Math .max (value, input .array .at (-1)), 0);
44940
45077
 
44941
45078
  timeSensorNode ._loop = DEVELOPMENT;
@@ -44955,7 +45092,7 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
44955
45092
  if (!(target instanceof Object))
44956
45093
  return null;
44957
45094
 
44958
- const node = this .nodeObject (this .nodes [target .node]);
45095
+ const node = this .nodeObject (this .nodes [target .node], target .node);
44959
45096
 
44960
45097
  if (!node)
44961
45098
  return null;
@@ -44993,11 +45130,6 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
44993
45130
 
44994
45131
  return interpolatorNode;
44995
45132
  },
44996
- skinsArray (skins)
44997
- {
44998
- if (!(skins instanceof Array))
44999
- return;
45000
- },
45001
45133
  createNavigationInfo ()
45002
45134
  {
45003
45135
  const
@@ -45010,13 +45142,13 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
45010
45142
 
45011
45143
  return navigationInfoNode;
45012
45144
  },
45013
- createShape (primitive)
45145
+ createShape (primitive, skin)
45014
45146
  {
45015
45147
  const
45016
45148
  scene = this .getExecutionContext (),
45017
45149
  shapeNode = scene .createNode ("Shape", false),
45018
45150
  appearanceNode = this .materialObject (primitive .material),
45019
- geometryNode = this .createGeometry (primitive);
45151
+ geometryNode = this .createGeometry (primitive, skin);
45020
45152
 
45021
45153
  shapeNode ._appearance = appearanceNode;
45022
45154
  shapeNode ._geometry = geometryNode;
@@ -45089,54 +45221,54 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
45089
45221
  }
45090
45222
  }
45091
45223
  },
45092
- createGeometry (primitive)
45224
+ createGeometry (primitive, skin)
45093
45225
  {
45094
45226
  switch (primitive .mode)
45095
45227
  {
45096
45228
  case 0: // POINTS
45097
45229
  {
45098
- return this .createPointSet (primitive);
45230
+ return this .createPointSet (primitive, skin);
45099
45231
  }
45100
45232
  case 1: // LINES
45101
45233
  {
45102
45234
  if (primitive .indices)
45103
- return this .createIndexedLineSet (primitive, 1);
45235
+ return this .createIndexedLineSet (primitive, skin, 1);
45104
45236
 
45105
- return this .createLineSet (primitive);
45237
+ return this .createLineSet (primitive, skin);
45106
45238
  }
45107
45239
  case 2: // LINE_LOOP
45108
45240
  {
45109
- return this .createIndexedLineSet (primitive, 2);
45241
+ return this .createIndexedLineSet (primitive, skin, 2);
45110
45242
  }
45111
45243
  case 3: // LINE_STRIP
45112
45244
  {
45113
- return this .createIndexedLineSet (primitive, 3);
45245
+ return this .createIndexedLineSet (primitive, skin, 3);
45114
45246
  }
45115
45247
  default:
45116
45248
  case 4: // TRIANGLES
45117
45249
  {
45118
45250
  if (primitive .indices)
45119
- return this .createIndexedTriangleSet (primitive);
45251
+ return this .createIndexedTriangleSet (primitive, skin);
45120
45252
 
45121
- return this .createTriangleSet (primitive);
45253
+ return this .createTriangleSet (primitive, skin);
45122
45254
  }
45123
45255
  case 5: // TRIANGLE_STRIP
45124
45256
  {
45125
45257
  if (primitive .indices)
45126
- return this .createIndexedTriangleStripSet (primitive);
45258
+ return this .createIndexedTriangleStripSet (primitive, skin);
45127
45259
 
45128
- return this .createTriangleStripSet (primitive);
45260
+ return this .createTriangleStripSet (primitive, skin);
45129
45261
  }
45130
45262
  case 6: // TRIANGLE_FAN
45131
45263
  {
45132
45264
  if (primitive .indices)
45133
- return this .createIndexedTriangleFanSet (primitive);
45265
+ return this .createIndexedTriangleFanSet (primitive, skin);
45134
45266
 
45135
- return this .createTriangleFanSet (primitive);
45267
+ return this .createTriangleFanSet (primitive, skin);
45136
45268
  }
45137
45269
  }
45138
45270
  },
45139
- createPointSet ({ attributes, material })
45271
+ createPointSet ({ attributes, material }, skin)
45140
45272
  {
45141
45273
  const
45142
45274
  scene = this .getExecutionContext (),
@@ -45146,11 +45278,14 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
45146
45278
  geometryNode ._normal = this .createNormal (attributes .NORMAL);
45147
45279
  geometryNode ._coord = this .createCoordinate (attributes .POSITION);
45148
45280
 
45281
+ this .attributesJointsArray (skin, attributes .JOINTS, attributes .WEIGHTS);
45282
+ this .skinGeometry (skin, geometryNode);
45283
+
45149
45284
  geometryNode .setup ();
45150
45285
 
45151
45286
  return geometryNode;
45152
45287
  },
45153
- createIndexedLineSet ({ attributes, indices, material }, mode)
45288
+ createIndexedLineSet ({ attributes, indices, material }, skin, mode)
45154
45289
  {
45155
45290
  const
45156
45291
  scene = this .getExecutionContext (),
@@ -45172,7 +45307,7 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
45172
45307
  for (let i = 0; i < length; i += 2)
45173
45308
  coordIndex .push (array [i], array [i + 1], -1);
45174
45309
 
45175
- break
45310
+ break;
45176
45311
  }
45177
45312
  case 2: // LINE_LOOP
45178
45313
  {
@@ -45180,7 +45315,8 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
45180
45315
 
45181
45316
  if (indices)
45182
45317
  {
45183
- coordIndex .push (... indices .array);
45318
+ for (const i of indices .array)
45319
+ coordIndex .push (i);
45184
45320
 
45185
45321
  if (coordIndex .length)
45186
45322
  coordIndex .push (coordIndex [0], -1);
@@ -45189,10 +45325,16 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
45189
45325
  {
45190
45326
  const coord = geometryNode ._coord;
45191
45327
 
45192
- if (coord && coord .point .length)
45193
- coordIndex .push (... coord .point .keys (), 0, -1);
45328
+ if (coord ?.point .length)
45329
+ {
45330
+ for (const i of coord .point .keys ())
45331
+ coordIndex .push (i);
45332
+
45333
+ coordIndex .push (0, -1);
45334
+ }
45194
45335
  }
45195
- break
45336
+
45337
+ break;
45196
45338
  }
45197
45339
  case 3: // LINE_STRIP
45198
45340
  {
@@ -45200,7 +45342,8 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
45200
45342
 
45201
45343
  if (indices)
45202
45344
  {
45203
- coordIndex .push (... indices .array);
45345
+ for (const i of indices .array)
45346
+ coordIndex .push (i);
45204
45347
 
45205
45348
  if (coordIndex .length)
45206
45349
  coordIndex .push (-1);
@@ -45209,19 +45352,27 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
45209
45352
  {
45210
45353
  const coord = geometryNode ._coord;
45211
45354
 
45212
- if (coord && coord .point .length)
45213
- coordIndex .push (... coord .point .keys (), -1);
45355
+ if (coord ?.point .length)
45356
+ {
45357
+ for (const i of coord .point .keys ())
45358
+ coordIndex .push (i);
45359
+
45360
+ coordIndex .push (-1);
45361
+ }
45214
45362
  }
45215
45363
 
45216
- break
45364
+ break;
45217
45365
  }
45218
45366
  }
45219
45367
 
45368
+ this .attributesJointsArray (skin, attributes .JOINTS, attributes .WEIGHTS);
45369
+ this .skinGeometry (skin, geometryNode);
45370
+
45220
45371
  geometryNode .setup ();
45221
45372
 
45222
45373
  return geometryNode;
45223
45374
  },
45224
- createLineSet ({ attributes, material })
45375
+ createLineSet ({ attributes, material }, skin)
45225
45376
  {
45226
45377
  const
45227
45378
  scene = this .getExecutionContext (),
@@ -45231,11 +45382,14 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
45231
45382
  geometryNode ._normal = this .createNormal (attributes .NORMAL);
45232
45383
  geometryNode ._coord = this .createCoordinate (attributes .POSITION);
45233
45384
 
45385
+ this .attributesJointsArray (skin, attributes .JOINTS, attributes .WEIGHTS);
45386
+ this .skinGeometry (skin, geometryNode);
45387
+
45234
45388
  geometryNode .setup ();
45235
45389
 
45236
45390
  return geometryNode;
45237
45391
  },
45238
- createIndexedTriangleSet ({ attributes, indices, material })
45392
+ createIndexedTriangleSet ({ attributes, indices, material }, skin)
45239
45393
  {
45240
45394
  const
45241
45395
  scene = this .getExecutionContext (),
@@ -45249,11 +45403,14 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
45249
45403
  geometryNode ._coord = this .createCoordinate (attributes .POSITION);
45250
45404
  geometryNode ._normalPerVertex = !! geometryNode ._normal;
45251
45405
 
45406
+ this .attributesJointsArray (skin, attributes .JOINTS, attributes .WEIGHTS);
45407
+ this .skinGeometry (skin, geometryNode);
45408
+
45252
45409
  geometryNode .setup ();
45253
45410
 
45254
45411
  return geometryNode;
45255
45412
  },
45256
- createTriangleSet ({ attributes, material })
45413
+ createTriangleSet ({ attributes, material }, skin)
45257
45414
  {
45258
45415
  const
45259
45416
  scene = this .getExecutionContext (),
@@ -45266,11 +45423,14 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
45266
45423
  geometryNode ._coord = this .createCoordinate (attributes .POSITION);
45267
45424
  geometryNode ._normalPerVertex = !! geometryNode ._normal;
45268
45425
 
45426
+ this .attributesJointsArray (skin, attributes .JOINTS, attributes .WEIGHTS);
45427
+ this .skinGeometry (skin, geometryNode);
45428
+
45269
45429
  geometryNode .setup ();
45270
45430
 
45271
45431
  return geometryNode;
45272
45432
  },
45273
- createIndexedTriangleStripSet ({ attributes, indices, material })
45433
+ createIndexedTriangleStripSet ({ attributes, indices, material }, skin)
45274
45434
  {
45275
45435
  const
45276
45436
  scene = this .getExecutionContext (),
@@ -45284,11 +45444,14 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
45284
45444
  geometryNode ._coord = this .createCoordinate (attributes .POSITION);
45285
45445
  geometryNode ._normalPerVertex = !! geometryNode ._normal;
45286
45446
 
45447
+ this .attributesJointsArray (skin, attributes .JOINTS, attributes .WEIGHTS);
45448
+ this .skinGeometry (skin, geometryNode);
45449
+
45287
45450
  geometryNode .setup ();
45288
45451
 
45289
45452
  return geometryNode;
45290
45453
  },
45291
- createTriangleStripSet ({ attributes, material })
45454
+ createTriangleStripSet ({ attributes, material }, skin)
45292
45455
  {
45293
45456
  const
45294
45457
  scene = this .getExecutionContext (),
@@ -45309,11 +45472,14 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
45309
45472
  geometryNode ._stripCount = [coord .point .length];
45310
45473
  }
45311
45474
 
45475
+ this .attributesJointsArray (skin, attributes .JOINTS, attributes .WEIGHTS);
45476
+ this .skinGeometry (skin, geometryNode);
45477
+
45312
45478
  geometryNode .setup ();
45313
45479
 
45314
45480
  return geometryNode;
45315
45481
  },
45316
- createIndexedTriangleFanSet ({ attributes, indices, material })
45482
+ createIndexedTriangleFanSet ({ attributes, indices, material }, skin)
45317
45483
  {
45318
45484
  const
45319
45485
  scene = this .getExecutionContext (),
@@ -45327,11 +45493,14 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
45327
45493
  geometryNode ._coord = this .createCoordinate (attributes .POSITION);
45328
45494
  geometryNode ._normalPerVertex = !! geometryNode ._normal;
45329
45495
 
45496
+ this .attributesJointsArray (skin, attributes .JOINTS, attributes .WEIGHTS);
45497
+ this .skinGeometry (skin, geometryNode);
45498
+
45330
45499
  geometryNode .setup ();
45331
45500
 
45332
45501
  return geometryNode;
45333
45502
  },
45334
- createTriangleFanSet ({ attributes, material })
45503
+ createTriangleFanSet ({ attributes, material }, skin)
45335
45504
  {
45336
45505
  const
45337
45506
  scene = this .getExecutionContext (),
@@ -45352,6 +45521,9 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
45352
45521
  geometryNode ._fanCount = [coord .point .length];
45353
45522
  }
45354
45523
 
45524
+ this .attributesJointsArray (skin, attributes .JOINTS, attributes .WEIGHTS);
45525
+ this .skinGeometry (skin, geometryNode);
45526
+
45355
45527
  geometryNode .setup ();
45356
45528
 
45357
45529
  return geometryNode;
@@ -45498,6 +45670,99 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
45498
45670
 
45499
45671
  return position .coordinateNode = coordinateNode;
45500
45672
  },
45673
+ attributesJointsArray: function (skin, joints, weights)
45674
+ {
45675
+ if (!(skin instanceof Object))
45676
+ return;
45677
+
45678
+ if (!(joints instanceof Array))
45679
+ return;
45680
+
45681
+ if (!(weights instanceof Array))
45682
+ return;
45683
+
45684
+ for (let i = 0, length = joints .length; i < length; ++ i)
45685
+ this .attributesJointsObject (skin, joints [i], weights [i]);
45686
+ },
45687
+ attributesJointsObject: function (skin, joints, weights)
45688
+ {
45689
+ if (!(joints instanceof Object))
45690
+ return;
45691
+
45692
+ if (!(weights instanceof Object))
45693
+ return;
45694
+
45695
+ if (joints .type !== "VEC4")
45696
+ return;
45697
+
45698
+ if (weights .type !== "VEC4")
45699
+ return;
45700
+
45701
+ const
45702
+ start = skin .coordinateNode ._point .length,
45703
+ jointsArray = joints .array,
45704
+ weightsArray = weights .array,
45705
+ numVertices = jointsArray .length / 4;
45706
+
45707
+ for (let v = 0; v < numVertices; ++ v)
45708
+ {
45709
+ for (let i = 0; i < 4; ++ i)
45710
+ {
45711
+ const w = weightsArray [v * 4 + i];
45712
+
45713
+ if (w === 0)
45714
+ continue;
45715
+
45716
+ const
45717
+ index = skin .joints [jointsArray [v * 4 + i]],
45718
+ jointNode = this .nodeObject (this .nodes [index], index);
45719
+
45720
+ jointNode ._skinCoordIndex .push (v + start);
45721
+ jointNode ._skinCoordWeight .push (w);
45722
+ }
45723
+ }
45724
+ },
45725
+ skinGeometry: function (skin, geometryNode)
45726
+ {
45727
+ if (!(skin instanceof Object))
45728
+ return;
45729
+
45730
+ const
45731
+ skinTextureCoordinateNode = skin .textureCoordinateNode,
45732
+ skinNormalNode = skin .normalNode,
45733
+ skinCoordinateNode = skin .coordinateNode,
45734
+ start = skinCoordinateNode ._point .length,
45735
+ textureCoordinateNode = geometryNode ._texCoord ?.getValue (),
45736
+ normalNode = geometryNode ._normal ?.getValue (),
45737
+ coordinateNode = geometryNode ._coord ?.getValue ();
45738
+
45739
+ if (geometryNode ._coordIndex)
45740
+ geometryNode ._coordIndex = geometryNode ._coordIndex .map (index => index < 0 ? -1 : index + start);
45741
+
45742
+ if (geometryNode ._index)
45743
+ geometryNode ._index = geometryNode ._index .map (index => index < 0 ? -1 : index + start);
45744
+
45745
+ if (textureCoordinateNode)
45746
+ {
45747
+ const point = skinTextureCoordinateNode ._point;
45748
+ textureCoordinateNode ._point .forEach ((p, i) => point [i + start] = p);
45749
+ geometryNode ._texCoord = skinTextureCoordinateNode;
45750
+ }
45751
+
45752
+ if (normalNode)
45753
+ {
45754
+ const vector = skinNormalNode ._vector;
45755
+ normalNode ._vector .forEach ((v, i) => vector [i + start] = v);
45756
+ geometryNode ._normal = skinNormalNode;
45757
+ }
45758
+
45759
+ if (coordinateNode)
45760
+ {
45761
+ const point = skinCoordinateNode ._point;
45762
+ coordinateNode ._point .forEach ((p, i) => point [i + start] = p);
45763
+ geometryNode ._coord = skinCoordinateNode;
45764
+ }
45765
+ },
45501
45766
  createInterpolator (path, interpolation, times, keyValues, cycleInterval)
45502
45767
  {
45503
45768
  const scene = this .getExecutionContext ();
@@ -45756,7 +46021,7 @@ const GLTF2Parser_default_ = GLTF2Parser;
45756
46021
  x_ite_Namespace .set ("x_ite/Parser/GLTF2Parser", GLTF2Parser_default_);
45757
46022
  /* harmony default export */ const Parser_GLTF2Parser = (GLTF2Parser_default_);
45758
46023
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/GLB2Parser.js
45759
- /* provided dependency */ var GLB2Parser_$ = __webpack_require__(834);
46024
+ /* provided dependency */ var GLB2Parser_$ = __webpack_require__(501);
45760
46025
  /*******************************************************************************
45761
46026
  *
45762
46027
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -45908,7 +46173,7 @@ const GLB2Parser_default_ = GLB2Parser;
45908
46173
  x_ite_Namespace .set ("x_ite/Parser/GLB2Parser", GLB2Parser_default_);
45909
46174
  /* harmony default export */ const Parser_GLB2Parser = (GLB2Parser_default_);
45910
46175
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/OBJParser.js
45911
- /* provided dependency */ var OBJParser_$ = __webpack_require__(834);
46176
+ /* provided dependency */ var OBJParser_$ = __webpack_require__(501);
45912
46177
  /*******************************************************************************
45913
46178
  *
45914
46179
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -47056,7 +47321,6 @@ x_ite_Namespace .set ("x_ite/Parser/OBJParser", OBJParser_default_);
47056
47321
 
47057
47322
 
47058
47323
 
47059
-
47060
47324
  // http://paulbourke.net/dataformats/stl/
47061
47325
  // https://people.sc.fsu.edu/~jburkardt/data/obj/obj.html
47062
47326
 
@@ -47547,6 +47811,853 @@ const STLBParser_default_ = STLBParser;
47547
47811
 
47548
47812
  x_ite_Namespace .set ("x_ite/Parser/STLBParser", STLBParser_default_);
47549
47813
  /* harmony default export */ const Parser_STLBParser = (STLBParser_default_);
47814
+ ;// CONCATENATED MODULE: ./src/x_ite/Parser/PLYAParser.js
47815
+ /*******************************************************************************
47816
+ *
47817
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
47818
+ *
47819
+ * Copyright create3000, Scheffelstraße 31a, Leipzig, Germany 2011 - 2022.
47820
+ *
47821
+ * All rights reserved. Holger Seelig <holger.seelig@yahoo.de>.
47822
+ *
47823
+ * The copyright notice above does not evidence any actual of intended
47824
+ * publication of such source code, and is an unpublished work by create3000.
47825
+ * This material contains CONFIDENTIAL INFORMATION that is the property of
47826
+ * create3000.
47827
+ *
47828
+ * No permission is granted to copy, distribute, or create derivative works from
47829
+ * the contents of this software, in whole or in part, without the prior written
47830
+ * permission of create3000.
47831
+ *
47832
+ * NON-MILITARY USE ONLY
47833
+ *
47834
+ * All create3000 software are effectively free software with a non-military use
47835
+ * restriction. It is free. Well commented source is provided. You may reuse the
47836
+ * source in any way you please with the exception anything that uses it must be
47837
+ * marked to indicate is contains 'non-military use only' components.
47838
+ *
47839
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
47840
+ *
47841
+ * Copyright 2011 - 2022, Holger Seelig <holger.seelig@yahoo.de>.
47842
+ *
47843
+ * This file is part of the X_ITE Project.
47844
+ *
47845
+ * X_ITE is free software: you can redistribute it and/or modify it under the
47846
+ * terms of the GNU General Public License version 3 only, as published by the
47847
+ * Free Software Foundation.
47848
+ *
47849
+ * X_ITE is distributed in the hope that it will be useful, but WITHOUT ANY
47850
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
47851
+ * A PARTICULAR PURPOSE. See the GNU General Public License version 3 for more
47852
+ * details (a copy is included in the LICENSE file that accompanied this code).
47853
+ *
47854
+ * You should have received a copy of the GNU General Public License version 3
47855
+ * along with X_ITE. If not, see <https://www.gnu.org/licenses/gpl.html> for a
47856
+ * copy of the GPLv3 License.
47857
+ *
47858
+ * For Silvio, Joy and Adi.
47859
+ *
47860
+ ******************************************************************************/
47861
+
47862
+
47863
+
47864
+
47865
+ /*
47866
+ * Grammar
47867
+ */
47868
+
47869
+ // Lexical elements
47870
+ const PLYAParser_Grammar = Parser_Expressions ({
47871
+ // General
47872
+ whitespaces: /[\x20\n\t\r]+/gy,
47873
+ whitespacesNoLineTerminator: /[\x20\t]+/gy,
47874
+ untilEndOfLine: /([^\r\n]+)/gy,
47875
+ line: /.*?\r?\n/gy,
47876
+
47877
+ // Keywords
47878
+ ply: /ply/gy,
47879
+ format: /format ascii 1.0/gy,
47880
+ comment: /\bcomment\b/gy,
47881
+ element: /\belement\b/gy,
47882
+ elementName: /\b(\S+)\b/gy,
47883
+ property: /\bproperty\b/gy,
47884
+ propertyList: /\blist\b/gy,
47885
+ propertyType: /\b(char|uchar|short|ushort|int|uint|float|double|int8|uint8|int16|uint16|int32|uint32|float32|float64)\b/gy,
47886
+ propertyName: /\b(\S+)\b/gy,
47887
+ endHeader: /\bend_header\b/gy,
47888
+
47889
+ double: /([+-]?(?:(?:(?:\d*\.\d+)|(?:\d+(?:\.)?))(?:[eE][+-]?\d+)?))/gy,
47890
+ int32: /((?:0[xX][\da-fA-F]+)|(?:[+-]?\d+))/gy,
47891
+ });
47892
+
47893
+ /*
47894
+ * Parser
47895
+ */
47896
+
47897
+ function PLYAParser (scene)
47898
+ {
47899
+ Parser_X3DParser .call (this, scene);
47900
+
47901
+ this .comments = [ ];
47902
+ this .attrib = [ ];
47903
+
47904
+ this .typeMapping = new Map ([
47905
+ ["char", this .int32],
47906
+ ["uchar", this .int32],
47907
+ ["short", this .int32],
47908
+ ["ushort", this .int32],
47909
+ ["int", this .int32],
47910
+ ["uint", this .int32],
47911
+ ["float", this .double],
47912
+ ["double", this .double],
47913
+ ["int8", this .int32],
47914
+ ["uint8", this .int32],
47915
+ ["int16", this .int32],
47916
+ ["uint16", this .int32],
47917
+ ["int32", this .int32],
47918
+ ["uint32", this .int32],
47919
+ ["float32", this .double],
47920
+ ["float64", this .double],
47921
+ ]);
47922
+ }
47923
+
47924
+ Object .assign (Object .setPrototypeOf (PLYAParser .prototype, Parser_X3DParser .prototype),
47925
+ {
47926
+ getEncoding ()
47927
+ {
47928
+ return "STRING";
47929
+ },
47930
+ setInput (input)
47931
+ {
47932
+ this .input = input;
47933
+ },
47934
+ isValid ()
47935
+ {
47936
+ return this .input .match (/^ply\r?\nformat ascii 1.0/);
47937
+ },
47938
+ parseIntoScene (resolve, reject)
47939
+ {
47940
+ this .ply ()
47941
+ .then (resolve)
47942
+ .catch (reject);
47943
+ },
47944
+ ply: async function ()
47945
+ {
47946
+ // Set profile and components.
47947
+
47948
+ const
47949
+ browser = this .getBrowser (),
47950
+ scene = this .getScene ();
47951
+
47952
+ scene .setEncoding ("PLY");
47953
+ scene .setProfile (browser .getProfile ("Interchange"));
47954
+
47955
+ await this .loadComponents ();
47956
+ await this .processElements (this .header ([ ]))
47957
+
47958
+ // Create nodes.
47959
+
47960
+ return this .getScene ();
47961
+ },
47962
+ whitespacesOrComments ()
47963
+ {
47964
+ while (this .whitespaces () || this .comment ())
47965
+ ;
47966
+ },
47967
+ whitespaces ()
47968
+ {
47969
+ return PLYAParser_Grammar .whitespaces .parse (this);
47970
+ },
47971
+ whitespacesNoLineTerminator ()
47972
+ {
47973
+ PLYAParser_Grammar .whitespacesNoLineTerminator .parse (this);
47974
+ },
47975
+ comment ()
47976
+ {
47977
+ if (PLYAParser_Grammar .comment .parse (this) && PLYAParser_Grammar .untilEndOfLine .parse (this))
47978
+ {
47979
+ this .comments .push (this .result [1] .trim ());
47980
+ return true;
47981
+ }
47982
+
47983
+ return false;
47984
+ },
47985
+ double ()
47986
+ {
47987
+ this .whitespacesNoLineTerminator ();
47988
+
47989
+ if (PLYAParser_Grammar .double .parse (this))
47990
+ {
47991
+ this .value = parseFloat (this .result [1]);
47992
+
47993
+ return true;
47994
+ }
47995
+
47996
+ return false;
47997
+ },
47998
+ int32 ()
47999
+ {
48000
+ this .whitespacesNoLineTerminator ();
48001
+
48002
+ if (PLYAParser_Grammar .int32 .parse (this))
48003
+ {
48004
+ this .value = parseInt (this .result [1]);
48005
+
48006
+ return true;
48007
+ }
48008
+
48009
+ return false;
48010
+ },
48011
+ convertColor (value, type)
48012
+ {
48013
+ switch (type)
48014
+ {
48015
+ case "uchar":
48016
+ case "uint8":
48017
+ return value / 0xff;
48018
+ case "ushort":
48019
+ case "uint16":
48020
+ return value / 0xfffff;
48021
+ case "uint":
48022
+ case "uint32":
48023
+ return value / 0xffffffff;
48024
+ case "float":
48025
+ case "float32":
48026
+ case "double":
48027
+ case "float64":
48028
+ return value;
48029
+ }
48030
+ },
48031
+ header (elements)
48032
+ {
48033
+ PLYAParser_Grammar .ply .parse (this);
48034
+ PLYAParser_Grammar .whitespaces .parse (this);
48035
+ PLYAParser_Grammar .format .parse (this);
48036
+
48037
+ this .headings (elements);
48038
+
48039
+ const
48040
+ scene = this .getScene (),
48041
+ worldInfo = scene .createNode ("WorldInfo");
48042
+
48043
+ worldInfo .title = new URL (scene .worldURL) .pathname .split ('/') .at (-1);
48044
+ worldInfo .info = this .comments;
48045
+
48046
+ scene .rootNodes .push (worldInfo);
48047
+
48048
+ return elements;
48049
+ },
48050
+ headings (elements)
48051
+ {
48052
+ while (this .head (elements))
48053
+ ;
48054
+ },
48055
+ head (elements)
48056
+ {
48057
+ if (this .element (elements))
48058
+ return true;
48059
+
48060
+ if (PLYAParser_Grammar .endHeader .parse (this))
48061
+ return false;
48062
+
48063
+ if (PLYAParser_Grammar .untilEndOfLine .parse (this))
48064
+ return true;
48065
+
48066
+ return false;
48067
+ },
48068
+ element (elements)
48069
+ {
48070
+ this .whitespacesOrComments ();
48071
+
48072
+ if (PLYAParser_Grammar .element .parse (this))
48073
+ {
48074
+ this .whitespacesNoLineTerminator ();
48075
+
48076
+ if (PLYAParser_Grammar .elementName .parse (this))
48077
+ {
48078
+ const name = this .result [1];
48079
+
48080
+ if (this .int32 ())
48081
+ {
48082
+ const element =
48083
+ {
48084
+ name: name,
48085
+ count: this .value,
48086
+ properties: [ ],
48087
+ };
48088
+
48089
+ this .properties (element .properties);
48090
+
48091
+ elements .push (element);
48092
+ return true;
48093
+ }
48094
+ }
48095
+ }
48096
+
48097
+ return false;
48098
+ },
48099
+ properties (properties)
48100
+ {
48101
+ while (this .property (properties))
48102
+ ;
48103
+ },
48104
+ property (properties)
48105
+ {
48106
+ this .whitespacesOrComments ();
48107
+
48108
+ if (PLYAParser_Grammar .property .parse (this))
48109
+ {
48110
+ this .whitespacesNoLineTerminator ();
48111
+
48112
+ if (PLYAParser_Grammar .propertyType .parse (this))
48113
+ {
48114
+ const
48115
+ type = this .result [1],
48116
+ value = this .typeMapping .get (type);
48117
+
48118
+ this .whitespacesNoLineTerminator ();
48119
+
48120
+ if (PLYAParser_Grammar .propertyName .parse (this))
48121
+ {
48122
+ const name = this .result [1];
48123
+
48124
+ properties .push ({ type, value, name });
48125
+ return true;
48126
+ }
48127
+ }
48128
+
48129
+ if (PLYAParser_Grammar .propertyList .parse (this))
48130
+ {
48131
+ this .whitespacesNoLineTerminator ();
48132
+
48133
+ if (PLYAParser_Grammar .propertyType .parse (this))
48134
+ {
48135
+ const count = this .typeMapping .get (this .result [1]);
48136
+
48137
+ this .whitespacesNoLineTerminator ();
48138
+
48139
+ if (PLYAParser_Grammar .propertyType .parse (this))
48140
+ {
48141
+ const
48142
+ type = this .result [1],
48143
+ value = this .typeMapping .get (type);
48144
+
48145
+ this .whitespacesNoLineTerminator ();
48146
+
48147
+ if (PLYAParser_Grammar .propertyName .parse (this))
48148
+ {
48149
+ const name = this .result [1];
48150
+
48151
+ properties .push ({ count, type, value, name });
48152
+ return true;
48153
+ }
48154
+ }
48155
+ }
48156
+ }
48157
+ }
48158
+
48159
+ return false;
48160
+ },
48161
+ async processElements (elements)
48162
+ {
48163
+ // console .log (elements)
48164
+
48165
+ for (const element of elements)
48166
+ await this .processElement (element);
48167
+
48168
+ if (!this .coord)
48169
+ return;
48170
+
48171
+ const
48172
+ scene = this .getScene (),
48173
+ shape = scene .createNode ("Shape"),
48174
+ appearance = scene .createNode ("Appearance"),
48175
+ material = scene .createNode (this .geometry ? "Material" : "UnlitMaterial"),
48176
+ geometry = this .geometry ?? scene .createNode ("PointSet");
48177
+
48178
+ appearance .material = material;
48179
+
48180
+ if (this .texCoord)
48181
+ {
48182
+ const textureTransform = scene .createNode ("TextureTransform");
48183
+
48184
+ textureTransform .translation .y = -1;
48185
+ textureTransform .scale .y = -1;
48186
+
48187
+ appearance .textureTransform = textureTransform;
48188
+ }
48189
+
48190
+ if (geometry .getNodeTypeName () !== "PointSet")
48191
+ {
48192
+ geometry .solid = false;
48193
+ geometry .texCoord = this .texCoord;
48194
+ }
48195
+
48196
+ geometry .attrib = this .attrib;
48197
+ geometry .color = this .color;
48198
+ geometry .normal = this .normal;
48199
+ geometry .coord = this .coord;
48200
+
48201
+ shape .appearance = appearance;
48202
+ shape .geometry = geometry;
48203
+
48204
+ scene .rootNodes .push (shape);
48205
+ },
48206
+ async processElement (element)
48207
+ {
48208
+ switch (element .name)
48209
+ {
48210
+ case "vertex":
48211
+ await this .parseVertices (element);
48212
+ break;
48213
+ case "face":
48214
+ this .parseFaces (element);
48215
+ break;
48216
+ case "multi_texture_vertex":
48217
+ this .parseMultiTextureVertices (element);
48218
+ break;
48219
+ case "multi_texture_face":
48220
+ this .parseMultiTextureFaces (element);
48221
+ break;
48222
+ default:
48223
+ this .parseUnknown (element);
48224
+ break;
48225
+ }
48226
+ },
48227
+ async parseVertices ({ count, properties })
48228
+ {
48229
+ const
48230
+ scene = this .getScene (),
48231
+ colors = [ ],
48232
+ texCoord = scene .createNode ("TextureCoordinate"),
48233
+ texCoords = [ ],
48234
+ normal = scene .createNode ("Normal"),
48235
+ normals = [ ],
48236
+ coord = scene .createNode ("Coordinate"),
48237
+ points = [ ],
48238
+ attributes = new Map ();
48239
+
48240
+ for (const { name } of properties)
48241
+ {
48242
+ if (name .match (/^(?:red|green|blue|alpha|r|g|b|a|s|t|u|v|nx|ny|nz|x|y|z)$/))
48243
+ continue;
48244
+
48245
+ attributes .set (name, [ ]);
48246
+ }
48247
+
48248
+ // console .time ("vertices")
48249
+
48250
+ for (let i = 0; i < count; ++ i)
48251
+ {
48252
+ this .whitespaces ();
48253
+
48254
+ for (const { value, name, type } of properties)
48255
+ {
48256
+ if (!value .call (this))
48257
+ throw new Error (`Couldn't parse value for property ${name}.`);
48258
+
48259
+ switch (name)
48260
+ {
48261
+ default:
48262
+ attributes .get (name) .push (this .value);
48263
+ break;
48264
+ case "red": case "green": case "blue": case "alpha":
48265
+ case "r": case "g": case "b": case "a":
48266
+ colors .push (this .convertColor (this .value, type));
48267
+ break;
48268
+ case "s": case "t":
48269
+ case "u": case "v":
48270
+ texCoords .push (this .value);
48271
+ break;
48272
+ case "nx": case "ny": case "nz":
48273
+ normals .push (this .value);
48274
+ break;
48275
+ case "x": case "y": case "z":
48276
+ points .push (this .value);
48277
+ break;
48278
+ }
48279
+ }
48280
+ }
48281
+
48282
+ // console .timeEnd ("vertices")
48283
+
48284
+ // Attributes
48285
+
48286
+ if (attributes .size)
48287
+ {
48288
+ scene .addComponent (this .getBrowser () .getComponent ("Shaders", 1));
48289
+
48290
+ await this .loadComponents ();
48291
+
48292
+ for (const [name, value] of attributes)
48293
+ {
48294
+ const floatVertexAttribute = scene .createNode ("FloatVertexAttribute");
48295
+
48296
+ floatVertexAttribute .name = name;
48297
+ floatVertexAttribute .numComponents = 1;
48298
+ floatVertexAttribute .value = value;
48299
+
48300
+ this .attrib .push (floatVertexAttribute);
48301
+ }
48302
+ }
48303
+
48304
+ // Geometric properties
48305
+
48306
+ const
48307
+ pAlpha = properties .some (p => p .name .match (/^(?:alpha|a)$/)),
48308
+ alpha = pAlpha && colors .some ((v, i) => i % 4 === 3 && v < 1),
48309
+ color = scene .createNode (alpha ? "ColorRGBA" : "Color");
48310
+
48311
+ color .color = alpha || !pAlpha ? colors : colors .filter ((v, i) => i % 4 !== 3);
48312
+ texCoord .point = texCoords;
48313
+ normal .vector = normals;
48314
+ coord .point = points;
48315
+
48316
+ this .color = colors .length ? color : null;
48317
+ this .texCoord = texCoords .length ? texCoord : null;
48318
+ this .normal = normals .length ? normal : null;
48319
+ this .coord = coord;
48320
+ },
48321
+ parseFaces ({ count, properties })
48322
+ {
48323
+ const
48324
+ scene = this .getScene (),
48325
+ geometry = scene .createNode ("IndexedFaceSet"),
48326
+ coordIndex = [ ];
48327
+
48328
+ for (let i = 0; i < count; ++ i)
48329
+ {
48330
+ this .whitespaces ();
48331
+
48332
+ for (const { count, value, name } of properties)
48333
+ {
48334
+ if (!count .call (this))
48335
+ throw new Error (`Couldn't parse property count for ${name}.`);
48336
+
48337
+ const length = this .value;
48338
+
48339
+ for (let i = 0; i < length; ++ i)
48340
+ {
48341
+ if (!value .call (this))
48342
+ throw new Error (`Couldn't parse a property value for ${name}.`);
48343
+
48344
+ coordIndex .push (this .value);
48345
+ }
48346
+
48347
+ coordIndex .push (-1);
48348
+ }
48349
+ }
48350
+
48351
+ geometry .coordIndex = coordIndex;
48352
+ this .geometry = geometry;
48353
+ },
48354
+ parseMultiTextureVertices ({ count, properties })
48355
+ {
48356
+ const
48357
+ scene = this .getScene (),
48358
+ texCoord = scene .createNode ("TextureCoordinate"),
48359
+ texCoords = [ ];
48360
+
48361
+ for (let i = 0; i < count; ++ i)
48362
+ {
48363
+ this .whitespaces ();
48364
+
48365
+ for (const { value, name } of properties)
48366
+ {
48367
+ if (!value .call (this))
48368
+ throw new Error (`Couldn't parse value for property ${name}.`);
48369
+
48370
+ switch (name)
48371
+ {
48372
+ case "s": case "t":
48373
+ case "u": case "v":
48374
+ texCoords .push (this .value);
48375
+ break;
48376
+ }
48377
+ }
48378
+ }
48379
+
48380
+ texCoord .point = texCoords;
48381
+
48382
+ this .texCoord = texCoords .length ? texCoord : null;
48383
+ },
48384
+ parseMultiTextureFaces ({ count, properties })
48385
+ {
48386
+ const texCoordIndex = [ ];
48387
+
48388
+ for (let i = 0; i < count; ++ i)
48389
+ {
48390
+ for (const { count, value, name } of properties)
48391
+ {
48392
+ if (count)
48393
+ {
48394
+ if (!count .call (this))
48395
+ throw new Error (`Couldn't parse property count for ${name}.`);
48396
+
48397
+ const length = this .value;
48398
+
48399
+ for (let i = 0; i < length; ++ i)
48400
+ {
48401
+ if (!value .call (this))
48402
+ throw new Error (`Couldn't parse value for property ${name}.`);
48403
+
48404
+ texCoordIndex .push (this .value);
48405
+ }
48406
+
48407
+ texCoordIndex .push (-1);
48408
+ }
48409
+ else
48410
+ {
48411
+ if (!value .call (this))
48412
+ throw new Error (`Couldn't parse value for property ${name}.`);
48413
+ }
48414
+ }
48415
+ }
48416
+
48417
+ if (this .geometry)
48418
+ this .geometry .texCoordIndex = texCoordIndex;
48419
+ },
48420
+ parseUnknown ({ count })
48421
+ {
48422
+ this .whitespaces ();
48423
+
48424
+ for (let i = 0; i < count; ++ i)
48425
+ PLYAParser_Grammar .line .parse (this);
48426
+ },
48427
+ });
48428
+
48429
+ const PLYAParser_default_ = PLYAParser;
48430
+ ;
48431
+
48432
+ x_ite_Namespace .set ("x_ite/Parser/PLYAParser", PLYAParser_default_);
48433
+ /* harmony default export */ const Parser_PLYAParser = (PLYAParser_default_);
48434
+ ;// CONCATENATED MODULE: ./src/x_ite/Parser/PLYBParser.js
48435
+ /*******************************************************************************
48436
+ *
48437
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
48438
+ *
48439
+ * Copyright create3000, Scheffelstraße 31a, Leipzig, Germany 2011 - 2022.
48440
+ *
48441
+ * All rights reserved. Holger Seelig <holger.seelig@yahoo.de>.
48442
+ *
48443
+ * The copyright notice above does not evidence any actual of intended
48444
+ * publication of such source code, and is an unpublished work by create3000.
48445
+ * This material contains CONFIDENTIAL INFORMATION that is the property of
48446
+ * create3000.
48447
+ *
48448
+ * No permission is granted to copy, distribute, or create derivative works from
48449
+ * the contents of this software, in whole or in part, without the prior written
48450
+ * permission of create3000.
48451
+ *
48452
+ * NON-MILITARY USE ONLY
48453
+ *
48454
+ * All create3000 software are effectively free software with a non-military use
48455
+ * restriction. It is free. Well commented source is provided. You may reuse the
48456
+ * source in any way you please with the exception anything that uses it must be
48457
+ * marked to indicate is contains 'non-military use only' components.
48458
+ *
48459
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
48460
+ *
48461
+ * Copyright 2011 - 2022, Holger Seelig <holger.seelig@yahoo.de>.
48462
+ *
48463
+ * This file is part of the X_ITE Project.
48464
+ *
48465
+ * X_ITE is free software: you can redistribute it and/or modify it under the
48466
+ * terms of the GNU General Public License version 3 only, as published by the
48467
+ * Free Software Foundation.
48468
+ *
48469
+ * X_ITE is distributed in the hope that it will be useful, but WITHOUT ANY
48470
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
48471
+ * A PARTICULAR PURPOSE. See the GNU General Public License version 3 for more
48472
+ * details (a copy is included in the LICENSE file that accompanied this code).
48473
+ *
48474
+ * You should have received a copy of the GNU General Public License version 3
48475
+ * along with X_ITE. If not, see <https://www.gnu.org/licenses/gpl.html> for a
48476
+ * copy of the GPLv3 License.
48477
+ *
48478
+ * For Silvio, Joy and Adi.
48479
+ *
48480
+ ******************************************************************************/
48481
+
48482
+
48483
+
48484
+ function PLYBParser (scene)
48485
+ {
48486
+ Parser_PLYAParser .call (this, scene);
48487
+
48488
+ this .typeMapping = new Map ([
48489
+ ["char", this .binaryInt8],
48490
+ ["uchar", this .binaryUint8],
48491
+ ["short", this .binaryInt16],
48492
+ ["ushort", this .binaryUint16],
48493
+ ["int", this .binaryInt32],
48494
+ ["uint", this .binaryUint32],
48495
+ ["float", this .binaryFloat32],
48496
+ ["double", this .binaryFloat64],
48497
+ ["int8", this .binaryInt8],
48498
+ ["uint8", this .binaryUint8],
48499
+ ["int16", this .binaryInt16],
48500
+ ["uint16", this .binaryUint16],
48501
+ ["int32", this .binaryInt32],
48502
+ ["uint32", this .binaryUint32],
48503
+ ["float32", this .binaryFloat32],
48504
+ ["float64", this .binaryFloat64],
48505
+ ]);
48506
+
48507
+ this .binaryInt8 .bytes = 1;
48508
+ this .binaryUint8 .bytes = 1;
48509
+ this .binaryInt16 .bytes = 2;
48510
+ this .binaryUint16 .bytes = 2;
48511
+ this .binaryInt32 .bytes = 4;
48512
+ this .binaryUint32 .bytes = 4;
48513
+ this .binaryFloat32 .bytes = 4;
48514
+ this .binaryFloat64 .bytes = 8;
48515
+ }
48516
+
48517
+ Object .assign (Object .setPrototypeOf (PLYBParser .prototype, Parser_PLYAParser .prototype),
48518
+ {
48519
+ getEncoding ()
48520
+ {
48521
+ return ["ARRAY_BUFFER", "STRING"];
48522
+ },
48523
+ setInput (inputs)
48524
+ {
48525
+ this .arrayBuffer = inputs [0];
48526
+ this .dataView = new DataView (this .arrayBuffer);
48527
+ this .input = inputs [1];
48528
+ this .magic = this .input .match (/^ply\r?\nformat (binary_(?:little|big)_endian) 1.0.*?end_header\r?\n/s);
48529
+ this .byteOffset = this .magic ?.[0] .length;
48530
+ this .littleEndian = this .magic ?.[1] === "binary_little_endian";
48531
+ },
48532
+ isValid ()
48533
+ {
48534
+ if (!(this .arrayBuffer instanceof ArrayBuffer))
48535
+ return false;
48536
+
48537
+ return !! this .magic;
48538
+ },
48539
+ binaryInt8 ()
48540
+ {
48541
+ this .value = this .dataView .getInt8 (this .byteOffset, this .littleEndian);
48542
+ this .byteOffset += 1;
48543
+
48544
+ return true;
48545
+ },
48546
+ binaryUint8 ()
48547
+ {
48548
+ this .value = this .dataView .getUint8 (this .byteOffset, this .littleEndian);
48549
+ this .byteOffset += 1;
48550
+
48551
+ return true;
48552
+ },
48553
+ binaryInt16 ()
48554
+ {
48555
+ this .value = this .dataView .getInt16 (this .byteOffset, this .littleEndian);
48556
+ this .byteOffset += 2;
48557
+
48558
+ return true;
48559
+ },
48560
+ binaryUint16 ()
48561
+ {
48562
+ this .value = this .dataView .getUint16 (this .byteOffset, this .littleEndian);
48563
+ this .byteOffset += 2;
48564
+
48565
+ return true;
48566
+ },
48567
+ binaryInt32 ()
48568
+ {
48569
+ this .value = this .dataView .getInt32 (this .byteOffset, this .littleEndian);
48570
+ this .byteOffset += 4;
48571
+
48572
+ return true;
48573
+ },
48574
+ binaryUint32 ()
48575
+ {
48576
+ this .value = this .dataView .getUint32 (this .byteOffset, this .littleEndian);
48577
+ this .byteOffset += 4;
48578
+
48579
+ return true;
48580
+ },
48581
+ binaryFloat32 ()
48582
+ {
48583
+ this .value = this .dataView .getFloat32 (this .byteOffset, this .littleEndian);
48584
+ this .byteOffset += 4;
48585
+
48586
+ return true;
48587
+ },
48588
+ binaryFloat64 ()
48589
+ {
48590
+ this .value = this .dataView .getFloat64 (this .byteOffset, this .littleEndian);
48591
+ this .byteOffset += 8;
48592
+
48593
+ return true;
48594
+ },
48595
+ processElements (elements)
48596
+ {
48597
+ this .whitespaces = Function .prototype;
48598
+
48599
+ return Parser_PLYAParser .prototype .processElements .call (this, elements);
48600
+ },
48601
+ parseUnknown ({ count, properties })
48602
+ {
48603
+ for (let i = 0; i < count; ++ i)
48604
+ {
48605
+ for (const { count, type } of properties)
48606
+ {
48607
+ if (count)
48608
+ {
48609
+ count .call (this);
48610
+
48611
+ this .byteOffset += this .value * this .typeMapping .get (type) .bytes;
48612
+ }
48613
+ else
48614
+ {
48615
+ this .byteOffset += this .typeMapping .get (type) .bytes;
48616
+ }
48617
+ }
48618
+ }
48619
+ },
48620
+ // parseUnknown ({ count, properties })
48621
+ // {
48622
+ // let string = "";
48623
+
48624
+ // for (let i = 0; i < count; ++ i)
48625
+ // {
48626
+ // for (const { count, type, value } of properties)
48627
+ // {
48628
+ // if (count === undefined)
48629
+ // {
48630
+ // value .call (this);
48631
+
48632
+ // string += this .value + " "
48633
+ // }
48634
+ // else
48635
+ // {
48636
+ // count .call (this);
48637
+
48638
+ // string += this .value + " "
48639
+
48640
+ // for (let i = 0, l = this .value; i < l; ++ i)
48641
+ // {
48642
+ // value .call (this);
48643
+
48644
+ // string += this .value + " "
48645
+ // }
48646
+ // }
48647
+ // }
48648
+
48649
+ // string += "\n"
48650
+ // }
48651
+
48652
+ // console .log (string .substring (0, 1000))
48653
+ // },
48654
+ });
48655
+
48656
+ const PLYBParser_default_ = PLYBParser;
48657
+ ;
48658
+
48659
+ x_ite_Namespace .set ("x_ite/Parser/PLYBParser", PLYBParser_default_);
48660
+ /* harmony default export */ const Parser_PLYBParser = (PLYBParser_default_);
47550
48661
  ;// CONCATENATED MODULE: ./src/standard/Math/Numbers/Complex.js
47551
48662
  /*******************************************************************************
47552
48663
  *
@@ -48010,9 +49121,19 @@ Object .assign (Box2,
48010
49121
  {
48011
49122
  return new Box2 () .setExtents (min, max);
48012
49123
  },
48013
- Points (... points)
49124
+ Points (points)
48014
49125
  {
48015
- return new Box2 () .setExtents (points [0] .copy () .min (... points), points [0] .copy () .max (... points));
49126
+ const
49127
+ min = new Numbers_Vector2 (Number .POSITIVE_INFINITY, Number .POSITIVE_INFINITY),
49128
+ max = new Numbers_Vector2 (Number .NEGATIVE_INFINITY, Number .NEGATIVE_INFINITY);
49129
+
49130
+ for (const point of points)
49131
+ {
49132
+ min .min (point);
49133
+ max .max (point);
49134
+ }
49135
+
49136
+ return new Box2 () .setExtents (min, max);
48016
49137
  },
48017
49138
  });
48018
49139
 
@@ -48407,8 +49528,8 @@ const MatrixStack_default_ = MatrixStack;
48407
49528
  x_ite_Namespace .set ("standard/Math/Utility/MatrixStack", MatrixStack_default_);
48408
49529
  /* harmony default export */ const Utility_MatrixStack = (MatrixStack_default_);
48409
49530
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/SVGParser.js
48410
- /* provided dependency */ var SVGParser_$ = __webpack_require__(834);
48411
- /* provided dependency */ var libtess = __webpack_require__(492);
49531
+ /* provided dependency */ var SVGParser_$ = __webpack_require__(501);
49532
+ /* provided dependency */ var libtess = __webpack_require__(173);
48412
49533
  /*******************************************************************************
48413
49534
  *
48414
49535
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -49328,7 +50449,7 @@ Object .assign (Object .setPrototypeOf (SVGParser .prototype, Parser_X3DParser .
49328
50449
  bbox = new Geometry_Box2 ();
49329
50450
 
49330
50451
  for (const points of contours)
49331
- bbox .add (Geometry_Box2 .Points (... points));
50452
+ bbox .add (Geometry_Box2 .Points (points));
49332
50453
 
49333
50454
  this .groupNodes .push (transformNode);
49334
50455
 
@@ -51176,7 +52297,7 @@ const SVGParser_default_ = SVGParser;
51176
52297
  x_ite_Namespace .set ("x_ite/Parser/SVGParser", SVGParser_default_);
51177
52298
  /* harmony default export */ const Parser_SVGParser = (SVGParser_default_);
51178
52299
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/GoldenGate.js
51179
- /* provided dependency */ var GoldenGate_$ = __webpack_require__(834);
52300
+ /* provided dependency */ var GoldenGate_$ = __webpack_require__(501);
51180
52301
  /*******************************************************************************
51181
52302
  *
51182
52303
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -51235,6 +52356,8 @@ x_ite_Namespace .set ("x_ite/Parser/SVGParser", SVGParser_default_);
51235
52356
 
51236
52357
 
51237
52358
 
52359
+
52360
+
51238
52361
  function GoldenGate (scene)
51239
52362
  {
51240
52363
  Parser_X3DParser .call (this, scene);
@@ -51284,14 +52407,21 @@ Object .assign (Object .setPrototypeOf (GoldenGate .prototype, Parser_X3DParser
51284
52407
  },
51285
52408
  getInput (encoding, x3dSyntax)
51286
52409
  {
51287
- if (this .inputs .has (encoding))
51288
- return this .inputs .get (encoding);
52410
+ if (Array .isArray (encoding))
52411
+ {
52412
+ return encoding .map (encoding => this .getInput (encoding));
52413
+ }
52414
+ else
52415
+ {
52416
+ if (this .inputs .has (encoding))
52417
+ return this .inputs .get (encoding);
51289
52418
 
51290
- const input = this .createInput (encoding, x3dSyntax);
52419
+ const input = this .createInput (encoding, x3dSyntax);
51291
52420
 
51292
- this .inputs .set (encoding, input);
52421
+ this .inputs .set (encoding, input);
51293
52422
 
51294
- return input;
52423
+ return input;
52424
+ }
51295
52425
  },
51296
52426
  createInput (encoding, x3dSyntax)
51297
52427
  {
@@ -51326,6 +52456,8 @@ GoldenGate .Parser = [
51326
52456
  Parser_OBJParser,
51327
52457
  Parser_STLAParser,
51328
52458
  Parser_STLBParser,
52459
+ Parser_PLYAParser,
52460
+ Parser_PLYBParser,
51329
52461
  ];
51330
52462
 
51331
52463
  const GoldenGate_default_ = GoldenGate;
@@ -51502,7 +52634,7 @@ const Plane3_default_ = Plane3;
51502
52634
  x_ite_Namespace .set ("standard/Math/Geometry/Plane3", Plane3_default_);
51503
52635
  /* harmony default export */ const Geometry_Plane3 = (Plane3_default_);
51504
52636
  ;// CONCATENATED MODULE: ./src/standard/Math/Geometry/Triangle3.js
51505
- /* provided dependency */ var Triangle3_libtess = __webpack_require__(492);
52637
+ /* provided dependency */ var Triangle3_libtess = __webpack_require__(173);
51506
52638
  /*******************************************************************************
51507
52639
  *
51508
52640
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -53358,9 +54490,19 @@ Object .assign (Box3,
53358
54490
  {
53359
54491
  return new Box3 () .setExtents (min, max);
53360
54492
  },
53361
- Points (... points)
54493
+ Points (points)
53362
54494
  {
53363
- return new Box3 () .setExtents (points [0] .copy () .min (... points), points [0] .copy () .max (... points));
54495
+ const
54496
+ min = new Numbers_Vector3 (Number .POSITIVE_INFINITY, Number .POSITIVE_INFINITY, Number .POSITIVE_INFINITY),
54497
+ max = new Numbers_Vector3 (Number .NEGATIVE_INFINITY, Number .NEGATIVE_INFINITY, Number .NEGATIVE_INFINITY);
54498
+
54499
+ for (const point of points)
54500
+ {
54501
+ min .min (point);
54502
+ max .max (point);
54503
+ }
54504
+
54505
+ return new Box3 () .setExtents (min, max);
53364
54506
  },
53365
54507
  });
53366
54508
 
@@ -58897,7 +60039,7 @@ const X3DTexture2DNode_default_ = X3DTexture2DNode;
58897
60039
  x_ite_Namespace .set ("x_ite/Components/Texturing/X3DTexture2DNode", X3DTexture2DNode_default_);
58898
60040
  /* harmony default export */ const Texturing_X3DTexture2DNode = (X3DTexture2DNode_default_);
58899
60041
  ;// CONCATENATED MODULE: ./src/x_ite/Components/Texturing/ImageTexture.js
58900
- /* provided dependency */ var ImageTexture_$ = __webpack_require__(834);
60042
+ /* provided dependency */ var ImageTexture_$ = __webpack_require__(501);
58901
60043
  /*******************************************************************************
58902
60044
  *
58903
60045
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -59429,7 +60571,7 @@ function X3DLayerNode (executionContext, defaultViewpoint, groupNode)
59429
60571
 
59430
60572
  this .addType (Base_X3DConstants .X3DLayerNode);
59431
60573
 
59432
- if (executionContext .getSpecificationVersion () < 4.0)
60574
+ if (executionContext .getSpecificationVersion () <= 3.3)
59433
60575
  this .addAlias ("isPickable", this ._pickable);
59434
60576
 
59435
60577
  this .groupNode = groupNode;
@@ -61433,7 +62575,7 @@ Object .assign (Object .setPrototypeOf (X3DViewpointNode .prototype, Core_X3DBin
61433
62575
 
61434
62576
  // VRML behavior
61435
62577
 
61436
- if (this .getExecutionContext () .getSpecificationVersion () === "2.0")
62578
+ if (this .getExecutionContext () .getSpecificationVersion () == 2.0)
61437
62579
  {
61438
62580
  if (this .getVRMLTransition ())
61439
62581
  transitionType = "LINEAR";
@@ -63437,7 +64579,7 @@ const X3DWorld_default_ = X3DWorld;
63437
64579
  x_ite_Namespace .set ("x_ite/Execution/X3DWorld", X3DWorld_default_);
63438
64580
  /* harmony default export */ const Execution_X3DWorld = (X3DWorld_default_);
63439
64581
  ;// CONCATENATED MODULE: ./src/x_ite/InputOutput/FileLoader.js
63440
- /* provided dependency */ var FileLoader_$ = __webpack_require__(834);
64582
+ /* provided dependency */ var FileLoader_$ = __webpack_require__(501);
63441
64583
  /*******************************************************************************
63442
64584
  *
63443
64585
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -73301,7 +74443,7 @@ Object .assign (Object .setPrototypeOf (X3DComposedGeometryNode .prototype, Rend
73301
74443
 
73302
74444
  // Set size to a multiple of verticesPerPolygon.
73303
74445
 
73304
- polygonsSize -= polygonsSize % verticesPerPolygon;
74446
+ polygonsSize -= polygonsSize % verticesPerPolygon;
73305
74447
  trianglesSize -= trianglesSize % verticesPerFace;
73306
74448
 
73307
74449
  const
@@ -74498,7 +75640,7 @@ function Switch (executionContext)
74498
75640
 
74499
75641
  this .addType (Base_X3DConstants .Switch);
74500
75642
 
74501
- if (executionContext .getSpecificationVersion () === "2.0")
75643
+ if (executionContext .getSpecificationVersion () == 2.0)
74502
75644
  this .addAlias ("choice", this ._children);
74503
75645
 
74504
75646
  this .childNode = null;
@@ -77945,7 +79087,7 @@ function DirectionalLight (executionContext)
77945
79087
 
77946
79088
  this .addType (Base_X3DConstants .DirectionalLight);
77947
79089
 
77948
- if (executionContext .getSpecificationVersion () === "2.0")
79090
+ if (executionContext .getSpecificationVersion () == 2.0)
77949
79091
  this ._global = true;
77950
79092
  }
77951
79093
 
@@ -79211,7 +80353,7 @@ function Collision (executionContext)
79211
80353
 
79212
80354
  this .addType (Base_X3DConstants .Collision);
79213
80355
 
79214
- if (executionContext .getSpecificationVersion () === "2.0")
80356
+ if (executionContext .getSpecificationVersion () == 2.0)
79215
80357
  this .addAlias ("collide", this ._enabled); // VRML2
79216
80358
  }
79217
80359
 
@@ -79400,7 +80542,7 @@ function LOD (executionContext)
79400
80542
 
79401
80543
  this .addType (Base_X3DConstants .LOD);
79402
80544
 
79403
- if (executionContext .getSpecificationVersion () === "2.0")
80545
+ if (executionContext .getSpecificationVersion () == 2.0)
79404
80546
  this .addAlias ("level", this ._children); // VRML2
79405
80547
 
79406
80548
  this ._center .setUnit ("length");
@@ -81508,7 +82650,7 @@ function LoadSensor (executionContext)
81508
82650
 
81509
82651
  this .addType (Base_X3DConstants .LoadSensor);
81510
82652
 
81511
- if (executionContext .getSpecificationVersion () < 4)
82653
+ if (executionContext .getSpecificationVersion () <= 3.3)
81512
82654
  this .addAlias ("watchList", this ._children);
81513
82655
 
81514
82656
  this .urlObjects = [ ];
@@ -87053,7 +88195,7 @@ const X3DShaderNode_default_ = X3DShaderNode;
87053
88195
  x_ite_Namespace .set ("x_ite/Components/Shaders/X3DShaderNode", X3DShaderNode_default_);
87054
88196
  /* harmony default export */ const Shaders_X3DShaderNode = (X3DShaderNode_default_);
87055
88197
  ;// CONCATENATED MODULE: ./src/x_ite/Components/Shaders/X3DProgrammableShaderObject.js
87056
- /* provided dependency */ var X3DProgrammableShaderObject_$ = __webpack_require__(834);
88198
+ /* provided dependency */ var X3DProgrammableShaderObject_$ = __webpack_require__(501);
87057
88199
  /*******************************************************************************
87058
88200
  *
87059
88201
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -95776,7 +96918,7 @@ const ShaderCompiler_default_ = ShaderCompiler;
95776
96918
  x_ite_Namespace .set ("x_ite/Browser/Shaders/ShaderCompiler", ShaderCompiler_default_);
95777
96919
  /* harmony default export */ const Shaders_ShaderCompiler = (ShaderCompiler_default_);
95778
96920
  ;// CONCATENATED MODULE: ./src/x_ite/Components/Shaders/ShaderPart.js
95779
- /* provided dependency */ var ShaderPart_$ = __webpack_require__(834);
96921
+ /* provided dependency */ var ShaderPart_$ = __webpack_require__(501);
95780
96922
  /*******************************************************************************
95781
96923
  *
95782
96924
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -96311,7 +97453,7 @@ Object .defineProperties (AcousticProperties,
96311
97453
  },
96312
97454
  containerField:
96313
97455
  {
96314
- value: "AcousticProperties",
97456
+ value: "acousticProperties",
96315
97457
  enumerable: true,
96316
97458
  },
96317
97459
  specificationRange:
@@ -96435,7 +97577,7 @@ const X3DAppearanceNode_default_ = X3DAppearanceNode;
96435
97577
  x_ite_Namespace .set ("x_ite/Components/Shape/X3DAppearanceNode", X3DAppearanceNode_default_);
96436
97578
  /* harmony default export */ const Shape_X3DAppearanceNode = (X3DAppearanceNode_default_);
96437
97579
  ;// CONCATENATED MODULE: ./src/x_ite/Components/Shape/Appearance.js
96438
- /* provided dependency */ var Appearance_$ = __webpack_require__(834);
97580
+ /* provided dependency */ var Appearance_$ = __webpack_require__(501);
96439
97581
  /*******************************************************************************
96440
97582
  *
96441
97583
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -96876,6 +98018,7 @@ Object .defineProperties (Appearance,
96876
98018
  {
96877
98019
  value: new Base_FieldDefinitionArray ([
96878
98020
  new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "metadata", new x_ite_Fields .SFNode ()),
98021
+ new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "acousticProperties", new x_ite_Fields .SFNode ()),
96879
98022
  new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "alphaMode", new x_ite_Fields .SFString ("AUTO")),
96880
98023
  new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "alphaCutoff", new x_ite_Fields .SFFloat (0.5)),
96881
98024
  new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "pointProperties", new x_ite_Fields .SFNode ()),
@@ -96887,7 +98030,6 @@ Object .defineProperties (Appearance,
96887
98030
  new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "textureTransform", new x_ite_Fields .SFNode ()),
96888
98031
  new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "shaders", new x_ite_Fields .MFNode ()),
96889
98032
  new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "blendMode", new x_ite_Fields .SFNode ()),
96890
- new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "acousticProperties", new x_ite_Fields .SFNode ()),
96891
98033
  ]),
96892
98034
  enumerable: true,
96893
98035
  },
@@ -97878,7 +99020,7 @@ function Material (executionContext)
97878
99020
 
97879
99021
  this .addType (Base_X3DConstants .Material);
97880
99022
 
97881
- if (executionContext .getSpecificationVersion () < 4.0)
99023
+ if (executionContext .getSpecificationVersion () <= 3.3)
97882
99024
  this .getMaterialKey = getMaterialKey;
97883
99025
 
97884
99026
  this .diffuseColor = new Float32Array (3);
@@ -99408,7 +100550,7 @@ Object .defineProperties (TwoSidedMaterial,
99408
100550
  },
99409
100551
  specificationRange:
99410
100552
  {
99411
- value: Object .freeze (["3.2", "Infinity"]),
100553
+ value: Object .freeze (["3.2", "4.0"]),
99412
100554
  enumerable: true,
99413
100555
  },
99414
100556
  fieldDefinitions:
@@ -100130,7 +101272,7 @@ const X3DSoundSourceNode_default_ = X3DSoundSourceNode;
100130
101272
  x_ite_Namespace .set ("x_ite/Components/Sound/X3DSoundSourceNode", X3DSoundSourceNode_default_);
100131
101273
  /* harmony default export */ const Sound_X3DSoundSourceNode = (X3DSoundSourceNode_default_);
100132
101274
  ;// CONCATENATED MODULE: ./src/x_ite/Components/Sound/AudioClip.js
100133
- /* provided dependency */ var AudioClip_$ = __webpack_require__(834);
101275
+ /* provided dependency */ var AudioClip_$ = __webpack_require__(501);
100134
101276
  /*******************************************************************************
100135
101277
  *
100136
101278
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -102220,9 +103362,9 @@ Object .defineProperties (PeriodicWave,
102220
103362
  new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "metadata", new x_ite_Fields .SFNode ()),
102221
103363
  new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "description", new x_ite_Fields .SFString ()),
102222
103364
  new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "enabled", new x_ite_Fields .SFBool (true)),
103365
+ new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "type", new x_ite_Fields .SFString ("SQUARE")),
102223
103366
  new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "optionsReal", new x_ite_Fields .MFFloat ()),
102224
103367
  new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "optionsImag", new x_ite_Fields .MFFloat ()),
102225
- new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "type", new x_ite_Fields .SFString ("SQUARE")),
102226
103368
  ]),
102227
103369
  enumerable: true,
102228
103370
  },
@@ -103241,8 +104383,8 @@ const GIFMedia_default_ = GifMedia;
103241
104383
  x_ite_Namespace .set ("x_ite/Browser/Texturing/GIFMedia", GIFMedia_default_);
103242
104384
  /* harmony default export */ const GIFMedia = (GIFMedia_default_);
103243
104385
  ;// CONCATENATED MODULE: ./src/x_ite/Components/Texturing/MovieTexture.js
103244
- /* provided dependency */ var MovieTexture_$ = __webpack_require__(834);
103245
- /* provided dependency */ var SuperGif = __webpack_require__(1);
104386
+ /* provided dependency */ var MovieTexture_$ = __webpack_require__(501);
104387
+ /* provided dependency */ var SuperGif = __webpack_require__(611);
103246
104388
  /*******************************************************************************
103247
104389
  *
103248
104390
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -104407,7 +105549,7 @@ const MultiTextureTransform_default_ = MultiTextureTransform;
104407
105549
  x_ite_Namespace .set ("x_ite/Components/Texturing/MultiTextureTransform", MultiTextureTransform_default_);
104408
105550
  /* harmony default export */ const Texturing_MultiTextureTransform = (MultiTextureTransform_default_);
104409
105551
  ;// CONCATENATED MODULE: ./src/x_ite/Components/Texturing/PixelTexture.js
104410
- /* provided dependency */ var PixelTexture_$ = __webpack_require__(834);
105552
+ /* provided dependency */ var PixelTexture_$ = __webpack_require__(501);
104411
105553
  /*******************************************************************************
104412
105554
  *
104413
105555
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -105215,7 +106357,7 @@ function TextureProperties (executionContext)
105215
106357
 
105216
106358
  this .addType (Base_X3DConstants .TextureProperties);
105217
106359
 
105218
- if (executionContext .getSpecificationVersion () < 4.0)
106360
+ if (executionContext .getSpecificationVersion () <= 3.3)
105219
106361
  {
105220
106362
  this ._minificationFilter = "DEFAULT";
105221
106363
  this ._magnificationFilter = "DEFAULT";
@@ -106588,7 +107730,7 @@ const gettext_default_ = gettext;
106588
107730
  x_ite_Namespace .set ("locale/gettext", gettext_default_);
106589
107731
  /* harmony default export */ const locale_gettext = (gettext_default_);
106590
107732
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Core/BrowserTimings.js
106591
- /* provided dependency */ var BrowserTimings_$ = __webpack_require__(834);
107733
+ /* provided dependency */ var BrowserTimings_$ = __webpack_require__(501);
106592
107734
  /*******************************************************************************
106593
107735
  *
106594
107736
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -107018,7 +108160,7 @@ const TextureQuality_default_ = TextureQuality;
107018
108160
  x_ite_Namespace .set ("x_ite/Browser/Core/TextureQuality", TextureQuality_default_);
107019
108161
  /* harmony default export */ const Core_TextureQuality = (TextureQuality_default_);
107020
108162
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Core/BrowserOptions.js
107021
- /* provided dependency */ var BrowserOptions_$ = __webpack_require__(834);
108163
+ /* provided dependency */ var BrowserOptions_$ = __webpack_require__(501);
107022
108164
  /*******************************************************************************
107023
108165
  *
107024
108166
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -107599,7 +108741,7 @@ const RenderingProperties_default_ = RenderingProperties;
107599
108741
  x_ite_Namespace .set ("x_ite/Browser/Core/RenderingProperties", RenderingProperties_default_);
107600
108742
  /* harmony default export */ const Core_RenderingProperties = (RenderingProperties_default_);
107601
108743
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Core/Notification.js
107602
- /* provided dependency */ var Notification_$ = __webpack_require__(834);
108744
+ /* provided dependency */ var Notification_$ = __webpack_require__(501);
107603
108745
  /*******************************************************************************
107604
108746
  *
107605
108747
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -107721,8 +108863,8 @@ const Notification_default_ = Notification;
107721
108863
  x_ite_Namespace .set ("x_ite/Browser/Core/Notification", Notification_default_);
107722
108864
  /* harmony default export */ const Core_Notification = (Notification_default_);
107723
108865
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Core/ContextMenu.js
107724
- /* provided dependency */ var jquery_fullscreen = __webpack_require__(692);
107725
- /* provided dependency */ var ContextMenu_$ = __webpack_require__(834);
108866
+ /* provided dependency */ var jquery_fullscreen = __webpack_require__(892);
108867
+ /* provided dependency */ var ContextMenu_$ = __webpack_require__(501);
107726
108868
  /*******************************************************************************
107727
108869
  *
107728
108870
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -110440,7 +111582,7 @@ const DataStorage_default_ = DataStorage;
110440
111582
  x_ite_Namespace .set ("standard/Utility/DataStorage", DataStorage_default_);
110441
111583
  /* harmony default export */ const Utility_DataStorage = (DataStorage_default_);
110442
111584
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Core/X3DCoreContext.js
110443
- /* provided dependency */ var X3DCoreContext_$ = __webpack_require__(834);
111585
+ /* provided dependency */ var X3DCoreContext_$ = __webpack_require__(501);
110444
111586
  /*******************************************************************************
110445
111587
  *
110446
111588
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -110863,11 +112005,18 @@ Object .assign (X3DCoreContext .prototype,
110863
112005
  },
110864
112006
  parseUrlAttribute (urlCharacters)
110865
112007
  {
110866
- const url = new x_ite_Fields .MFString ();
112008
+ try
112009
+ {
112010
+ const url = new x_ite_Fields .MFString ();
110867
112011
 
110868
- url .fromString ("[" + urlCharacters + "]", this .getExecutionContext ());
112012
+ url .fromString ("[" + urlCharacters + "]", this .getExecutionContext ());
110869
112013
 
110870
- return url;
112014
+ return url;
112015
+ }
112016
+ catch
112017
+ {
112018
+ throw new Error ("Couldn't parse url attribute.");
112019
+ }
110871
112020
  },
110872
112021
  callBrowserEventHandler: (() =>
110873
112022
  {
@@ -112468,8 +113617,8 @@ const X3DViewer_default_ = X3DViewer;
112468
113617
  x_ite_Namespace .set ("x_ite/Browser/Navigation/X3DViewer", X3DViewer_default_);
112469
113618
  /* harmony default export */ const Navigation_X3DViewer = (X3DViewer_default_);
112470
113619
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Navigation/ExamineViewer.js
112471
- /* provided dependency */ var jquery_mousewheel = __webpack_require__(789);
112472
- /* provided dependency */ var ExamineViewer_$ = __webpack_require__(834);
113620
+ /* provided dependency */ var jquery_mousewheel = __webpack_require__(659);
113621
+ /* provided dependency */ var ExamineViewer_$ = __webpack_require__(501);
112473
113622
  /*******************************************************************************
112474
113623
  *
112475
113624
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -113341,8 +114490,8 @@ const ExamineViewer_default_ = ExamineViewer;
113341
114490
  x_ite_Namespace .set ("x_ite/Browser/Navigation/ExamineViewer", ExamineViewer_default_);
113342
114491
  /* harmony default export */ const Navigation_ExamineViewer = (ExamineViewer_default_);
113343
114492
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Navigation/X3DFlyViewer.js
113344
- /* provided dependency */ var X3DFlyViewer_jquery_mousewheel = __webpack_require__(789);
113345
- /* provided dependency */ var X3DFlyViewer_$ = __webpack_require__(834);
114493
+ /* provided dependency */ var X3DFlyViewer_jquery_mousewheel = __webpack_require__(659);
114494
+ /* provided dependency */ var X3DFlyViewer_$ = __webpack_require__(501);
113346
114495
  /*******************************************************************************
113347
114496
  *
113348
114497
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -114312,8 +115461,8 @@ const FlyViewer_default_ = FlyViewer;
114312
115461
  x_ite_Namespace .set ("x_ite/Browser/Navigation/FlyViewer", FlyViewer_default_);
114313
115462
  /* harmony default export */ const Navigation_FlyViewer = (FlyViewer_default_);
114314
115463
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Navigation/PlaneViewer.js
114315
- /* provided dependency */ var PlaneViewer_jquery_mousewheel = __webpack_require__(789);
114316
- /* provided dependency */ var PlaneViewer_$ = __webpack_require__(834);
115464
+ /* provided dependency */ var PlaneViewer_jquery_mousewheel = __webpack_require__(659);
115465
+ /* provided dependency */ var PlaneViewer_$ = __webpack_require__(501);
114317
115466
  /*******************************************************************************
114318
115467
  *
114319
115468
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -114644,8 +115793,8 @@ const NoneViewer_default_ = NoneViewer;
114644
115793
  x_ite_Namespace .set ("x_ite/Browser/Navigation/NoneViewer", NoneViewer_default_);
114645
115794
  /* harmony default export */ const Navigation_NoneViewer = (NoneViewer_default_);
114646
115795
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Navigation/LookAtViewer.js
114647
- /* provided dependency */ var LookAtViewer_jquery_mousewheel = __webpack_require__(789);
114648
- /* provided dependency */ var LookAtViewer_$ = __webpack_require__(834);
115796
+ /* provided dependency */ var LookAtViewer_jquery_mousewheel = __webpack_require__(659);
115797
+ /* provided dependency */ var LookAtViewer_$ = __webpack_require__(501);
114649
115798
  /*******************************************************************************
114650
115799
  *
114651
115800
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -115782,8 +116931,8 @@ const X3DPickingContext_default_ = X3DPickingContext;
115782
116931
  x_ite_Namespace .set ("x_ite/Browser/Picking/X3DPickingContext", X3DPickingContext_default_);
115783
116932
  /* harmony default export */ const Picking_X3DPickingContext = (X3DPickingContext_default_);
115784
116933
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/PointingDeviceSensor/PointingDevice.js
115785
- /* provided dependency */ var PointingDevice_jquery_mousewheel = __webpack_require__(789);
115786
- /* provided dependency */ var PointingDevice_$ = __webpack_require__(834);
116934
+ /* provided dependency */ var PointingDevice_jquery_mousewheel = __webpack_require__(659);
116935
+ /* provided dependency */ var PointingDevice_$ = __webpack_require__(501);
115787
116936
  /*******************************************************************************
115788
116937
  *
115789
116938
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -116823,8 +117972,8 @@ const MultiSampleFrameBuffer_default_ = MultiSampleFrameBuffer;
116823
117972
  x_ite_Namespace .set ("x_ite/Rendering/MultiSampleFrameBuffer", MultiSampleFrameBuffer_default_);
116824
117973
  /* harmony default export */ const Rendering_MultiSampleFrameBuffer = (MultiSampleFrameBuffer_default_);
116825
117974
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Rendering/X3DRenderingContext.js
116826
- /* provided dependency */ var X3DRenderingContext_$ = __webpack_require__(834);
116827
- /* provided dependency */ var ResizeSensor = __webpack_require__(504);
117975
+ /* provided dependency */ var X3DRenderingContext_$ = __webpack_require__(501);
117976
+ /* provided dependency */ var ResizeSensor = __webpack_require__(399);
116828
117977
  /*******************************************************************************
116829
117978
  *
116830
117979
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -119049,7 +120198,7 @@ const Components_default_ = Components;
119049
120198
  x_ite_Namespace .set ("x_ite/Components", Components_default_);
119050
120199
  /* harmony default export */ const x_ite_Components = ((/* unused pure expression or super */ null && (Components_default_)));
119051
120200
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/DOMIntegration.js
119052
- /* provided dependency */ var DOMIntegration_$ = __webpack_require__(834);
120201
+ /* provided dependency */ var DOMIntegration_$ = __webpack_require__(501);
119053
120202
  /*******************************************************************************
119054
120203
  * MIT License
119055
120204
  *
@@ -119187,15 +120336,17 @@ class DOMIntegration
119187
120336
 
119188
120337
  processAttribute (mutation, element)
119189
120338
  {
119190
- const parser = this .parser;
120339
+ const
120340
+ parser = this .parser,
120341
+ node = DOMIntegration_$.data (element, "node");
119191
120342
 
119192
- if (DOMIntegration_$.data (element, "node"))
120343
+ if (node)
119193
120344
  {
119194
120345
  const
119195
120346
  attributeName = mutation .attributeName,
119196
120347
  attribute = element .attributes .getNamedItem (attributeName);
119197
120348
 
119198
- parser .nodeAttribute (attribute, DOMIntegration_$.data (element, "node"));
120349
+ parser .nodeAttribute (attribute, node);
119199
120350
  }
119200
120351
  else
119201
120352
  {
@@ -119205,11 +120356,14 @@ class DOMIntegration
119205
120356
  parentNode = element .parentNode,
119206
120357
  node = DOMIntegration_$.data (parentNode, "node");
119207
120358
 
119208
- parser .pushExecutionContext (node .getExecutionContext ());
119209
- parser .pushParent (node);
119210
- parser .childElement (element);
119211
- parser .popParent ();
119212
- parser .popExecutionContext ();
120359
+ if (node)
120360
+ {
120361
+ parser .pushExecutionContext (node .getExecutionContext ());
120362
+ parser .pushParent (node);
120363
+ parser .childElement (element);
120364
+ parser .popParent ();
120365
+ parser .popExecutionContext ();
120366
+ }
119213
120367
  }
119214
120368
  }
119215
120369
 
@@ -119450,7 +120604,7 @@ const DOMIntegration_default_ = DOMIntegration;
119450
120604
  x_ite_Namespace .set ("x_ite/Browser/DOMIntegration", DOMIntegration_default_);
119451
120605
  /* harmony default export */ const Browser_DOMIntegration = (DOMIntegration_default_);
119452
120606
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Legacy.js
119453
- /* provided dependency */ var Legacy_$ = __webpack_require__(834);
120607
+ /* provided dependency */ var Legacy_$ = __webpack_require__(501);
119454
120608
  /*******************************************************************************
119455
120609
  *
119456
120610
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -120281,7 +121435,7 @@ const SupportedProfiles_default_ = SupportedProfiles;
120281
121435
  x_ite_Namespace .set ("x_ite/Configuration/SupportedProfiles", SupportedProfiles_default_);
120282
121436
  /* harmony default export */ const Configuration_SupportedProfiles = (SupportedProfiles_default_);
120283
121437
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/X3DBrowser.js
120284
- /* provided dependency */ var X3DBrowser_$ = __webpack_require__(834);
121438
+ /* provided dependency */ var X3DBrowser_$ = __webpack_require__(501);
120285
121439
  /*******************************************************************************
120286
121440
  *
120287
121441
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -121405,8 +122559,8 @@ const MicroTime_default_ = undefined;
121405
122559
  x_ite_Namespace .set ("standard/Time/MicroTime", MicroTime_default_);
121406
122560
  /* harmony default export */ const MicroTime = ((/* unused pure expression or super */ null && (MicroTime_default_)));
121407
122561
  ;// CONCATENATED MODULE: ./src/lib/jquery.js
121408
- /* provided dependency */ var jquery_$ = __webpack_require__(834);
121409
- /* provided dependency */ var pako = __webpack_require__(660);
122562
+ /* provided dependency */ var jquery_$ = __webpack_require__(501);
122563
+ /* provided dependency */ var pako = __webpack_require__(234);
121410
122564
  Object .assign (jquery_$,
121411
122565
  {
121412
122566
  decodeText (input)
@@ -121471,14 +122625,14 @@ const jquery_default_ = jquery_$;
121471
122625
  x_ite_Namespace .set ("lib/jquery", jquery_default_);
121472
122626
  /* harmony default export */ const jquery = ((/* unused pure expression or super */ null && (jquery_default_)));
121473
122627
  ;// CONCATENATED MODULE: ./src/lib/libtess.js
121474
- /* provided dependency */ var libtess_libtess = __webpack_require__(492);
122628
+ /* provided dependency */ var libtess_libtess = __webpack_require__(173);
121475
122629
  const libtess_default_ = libtess_libtess;
121476
122630
  ;
121477
122631
 
121478
122632
  x_ite_Namespace .set ("lib/libtess", libtess_default_);
121479
122633
  /* harmony default export */ const lib_libtess = ((/* unused pure expression or super */ null && (libtess_default_)));
121480
122634
  ;// CONCATENATED MODULE: ./src/x_ite/X3D.js
121481
- /* provided dependency */ var X3D_$ = __webpack_require__(834);
122635
+ /* provided dependency */ var X3D_$ = __webpack_require__(501);
121482
122636
  /*******************************************************************************
121483
122637
  *
121484
122638
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -121735,7 +122889,7 @@ const X3D_default_ = X3D;
121735
122889
  x_ite_Namespace .set ("x_ite/X3D", X3D_default_);
121736
122890
  /* harmony default export */ const x_ite_X3D = (X3D_default_);
121737
122891
  ;// CONCATENATED MODULE: ./src/x_ite/X3DCanvasElement.js
121738
- /* provided dependency */ var X3DCanvasElement_$ = __webpack_require__(834);
122892
+ /* provided dependency */ var X3DCanvasElement_$ = __webpack_require__(501);
121739
122893
  /*******************************************************************************
121740
122894
  *
121741
122895
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -122004,7 +123158,7 @@ x_ite_Namespace .set ("shim", shim_default_);
122004
123158
 
122005
123159
  // Assign X3D to global namespace.
122006
123160
 
122007
- window [Symbol .for ("X_ITE.X3D-8.8.7")] = x_ite_X3D;
123161
+ window [Symbol .for ("X_ITE.X3D-8.9.1")] = x_ite_X3D;
122008
123162
 
122009
123163
  customElements .define ("x3d-canvas", x_ite_X3DCanvasElement);
122010
123164