x_ite 8.7.8 → 8.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (646) hide show
  1. package/Makefile +3 -0
  2. package/build/bin/version.pl +1 -1
  3. package/dist/assets/components/Annotation.js +248 -169
  4. package/dist/assets/components/Annotation.min.js +1 -1
  5. package/dist/assets/components/CADGeometry.js +296 -233
  6. package/dist/assets/components/CADGeometry.min.js +1 -1
  7. package/dist/assets/components/CubeMapTexturing.js +217 -172
  8. package/dist/assets/components/CubeMapTexturing.min.js +1 -1
  9. package/dist/assets/components/DIS.js +451 -387
  10. package/dist/assets/components/DIS.min.js +1 -1
  11. package/dist/assets/components/EventUtilities.js +309 -208
  12. package/dist/assets/components/EventUtilities.min.js +1 -1
  13. package/dist/assets/components/Geometry2D.js +397 -333
  14. package/dist/assets/components/Geometry2D.min.js +1 -1
  15. package/dist/assets/components/Geospatial.js +705 -575
  16. package/dist/assets/components/Geospatial.min.js +1 -1
  17. package/dist/assets/components/HAnim.js +319 -259
  18. package/dist/assets/components/HAnim.min.js +1 -1
  19. package/dist/assets/components/KeyDeviceSensor.js +134 -99
  20. package/dist/assets/components/KeyDeviceSensor.min.js +1 -1
  21. package/dist/assets/components/Layout.js +305 -240
  22. package/dist/assets/components/Layout.min.js +1 -1
  23. package/dist/assets/components/NURBS.js +781 -626
  24. package/dist/assets/components/NURBS.min.js +1 -1
  25. package/dist/assets/components/ParticleSystems.js +632 -460
  26. package/dist/assets/components/ParticleSystems.min.js +1 -1
  27. package/dist/assets/components/Picking.js +376 -295
  28. package/dist/assets/components/Picking.min.js +1 -1
  29. package/dist/assets/components/RigidBodyPhysics.js +936 -749
  30. package/dist/assets/components/RigidBodyPhysics.min.js +1 -1
  31. package/dist/assets/components/Scripting.js +173 -103
  32. package/dist/assets/components/Scripting.min.js +1 -1
  33. package/dist/assets/components/Text.js +241 -207
  34. package/dist/assets/components/Text.min.js +1 -1
  35. package/dist/assets/components/TextureProjector.js +162 -129
  36. package/dist/assets/components/TextureProjector.min.js +1 -1
  37. package/dist/assets/components/Texturing3D.js +485 -384
  38. package/dist/assets/components/Texturing3D.min.js +1 -1
  39. package/dist/assets/components/VolumeRendering.js +741 -547
  40. package/dist/assets/components/VolumeRendering.min.js +1 -1
  41. package/dist/assets/components/X_ITE.js +66 -54
  42. package/dist/assets/components/X_ITE.min.js +1 -1
  43. package/dist/x_ite.css +1 -1
  44. package/dist/x_ite.js +61554 -59658
  45. package/dist/x_ite.min.js +1 -1
  46. package/dist/x_ite.zip +0 -0
  47. package/docs/_config.yml +2 -2
  48. package/package.json +4 -4
  49. package/src/assets/components/Annotation.js +14 -14
  50. package/src/assets/components/CADGeometry.js +14 -14
  51. package/src/assets/components/CubeMapTexturing.js +11 -11
  52. package/src/assets/components/DIS.js +13 -13
  53. package/src/assets/components/EventUtilities.js +16 -16
  54. package/src/assets/components/Geometry2D.js +15 -15
  55. package/src/assets/components/Geospatial.js +19 -19
  56. package/src/assets/components/HAnim.js +13 -13
  57. package/src/assets/components/KeyDeviceSensor.js +10 -10
  58. package/src/assets/components/Layout.js +13 -13
  59. package/src/assets/components/NURBS.js +24 -24
  60. package/src/assets/components/ParticleSystems.js +19 -19
  61. package/src/assets/components/Picking.js +14 -14
  62. package/src/assets/components/RigidBodyPhysics.js +24 -24
  63. package/src/assets/components/Scripting.js +9 -9
  64. package/src/assets/components/Text.js +10 -10
  65. package/src/assets/components/TextureProjector.js +10 -10
  66. package/src/assets/components/Texturing3D.js +16 -16
  67. package/src/assets/components/VolumeRendering.js +23 -23
  68. package/src/assets/components/X_ITE.js +8 -7
  69. package/src/assets/shaders/webgl1/include/Shadow.glsl.js +21 -25
  70. package/src/assets/shaders/webgl2/include/Shadow.glsl.js +23 -27
  71. package/src/bookmarks.js +2 -2
  72. package/src/lib/jquery.js +42 -30
  73. package/src/standard/Geospatial/Geodetic.js +8 -9
  74. package/src/standard/Geospatial/UniversalTransverseMercator.js +4 -5
  75. package/src/standard/Math/Algorithm.js +41 -56
  76. package/src/standard/Math/Algorithms/Bezier.js +2 -2
  77. package/src/standard/Math/Algorithms/MergeSort.js +6 -6
  78. package/src/standard/Math/Algorithms/PartialSort.js +5 -5
  79. package/src/standard/Math/Algorithms/QuickSort.js +5 -5
  80. package/src/standard/Math/Geometry/Box2.js +16 -17
  81. package/src/standard/Math/Geometry/Box3.js +18 -19
  82. package/src/standard/Math/Geometry/Camera.js +6 -5
  83. package/src/standard/Math/Geometry/Cylinder3.js +6 -7
  84. package/src/standard/Math/Geometry/Line2.js +20 -18
  85. package/src/standard/Math/Geometry/Line3.js +20 -18
  86. package/src/standard/Math/Geometry/Plane3.js +11 -12
  87. package/src/standard/Math/Geometry/Sphere3.js +6 -7
  88. package/src/standard/Math/Geometry/Spheroid3.js +6 -7
  89. package/src/standard/Math/Geometry/Triangle2.js +4 -3
  90. package/src/standard/Math/Geometry/Triangle3.js +5 -4
  91. package/src/standard/Math/Geometry/ViewVolume.js +6 -7
  92. package/src/standard/Math/Numbers/Color3.js +18 -19
  93. package/src/standard/Math/Numbers/Color4.js +20 -21
  94. package/src/standard/Math/Numbers/Complex.js +28 -29
  95. package/src/standard/Math/Numbers/Matrix2.js +22 -23
  96. package/src/standard/Math/Numbers/Matrix3.js +28 -29
  97. package/src/standard/Math/Numbers/Matrix4.js +29 -30
  98. package/src/standard/Math/Numbers/Quaternion.js +40 -41
  99. package/src/standard/Math/Numbers/Rotation4.js +34 -35
  100. package/src/standard/Math/Numbers/Vector2.js +29 -30
  101. package/src/standard/Math/Numbers/Vector3.js +32 -33
  102. package/src/standard/Math/Numbers/Vector4.js +34 -35
  103. package/src/standard/Math/Utility/BVH.js +14 -15
  104. package/src/standard/Math/Utility/MatrixStack.js +12 -12
  105. package/src/standard/Time/MicroTime.js +4 -3
  106. package/src/standard/Utility/BitSet.js +10 -11
  107. package/src/standard/Utility/DataStorage.js +10 -10
  108. package/src/standard/Utility/MapUtilities.js +2 -1
  109. package/src/standard/Utility/ObjectCache.js +3 -3
  110. package/src/tests.js +10 -0
  111. package/src/x_ite/Base/Events.js +3 -3
  112. package/src/x_ite/Base/FieldArray.js +11 -9
  113. package/src/x_ite/Base/FieldDefinitionArray.js +11 -9
  114. package/src/x_ite/Base/X3DArrayField.js +13 -14
  115. package/src/x_ite/Base/X3DBaseNode.js +219 -181
  116. package/src/x_ite/Base/X3DCast.js +1 -1
  117. package/src/x_ite/Base/X3DChildObject.js +162 -53
  118. package/src/x_ite/Base/X3DConstants.js +74 -60
  119. package/src/x_ite/Base/X3DEventObject.js +6 -12
  120. package/src/x_ite/Base/X3DField.js +45 -42
  121. package/src/x_ite/Base/X3DFieldDefinition.js +9 -7
  122. package/src/x_ite/Base/X3DInfoArray.js +75 -65
  123. package/src/x_ite/Base/X3DObject.js +59 -29
  124. package/src/x_ite/Base/X3DObjectArrayField.js +51 -117
  125. package/src/x_ite/Base/X3DTypedArrayField.js +48 -42
  126. package/src/x_ite/Browser/Core/BrowserOptions.js +55 -57
  127. package/src/x_ite/Browser/Core/BrowserProperties.js +18 -20
  128. package/src/x_ite/Browser/Core/BrowserTimings.js +29 -33
  129. package/src/x_ite/Browser/Core/Context.js +7 -7
  130. package/src/x_ite/Browser/Core/ContextMenu.js +61 -83
  131. package/src/x_ite/Browser/Core/Notification.js +12 -12
  132. package/src/x_ite/Browser/Core/RenderingProperties.js +28 -28
  133. package/src/x_ite/Browser/Core/X3DCoreContext.js +45 -37
  134. package/src/x_ite/Browser/DOMIntegration.js +4 -1
  135. package/src/x_ite/Browser/EnvironmentalEffects/X3DEnvironmentalEffectsContext.js +3 -3
  136. package/src/x_ite/Browser/Followers/X3DArrayChaserTemplate.js +1 -1
  137. package/src/x_ite/Browser/Followers/X3DArrayFollowerTemplate.js +12 -12
  138. package/src/x_ite/Browser/Geometry2D/Arc2DOptions.js +8 -14
  139. package/src/x_ite/Browser/Geometry2D/ArcClose2DOptions.js +8 -14
  140. package/src/x_ite/Browser/Geometry2D/Circle2DOptions.js +13 -17
  141. package/src/x_ite/Browser/Geometry2D/Disk2DOptions.js +15 -19
  142. package/src/x_ite/Browser/Geometry2D/Rectangle2DOptions.js +12 -16
  143. package/src/x_ite/Browser/Geometry2D/X3DGeometry2DContext.js +9 -9
  144. package/src/x_ite/Browser/Geometry3D/BoxOptions.js +12 -16
  145. package/src/x_ite/Browser/Geometry3D/ConeOptions.js +6 -12
  146. package/src/x_ite/Browser/Geometry3D/CylinderOptions.js +6 -12
  147. package/src/x_ite/Browser/Geometry3D/IcoSphereOptions.js +13 -17
  148. package/src/x_ite/Browser/Geometry3D/QuadSphereOptions.js +17 -21
  149. package/src/x_ite/Browser/Geometry3D/X3DGeometry3DContext.js +8 -8
  150. package/src/x_ite/Browser/Geospatial/Geocentric.js +5 -6
  151. package/src/x_ite/Browser/Geospatial/Geospatial.js +10 -10
  152. package/src/x_ite/Browser/Grouping/X3DGroupingContext.js +3 -3
  153. package/src/x_ite/Browser/Interpolation/CatmullRomSplineInterpolator.js +2 -3
  154. package/src/x_ite/Browser/Interpolation/CatmullRomSplineInterpolator1.js +8 -9
  155. package/src/x_ite/Browser/Interpolation/CatmullRomSplineInterpolatorTemplate.js +7 -8
  156. package/src/x_ite/Browser/Interpolation/SquatInterpolator.js +3 -4
  157. package/src/x_ite/Browser/KeyDeviceSensor/X3DKeyDeviceSensorContext.js +8 -8
  158. package/src/x_ite/Browser/Layering/X3DLayeringContext.js +4 -4
  159. package/src/x_ite/Browser/Layout/ScreenText.js +7 -8
  160. package/src/x_ite/Browser/Layout/X3DLayoutContext.js +3 -3
  161. package/src/x_ite/Browser/Legacy.js +32 -12
  162. package/src/x_ite/Browser/Lighting/X3DLightingContext.js +5 -5
  163. package/src/x_ite/Browser/NURBS/NURBS.js +10 -10
  164. package/src/x_ite/Browser/Navigation/ExamineViewer.js +32 -20
  165. package/src/x_ite/Browser/Navigation/FlyViewer.js +22 -10
  166. package/src/x_ite/Browser/Navigation/LookAtViewer.js +29 -17
  167. package/src/x_ite/Browser/Navigation/NoneViewer.js +15 -5
  168. package/src/x_ite/Browser/Navigation/PlaneViewer.js +24 -12
  169. package/src/x_ite/Browser/Navigation/WalkViewer.js +22 -10
  170. package/src/x_ite/Browser/Navigation/X3DFlyViewer.js +17 -18
  171. package/src/x_ite/Browser/Navigation/X3DNavigationContext.js +19 -19
  172. package/src/x_ite/Browser/Navigation/X3DViewer.js +13 -19
  173. package/src/x_ite/Browser/Networking/URLs.js +5 -5
  174. package/src/x_ite/Browser/Networking/X3DNetworkingContext.js +16 -16
  175. package/src/x_ite/Browser/ParticleSystems/X3DParticleSystemsContext.js +3 -3
  176. package/src/x_ite/Browser/Picking/VolumePicker.js +8 -8
  177. package/src/x_ite/Browser/Picking/X3DPickingContext.js +12 -12
  178. package/src/x_ite/Browser/PointingDeviceSensor/PointingDevice.js +24 -20
  179. package/src/x_ite/Browser/PointingDeviceSensor/PointingDeviceSensorContainer.js +6 -6
  180. package/src/x_ite/Browser/PointingDeviceSensor/X3DPointingDeviceSensorContext.js +21 -21
  181. package/src/x_ite/Browser/Rendering/GeometryContext.js +4 -5
  182. package/src/x_ite/Browser/Rendering/X3DRenderingContext.js +18 -18
  183. package/src/x_ite/Browser/Scripting/X3DScriptingContext.js +4 -4
  184. package/src/x_ite/Browser/Shaders/ShaderCompiler.js +4 -4
  185. package/src/x_ite/Browser/Shaders/ShaderSource.js +1 -1
  186. package/src/x_ite/Browser/Shaders/X3DShadersContext.js +13 -13
  187. package/src/x_ite/Browser/Shape/X3DShapeContext.js +12 -12
  188. package/src/x_ite/Browser/Sound/X3DSoundContext.js +0 -2
  189. package/src/x_ite/Browser/Text/PolygonText.js +10 -11
  190. package/src/x_ite/Browser/Text/X3DTextContext.js +6 -6
  191. package/src/x_ite/Browser/Text/X3DTextGeometry.js +18 -19
  192. package/src/x_ite/Browser/Texturing/GifMedia.js +7 -7
  193. package/src/x_ite/Browser/Texturing/X3DTexturingContext.js +24 -24
  194. package/src/x_ite/Browser/Texturing3D/DICOMParser.js +38 -38
  195. package/src/x_ite/Browser/Texturing3D/NRRDParser.js +14 -14
  196. package/src/x_ite/Browser/Time/X3DTimeContext.js +5 -5
  197. package/src/x_ite/Browser/VERSION.js +1 -1
  198. package/src/x_ite/Browser/VolumeRendering/VolumeMaterial.js +39 -22
  199. package/src/x_ite/Browser/VolumeRendering/X3DVolumeRenderingContext.js +6 -6
  200. package/src/x_ite/Browser/X3DBrowser.js +170 -136
  201. package/src/x_ite/Browser/X3DBrowserContext.js +23 -24
  202. package/src/x_ite/Components/Annotation/AnnotationLayer.js +30 -19
  203. package/src/x_ite/Components/Annotation/AnnotationTarget.js +30 -19
  204. package/src/x_ite/Components/Annotation/GroupAnnotation.js +40 -29
  205. package/src/x_ite/Components/Annotation/IconAnnotation.js +38 -27
  206. package/src/x_ite/Components/Annotation/TextAnnotation.js +31 -20
  207. package/src/x_ite/Components/Annotation/URLAnnotation.js +30 -19
  208. package/src/x_ite/Components/Annotation/X3DAnnotationNode.js +16 -3
  209. package/src/x_ite/Components/CADGeometry/CADAssembly.js +32 -21
  210. package/src/x_ite/Components/CADGeometry/CADFace.js +48 -37
  211. package/src/x_ite/Components/CADGeometry/CADLayer.js +30 -21
  212. package/src/x_ite/Components/CADGeometry/CADPart.js +37 -26
  213. package/src/x_ite/Components/CADGeometry/IndexedQuadSet.js +51 -46
  214. package/src/x_ite/Components/CADGeometry/QuadSet.js +48 -43
  215. package/src/x_ite/Components/CADGeometry/X3DProductStructureChildNode.js +13 -2
  216. package/src/x_ite/Components/Core/MetadataBoolean.js +33 -22
  217. package/src/x_ite/Components/Core/MetadataDouble.js +33 -22
  218. package/src/x_ite/Components/Core/MetadataFloat.js +33 -22
  219. package/src/x_ite/Components/Core/MetadataInteger.js +33 -22
  220. package/src/x_ite/Components/Core/MetadataSet.js +33 -22
  221. package/src/x_ite/Components/Core/MetadataString.js +33 -22
  222. package/src/x_ite/Components/Core/WorldInfo.js +34 -23
  223. package/src/x_ite/Components/Core/X3DBindableNode.js +17 -4
  224. package/src/x_ite/Components/Core/X3DChildNode.js +19 -6
  225. package/src/x_ite/Components/Core/X3DInfoNode.js +13 -2
  226. package/src/x_ite/Components/Core/X3DMetadataObject.js +18 -5
  227. package/src/x_ite/Components/Core/X3DNode.js +66 -34
  228. package/src/x_ite/Components/Core/X3DPrototypeInstance.js +68 -77
  229. package/src/x_ite/Components/Core/X3DSensorNode.js +13 -2
  230. package/src/x_ite/Components/Core.js +22 -29
  231. package/src/x_ite/Components/CubeMapTexturing/ComposedCubeMapTexture.js +46 -35
  232. package/src/x_ite/Components/CubeMapTexturing/GeneratedCubeMapTexture.js +39 -28
  233. package/src/x_ite/Components/CubeMapTexturing/ImageCubeMapTexture.js +47 -36
  234. package/src/x_ite/Components/CubeMapTexturing/X3DEnvironmentTextureNode.js +21 -8
  235. package/src/x_ite/Components/DIS/DISEntityManager.js +29 -20
  236. package/src/x_ite/Components/DIS/DISEntityTypeMapping.js +41 -30
  237. package/src/x_ite/Components/DIS/EspduTransform.js +117 -106
  238. package/src/x_ite/Components/DIS/ReceiverPdu.js +60 -49
  239. package/src/x_ite/Components/DIS/SignalPdu.js +60 -49
  240. package/src/x_ite/Components/DIS/TransmitterPdu.js +76 -65
  241. package/src/x_ite/Components/EnvironmentalEffects/Background.js +47 -36
  242. package/src/x_ite/Components/EnvironmentalEffects/Fog.js +42 -31
  243. package/src/x_ite/Components/EnvironmentalEffects/FogCoordinate.js +39 -28
  244. package/src/x_ite/Components/EnvironmentalEffects/LocalFog.js +40 -29
  245. package/src/x_ite/Components/EnvironmentalEffects/TextureBackground.js +48 -37
  246. package/src/x_ite/Components/EnvironmentalEffects/X3DBackgroundNode.js +28 -15
  247. package/src/x_ite/Components/EnvironmentalEffects/X3DFogObject.js +30 -18
  248. package/src/x_ite/Components/EnvironmentalEffects.js +15 -22
  249. package/src/x_ite/Components/EnvironmentalSensor/ProximitySensor.js +45 -34
  250. package/src/x_ite/Components/EnvironmentalSensor/TransformSensor.js +50 -39
  251. package/src/x_ite/Components/EnvironmentalSensor/VisibilitySensor.js +41 -30
  252. package/src/x_ite/Components/EnvironmentalSensor/X3DEnvironmentalSensorNode.js +22 -9
  253. package/src/x_ite/Components/EnvironmentalSensor.js +12 -19
  254. package/src/x_ite/Components/EventUtilities/BooleanFilter.js +38 -27
  255. package/src/x_ite/Components/EventUtilities/BooleanSequencer.js +38 -27
  256. package/src/x_ite/Components/EventUtilities/BooleanToggle.js +33 -22
  257. package/src/x_ite/Components/EventUtilities/BooleanTrigger.js +32 -21
  258. package/src/x_ite/Components/EventUtilities/IntegerSequencer.js +38 -27
  259. package/src/x_ite/Components/EventUtilities/IntegerTrigger.js +33 -22
  260. package/src/x_ite/Components/EventUtilities/TimeTrigger.js +32 -21
  261. package/src/x_ite/Components/EventUtilities/X3DSequencerNode.js +20 -7
  262. package/src/x_ite/Components/EventUtilities/X3DTriggerNode.js +13 -2
  263. package/src/x_ite/Components/Followers/ColorChaser.js +47 -36
  264. package/src/x_ite/Components/Followers/ColorDamper.js +49 -38
  265. package/src/x_ite/Components/Followers/CoordinateChaser.js +33 -22
  266. package/src/x_ite/Components/Followers/CoordinateDamper.js +35 -24
  267. package/src/x_ite/Components/Followers/OrientationChaser.js +43 -32
  268. package/src/x_ite/Components/Followers/OrientationDamper.js +41 -30
  269. package/src/x_ite/Components/Followers/PositionChaser.js +33 -22
  270. package/src/x_ite/Components/Followers/PositionChaser2D.js +33 -22
  271. package/src/x_ite/Components/Followers/PositionDamper.js +35 -24
  272. package/src/x_ite/Components/Followers/PositionDamper2D.js +35 -24
  273. package/src/x_ite/Components/Followers/ScalarChaser.js +47 -36
  274. package/src/x_ite/Components/Followers/ScalarDamper.js +43 -32
  275. package/src/x_ite/Components/Followers/TexCoordChaser2D.js +33 -22
  276. package/src/x_ite/Components/Followers/TexCoordDamper2D.js +35 -24
  277. package/src/x_ite/Components/Followers/X3DChaserNode.js +27 -14
  278. package/src/x_ite/Components/Followers/X3DDamperNode.js +22 -9
  279. package/src/x_ite/Components/Followers/X3DFollowerNode.js +29 -16
  280. package/src/x_ite/Components/Followers.js +25 -32
  281. package/src/x_ite/Components/Geometry2D/Arc2D.js +38 -27
  282. package/src/x_ite/Components/Geometry2D/ArcClose2D.js +39 -28
  283. package/src/x_ite/Components/Geometry2D/Circle2D.js +35 -24
  284. package/src/x_ite/Components/Geometry2D/Disk2D.js +40 -29
  285. package/src/x_ite/Components/Geometry2D/Polyline2D.js +34 -23
  286. package/src/x_ite/Components/Geometry2D/Polypoint2D.js +34 -23
  287. package/src/x_ite/Components/Geometry2D/Rectangle2D.js +34 -23
  288. package/src/x_ite/Components/Geometry2D/TriangleSet2D.js +36 -25
  289. package/src/x_ite/Components/Geometry3D/Box.js +34 -23
  290. package/src/x_ite/Components/Geometry3D/Cone.js +40 -29
  291. package/src/x_ite/Components/Geometry3D/Cylinder.js +41 -30
  292. package/src/x_ite/Components/Geometry3D/ElevationGrid.js +63 -52
  293. package/src/x_ite/Components/Geometry3D/Extrusion.js +49 -38
  294. package/src/x_ite/Components/Geometry3D/IndexedFaceSet.js +98 -95
  295. package/src/x_ite/Components/Geometry3D/Sphere.js +36 -25
  296. package/src/x_ite/Components/Geometry3D.js +15 -22
  297. package/src/x_ite/Components/Geospatial/GeoCoordinate.js +37 -26
  298. package/src/x_ite/Components/Geospatial/GeoElevationGrid.js +63 -52
  299. package/src/x_ite/Components/Geospatial/GeoLOD.js +59 -48
  300. package/src/x_ite/Components/Geospatial/GeoLocation.js +45 -34
  301. package/src/x_ite/Components/Geospatial/GeoMetadata.js +38 -27
  302. package/src/x_ite/Components/Geospatial/GeoOrigin.js +37 -26
  303. package/src/x_ite/Components/Geospatial/GeoPositionInterpolator.js +43 -32
  304. package/src/x_ite/Components/Geospatial/GeoProximitySensor.js +48 -37
  305. package/src/x_ite/Components/Geospatial/GeoTouchSensor.js +45 -34
  306. package/src/x_ite/Components/Geospatial/GeoTransform.js +49 -38
  307. package/src/x_ite/Components/Geospatial/GeoViewpoint.js +56 -45
  308. package/src/x_ite/Components/Geospatial/X3DGeospatialObject.js +30 -17
  309. package/src/x_ite/Components/Grouping/Group.js +29 -20
  310. package/src/x_ite/Components/Grouping/StaticGroup.js +40 -48
  311. package/src/x_ite/Components/Grouping/Switch.js +51 -40
  312. package/src/x_ite/Components/Grouping/Transform.js +34 -25
  313. package/src/x_ite/Components/Grouping/X3DBoundedObject.js +22 -9
  314. package/src/x_ite/Components/Grouping/X3DGroupingNode.js +224 -221
  315. package/src/x_ite/Components/Grouping/X3DTransformMatrix3DNode.js +20 -7
  316. package/src/x_ite/Components/Grouping/X3DTransformNode.js +17 -4
  317. package/src/x_ite/Components/Grouping.js +16 -23
  318. package/src/x_ite/Components/HAnim/HAnimDisplacer.js +27 -18
  319. package/src/x_ite/Components/HAnim/HAnimHumanoid.js +73 -62
  320. package/src/x_ite/Components/HAnim/HAnimJoint.js +61 -50
  321. package/src/x_ite/Components/HAnim/HAnimMotion.js +44 -33
  322. package/src/x_ite/Components/HAnim/HAnimSegment.js +36 -27
  323. package/src/x_ite/Components/HAnim/HAnimSite.js +36 -27
  324. package/src/x_ite/Components/Interpolation/ColorInterpolator.js +38 -27
  325. package/src/x_ite/Components/Interpolation/CoordinateInterpolator.js +38 -27
  326. package/src/x_ite/Components/Interpolation/CoordinateInterpolator2D.js +38 -27
  327. package/src/x_ite/Components/Interpolation/EaseInEaseOut.js +39 -28
  328. package/src/x_ite/Components/Interpolation/NormalInterpolator.js +38 -27
  329. package/src/x_ite/Components/Interpolation/OrientationInterpolator.js +38 -27
  330. package/src/x_ite/Components/Interpolation/PositionInterpolator.js +38 -27
  331. package/src/x_ite/Components/Interpolation/PositionInterpolator2D.js +38 -27
  332. package/src/x_ite/Components/Interpolation/ScalarInterpolator.js +39 -28
  333. package/src/x_ite/Components/Interpolation/SplinePositionInterpolator.js +44 -33
  334. package/src/x_ite/Components/Interpolation/SplinePositionInterpolator2D.js +44 -33
  335. package/src/x_ite/Components/Interpolation/SplineScalarInterpolator.js +44 -33
  336. package/src/x_ite/Components/Interpolation/SquadOrientationInterpolator.js +40 -29
  337. package/src/x_ite/Components/Interpolation/X3DInterpolatorNode.js +21 -8
  338. package/src/x_ite/Components/Interpolation.js +22 -29
  339. package/src/x_ite/Components/KeyDeviceSensor/KeySensor.js +44 -33
  340. package/src/x_ite/Components/KeyDeviceSensor/StringSensor.js +38 -27
  341. package/src/x_ite/Components/KeyDeviceSensor/X3DKeyDeviceSensorNode.js +23 -10
  342. package/src/x_ite/Components/Layering/Layer.js +40 -29
  343. package/src/x_ite/Components/Layering/LayerSet.js +44 -33
  344. package/src/x_ite/Components/Layering/Viewport.js +48 -37
  345. package/src/x_ite/Components/Layering/X3DLayerNode.js +45 -32
  346. package/src/x_ite/Components/Layering/X3DViewportNode.js +13 -2
  347. package/src/x_ite/Components/Layering.js +13 -20
  348. package/src/x_ite/Components/Layout/Layout.js +60 -49
  349. package/src/x_ite/Components/Layout/LayoutGroup.js +48 -37
  350. package/src/x_ite/Components/Layout/LayoutLayer.js +41 -30
  351. package/src/x_ite/Components/Layout/ScreenFontStyle.js +41 -30
  352. package/src/x_ite/Components/Layout/ScreenGroup.js +42 -31
  353. package/src/x_ite/Components/Layout/X3DLayoutNode.js +13 -2
  354. package/src/x_ite/Components/Lighting/DirectionalLight.js +45 -35
  355. package/src/x_ite/Components/Lighting/EnvironmentLight.js +51 -41
  356. package/src/x_ite/Components/Lighting/PointLight.js +53 -43
  357. package/src/x_ite/Components/Lighting/SpotLight.js +62 -52
  358. package/src/x_ite/Components/Lighting/X3DLightNode.js +29 -16
  359. package/src/x_ite/Components/Lighting.js +13 -20
  360. package/src/x_ite/Components/NURBS/Contour2D.js +45 -45
  361. package/src/x_ite/Components/NURBS/ContourPolyline2D.js +34 -23
  362. package/src/x_ite/Components/NURBS/CoordinateDouble.js +23 -14
  363. package/src/x_ite/Components/NURBS/NurbsCurve.js +47 -36
  364. package/src/x_ite/Components/NURBS/NurbsCurve2D.js +44 -33
  365. package/src/x_ite/Components/NURBS/NurbsOrientationInterpolator.js +46 -35
  366. package/src/x_ite/Components/NURBS/NurbsPatchSurface.js +36 -27
  367. package/src/x_ite/Components/NURBS/NurbsPositionInterpolator.js +46 -35
  368. package/src/x_ite/Components/NURBS/NurbsSet.js +52 -52
  369. package/src/x_ite/Components/NURBS/NurbsSurfaceInterpolator.js +44 -33
  370. package/src/x_ite/Components/NURBS/NurbsSweptSurface.js +40 -29
  371. package/src/x_ite/Components/NURBS/NurbsSwungSurface.js +40 -29
  372. package/src/x_ite/Components/NURBS/NurbsTextureCoordinate.js +43 -32
  373. package/src/x_ite/Components/NURBS/NurbsTrimmedSurface.js +59 -59
  374. package/src/x_ite/Components/NURBS/X3DNurbsControlCurveNode.js +13 -2
  375. package/src/x_ite/Components/NURBS/X3DNurbsSurfaceGeometryNode.js +30 -17
  376. package/src/x_ite/Components/NURBS/X3DParametricGeometryNode.js +16 -3
  377. package/src/x_ite/Components/Navigation/Billboard.js +43 -32
  378. package/src/x_ite/Components/Navigation/Collision.js +49 -38
  379. package/src/x_ite/Components/Navigation/LOD.js +54 -43
  380. package/src/x_ite/Components/Navigation/NavigationInfo.js +58 -47
  381. package/src/x_ite/Components/Navigation/OrthoViewpoint.js +69 -58
  382. package/src/x_ite/Components/Navigation/Viewpoint.js +53 -42
  383. package/src/x_ite/Components/Navigation/ViewpointGroup.js +44 -33
  384. package/src/x_ite/Components/Navigation/X3DViewpointNode.js +48 -35
  385. package/src/x_ite/Components/Navigation.js +16 -23
  386. package/src/x_ite/Components/Networking/Anchor.js +51 -40
  387. package/src/x_ite/Components/Networking/Inline.js +54 -43
  388. package/src/x_ite/Components/Networking/LoadSensor.js +49 -38
  389. package/src/x_ite/Components/Networking/X3DNetworkSensorNode.js +13 -2
  390. package/src/x_ite/Components/Networking/X3DUrlObject.js +35 -22
  391. package/src/x_ite/Components/Networking.js +13 -20
  392. package/src/x_ite/Components/ParticleSystems/BoundedPhysicsModel.js +37 -26
  393. package/src/x_ite/Components/ParticleSystems/ConeEmitter.js +44 -33
  394. package/src/x_ite/Components/ParticleSystems/ExplosionEmitter.js +41 -30
  395. package/src/x_ite/Components/ParticleSystems/ForcePhysicsModel.js +34 -23
  396. package/src/x_ite/Components/ParticleSystems/ParticleSystem.js +83 -72
  397. package/src/x_ite/Components/ParticleSystems/PointEmitter.js +41 -30
  398. package/src/x_ite/Components/ParticleSystems/PolylineEmitter.js +42 -31
  399. package/src/x_ite/Components/ParticleSystems/SurfaceEmitter.js +42 -31
  400. package/src/x_ite/Components/ParticleSystems/VolumeEmitter.js +43 -32
  401. package/src/x_ite/Components/ParticleSystems/WindPhysicsModel.js +38 -27
  402. package/src/x_ite/Components/ParticleSystems/X3DParticleEmitterNode.js +33 -20
  403. package/src/x_ite/Components/ParticleSystems/X3DParticlePhysicsModelNode.js +16 -3
  404. package/src/x_ite/Components/Picking/LinePickSensor.js +49 -38
  405. package/src/x_ite/Components/Picking/PickableGroup.js +45 -34
  406. package/src/x_ite/Components/Picking/PointPickSensor.js +46 -35
  407. package/src/x_ite/Components/Picking/PrimitivePickSensor.js +46 -35
  408. package/src/x_ite/Components/Picking/VolumePickSensor.js +45 -34
  409. package/src/x_ite/Components/Picking/X3DPickSensorNode.js +31 -18
  410. package/src/x_ite/Components/Picking/X3DPickableObject.js +20 -7
  411. package/src/x_ite/Components/PointingDeviceSensor/CylinderSensor.js +50 -39
  412. package/src/x_ite/Components/PointingDeviceSensor/PlaneSensor.js +52 -45
  413. package/src/x_ite/Components/PointingDeviceSensor/SphereSensor.js +44 -33
  414. package/src/x_ite/Components/PointingDeviceSensor/TouchSensor.js +30 -21
  415. package/src/x_ite/Components/PointingDeviceSensor/X3DDragSensorNode.js +13 -2
  416. package/src/x_ite/Components/PointingDeviceSensor/X3DPointingDeviceSensorNode.js +22 -11
  417. package/src/x_ite/Components/PointingDeviceSensor/X3DTouchSensorNode.js +16 -3
  418. package/src/x_ite/Components/PointingDeviceSensor.js +15 -22
  419. package/src/x_ite/Components/Rendering/ClipPlane.js +44 -34
  420. package/src/x_ite/Components/Rendering/Color.js +37 -26
  421. package/src/x_ite/Components/Rendering/ColorRGBA.js +37 -26
  422. package/src/x_ite/Components/Rendering/Coordinate.js +23 -14
  423. package/src/x_ite/Components/Rendering/IndexedLineSet.js +52 -41
  424. package/src/x_ite/Components/Rendering/IndexedTriangleFanSet.js +48 -37
  425. package/src/x_ite/Components/Rendering/IndexedTriangleSet.js +44 -33
  426. package/src/x_ite/Components/Rendering/IndexedTriangleStripSet.js +48 -37
  427. package/src/x_ite/Components/Rendering/LineSet.js +45 -34
  428. package/src/x_ite/Components/Rendering/Normal.js +39 -28
  429. package/src/x_ite/Components/Rendering/PointSet.js +45 -34
  430. package/src/x_ite/Components/Rendering/TriangleFanSet.js +47 -36
  431. package/src/x_ite/Components/Rendering/TriangleSet.js +41 -30
  432. package/src/x_ite/Components/Rendering/TriangleStripSet.js +47 -36
  433. package/src/x_ite/Components/Rendering/X3DColorNode.js +17 -4
  434. package/src/x_ite/Components/Rendering/X3DComposedGeometryNode.js +33 -20
  435. package/src/x_ite/Components/Rendering/X3DCoordinateNode.js +23 -10
  436. package/src/x_ite/Components/Rendering/X3DGeometricPropertyNode.js +13 -2
  437. package/src/x_ite/Components/Rendering/X3DGeometryNode.js +96 -80
  438. package/src/x_ite/Components/Rendering/X3DLineGeometryNode.js +21 -8
  439. package/src/x_ite/Components/Rendering/X3DNormalNode.js +13 -2
  440. package/src/x_ite/Components/Rendering/X3DPointGeometryNode.js +20 -7
  441. package/src/x_ite/Components/Rendering.js +29 -36
  442. package/src/x_ite/Components/RigidBodyPhysics/BallJoint.js +43 -32
  443. package/src/x_ite/Components/RigidBodyPhysics/CollidableOffset.js +48 -37
  444. package/src/x_ite/Components/RigidBodyPhysics/CollidableShape.js +52 -41
  445. package/src/x_ite/Components/RigidBodyPhysics/CollisionCollection.js +47 -36
  446. package/src/x_ite/Components/RigidBodyPhysics/CollisionSensor.js +41 -30
  447. package/src/x_ite/Components/RigidBodyPhysics/CollisionSpace.js +44 -33
  448. package/src/x_ite/Components/RigidBodyPhysics/Contact.js +38 -29
  449. package/src/x_ite/Components/RigidBodyPhysics/DoubleAxisHingeJoint.js +60 -49
  450. package/src/x_ite/Components/RigidBodyPhysics/MotorJoint.js +48 -39
  451. package/src/x_ite/Components/RigidBodyPhysics/RigidBody.js +69 -58
  452. package/src/x_ite/Components/RigidBodyPhysics/RigidBodyCollection.js +61 -50
  453. package/src/x_ite/Components/RigidBodyPhysics/SingleAxisHingeJoint.js +49 -38
  454. package/src/x_ite/Components/RigidBodyPhysics/SliderJoint.js +47 -36
  455. package/src/x_ite/Components/RigidBodyPhysics/UniversalJoint.js +36 -27
  456. package/src/x_ite/Components/RigidBodyPhysics/X3DNBodyCollidableNode.js +24 -11
  457. package/src/x_ite/Components/RigidBodyPhysics/X3DNBodyCollisionSpaceNode.js +17 -4
  458. package/src/x_ite/Components/RigidBodyPhysics/X3DRigidJointNode.js +34 -21
  459. package/src/x_ite/Components/Scripting/Script.js +83 -53
  460. package/src/x_ite/Components/Scripting/X3DScriptNode.js +17 -4
  461. package/src/x_ite/Components/Shaders/ComposedShader.js +46 -35
  462. package/src/x_ite/Components/Shaders/FloatVertexAttribute.js +40 -29
  463. package/src/x_ite/Components/Shaders/Matrix3VertexAttribute.js +38 -27
  464. package/src/x_ite/Components/Shaders/Matrix4VertexAttribute.js +38 -27
  465. package/src/x_ite/Components/Shaders/PackagedShader.js +45 -34
  466. package/src/x_ite/Components/Shaders/ProgramShader.js +27 -18
  467. package/src/x_ite/Components/Shaders/ShaderPart.js +47 -36
  468. package/src/x_ite/Components/Shaders/ShaderProgram.js +42 -31
  469. package/src/x_ite/Components/Shaders/X3DProgrammableShaderObject.js +51 -38
  470. package/src/x_ite/Components/Shaders/X3DShaderNode.js +19 -6
  471. package/src/x_ite/Components/Shaders/X3DVertexAttributeNode.js +17 -4
  472. package/src/x_ite/Components/Shaders.js +19 -26
  473. package/src/x_ite/Components/Shape/AcousticProperties.js +28 -19
  474. package/src/x_ite/Components/Shape/Appearance.js +79 -68
  475. package/src/x_ite/Components/Shape/FillProperties.js +44 -33
  476. package/src/x_ite/Components/Shape/LineProperties.js +44 -33
  477. package/src/x_ite/Components/Shape/Material.js +75 -64
  478. package/src/x_ite/Components/Shape/PhysicalMaterial.js +65 -54
  479. package/src/x_ite/Components/Shape/PointProperties.js +43 -32
  480. package/src/x_ite/Components/Shape/Shape.js +48 -37
  481. package/src/x_ite/Components/Shape/TwoSidedMaterial.js +60 -49
  482. package/src/x_ite/Components/Shape/UnlitMaterial.js +44 -33
  483. package/src/x_ite/Components/Shape/X3DAppearanceChildNode.js +13 -2
  484. package/src/x_ite/Components/Shape/X3DAppearanceNode.js +17 -4
  485. package/src/x_ite/Components/Shape/X3DMaterialNode.js +41 -33
  486. package/src/x_ite/Components/Shape/X3DOneSidedMaterialNode.js +29 -16
  487. package/src/x_ite/Components/Shape/X3DShapeNode.js +28 -15
  488. package/src/x_ite/Components/Shape.js +23 -30
  489. package/src/x_ite/Components/Sound/Analyser.js +46 -37
  490. package/src/x_ite/Components/Sound/AudioClip.js +61 -50
  491. package/src/x_ite/Components/Sound/AudioDestination.js +35 -26
  492. package/src/x_ite/Components/Sound/BiquadFilter.js +45 -36
  493. package/src/x_ite/Components/Sound/BufferAudioSource.js +61 -50
  494. package/src/x_ite/Components/Sound/ChannelMerger.js +32 -23
  495. package/src/x_ite/Components/Sound/ChannelSelector.js +33 -24
  496. package/src/x_ite/Components/Sound/ChannelSplitter.js +33 -24
  497. package/src/x_ite/Components/Sound/Convolver.js +43 -34
  498. package/src/x_ite/Components/Sound/Delay.js +43 -34
  499. package/src/x_ite/Components/Sound/DynamicsCompressor.js +47 -38
  500. package/src/x_ite/Components/Sound/Gain.js +41 -32
  501. package/src/x_ite/Components/Sound/ListenerPointSource.js +39 -30
  502. package/src/x_ite/Components/Sound/MicrophoneSource.js +35 -26
  503. package/src/x_ite/Components/Sound/OscillatorSource.js +37 -28
  504. package/src/x_ite/Components/Sound/PeriodicWave.js +27 -18
  505. package/src/x_ite/Components/Sound/Sound.js +51 -40
  506. package/src/x_ite/Components/Sound/SpatialSound.js +42 -33
  507. package/src/x_ite/Components/Sound/StreamAudioDestination.js +35 -26
  508. package/src/x_ite/Components/Sound/StreamAudioSource.js +35 -26
  509. package/src/x_ite/Components/Sound/WaveShaper.js +43 -34
  510. package/src/x_ite/Components/Sound/X3DSoundChannelNode.js +13 -2
  511. package/src/x_ite/Components/Sound/X3DSoundDestinationNode.js +13 -2
  512. package/src/x_ite/Components/Sound/X3DSoundNode.js +13 -2
  513. package/src/x_ite/Components/Sound/X3DSoundProcessingNode.js +17 -4
  514. package/src/x_ite/Components/Sound/X3DSoundSourceNode.js +30 -17
  515. package/src/x_ite/Components/Sound.js +34 -41
  516. package/src/x_ite/Components/Text/FontStyle.js +37 -26
  517. package/src/x_ite/Components/Text/Text.js +50 -39
  518. package/src/x_ite/Components/Text/X3DFontStyleNode.js +32 -18
  519. package/src/x_ite/Components/TextureProjector/TextureProjector.js +49 -39
  520. package/src/x_ite/Components/TextureProjector/TextureProjectorParallel.js +58 -48
  521. package/src/x_ite/Components/TextureProjector/X3DTextureProjectorNode.js +27 -14
  522. package/src/x_ite/Components/Texturing/ImageTexture.js +50 -39
  523. package/src/x_ite/Components/Texturing/MovieTexture.js +67 -56
  524. package/src/x_ite/Components/Texturing/MultiTexture.js +52 -41
  525. package/src/x_ite/Components/Texturing/MultiTextureCoordinate.js +44 -33
  526. package/src/x_ite/Components/Texturing/MultiTextureTransform.js +39 -28
  527. package/src/x_ite/Components/Texturing/PixelTexture.js +42 -31
  528. package/src/x_ite/Components/Texturing/TextureCoordinate.js +41 -30
  529. package/src/x_ite/Components/Texturing/TextureCoordinateGenerator.js +41 -30
  530. package/src/x_ite/Components/Texturing/TextureProperties.js +47 -36
  531. package/src/x_ite/Components/Texturing/TextureTransform.js +39 -28
  532. package/src/x_ite/Components/Texturing/X3DSingleTextureCoordinateNode.js +20 -7
  533. package/src/x_ite/Components/Texturing/X3DSingleTextureNode.js +21 -8
  534. package/src/x_ite/Components/Texturing/X3DSingleTextureTransformNode.js +20 -7
  535. package/src/x_ite/Components/Texturing/X3DTexture2DNode.js +26 -13
  536. package/src/x_ite/Components/Texturing/X3DTextureCoordinateNode.js +13 -2
  537. package/src/x_ite/Components/Texturing/X3DTextureNode.js +17 -4
  538. package/src/x_ite/Components/Texturing/X3DTextureTransformNode.js +13 -2
  539. package/src/x_ite/Components/Texturing.js +25 -32
  540. package/src/x_ite/Components/Texturing3D/ComposedTexture3D.js +44 -33
  541. package/src/x_ite/Components/Texturing3D/ImageTexture3D.js +46 -35
  542. package/src/x_ite/Components/Texturing3D/ImageTextureAtlas.js +54 -43
  543. package/src/x_ite/Components/Texturing3D/PixelTexture3D.js +40 -29
  544. package/src/x_ite/Components/Texturing3D/TextureCoordinate3D.js +41 -30
  545. package/src/x_ite/Components/Texturing3D/TextureCoordinate4D.js +41 -30
  546. package/src/x_ite/Components/Texturing3D/TextureTransform3D.js +39 -28
  547. package/src/x_ite/Components/Texturing3D/TextureTransformMatrix3D.js +36 -25
  548. package/src/x_ite/Components/Texturing3D/X3DTexture3DNode.js +26 -13
  549. package/src/x_ite/Components/Time/TimeSensor.js +55 -44
  550. package/src/x_ite/Components/Time/X3DTimeDependentNode.js +38 -25
  551. package/src/x_ite/Components/Time.js +10 -17
  552. package/src/x_ite/Components/VolumeRendering/BlendedVolumeStyle.js +51 -41
  553. package/src/x_ite/Components/VolumeRendering/BoundaryEnhancementVolumeStyle.js +39 -28
  554. package/src/x_ite/Components/VolumeRendering/CartoonVolumeStyle.js +42 -31
  555. package/src/x_ite/Components/VolumeRendering/ComposedVolumeStyle.js +41 -30
  556. package/src/x_ite/Components/VolumeRendering/EdgeEnhancementVolumeStyle.js +41 -30
  557. package/src/x_ite/Components/VolumeRendering/IsoSurfaceVolumeData.js +50 -39
  558. package/src/x_ite/Components/VolumeRendering/OpacityMapVolumeStyle.js +39 -28
  559. package/src/x_ite/Components/VolumeRendering/ProjectionVolumeStyle.js +38 -27
  560. package/src/x_ite/Components/VolumeRendering/SegmentedVolumeData.js +49 -38
  561. package/src/x_ite/Components/VolumeRendering/ShadedVolumeStyle.js +44 -33
  562. package/src/x_ite/Components/VolumeRendering/SilhouetteEnhancementVolumeStyle.js +42 -31
  563. package/src/x_ite/Components/VolumeRendering/ToneMappedVolumeStyle.js +41 -30
  564. package/src/x_ite/Components/VolumeRendering/VolumeData.js +45 -34
  565. package/src/x_ite/Components/VolumeRendering/X3DComposableVolumeRenderStyleNode.js +13 -2
  566. package/src/x_ite/Components/VolumeRendering/X3DVolumeDataNode.js +25 -12
  567. package/src/x_ite/Components/VolumeRendering/X3DVolumeRenderStyleNode.js +22 -9
  568. package/src/x_ite/Components/X_ITE/BlendMode.js +48 -37
  569. package/src/x_ite/Components.js +38 -14
  570. package/src/x_ite/Configuration/AbstractNodes.js +50 -0
  571. package/src/x_ite/{Fallback.js → Configuration/AbstractNodesArray.js} +22 -29
  572. package/src/x_ite/Configuration/ComponentInfo.js +14 -10
  573. package/src/x_ite/Configuration/ComponentInfoArray.js +14 -10
  574. package/src/x_ite/Configuration/ConcreteNodes.js +50 -0
  575. package/src/x_ite/Configuration/{SupportedNodes.js → ConcreteNodesArray.js} +26 -40
  576. package/src/x_ite/Configuration/ProfileInfo.js +13 -9
  577. package/src/x_ite/Configuration/ProfileInfoArray.js +14 -13
  578. package/src/x_ite/Configuration/SupportedComponents.js +40 -78
  579. package/src/x_ite/Configuration/SupportedProfiles.js +16 -16
  580. package/src/x_ite/Configuration/UnitInfo.js +14 -10
  581. package/src/x_ite/Configuration/UnitInfoArray.js +10 -21
  582. package/src/x_ite/Execution/BindableList.js +14 -10
  583. package/src/x_ite/Execution/BindableStack.js +14 -10
  584. package/src/x_ite/Execution/ExportedNodesArray.js +11 -9
  585. package/src/x_ite/Execution/ImportedNodesArray.js +11 -9
  586. package/src/x_ite/Execution/NamedNodesArray.js +11 -22
  587. package/src/x_ite/Execution/X3DExecutionContext.js +181 -152
  588. package/src/x_ite/Execution/X3DExportedNode.js +18 -10
  589. package/src/x_ite/Execution/X3DImportedNode.js +35 -22
  590. package/src/x_ite/Execution/X3DScene.js +93 -64
  591. package/src/x_ite/Execution/X3DWorld.js +21 -17
  592. package/src/x_ite/Fields/ArrayFields.js +87 -153
  593. package/src/x_ite/Fields/SFBool.js +21 -25
  594. package/src/x_ite/Fields/SFColor.js +43 -39
  595. package/src/x_ite/Fields/SFColorRGBA.js +39 -35
  596. package/src/x_ite/Fields/SFDouble.js +20 -21
  597. package/src/x_ite/Fields/SFFloat.js +20 -21
  598. package/src/x_ite/Fields/SFImage.js +50 -48
  599. package/src/x_ite/Fields/SFInt32.js +20 -21
  600. package/src/x_ite/Fields/SFMatrix3.js +23 -16
  601. package/src/x_ite/Fields/SFMatrix4.js +24 -17
  602. package/src/x_ite/Fields/SFMatrixPrototypeTemplate.js +31 -31
  603. package/src/x_ite/Fields/SFNode.js +57 -88
  604. package/src/x_ite/Fields/SFNodeCache.js +7 -11
  605. package/src/x_ite/Fields/SFRotation.js +73 -62
  606. package/src/x_ite/Fields/SFString.js +35 -36
  607. package/src/x_ite/Fields/SFTime.js +20 -21
  608. package/src/x_ite/Fields/SFVec2.js +17 -14
  609. package/src/x_ite/Fields/SFVec3.js +20 -17
  610. package/src/x_ite/Fields/SFVec4.js +21 -18
  611. package/src/x_ite/Fields/SFVecPrototypeTemplate.js +36 -36
  612. package/src/x_ite/Fields.js +6 -13
  613. package/src/x_ite/InputOutput/FileLoader.js +36 -40
  614. package/src/x_ite/InputOutput/Generator.js +50 -51
  615. package/src/x_ite/Parser/GLB2Parser.js +12 -13
  616. package/src/x_ite/Parser/GLTF2Parser.js +111 -112
  617. package/src/x_ite/Parser/GoldenGate.js +11 -13
  618. package/src/x_ite/Parser/HTMLSupport.js +15 -5
  619. package/src/x_ite/Parser/JSONParser.js +21 -22
  620. package/src/x_ite/Parser/OBJParser.js +56 -57
  621. package/src/x_ite/Parser/STLAParser.js +22 -23
  622. package/src/x_ite/Parser/STLBParser.js +12 -13
  623. package/src/x_ite/Parser/SVGParser.js +85 -86
  624. package/src/x_ite/Parser/VRMLParser.js +495 -878
  625. package/src/x_ite/Parser/X3DOptimizer.js +7 -7
  626. package/src/x_ite/Parser/X3DParser.js +17 -17
  627. package/src/x_ite/Parser/XMLParser.js +215 -269
  628. package/src/x_ite/Prototype/ExternProtoDeclarationArray.js +11 -9
  629. package/src/x_ite/Prototype/ProtoDeclarationArray.js +11 -9
  630. package/src/x_ite/Prototype/X3DExternProtoDeclaration.js +35 -27
  631. package/src/x_ite/Prototype/X3DProtoDeclaration.js +28 -20
  632. package/src/x_ite/Prototype/X3DProtoDeclarationNode.js +18 -10
  633. package/src/x_ite/Rendering/DependentRenderer.js +11 -12
  634. package/src/x_ite/Rendering/MultiSampleFrameBuffer.js +9 -10
  635. package/src/x_ite/Rendering/PointingBuffer.js +6 -7
  636. package/src/x_ite/Rendering/TextureBuffer.js +11 -12
  637. package/src/x_ite/Rendering/VertexArray.js +5 -5
  638. package/src/x_ite/Rendering/X3DRenderObject.js +51 -52
  639. package/src/x_ite/Routing/RouteArray.js +11 -9
  640. package/src/x_ite/Routing/X3DRoute.js +35 -19
  641. package/src/x_ite/Routing/X3DRoutingContext.js +8 -9
  642. package/src/x_ite/X3D.js +27 -26
  643. package/src/x_ite/X3DCanvasElement.js +18 -7
  644. package/src/x_ite.css +2 -1
  645. package/webpack.config.js +2 -2
  646. /package/src/x_ite/{DEBUG.js → DEVELOPMENT.js} +0 -0
@@ -45,7 +45,7 @@
45
45
  *
46
46
  ******************************************************************************/
47
47
 
48
- import SupportedNodes from "../Configuration/SupportedNodes.js";
48
+ import AbstractNodes from "../Configuration/AbstractNodes.js";
49
49
  import Fields from "../Fields.js";
50
50
  import X3DBaseNode from "../Base/X3DBaseNode.js";
51
51
  import { getUniqueName } from "./NamedNodesHandling.js";
@@ -62,8 +62,6 @@ import X3DCast from "../Base/X3DCast.js";
62
62
  import X3DConstants from "../Base/X3DConstants.js";
63
63
  import SFNodeCache from "../Fields/SFNodeCache.js";
64
64
 
65
- SupportedNodes .addAbstractType ("X3DExecutionContext", X3DExecutionContext);
66
-
67
65
  const
68
66
  _namedNodes = Symbol (),
69
67
  _importedNodes = Symbol (),
@@ -78,101 +76,97 @@ function X3DExecutionContext (executionContext, outerNode = null)
78
76
 
79
77
  this .addType (X3DConstants .X3DExecutionContext)
80
78
 
81
- this .addChildObjects ("rootNodes", new Fields .MFNode (),
82
- "worldInfos", new Fields .MFNode (),
83
- "sceneGraph_changed", new Fields .SFTime (),
84
- "namedNodes_changed", new Fields .SFTime (),
85
- "importedNodes_changed", new Fields .SFTime (),
86
- "protos_changed", new Fields .SFTime (),
87
- "externprotos_changed", new Fields .SFTime (),
88
- "routes_changed", new Fields .SFTime ())
79
+ this .addChildObjects ("rootNodes", new Fields .MFNode (),
80
+ "worldInfos", new Fields .MFNode (),
81
+ "sceneGraph_changed", new Fields .SFTime ())
89
82
 
90
83
  this ._rootNodes .setAccessType (X3DConstants .initializeOnly);
91
84
  this ._rootNodes .addCloneCount (1);
92
85
 
93
- this [_outerNode] = outerNode;
94
- this [_namedNodes] = new NamedNodesArray ();
95
- this [_importedNodes] = new ImportedNodesArray ();
96
- this [_protos] = new ProtoDeclarationArray ();
97
- this [_externprotos] = new ExternProtoDeclarationArray ();
98
- this [_routes] = new RouteArray ();
86
+ this [_outerNode] = outerNode;
87
+ this [_namedNodes] = new NamedNodesArray ();
88
+ this [_importedNodes] = new ImportedNodesArray ();
89
+ this [_protos] = new ProtoDeclarationArray ();
90
+ this [_externprotos] = new ExternProtoDeclarationArray ();
91
+ this [_routes] = new RouteArray ();
92
+
93
+ this [_namedNodes] .addParent (this);
94
+ this [_importedNodes] .addParent (this);
95
+ this [_protos] .addParent (this);
96
+ this [_externprotos] .addParent (this);
97
+ this [_routes] .addParent (this);
99
98
  }
100
99
 
101
- X3DExecutionContext .prototype = Object .assign (Object .create (X3DBaseNode .prototype),
100
+ Object .assign (Object .setPrototypeOf (X3DExecutionContext .prototype, X3DBaseNode .prototype),
102
101
  {
103
- constructor: X3DExecutionContext,
104
- initialize: function ()
102
+ initialize ()
105
103
  {
106
104
  X3DBaseNode .prototype .initialize .call (this);
107
105
 
108
106
  if (!this .isScene ())
109
107
  this ._sceneGraph_changed .addInterest ("set_sceneGraph", this)
110
108
  },
111
- set_sceneGraph: function ()
109
+ set_sceneGraph ()
112
110
  {
113
111
  this .getExecutionContext () ._sceneGraph_changed = this .getBrowser () .getCurrentTime ();
114
112
  },
115
- isScene: function ()
113
+ isScene ()
116
114
  {
117
115
  return false;
118
116
  },
119
- getTypeName: function ()
120
- {
121
- return "X3DExecutionContext";
122
- },
123
- getOuterNode: function ()
117
+ getOuterNode ()
124
118
  {
125
119
  // Can be either of type X3DProtoDeclaration or X3DPrototypeInstance, or null.
126
120
  return this [_outerNode];
127
121
  },
128
- getSpecificationVersion: function ()
122
+ getSpecificationVersion ()
129
123
  {
130
124
  return this .getExecutionContext () .getSpecificationVersion ();
131
125
  },
132
- getEncoding: function ()
126
+ getEncoding ()
133
127
  {
134
128
  return this .getExecutionContext () .getEncoding ();
135
129
  },
136
- getWorldURL: function ()
130
+ getWorldURL ()
137
131
  {
138
132
  return this .getExecutionContext () .getWorldURL ();
139
133
  },
140
- getProfile: function ()
134
+ getProfile ()
141
135
  {
142
136
  return this .getExecutionContext () .getProfile ();
143
137
  },
144
- hasComponent: function (name)
138
+ hasComponent (name)
145
139
  {
146
140
  return this .getExecutionContext () .hasComponent (name);
147
141
  },
148
- getComponents: function ()
142
+ getComponents ()
149
143
  {
150
144
  return this .getExecutionContext () .getComponents ();
151
145
  },
152
- fromUnit: function (category, value)
146
+ fromUnit (category, value)
153
147
  {
154
148
  return this .getExecutionContext () .fromUnit (category, value);
155
149
  },
156
- toUnit: function (category, value)
150
+ toUnit (category, value)
157
151
  {
158
152
  return this .getExecutionContext () .toUnit (category, value);
159
153
  },
160
- getUnits: function ()
154
+ getUnits ()
161
155
  {
162
156
  return this .getExecutionContext () .getUnits ();
163
157
  },
164
- createNode: function (typeName, setup = true /* non-public argument */)
158
+ createNode (typeName, setup = true /* non-public argument */)
165
159
  {
166
160
  typeName = String (typeName);
167
161
 
168
162
  if (setup === false)
169
163
  {
170
- const Type = this .getBrowser () .getSupportedNode (typeName);
164
+ const ConcreteNode = this .getBrowser () .getConcreteNode (typeName);
171
165
 
172
- if (!Type)
166
+ if (!ConcreteNode)
173
167
  return null;
174
168
 
175
- const specificationRange = Type .prototype .getSpecificationRange ();
169
+ const specificationRange = ConcreteNode .specificationRange;
176
170
 
177
171
  if (this .getSpecificationVersion () < specificationRange [0])
178
172
  return null;
@@ -180,19 +174,19 @@ X3DExecutionContext .prototype = Object .assign (Object .create (X3DBaseNode .pr
180
174
  if (this .getSpecificationVersion () > specificationRange [1])
181
175
  return null;
182
176
 
183
- if (!this .hasComponent (Type .prototype .getComponentName ()))
177
+ if (!this .hasComponent (ConcreteNode .componentName))
184
178
  console .warn (`Node type '${typeName}' does not match component/profile statements in '${this .getWorldURL ()}'.`);
185
179
 
186
- return new Type (this);
180
+ return new ConcreteNode (this);
187
181
  }
188
182
  else
189
183
  {
190
- const Type = this .getBrowser () .getSupportedNode (typeName);
184
+ const ConcreteNode = this .getBrowser () .getConcreteNode (typeName);
191
185
 
192
- if (!Type)
186
+ if (!ConcreteNode)
193
187
  throw new Error (`Unknown node type '${typeName}'.`);
194
188
 
195
- const specificationRange = Type .prototype .getSpecificationRange ();
189
+ const specificationRange = ConcreteNode .specificationRange;
196
190
 
197
191
  if (this .getSpecificationVersion () < specificationRange [0])
198
192
  throw new Error (`Node type '${typeName}' does not match specification version in '${this .getWorldURL ()}.`);
@@ -200,17 +194,17 @@ X3DExecutionContext .prototype = Object .assign (Object .create (X3DBaseNode .pr
200
194
  if (this .getSpecificationVersion () > specificationRange [1])
201
195
  throw new Error (`Node type '${typeName}' does not match specification version in '${this .getWorldURL ()}.`);
202
196
 
203
- if (!this .hasComponent (Type .prototype .getComponentName ()))
197
+ if (!this .hasComponent (ConcreteNode .componentName))
204
198
  console .warn (`Node type '${typeName}' does not match component/profile statements in '${this .getWorldURL ()}'.`);
205
199
 
206
- const baseNode = new Type (this);
200
+ const baseNode = new ConcreteNode (this);
207
201
 
208
202
  baseNode .setup ();
209
203
 
210
204
  return SFNodeCache .get (baseNode);
211
205
  }
212
206
  },
213
- createProto: function (name, setup = true /* non-public argument */)
207
+ createProto (name, setup = true /* non-public argument */)
214
208
  {
215
209
  name = String (name);
216
210
 
@@ -218,15 +212,10 @@ X3DExecutionContext .prototype = Object .assign (Object .create (X3DBaseNode .pr
218
212
 
219
213
  for (;;)
220
214
  {
221
- const proto = executionContext .protos .get (name);
222
-
223
- if (proto)
224
- return proto .createInstance (this, setup);
215
+ const protoNode = executionContext .protos .get (name) ?? executionContext .externprotos .get (name);
225
216
 
226
- const externproto = executionContext .externprotos .get (name);
227
-
228
- if (externproto)
229
- return externproto .createInstance (this, setup);
217
+ if (protoNode)
218
+ return protoNode .createInstance (this, setup);
230
219
 
231
220
  if (executionContext .isScene ())
232
221
  break;
@@ -237,16 +226,35 @@ X3DExecutionContext .prototype = Object .assign (Object .create (X3DBaseNode .pr
237
226
  if (setup === false)
238
227
  return null;
239
228
 
240
- throw new Error ("Unknown proto or externproto type '" + name + "'.");
229
+ throw new Error (`Unknown proto or externproto type '${name}'.`);
241
230
  },
242
- addNamedNode: function (name, node)
231
+ addNamedNode (name, node)
243
232
  {
233
+ name = String (name);
234
+ node = X3DCast (X3DConstants .X3DNode, node, false);
235
+
236
+ if (!node)
237
+ throw new Error ("Couldn't add named node: node must be of type X3DNode.");
238
+
239
+ if (node .getExecutionContext () !== this)
240
+ throw new Error ("Couldn't add named node: node does not belong to this execution context.");
241
+
242
+ if (name .length === 0)
243
+ throw new Error ("Couldn't add named node: node name is empty.");
244
+
244
245
  if (this [_namedNodes] .has (name))
245
- throw new Error ("Couldn't add named node: node named '" + name + "' is already in use.");
246
+ throw new Error (`Couldn't add named node: node named '${name}' is already in use.`);
247
+
248
+ if (this [_namedNodes] .get (node .getName ()) ?.getValue () === node)
249
+ throw new Error (`Couldn't add named node: node named '${node .getName ()}' is already added.`);
250
+
251
+ // Add named node.
246
252
 
247
- this .updateNamedNode (name, node);
253
+ node .setName (name);
254
+
255
+ this [_namedNodes] .add (name, SFNodeCache .get (node));
248
256
  },
249
- updateNamedNode: function (name, node)
257
+ updateNamedNode (name, node)
250
258
  {
251
259
  name = String (name);
252
260
  node = X3DCast (X3DConstants .X3DNode, node, false);
@@ -269,58 +277,55 @@ X3DExecutionContext .prototype = Object .assign (Object .create (X3DBaseNode .pr
269
277
 
270
278
  node .setName (name);
271
279
 
272
- this [_namedNodes] .add (name, node);
280
+ this [_namedNodes] .add (name, SFNodeCache .get (node));
273
281
 
274
282
  this ._namedNodes_changed = this .getBrowser () .getCurrentTime ();
275
283
  },
276
- removeNamedNode: function (name)
284
+ removeNamedNode (name)
277
285
  {
278
286
  name = String (name);
279
287
 
280
288
  const node = this [_namedNodes] .get (name);
281
289
 
282
- if (!node)
290
+ if (!node || !node .getValue ())
283
291
  return;
284
292
 
285
- node .setName ("");
293
+ node .getValue () .setName ("");
286
294
 
287
295
  this [_namedNodes] .remove (name);
288
296
 
289
297
  this ._namedNodes_changed = this .getBrowser () .getCurrentTime ();
290
298
  },
291
- getNamedNode: function (name)
299
+ getNamedNode (name)
292
300
  {
293
301
  name = String (name);
294
302
 
295
303
  const node = this [_namedNodes] .get (name);
296
304
 
297
305
  if (node)
298
- return SFNodeCache .get (node);
306
+ return node;
299
307
 
300
- throw new Error ("Named node '" + name + "' not found.");
308
+ throw new Error (`Named node '${name}' not found.`);
301
309
  },
302
- getNamedNodes: function ()
310
+ getNamedNodes ()
303
311
  {
304
312
  return this [_namedNodes];
305
313
  },
306
- getUniqueName: function (name)
314
+ getUniqueName (name)
307
315
  {
308
316
  return getUniqueName (this [_namedNodes], name);
309
317
  },
310
- addImportedNode: function (inlineNode, exportedName, importedName)
318
+ addImportedNode (inlineNode, exportedName, importedName = exportedName)
311
319
  {
312
- if (importedName === undefined)
313
- importedName = exportedName;
314
-
315
320
  exportedName = String (exportedName);
316
321
  importedName = String (importedName);
317
322
 
318
323
  if (this [_importedNodes] .has (importedName))
319
- throw new Error ("Couldn't add imported node: imported name '" + importedName + "' already in use.");
324
+ throw new Error (`Couldn't add imported node: imported name '${importedName}' already in use.`);
320
325
 
321
326
  this .updateImportedNode (inlineNode, exportedName, importedName);
322
327
  },
323
- updateImportedNode: function (inlineNode, exportedName, importedName)
328
+ updateImportedNode (inlineNode, exportedName, importedName)
324
329
  {
325
330
  inlineNode = X3DCast (X3DConstants .Inline, inlineNode, false);
326
331
  exportedName = String (exportedName);
@@ -348,7 +353,7 @@ X3DExecutionContext .prototype = Object .assign (Object .create (X3DBaseNode .pr
348
353
 
349
354
  this ._importedNodes_changed = this .getBrowser () .getCurrentTime ();
350
355
  },
351
- removeImportedNode: function (importedName)
356
+ removeImportedNode (importedName)
352
357
  {
353
358
  importedName = String (importedName);
354
359
 
@@ -363,7 +368,7 @@ X3DExecutionContext .prototype = Object .assign (Object .create (X3DBaseNode .pr
363
368
 
364
369
  this ._importedNodes_changed = this .getBrowser () .getCurrentTime ();
365
370
  },
366
- getImportedNode: function (importedName)
371
+ getImportedNode (importedName)
367
372
  {
368
373
  importedName = String (importedName);
369
374
 
@@ -372,13 +377,13 @@ X3DExecutionContext .prototype = Object .assign (Object .create (X3DBaseNode .pr
372
377
  if (importedNode)
373
378
  return SFNodeCache .get (importedNode .getExportedNode ());
374
379
 
375
- throw new Error ("Imported node '" + importedName + "' not found.");
380
+ throw new Error (`Imported node '${importedName}' not found.`);
376
381
  },
377
- getImportedNodes: function ()
382
+ getImportedNodes ()
378
383
  {
379
384
  return this [_importedNodes];
380
385
  },
381
- getLocalNode: function (name)
386
+ getLocalNode (name)
382
387
  {
383
388
  name = String (name);
384
389
 
@@ -386,17 +391,17 @@ X3DExecutionContext .prototype = Object .assign (Object .create (X3DBaseNode .pr
386
391
  {
387
392
  return this .getNamedNode (name);
388
393
  }
389
- catch (error)
394
+ catch
390
395
  {
391
396
  const importedNode = this [_importedNodes] .get (name);
392
397
 
393
398
  if (importedNode)
394
399
  return SFNodeCache .get (importedNode);
395
400
 
396
- throw new Error ("Unknown named or imported node '" + name + "'.");
401
+ throw new Error (`Unknown named or imported node '${name}'.`);
397
402
  }
398
403
  },
399
- getLocalName: function (node)
404
+ getLocalName (node)
400
405
  {
401
406
  node = X3DCast (X3DConstants .X3DNode, node, false);
402
407
 
@@ -413,20 +418,18 @@ X3DExecutionContext .prototype = Object .assign (Object .create (X3DBaseNode .pr
413
418
  if (importedNode .getExportedNode () === node)
414
419
  return importedNode .getImportedName ();
415
420
  }
416
- catch (error)
417
- {
418
- //console .error (error);
419
- }
421
+ catch
422
+ { }
420
423
  }
421
424
 
422
425
  throw new Error ("Couldn't get local name: node is shared.");
423
426
  },
424
- setRootNodes: function () { },
425
- getRootNodes: function ()
427
+ setRootNodes () { },
428
+ getRootNodes ()
426
429
  {
427
430
  return this ._rootNodes;
428
431
  },
429
- getProtoDeclaration: function (name)
432
+ getProtoDeclaration (name)
430
433
  {
431
434
  name = String (name);
432
435
 
@@ -435,7 +438,7 @@ X3DExecutionContext .prototype = Object .assign (Object .create (X3DBaseNode .pr
435
438
  if (proto)
436
439
  return proto;
437
440
 
438
- throw new Error ("Proto declaration '" + name + "' not found.");
441
+ throw new Error (`Proto declaration '${name}' not found.`);
439
442
  },
440
443
  addProtoDeclaration (name, proto)
441
444
  {
@@ -444,8 +447,14 @@ X3DExecutionContext .prototype = Object .assign (Object .create (X3DBaseNode .pr
444
447
  if (!(proto instanceof X3DProtoDeclaration))
445
448
  throw new Error ("Couldn't add proto declaration: proto must be of type X3DProtoDeclaration.");
446
449
 
450
+ if (proto .getExecutionContext () !== this)
451
+ throw new Error ("Couldn't add proto declaration: proto does not belong to this execution context.");
452
+
447
453
  if (this [_protos] .get (name))
448
- throw new Error ("Couldn't add proto declaration: proto '" + name + "' already in use.");
454
+ throw new Error (`Couldn't add proto declaration: proto '${name}' already in use.`);
455
+
456
+ if (this [_protos] .get (proto .getName ()) === proto)
457
+ throw new Error (`Couldn't add proto declaration: proto '${proto .getName ()}' already added.`);
449
458
 
450
459
  name = String (name);
451
460
 
@@ -462,12 +471,15 @@ X3DExecutionContext .prototype = Object .assign (Object .create (X3DBaseNode .pr
462
471
  name = String (name);
463
472
 
464
473
  if (!(proto instanceof X3DProtoDeclaration))
465
- throw new Error ("Couldn't add proto declaration: proto must be of type X3DProtoDeclaration.");
474
+ throw new Error ("Couldn't update proto declaration: proto must be of type X3DProtoDeclaration.");
475
+
476
+ if (proto .getExecutionContext () !== this)
477
+ throw new Error ("Couldn't update proto declaration: proto does not belong to this execution context.");
466
478
 
467
479
  name = String (name);
468
480
 
469
481
  if (name .length === 0)
470
- throw new Error ("Couldn't add proto declaration: proto name is empty.");
482
+ throw new Error ("Couldn't update proto declaration: proto name is empty.");
471
483
 
472
484
  this [_protos] .update (proto .getName (), name, proto);
473
485
  proto .setName (name);
@@ -482,15 +494,15 @@ X3DExecutionContext .prototype = Object .assign (Object .create (X3DBaseNode .pr
482
494
 
483
495
  this ._protos_changed = this .getBrowser () .getCurrentTime ();
484
496
  },
485
- getProtoDeclarations: function ()
497
+ getProtoDeclarations ()
486
498
  {
487
499
  return this [_protos];
488
500
  },
489
- getUniqueProtoName: function (name)
501
+ getUniqueProtoName (name)
490
502
  {
491
503
  return getUniqueName (this [_protos], name);
492
504
  },
493
- getExternProtoDeclaration: function (name)
505
+ getExternProtoDeclaration (name)
494
506
  {
495
507
  name = String (name);
496
508
 
@@ -499,7 +511,7 @@ X3DExecutionContext .prototype = Object .assign (Object .create (X3DBaseNode .pr
499
511
  if (externproto)
500
512
  return externproto;
501
513
 
502
- throw new Error ("Extern proto declaration '" + name + "' not found.");
514
+ throw new Error (`Extern proto declaration '${name}' not found.`);
503
515
  },
504
516
  addExternProtoDeclaration (name, externproto)
505
517
  {
@@ -508,8 +520,14 @@ X3DExecutionContext .prototype = Object .assign (Object .create (X3DBaseNode .pr
508
520
  if (!(externproto instanceof X3DExternProtoDeclaration))
509
521
  throw new Error ("Couldn't add extern proto declaration: extern proto must be of type X3DExternProtoDeclaration.");
510
522
 
523
+ if (externproto .getExecutionContext () !== this)
524
+ throw new Error ("Couldn't add extern proto declaration: extern proto does not belong to this execution context.");
525
+
511
526
  if (this [_externprotos] .get (name))
512
- throw new Error ("Couldn't add extern proto declaration: extern proto '" + name + "' already in use.");
527
+ throw new Error (`Couldn't add extern proto declaration: extern proto '${name}' already in use.`);
528
+
529
+ if (this [_externprotos] .get (externproto .getName ()) === externproto)
530
+ throw new Error (`Couldn't add extern proto declaration: extern proto '${externproto .getName ()}' already added.`);
513
531
 
514
532
  name = String (name);
515
533
 
@@ -526,12 +544,15 @@ X3DExecutionContext .prototype = Object .assign (Object .create (X3DBaseNode .pr
526
544
  name = String (name);
527
545
 
528
546
  if (!(externproto instanceof X3DExternProtoDeclaration))
529
- throw new Error ("Couldn't add extern proto declaration: extern proto must be of type X3DExternProtoDeclaration.");
547
+ throw new Error ("Couldn't update extern proto declaration: extern proto must be of type X3DExternProtoDeclaration.");
548
+
549
+ if (externproto .getExecutionContext () !== this)
550
+ throw new Error ("Couldn't update extern proto declaration: extern proto does not belong to this execution context.");
530
551
 
531
552
  name = String (name);
532
553
 
533
554
  if (name .length === 0)
534
- throw new Error ("Couldn't add extern proto declaration: extern proto name is empty.");
555
+ throw new Error ("Couldn't update extern proto declaration: extern proto name is empty.");
535
556
 
536
557
  this [_externprotos] .update (externproto .getName (), name, externproto);
537
558
  externproto .setName (name);
@@ -546,15 +567,15 @@ X3DExecutionContext .prototype = Object .assign (Object .create (X3DBaseNode .pr
546
567
 
547
568
  this ._externprotos_changed = this .getBrowser () .getCurrentTime ();
548
569
  },
549
- getExternProtoDeclarations: function ()
570
+ getExternProtoDeclarations ()
550
571
  {
551
572
  return this [_externprotos];
552
573
  },
553
- getUniqueExternProtoName: function (name)
574
+ getUniqueExternProtoName (name)
554
575
  {
555
576
  return getUniqueName (this [_externprotos], name);
556
577
  },
557
- addRoute: function (sourceNode, sourceField, destinationNode, destinationField)
578
+ addRoute (sourceNode, sourceField, destinationNode, destinationField)
558
579
  {
559
580
  sourceNode = X3DCast (X3DConstants .X3DNode, sourceNode, false);
560
581
  sourceField = String (sourceField);
@@ -579,7 +600,7 @@ X3DExecutionContext .prototype = Object .assign (Object .create (X3DBaseNode .pr
579
600
  if (sourceNode .getExecutionContext () !== this)
580
601
  importedSourceNode = this .getLocalNode (this .getLocalName (sourceNode)) .getValue ();
581
602
  }
582
- catch (error)
603
+ catch
583
604
  {
584
605
  // Source node is shared but not imported.
585
606
  }
@@ -590,7 +611,7 @@ X3DExecutionContext .prototype = Object .assign (Object .create (X3DBaseNode .pr
590
611
  if (destinationNode .getExecutionContext () !== this)
591
612
  importedDestinationNode = this .getLocalNode (this .getLocalName (destinationNode)) .getValue ();
592
613
  }
593
- catch (error)
614
+ catch
594
615
  {
595
616
  // Destination node is shared but not imported.
596
617
  }
@@ -617,7 +638,7 @@ X3DExecutionContext .prototype = Object .assign (Object .create (X3DBaseNode .pr
617
638
 
618
639
  return this .addSimpleRoute (sourceNode, sourceField, destinationNode, destinationField);
619
640
  },
620
- addSimpleRoute: function (sourceNode, sourceField, destinationNode, destinationField)
641
+ addSimpleRoute (sourceNode, sourceField, destinationNode, destinationField)
621
642
  {
622
643
  // Source and dest node are here X3DBaseNode.
623
644
 
@@ -630,15 +651,15 @@ X3DExecutionContext .prototype = Object .assign (Object .create (X3DBaseNode .pr
630
651
  destinationField = destinationNode .getField (destinationField);
631
652
 
632
653
  if (!sourceField .isOutput ())
633
- throw new Error ("Field named '" + sourceField .getName () + "' in node named '" + sourceNode .getName () + "' of type " + sourceNode .getTypeName () + " is not an output field.");
654
+ throw new Error (`Field named '${sourceField .getName ()}' in node named '${sourceNode .getName ()}' of type ${sourceNode .getTypeName ()} is not an output field.`);
634
655
 
635
656
  if (!destinationField .isInput ())
636
- throw new Error ("Field named '" + destinationField .getName () + "' in node named '" + destinationNode .getName () + "' of type " + destinationNode .getTypeName () + " is not an input field.");
657
+ throw new Error (`Field named '${destinationField .getName ()}' in node named '${destinationNode .getName ()}' of type ${destinationNode .getTypeName ()} is not an input field.`);
637
658
 
638
659
  if (sourceField .getType () !== destinationField .getType ())
639
- throw new Error ("ROUTE types " + sourceField .getTypeName () + " and " + destinationField .getTypeName () + " do not match.");
660
+ throw new Error (`ROUTE types ${sourceField .getTypeName ()} and ${destinationField .getTypeName ()} do not match.`);
640
661
 
641
- const id = sourceField .getId () + "." + destinationField .getId ();
662
+ const id = X3DRoute .getId (sourceField, destinationField);
642
663
 
643
664
  let route = this [_routes] .get (id);
644
665
 
@@ -655,44 +676,33 @@ X3DExecutionContext .prototype = Object .assign (Object .create (X3DBaseNode .pr
655
676
  }
656
677
  catch (error)
657
678
  {
658
- throw new Error ("Bad ROUTE specification: " + error .message);
679
+ throw new Error (`Bad ROUTE specification: ${error .message}`);
659
680
  }
660
681
  },
661
- deleteRoute: function (route)
682
+ deleteRoute (route)
662
683
  {
663
684
  // sourceNode, sourceField, destinationNode, destinationField
664
685
  if (arguments .length === 4)
665
- {
666
- route = this .getRoute .apply (this, arguments);
686
+ route = this .getRoute (... arguments);
667
687
 
668
- if (!route)
669
- return false;
670
- }
688
+ if (!(route instanceof X3DRoute))
689
+ return;
690
+
691
+ if (route .getExecutionContext () !== this)
692
+ return;
671
693
 
672
- if (this .deleteSimpleRoute (route))
673
- this .deleteImportedRoute (route .sourceNode, route .destinationNode, route);
694
+ this .deleteSimpleRoute (route);
695
+ this .deleteImportedRoute (route .sourceNode, route .destinationNode, route);
674
696
  },
675
- deleteSimpleRoute: function (route)
697
+ deleteSimpleRoute (route)
676
698
  {
677
- try
678
- {
679
- const
680
- sourceField = route .getSourceField (),
681
- destinationField = route .getDestinationField (),
682
- id = sourceField .getId () + "." + destinationField .getId ();
699
+ const id = X3DRoute .getId (route .getSourceField (), route .getDestinationField ());
683
700
 
684
- this [_routes] .remove (id);
685
- route .disconnect ();
701
+ this [_routes] .remove (id);
686
702
 
687
- this ._routes_changed = this .getBrowser () .getCurrentTime ();
703
+ route .disconnect ();
688
704
 
689
- return true;
690
- }
691
- catch (error)
692
- {
693
- console .error (error);
694
- return false;
695
- }
705
+ this ._routes_changed = this .getBrowser () .getCurrentTime ();
696
706
  },
697
707
  deleteImportedRoute (sourceNode, destinationNode, route)
698
708
  {
@@ -708,7 +718,7 @@ X3DExecutionContext .prototype = Object .assign (Object .create (X3DBaseNode .pr
708
718
  if (sourceNode .getValue () .getExecutionContext () !== this)
709
719
  importedSourceNode = this .getLocalNode (this .getLocalName (sourceNode)) .getValue ();
710
720
  }
711
- catch (error)
721
+ catch
712
722
  {
713
723
  // Source node is shared but not imported.
714
724
  }
@@ -719,7 +729,7 @@ X3DExecutionContext .prototype = Object .assign (Object .create (X3DBaseNode .pr
719
729
  if (destinationNode .getValue () .getExecutionContext () !== this)
720
730
  importedDestinationNode = this .getLocalNode (this .getLocalName (destinationNode)) .getValue ();
721
731
  }
722
- catch (error)
732
+ catch
723
733
  {
724
734
  // Destination node is shared but not imported.
725
735
  }
@@ -738,7 +748,7 @@ X3DExecutionContext .prototype = Object .assign (Object .create (X3DBaseNode .pr
738
748
  importedDestinationNode .deleteRoute (route);
739
749
  }
740
750
  },
741
- getRoute: function (sourceNode, sourceField, destinationNode, destinationField)
751
+ getRoute (sourceNode, sourceField, destinationNode, destinationField)
742
752
  {
743
753
  sourceNode = X3DCast (X3DConstants .X3DNode, sourceNode, false);
744
754
  sourceField = String (sourceField)
@@ -754,23 +764,21 @@ X3DExecutionContext .prototype = Object .assign (Object .create (X3DBaseNode .pr
754
764
  sourceField = sourceNode .getField (sourceField);
755
765
  destinationField = destinationNode .getField (destinationField);
756
766
 
757
- const id = sourceField .getId () + "." + destinationField .getId ();
758
-
759
- return this [_routes] .get (id);
767
+ return this [_routes] .get (X3DRoute .getId (sourceField, destinationField));
760
768
  },
761
- getRoutes: function ()
769
+ getRoutes ()
762
770
  {
763
771
  return this [_routes];
764
772
  },
765
- getWorldInfos: function ()
773
+ getWorldInfos ()
766
774
  {
767
775
  return this ._worldInfos;
768
776
  },
769
- addWorldInfo: function (worldInfoNode)
777
+ addWorldInfo (worldInfoNode)
770
778
  {
771
779
  this ._worldInfos .push (worldInfoNode);
772
780
  },
773
- removeWorldInfo: function (worldInfoNode)
781
+ removeWorldInfo (worldInfoNode)
774
782
  {
775
783
  for (let i = this ._worldInfos .length - 1; i >= 0; -- i)
776
784
  {
@@ -778,7 +786,7 @@ X3DExecutionContext .prototype = Object .assign (Object .create (X3DBaseNode .pr
778
786
  this ._worldInfos .splice (i, 1);
779
787
  }
780
788
  },
781
- toVRMLStream: function (generator)
789
+ toVRMLStream (generator)
782
790
  {
783
791
  generator .PushExecutionContext (this);
784
792
  generator .EnterScope ();
@@ -838,7 +846,7 @@ X3DExecutionContext .prototype = Object .assign (Object .create (X3DBaseNode .pr
838
846
  generator .LeaveScope ();
839
847
  generator .PopExecutionContext ();
840
848
  },
841
- toXMLStream: function (generator)
849
+ toXMLStream (generator)
842
850
  {
843
851
  generator .PushExecutionContext (this);
844
852
  generator .EnterScope ();
@@ -874,7 +882,7 @@ X3DExecutionContext .prototype = Object .assign (Object .create (X3DBaseNode .pr
874
882
  generator .LeaveScope ();
875
883
  generator .PopExecutionContext ();
876
884
  },
877
- toJSONStream: function (generator)
885
+ toJSONStream (generator)
878
886
  {
879
887
  generator .PushExecutionContext (this);
880
888
  generator .EnterScope ();
@@ -928,7 +936,7 @@ X3DExecutionContext .prototype = Object .assign (Object .create (X3DBaseNode .pr
928
936
  generator .LeaveScope ();
929
937
  generator .PopExecutionContext ();
930
938
  },
931
- dispose: function ()
939
+ dispose ()
932
940
  {
933
941
  for (const route of [... this [_routes]])
934
942
  this .deleteRoute (route);
@@ -972,6 +980,16 @@ Object .defineProperties (X3DExecutionContext .prototype,
972
980
  get: X3DExecutionContext .prototype .getUnits,
973
981
  enumerable: true,
974
982
  },
983
+ namedNodes:
984
+ {
985
+ get: X3DExecutionContext .prototype .getNamedNodes,
986
+ enumerable: true,
987
+ },
988
+ importedNodes:
989
+ {
990
+ get: X3DExecutionContext .prototype .getImportedNodes,
991
+ enumerable: true,
992
+ },
975
993
  rootNodes:
976
994
  {
977
995
  get: X3DExecutionContext .prototype .getRootNodes,
@@ -995,4 +1013,15 @@ Object .defineProperties (X3DExecutionContext .prototype,
995
1013
  },
996
1014
  });
997
1015
 
1016
+ Object .defineProperties (X3DExecutionContext,
1017
+ {
1018
+ typeName:
1019
+ {
1020
+ value: "X3DExecutionContext",
1021
+ enumerable: true,
1022
+ },
1023
+ });
1024
+
1025
+ X3DConstants .addNode (X3DExecutionContext);
1026
+
998
1027
  export default X3DExecutionContext;