x_ite 8.8.2 → 8.8.4

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 (246) hide show
  1. package/dist/assets/components/Annotation.js +13 -13
  2. package/dist/assets/components/Annotation.min.js +1 -1
  3. package/dist/assets/components/CADGeometry.js +13 -13
  4. package/dist/assets/components/CADGeometry.min.js +1 -1
  5. package/dist/assets/components/CubeMapTexturing.js +29 -29
  6. package/dist/assets/components/CubeMapTexturing.min.js +1 -1
  7. package/dist/assets/components/DIS.js +13 -13
  8. package/dist/assets/components/DIS.min.js +1 -1
  9. package/dist/assets/components/EventUtilities.js +9 -9
  10. package/dist/assets/components/EventUtilities.min.js +1 -1
  11. package/dist/assets/components/Geometry2D.js +22 -22
  12. package/dist/assets/components/Geometry2D.min.js +1 -1
  13. package/dist/assets/components/Geospatial.js +48 -48
  14. package/dist/assets/components/Geospatial.min.js +1 -1
  15. package/dist/assets/components/HAnim.js +19 -19
  16. package/dist/assets/components/HAnim.min.js +1 -1
  17. package/dist/assets/components/KeyDeviceSensor.js +8 -8
  18. package/dist/assets/components/KeyDeviceSensor.min.js +1 -1
  19. package/dist/assets/components/Layout.js +32 -32
  20. package/dist/assets/components/Layout.min.js +1 -1
  21. package/dist/assets/components/NURBS.js +35 -35
  22. package/dist/assets/components/NURBS.min.js +1 -1
  23. package/dist/assets/components/ParticleSystems.js +33 -33
  24. package/dist/assets/components/ParticleSystems.min.js +1 -1
  25. package/dist/assets/components/Picking.js +32 -35
  26. package/dist/assets/components/Picking.min.js +1 -1
  27. package/dist/assets/components/RigidBodyPhysics.js +47 -56
  28. package/dist/assets/components/RigidBodyPhysics.min.js +1 -1
  29. package/dist/assets/components/Scripting.js +46 -56
  30. package/dist/assets/components/Scripting.min.js +1 -1
  31. package/dist/assets/components/Text.js +26 -26
  32. package/dist/assets/components/Text.min.js +1 -1
  33. package/dist/assets/components/TextureProjector.js +16 -16
  34. package/dist/assets/components/TextureProjector.min.js +1 -1
  35. package/dist/assets/components/Texturing3D.js +37 -37
  36. package/dist/assets/components/Texturing3D.min.js +1 -1
  37. package/dist/assets/components/VolumeRendering.js +18 -18
  38. package/dist/assets/components/VolumeRendering.min.js +1 -1
  39. package/dist/assets/components/X_ITE.js +9 -9
  40. package/dist/assets/components/X_ITE.min.js +1 -1
  41. package/dist/x_ite.css +1 -1
  42. package/dist/x_ite.js +1762 -1827
  43. package/dist/x_ite.min.js +1 -1
  44. package/dist/x_ite.zip +0 -0
  45. package/docs/_config.yml +1 -1
  46. package/package.json +2 -2
  47. package/src/bookmarks.js +1 -1
  48. package/src/lib/jquery.js +8 -0
  49. package/src/lib/nurbs/src/utils/create-accessors.js +4 -4
  50. package/src/lib/nurbs/src/utils/variable.js +1 -1
  51. package/src/shim.js +1 -1
  52. package/src/standard/Math/Algorithms/Bezier.js +2 -2
  53. package/src/standard/Math/Geometry/Box2.js +4 -4
  54. package/src/standard/Math/Geometry/Box3.js +8 -8
  55. package/src/standard/Math/Geometry/Camera.js +1 -1
  56. package/src/standard/Math/Geometry/Line2.js +2 -2
  57. package/src/standard/Math/Geometry/Line3.js +4 -4
  58. package/src/standard/Math/Geometry/Sphere3.js +1 -1
  59. package/src/standard/Math/Geometry/Triangle3.js +2 -2
  60. package/src/standard/Math/Geometry/ViewVolume.js +10 -10
  61. package/src/standard/Math/Numbers/Matrix2.js +2 -2
  62. package/src/standard/Math/Numbers/Matrix3.js +10 -10
  63. package/src/standard/Math/Numbers/Matrix4.js +12 -12
  64. package/src/standard/Math/Numbers/Quaternion.js +2 -2
  65. package/src/standard/Math/Numbers/Rotation4.js +2 -2
  66. package/src/standard/Math/Numbers/Vector3.js +1 -1
  67. package/src/standard/Utility/MapUtilities.js +2 -2
  68. package/src/x_ite/Base/Events.js +6 -33
  69. package/src/x_ite/Base/FieldArray.js +1 -1
  70. package/src/x_ite/Base/FieldDefinitionArray.js +1 -1
  71. package/src/x_ite/Base/X3DArrayField.js +1 -1
  72. package/src/x_ite/Base/X3DBaseNode.js +58 -69
  73. package/src/x_ite/Base/X3DChildObject.js +46 -14
  74. package/src/x_ite/Base/X3DConstants.js +1 -1
  75. package/src/x_ite/Base/X3DField.js +4 -6
  76. package/src/x_ite/Base/X3DFieldDefinition.js +1 -1
  77. package/src/x_ite/Base/X3DInfoArray.js +1 -1
  78. package/src/x_ite/Base/X3DObject.js +5 -5
  79. package/src/x_ite/Base/X3DObjectArrayField.js +1 -1
  80. package/src/x_ite/Base/X3DTypedArrayField.js +1 -1
  81. package/src/x_ite/Browser/Core/BrowserOptions.js +7 -3
  82. package/src/x_ite/Browser/Core/BrowserTimings.js +1 -1
  83. package/src/x_ite/Browser/Core/ContextMenu.js +1 -12
  84. package/src/x_ite/Browser/Core/X3DCoreContext.js +1 -2
  85. package/src/x_ite/Browser/Geometry2D/Disk2DOptions.js +1 -1
  86. package/src/x_ite/Browser/Interpolation/CatmullRomSplineInterpolator.js +2 -2
  87. package/src/x_ite/Browser/Interpolation/CatmullRomSplineInterpolatorTemplate.js +1 -1
  88. package/src/x_ite/Browser/Interpolation/SquatInterpolator.js +1 -1
  89. package/src/x_ite/Browser/Layout/ScreenText.js +4 -4
  90. package/src/x_ite/Browser/Layout/X3DLayoutContext.js +1 -1
  91. package/src/x_ite/Browser/NURBS/NURBS.js +3 -3
  92. package/src/x_ite/Browser/Navigation/ExamineViewer.js +9 -13
  93. package/src/x_ite/Browser/Navigation/LookAtViewer.js +4 -7
  94. package/src/x_ite/Browser/Navigation/WalkViewer.js +1 -1
  95. package/src/x_ite/Browser/Navigation/X3DFlyViewer.js +5 -6
  96. package/src/x_ite/Browser/Navigation/X3DViewer.js +2 -2
  97. package/src/x_ite/Browser/Networking/URLs.js +17 -9
  98. package/src/x_ite/Browser/Networking/X3DNetworkingContext.js +0 -2
  99. package/src/x_ite/Browser/Picking/VolumePicker.js +2 -2
  100. package/src/x_ite/Browser/Text/PolygonText.js +2 -2
  101. package/src/x_ite/Browser/Texturing3D/DICOMParser.js +3 -3
  102. package/src/x_ite/Browser/Texturing3D/NRRDParser.js +2 -2
  103. package/src/x_ite/Browser/Time/X3DTimeContext.js +1 -1
  104. package/src/x_ite/Browser/VERSION.js +1 -1
  105. package/src/x_ite/Browser/X3DBrowser.js +148 -67
  106. package/src/x_ite/Browser/X3DBrowserContext.js +52 -16
  107. package/src/x_ite/Components/Core/X3DNode.js +21 -2
  108. package/src/x_ite/Components/Core/X3DPrototypeInstance.js +38 -42
  109. package/src/x_ite/Components/CubeMapTexturing/GeneratedCubeMapTexture.js +2 -2
  110. package/src/x_ite/Components/CubeMapTexturing/X3DEnvironmentTextureNode.js +1 -1
  111. package/src/x_ite/Components/EnvironmentalEffects/X3DBackgroundNode.js +4 -4
  112. package/src/x_ite/Components/EnvironmentalEffects/X3DFogObject.js +1 -1
  113. package/src/x_ite/Components/EnvironmentalSensor/ProximitySensor.js +2 -2
  114. package/src/x_ite/Components/EnvironmentalSensor/TransformSensor.js +2 -2
  115. package/src/x_ite/Components/EnvironmentalSensor/VisibilitySensor.js +1 -1
  116. package/src/x_ite/Components/Followers/X3DFollowerNode.js +1 -1
  117. package/src/x_ite/Components/Geometry2D/ArcClose2D.js +1 -1
  118. package/src/x_ite/Components/Geometry2D/Rectangle2D.js +1 -1
  119. package/src/x_ite/Components/Geometry3D/Box.js +1 -1
  120. package/src/x_ite/Components/Geometry3D/Extrusion.js +3 -3
  121. package/src/x_ite/Components/Geometry3D/IndexedFaceSet.js +3 -3
  122. package/src/x_ite/Components/Geospatial/GeoCoordinate.js +6 -6
  123. package/src/x_ite/Components/Geospatial/GeoPositionInterpolator.js +1 -1
  124. package/src/x_ite/Components/Geospatial/GeoTouchSensor.js +1 -1
  125. package/src/x_ite/Components/Geospatial/GeoViewpoint.js +7 -7
  126. package/src/x_ite/Components/Grouping/StaticGroup.js +1 -1
  127. package/src/x_ite/Components/Grouping/X3DBoundedObject.js +2 -2
  128. package/src/x_ite/Components/HAnim/HAnimHumanoid.js +1 -1
  129. package/src/x_ite/Components/Interpolation/ColorInterpolator.js +1 -1
  130. package/src/x_ite/Components/Interpolation/NormalInterpolator.js +1 -1
  131. package/src/x_ite/Components/Interpolation/OrientationInterpolator.js +1 -1
  132. package/src/x_ite/Components/Interpolation/PositionInterpolator.js +1 -1
  133. package/src/x_ite/Components/Interpolation/PositionInterpolator2D.js +1 -1
  134. package/src/x_ite/Components/Layering/X3DLayerNode.js +1 -1
  135. package/src/x_ite/Components/Lighting/X3DLightNode.js +1 -1
  136. package/src/x_ite/Components/NURBS/NurbsSurfaceInterpolator.js +1 -1
  137. package/src/x_ite/Components/NURBS/X3DNurbsSurfaceGeometryNode.js +2 -2
  138. package/src/x_ite/Components/Navigation/Billboard.js +1 -1
  139. package/src/x_ite/Components/Navigation/LOD.js +2 -2
  140. package/src/x_ite/Components/Navigation/OrthoViewpoint.js +1 -1
  141. package/src/x_ite/Components/Navigation/Viewpoint.js +1 -1
  142. package/src/x_ite/Components/Navigation/X3DViewpointNode.js +3 -3
  143. package/src/x_ite/Components/Networking/Inline.js +0 -4
  144. package/src/x_ite/Components/ParticleSystems/ForcePhysicsModel.js +1 -1
  145. package/src/x_ite/Components/ParticleSystems/ParticleSystem.js +2 -2
  146. package/src/x_ite/Components/ParticleSystems/PointEmitter.js +1 -1
  147. package/src/x_ite/Components/ParticleSystems/PolylineEmitter.js +2 -2
  148. package/src/x_ite/Components/ParticleSystems/SurfaceEmitter.js +1 -1
  149. package/src/x_ite/Components/ParticleSystems/VolumeEmitter.js +2 -2
  150. package/src/x_ite/Components/ParticleSystems/WindPhysicsModel.js +1 -1
  151. package/src/x_ite/Components/Picking/LinePickSensor.js +1 -1
  152. package/src/x_ite/Components/Picking/PickableGroup.js +1 -1
  153. package/src/x_ite/Components/Picking/PointPickSensor.js +2 -2
  154. package/src/x_ite/Components/Picking/PrimitivePickSensor.js +1 -1
  155. package/src/x_ite/Components/Picking/VolumePickSensor.js +1 -1
  156. package/src/x_ite/Components/Picking/X3DPickSensorNode.js +6 -9
  157. package/src/x_ite/Components/PointingDeviceSensor/X3DTouchSensorNode.js +1 -1
  158. package/src/x_ite/Components/Rendering/X3DComposedGeometryNode.js +1 -1
  159. package/src/x_ite/Components/Rendering/X3DCoordinateNode.js +2 -2
  160. package/src/x_ite/Components/Rendering/X3DGeometryNode.js +8 -11
  161. package/src/x_ite/Components/Rendering/X3DLineGeometryNode.js +2 -2
  162. package/src/x_ite/Components/RigidBodyPhysics/BallJoint.js +2 -2
  163. package/src/x_ite/Components/RigidBodyPhysics/CollidableShape.js +3 -3
  164. package/src/x_ite/Components/RigidBodyPhysics/CollisionCollection.js +1 -1
  165. package/src/x_ite/Components/RigidBodyPhysics/CollisionSensor.js +5 -14
  166. package/src/x_ite/Components/RigidBodyPhysics/DoubleAxisHingeJoint.js +3 -3
  167. package/src/x_ite/Components/RigidBodyPhysics/RigidBody.js +9 -9
  168. package/src/x_ite/Components/RigidBodyPhysics/RigidBodyCollection.js +1 -1
  169. package/src/x_ite/Components/RigidBodyPhysics/SingleAxisHingeJoint.js +3 -3
  170. package/src/x_ite/Components/RigidBodyPhysics/SliderJoint.js +1 -1
  171. package/src/x_ite/Components/RigidBodyPhysics/X3DNBodyCollidableNode.js +1 -1
  172. package/src/x_ite/Components/Scripting/Script.js +9 -19
  173. package/src/x_ite/Components/Shaders/ShaderPart.js +2 -2
  174. package/src/x_ite/Components/Shaders/X3DProgrammableShaderObject.js +385 -382
  175. package/src/x_ite/Components/Shape/Appearance.js +1 -1
  176. package/src/x_ite/Components/Shape/Material.js +1 -1
  177. package/src/x_ite/Components/Shape/PhysicalMaterial.js +1 -1
  178. package/src/x_ite/Components/Shape/X3DOneSidedMaterialNode.js +1 -1
  179. package/src/x_ite/Components/Sound/Sound.js +2 -2
  180. package/src/x_ite/Components/TextureProjector/X3DTextureProjectorNode.js +2 -2
  181. package/src/x_ite/Components/Texturing/MultiTexture.js +3 -3
  182. package/src/x_ite/Components/Texturing/TextureCoordinateGenerator.js +1 -1
  183. package/src/x_ite/Components/Texturing/TextureProperties.js +4 -4
  184. package/src/x_ite/Components/Texturing/TextureTransform.js +1 -1
  185. package/src/x_ite/Components/Texturing/X3DSingleTextureNode.js +2 -2
  186. package/src/x_ite/Components/Texturing3D/PixelTexture3D.js +1 -1
  187. package/src/x_ite/Components/Texturing3D/TextureTransform3D.js +1 -1
  188. package/src/x_ite/Components.js +1 -20
  189. package/src/x_ite/Configuration/AbstractNodesArray.js +1 -1
  190. package/src/x_ite/Configuration/ComponentInfo.js +1 -1
  191. package/src/x_ite/Configuration/ComponentInfoArray.js +1 -1
  192. package/src/x_ite/Configuration/ConcreteNodesArray.js +1 -1
  193. package/src/x_ite/Configuration/ProfileInfo.js +1 -1
  194. package/src/x_ite/Configuration/ProfileInfoArray.js +1 -1
  195. package/src/x_ite/Configuration/UnitInfo.js +1 -1
  196. package/src/x_ite/Configuration/UnitInfoArray.js +1 -1
  197. package/src/x_ite/Execution/BindableList.js +1 -1
  198. package/src/x_ite/Execution/BindableStack.js +1 -1
  199. package/src/x_ite/Execution/ExportedNodesArray.js +1 -1
  200. package/src/x_ite/Execution/ImportedNodesArray.js +1 -1
  201. package/src/x_ite/Execution/NamedNodesArray.js +1 -1
  202. package/src/x_ite/Execution/X3DExecutionContext.js +9 -11
  203. package/src/x_ite/Execution/X3DExportedNode.js +1 -1
  204. package/src/x_ite/Execution/X3DImportedNode.js +1 -1
  205. package/src/x_ite/Execution/X3DScene.js +2 -6
  206. package/src/x_ite/Execution/X3DWorld.js +1 -2
  207. package/src/x_ite/{Browser/Networking/Features.js → Features.js} +9 -2
  208. package/src/x_ite/Fields/ArrayFields.js +9 -51
  209. package/src/x_ite/Fields/SFBool.js +1 -1
  210. package/src/x_ite/Fields/SFColor.js +2 -2
  211. package/src/x_ite/Fields/SFColorRGBA.js +2 -2
  212. package/src/x_ite/Fields/SFDouble.js +1 -1
  213. package/src/x_ite/Fields/SFFloat.js +1 -1
  214. package/src/x_ite/Fields/SFImage.js +2 -2
  215. package/src/x_ite/Fields/SFInt32.js +1 -1
  216. package/src/x_ite/Fields/SFMatrix3.js +1 -1
  217. package/src/x_ite/Fields/SFMatrix4.js +1 -1
  218. package/src/x_ite/Fields/SFNode.js +3 -25
  219. package/src/x_ite/Fields/SFNodeCache.js +24 -3
  220. package/src/x_ite/Fields/SFRotation.js +1 -1
  221. package/src/x_ite/Fields/SFString.js +1 -1
  222. package/src/x_ite/Fields/SFTime.js +1 -1
  223. package/src/x_ite/Fields/SFVec2.js +1 -1
  224. package/src/x_ite/Fields/SFVec3.js +1 -1
  225. package/src/x_ite/Fields/SFVec4.js +1 -1
  226. package/src/x_ite/InputOutput/FileLoader.js +1 -1
  227. package/src/x_ite/InputOutput/Generator.js +8 -8
  228. package/src/x_ite/Parser/GLTF2Parser.js +5 -5
  229. package/src/x_ite/Parser/HTMLSupport.js +3 -0
  230. package/src/x_ite/Parser/SVGParser.js +2 -2
  231. package/src/x_ite/Parser/VRMLParser.js +1 -1
  232. package/src/x_ite/Parser/XMLParser.js +1 -1
  233. package/src/x_ite/Prototype/ExternProtoDeclarationArray.js +1 -1
  234. package/src/x_ite/Prototype/ProtoDeclarationArray.js +1 -1
  235. package/src/x_ite/Prototype/X3DExternProtoDeclaration.js +1 -3
  236. package/src/x_ite/Prototype/X3DProtoDeclaration.js +1 -2
  237. package/src/x_ite/Prototype/X3DProtoDeclarationNode.js +1 -2
  238. package/src/x_ite/Rendering/DependentRenderer.js +1 -1
  239. package/src/x_ite/Rendering/TextureBuffer.js +2 -2
  240. package/src/x_ite/Rendering/X3DRenderObject.js +11 -11
  241. package/src/x_ite/Routing/RouteArray.js +1 -1
  242. package/src/x_ite/Routing/X3DRoute.js +1 -1
  243. package/src/x_ite/X3D.js +2 -2
  244. package/src/x_ite.html +3 -3
  245. package/x_ite.min.html +3 -3
  246. package/src/x_ite/Base/X3DEventObject.js +0 -115
@@ -100,7 +100,7 @@ Object .assign (Object .setPrototypeOf (SFColor .prototype, X3DField .prototype)
100
100
  this .getValue () .setHSV (h, s, v);
101
101
  this .addEvent ();
102
102
  },
103
- lerp: (function ()
103
+ lerp: (() =>
104
104
  {
105
105
  const
106
106
  s = [ ],
@@ -170,7 +170,7 @@ Object .assign (Object .setPrototypeOf (SFColor .prototype, X3DField .prototype)
170
170
  },
171
171
  });
172
172
 
173
- for (const key of Reflect .ownKeys (SFColor .prototype))
173
+ for (const key of Object .keys (SFColor .prototype))
174
174
  Object .defineProperty (SFColor .prototype, key, { enumerable: false });
175
175
 
176
176
  const r = {
@@ -95,7 +95,7 @@ Object .assign (Object .setPrototypeOf (SFColorRGBA .prototype, X3DField .protot
95
95
  this .getValue () .setHSVA (h, s, v, a);
96
96
  this .addEvent ();
97
97
  },
98
- lerp: (function ()
98
+ lerp: (() =>
99
99
  {
100
100
  const
101
101
  s = [ ],
@@ -123,7 +123,7 @@ Object .assign (Object .setPrototypeOf (SFColorRGBA .prototype, X3DField .protot
123
123
  toJSONStreamValue: SFColor .prototype .toJSONStreamValue,
124
124
  });
125
125
 
126
- for (const key of Reflect .ownKeys (SFColorRGBA .prototype))
126
+ for (const key of Object .keys (SFColorRGBA .prototype))
127
127
  Object .defineProperty (SFColorRGBA .prototype, key, { enumerable: false });
128
128
 
129
129
  const r = {
@@ -93,7 +93,7 @@ Object .assign (Object .setPrototypeOf (SFDouble .prototype, X3DField .prototype
93
93
  },
94
94
  });
95
95
 
96
- for (const key of Reflect .ownKeys (SFDouble .prototype))
96
+ for (const key of Object .keys (SFDouble .prototype))
97
97
  Object .defineProperty (SFDouble .prototype, key, { enumerable: false });
98
98
 
99
99
  Object .defineProperties (SFDouble,
@@ -93,7 +93,7 @@ Object .assign (Object .setPrototypeOf (SFFloat .prototype, X3DField .prototype)
93
93
  },
94
94
  });
95
95
 
96
- for (const key of Reflect .ownKeys (SFFloat .prototype))
96
+ for (const key of Object .keys (SFFloat .prototype))
97
97
  Object .defineProperty (SFFloat .prototype, key, { enumerable: false });
98
98
 
99
99
  Object .defineProperties (SFFloat,
@@ -154,7 +154,7 @@ function SFImage (width, height, comp, array)
154
154
  case 4:
155
155
  X3DField .call (this, new Image (width, height, comp, array));
156
156
  break;
157
-
157
+
158
158
  default:
159
159
  throw new Error ("Invalid arguments.");
160
160
  }
@@ -297,7 +297,7 @@ Object .assign (Object .setPrototypeOf (SFImage .prototype, X3DField .prototype)
297
297
  },
298
298
  });
299
299
 
300
- for (const key of Reflect .ownKeys (SFImage .prototype))
300
+ for (const key of Object .keys (SFImage .prototype))
301
301
  Object .defineProperty (SFImage .prototype, key, { enumerable: false });
302
302
 
303
303
  const width = {
@@ -89,7 +89,7 @@ Object .assign (Object .setPrototypeOf (SFInt32 .prototype, X3DField .prototype)
89
89
  },
90
90
  });
91
91
 
92
- for (const key of Reflect .ownKeys (SFInt32 .prototype))
92
+ for (const key of Object .keys (SFInt32 .prototype))
93
93
  Object .defineProperty (SFInt32 .prototype, key, { enumerable: false });
94
94
 
95
95
  Object .defineProperties (SFInt32,
@@ -106,7 +106,7 @@ function SFMatrix3Template (TypeName, SFVec2, double)
106
106
  },
107
107
  });
108
108
 
109
- for (const key of Reflect .ownKeys (SFMatrix3 .prototype))
109
+ for (const key of Object .keys (SFMatrix3 .prototype))
110
110
  Object .defineProperty (SFMatrix3 .prototype, key, { enumerable: false });
111
111
 
112
112
  function defineProperty (i)
@@ -98,7 +98,7 @@ function SFMatrix4Template (TypeName, SFVec3, double)
98
98
 
99
99
  SFMatrixPrototypeTemplate (SFMatrix4, TypeName, Matrix4, SFVec3, double);
100
100
 
101
- for (const key of Reflect .ownKeys (SFMatrix4 .prototype))
101
+ for (const key of Object .keys (SFMatrix4 .prototype))
102
102
  Object .defineProperty (SFMatrix4 .prototype, key, { enumerable: false });
103
103
 
104
104
  function defineProperty (i)
@@ -51,9 +51,8 @@ import Generator from "../InputOutput/Generator.js";
51
51
  import SFNodeCache from "./SFNodeCache.js";
52
52
 
53
53
  const
54
- _target = Symbol (),
55
- _proxy = Symbol (),
56
- _cloneCount = Symbol ();
54
+ _target = Symbol (),
55
+ _proxy = Symbol ();
57
56
 
58
57
  const handler =
59
58
  {
@@ -182,7 +181,6 @@ Object .assign (Object .setPrototypeOf (SFNode .prototype, X3DField .prototype),
182
181
  {
183
182
  [_target]: null,
184
183
  [_proxy]: null,
185
- [_cloneCount]: 0,
186
184
  copy (instance)
187
185
  {
188
186
  const
@@ -216,17 +214,13 @@ Object .assign (Object .setPrototypeOf (SFNode .prototype, X3DField .prototype),
216
214
  current = target .getValue ();
217
215
 
218
216
  if (current)
219
- {
220
- current .removeCloneCount (target [_cloneCount]);
221
217
  current .removeParent (target [_proxy]);
222
- }
223
218
 
224
219
  // No need to test for X3DBaseNode, because there is a special version of SFNode in Script.
225
220
 
226
221
  if (value)
227
222
  {
228
223
  value .addParent (target [_proxy]);
229
- value .addCloneCount (target [_cloneCount]);
230
224
 
231
225
  X3DField .prototype .set .call (target, value);
232
226
  }
@@ -332,22 +326,6 @@ Object .assign (Object .setPrototypeOf (SFNode .prototype, X3DField .prototype),
332
326
  }
333
327
  }
334
328
  },
335
- addCloneCount (count)
336
- {
337
- const target = this [_target];
338
-
339
- target [_cloneCount] += count;
340
-
341
- target .getValue () ?.addCloneCount (count);
342
- },
343
- removeCloneCount (count)
344
- {
345
- const target = this [_target];
346
-
347
- target [_cloneCount] -= count;
348
-
349
- target .getValue () ?.removeCloneCount (count);
350
- },
351
329
  getNodeUserData (key)
352
330
  {
353
331
  const value = this [_target] .getValue ();
@@ -442,7 +420,7 @@ Object .assign (Object .setPrototypeOf (SFNode .prototype, X3DField .prototype),
442
420
  },
443
421
  });
444
422
 
445
- for (const key of Reflect .ownKeys (SFNode .prototype))
423
+ for (const key of Object .keys (SFNode .prototype))
446
424
  Object .defineProperty (SFNode .prototype, key, { enumerable: false });
447
425
 
448
426
  Object .defineProperties (SFNode,
@@ -45,12 +45,33 @@
45
45
  *
46
46
  ******************************************************************************/
47
47
 
48
- import SFNode from "./SFNode.js";
49
- import X3DField from "../Base/X3DField.js";
48
+ import SFNode from "./SFNode.js";
49
+ import DEVELOPMENT from "../DEVELOPMENT.js";
50
50
 
51
51
  const cache = new WeakMap ();
52
52
 
53
- const SFNodeCache =
53
+ const SFNodeCache = DEVELOPMENT ?
54
+ {
55
+ get (baseNode)
56
+ {
57
+ const node = cache .get (baseNode) ?.deref ();
58
+
59
+ if (node)
60
+ {
61
+ return node;
62
+ }
63
+ else
64
+ {
65
+ const node = new SFNode (baseNode);
66
+
67
+ node .dispose = dispose;
68
+
69
+ cache .set (baseNode, new WeakRef (node));
70
+
71
+ return node;
72
+ }
73
+ },
74
+ } :
54
75
  {
55
76
  get (baseNode)
56
77
  {
@@ -200,7 +200,7 @@ Object .assign (Object .setPrototypeOf (SFRotation .prototype, X3DField .prototy
200
200
  },
201
201
  });
202
202
 
203
- for (const key of Reflect .ownKeys (SFRotation .prototype))
203
+ for (const key of Object .keys (SFRotation .prototype))
204
204
  Object .defineProperty (SFRotation .prototype, key, { enumerable: false });
205
205
 
206
206
  const x = {
@@ -99,7 +99,7 @@ Object .assign (Object .setPrototypeOf (SFString .prototype, X3DField .prototype
99
99
  },
100
100
  });
101
101
 
102
- for (const key of Reflect .ownKeys (SFString .prototype))
102
+ for (const key of Object .keys (SFString .prototype))
103
103
  Object .defineProperty (SFString .prototype, key, { enumerable: false });
104
104
 
105
105
  Object .defineProperty (SFString .prototype, "length",
@@ -89,7 +89,7 @@ Object .assign (Object .setPrototypeOf (SFTime .prototype, X3DField .prototype),
89
89
  },
90
90
  });
91
91
 
92
- for (const key of Reflect .ownKeys (SFTime .prototype))
92
+ for (const key of Object .keys (SFTime .prototype))
93
93
  Object .defineProperty (SFTime .prototype, key, { enumerable: false });
94
94
 
95
95
  Object .defineProperties (SFTime,
@@ -74,7 +74,7 @@ function SFVec2Template (TypeName, double)
74
74
 
75
75
  SFVecPrototypeTemplate (SFVec2, TypeName, Vector2, double);
76
76
 
77
- for (const key of Reflect .ownKeys (SFVec2 .prototype))
77
+ for (const key of Object .keys (SFVec2 .prototype))
78
78
  Object .defineProperty (SFVec2 .prototype, key, { enumerable: false });
79
79
 
80
80
  const x = {
@@ -80,7 +80,7 @@ function SFVec3Template (TypeName, double)
80
80
  },
81
81
  });
82
82
 
83
- for (const key of Reflect .ownKeys (SFVec3 .prototype))
83
+ for (const key of Object .keys (SFVec3 .prototype))
84
84
  Object .defineProperty (SFVec3 .prototype, key, { enumerable: false });
85
85
 
86
86
  const x = {
@@ -74,7 +74,7 @@ function SFVec4Template (TypeName, double)
74
74
 
75
75
  SFVecPrototypeTemplate (SFVec4, TypeName, Vector4, double);
76
76
 
77
- for (const key of Reflect .ownKeys (SFVec4 .prototype))
77
+ for (const key of Object .keys (SFVec4 .prototype))
78
78
  Object .defineProperty (SFVec4 .prototype, key, { enumerable: false });
79
79
 
80
80
  const x = {
@@ -330,7 +330,7 @@ Object .assign (Object .setPrototypeOf (FileLoader .prototype, X3DObject .protot
330
330
  },
331
331
  });
332
332
 
333
- for (const key of Reflect .ownKeys (FileLoader .prototype))
333
+ for (const key of Object .keys (FileLoader .prototype))
334
334
  Object .defineProperty (FileLoader .prototype, key, { enumerable: false });
335
335
 
336
336
  export default FileLoader;
@@ -308,7 +308,7 @@ Object .assign (Generator .prototype,
308
308
  {
309
309
  const index = this .exportedNodesIndex .get (this .ExecutionContext ());
310
310
 
311
- exportedNodes .forEach (function (exportedNode)
311
+ for (const exportedNode of exportedNodes)
312
312
  {
313
313
  try
314
314
  {
@@ -316,13 +316,13 @@ Object .assign (Generator .prototype,
316
316
  }
317
317
  catch
318
318
  { }
319
- });
319
+ }
320
320
  },
321
321
  ImportedNodes (importedNodes)
322
322
  {
323
323
  const index = this .importedNodesIndex .get (this .ExecutionContext ());
324
324
 
325
- importedNodes .forEach (function (importedNode)
325
+ for (const importedNode of importedNodes)
326
326
  {
327
327
  try
328
328
  {
@@ -330,7 +330,7 @@ Object .assign (Generator .prototype,
330
330
  }
331
331
  catch
332
332
  { }
333
- });
333
+ }
334
334
  },
335
335
  AddImportedNode (exportedNode, importedName)
336
336
  {
@@ -505,7 +505,7 @@ Object .assign (Generator .prototype,
505
505
 
506
506
  return value;
507
507
  },
508
- XMLEncode: (function ()
508
+ XMLEncode: (() =>
509
509
  {
510
510
  const map = {
511
511
  "\\": "\\\\",
@@ -526,7 +526,7 @@ Object .assign (Generator .prototype,
526
526
  return string .replace (regex, char => map [char]);
527
527
  };
528
528
  })(),
529
- XMLEncodeSourceText: (function ()
529
+ XMLEncodeSourceText: (() =>
530
530
  {
531
531
  const map = {
532
532
  "\\": "\\\\",
@@ -544,7 +544,7 @@ Object .assign (Generator .prototype,
544
544
  return string .replace (regex, char => map [char]);
545
545
  };
546
546
  })(),
547
- JSONEncode: (function ()
547
+ JSONEncode: (() =>
548
548
  {
549
549
  const map = {
550
550
  "\\": "\\\\",
@@ -586,7 +586,7 @@ Object .assign (Generator .prototype,
586
586
  },
587
587
  });
588
588
 
589
- for (const key of Reflect .ownKeys (Generator .prototype))
589
+ for (const key of Object .keys (Generator .prototype))
590
590
  Object .defineProperty (Generator .prototype, key, { enumerable: false });
591
591
 
592
592
  export default Generator;
@@ -112,7 +112,7 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, X3DParser .proto
112
112
  this .input = undefined;
113
113
  }
114
114
  },
115
- isValid: (function ()
115
+ isValid: (() =>
116
116
  {
117
117
  const keys = new Set ([
118
118
  "asset",
@@ -433,7 +433,7 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, X3DParser .proto
433
433
  for (const accessor of accessors)
434
434
  this .accessorObject (accessor);
435
435
  },
436
- accessorObject: (function ()
436
+ accessorObject: (() =>
437
437
  {
438
438
  const TypedArrays = new Map ([
439
439
  [5120, Int8Array],
@@ -506,7 +506,7 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, X3DParser .proto
506
506
  });
507
507
  };
508
508
  })(),
509
- sparseObject: (function ()
509
+ sparseObject: (() =>
510
510
  {
511
511
  const TypedArrays = new Map ([
512
512
  [5121, Uint8Array],
@@ -560,7 +560,7 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, X3DParser .proto
560
560
  for (const sampler of samplers)
561
561
  this .samplerObject (sampler);
562
562
  },
563
- samplerObject: (function ()
563
+ samplerObject: (() =>
564
564
  {
565
565
  const MinificationFilters = new Map ([
566
566
  [9728, ["NEAREST_PIXEL", false]],
@@ -2062,7 +2062,7 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, X3DParser .proto
2062
2062
 
2063
2063
  return geometryNode;
2064
2064
  },
2065
- createColor: (function ()
2065
+ createColor: (() =>
2066
2066
  {
2067
2067
  const TypeNames = new Map ([
2068
2068
  ["VEC3", "Color"],
@@ -40,6 +40,9 @@ const HTMLSupport =
40
40
  {
41
41
  addConcreteNode ({ typeName, fieldDefinitions })
42
42
  {
43
+ if (nodeTypeNames .has (typeName))
44
+ return;
45
+
43
46
  this .addNodeTypeName (typeName);
44
47
 
45
48
  for (const { name, accessType } of fieldDefinitions)
@@ -889,7 +889,7 @@ Object .assign (Object .setPrototypeOf (SVGParser .prototype, X3DParser .prototy
889
889
 
890
890
  const EPSILON = 1e-9; // Min point distance.
891
891
 
892
- contours = contours .map (function (points)
892
+ contours = contours .map (points =>
893
893
  {
894
894
  if (points .closed)
895
895
  {
@@ -2480,7 +2480,7 @@ Object .assign (Object .setPrototypeOf (SVGParser .prototype, X3DParser .prototy
2480
2480
 
2481
2481
  return false;
2482
2482
  },
2483
- colorValue: (function ()
2483
+ colorValue: (() =>
2484
2484
  {
2485
2485
  const color = new Color4 (0, 0, 0, 0);
2486
2486
 
@@ -323,7 +323,7 @@ Object .assign (Object .setPrototypeOf (VRMLParser .prototype, X3DParser .protot
323
323
  if (match)
324
324
  this .lineNumber += match .length;
325
325
  },
326
- x3dScene: (function ()
326
+ x3dScene: (() =>
327
327
  {
328
328
  const VRML =
329
329
  [
@@ -1122,7 +1122,7 @@ const HTMLParser =
1122
1122
  this .protoNames .set (name, name);
1123
1123
  this .protoNames .set (name .toUpperCase (), name);
1124
1124
  },
1125
- addProtoFieldNames: (function ()
1125
+ addProtoFieldNames: (() =>
1126
1126
  {
1127
1127
  const reservedAttributes = new Set ();
1128
1128
 
@@ -55,7 +55,7 @@ function ExternProtoDeclarationArray (values = [ ])
55
55
 
56
56
  Object .setPrototypeOf (ExternProtoDeclarationArray .prototype, X3DInfoArray .prototype);
57
57
 
58
- for (const key of Reflect .ownKeys (ExternProtoDeclarationArray .prototype))
58
+ for (const key of Object .keys (ExternProtoDeclarationArray .prototype))
59
59
  Object .defineProperty (ExternProtoDeclarationArray .prototype, key, { enumerable: false });
60
60
 
61
61
  Object .defineProperties (ExternProtoDeclarationArray,
@@ -55,7 +55,7 @@ function ProtoDeclarationArray (values = [ ])
55
55
 
56
56
  Object .setPrototypeOf (ProtoDeclarationArray .prototype, X3DInfoArray .prototype);
57
57
 
58
- for (const key of Reflect .ownKeys (ProtoDeclarationArray .prototype))
58
+ for (const key of Object .keys (ProtoDeclarationArray .prototype))
59
59
  Object .defineProperty (ProtoDeclarationArray .prototype, key, { enumerable: false });
60
60
 
61
61
  Object .defineProperties (ProtoDeclarationArray,
@@ -45,7 +45,6 @@
45
45
  *
46
46
  ******************************************************************************/
47
47
 
48
- import AbstractNodes from "../Configuration/AbstractNodes.js";
49
48
  import Fields from "../Fields.js";
50
49
  import X3DFieldDefinition from "../Base/X3DFieldDefinition.js";
51
50
  import FieldDefinitionArray from "../Base/FieldDefinitionArray.js";
@@ -141,7 +140,6 @@ Object .assign (Object .setPrototypeOf (X3DExternProtoDeclaration .prototype, X3
141
140
  throw new Error ("PROTO not found");
142
141
 
143
142
  this [_scene] .setLive (this .getLive () .getValue ());
144
- this [_scene] .setPrivate (this .getScene () .isPrivate ());
145
143
  this [_scene] .setExecutionContext (this .getExecutionContext ());
146
144
 
147
145
  this .setLoadState (X3DConstants .COMPLETE_STATE);
@@ -395,7 +393,7 @@ Object .assign (Object .setPrototypeOf (X3DExternProtoDeclaration .prototype, X3
395
393
  },
396
394
  });
397
395
 
398
- for (const key of Reflect .ownKeys (X3DExternProtoDeclaration .prototype))
396
+ for (const key of Object .keys (X3DExternProtoDeclaration .prototype))
399
397
  Object .defineProperty (X3DExternProtoDeclaration .prototype, key, { enumerable: false });
400
398
 
401
399
  Object .defineProperties (X3DExternProtoDeclaration .prototype,
@@ -45,7 +45,6 @@
45
45
  *
46
46
  ******************************************************************************/
47
47
 
48
- import AbstractNodes from "../Configuration/AbstractNodes.js";
49
48
  import Fields from "../Fields.js";
50
49
  import X3DFieldDefinition from "../Base/X3DFieldDefinition.js";
51
50
  import FieldDefinitionArray from "../Base/FieldDefinitionArray.js";
@@ -529,7 +528,7 @@ Object .assign (Object .setPrototypeOf (X3DProtoDeclaration .prototype, X3DProto
529
528
  },
530
529
  });
531
530
 
532
- for (const key of Reflect .ownKeys (X3DProtoDeclaration .prototype))
531
+ for (const key of Object .keys (X3DProtoDeclaration .prototype))
533
532
  Object .defineProperty (X3DProtoDeclaration .prototype, key, { enumerable: false });
534
533
 
535
534
  Object .defineProperties (X3DProtoDeclaration .prototype,
@@ -45,7 +45,6 @@
45
45
  *
46
46
  ******************************************************************************/
47
47
 
48
- import AbstractNodes from "../Configuration/AbstractNodes.js";
49
48
  import Fields from "../Fields.js";
50
49
  import X3DBaseNode from "../Base/X3DBaseNode.js";
51
50
  import X3DPrototypeInstance from "../Components/Core/X3DPrototypeInstance.js";
@@ -96,7 +95,7 @@ Object .assign (Object .setPrototypeOf (X3DProtoDeclarationNode .prototype, X3DB
96
95
  },
97
96
  });
98
97
 
99
- for (const key of Reflect .ownKeys (X3DProtoDeclarationNode .prototype))
98
+ for (const key of Object .keys (X3DProtoDeclarationNode .prototype))
100
99
  Object .defineProperty (X3DProtoDeclarationNode .prototype, key, { enumerable: false });
101
100
 
102
101
  Object .defineProperties (X3DProtoDeclarationNode,
@@ -126,7 +126,7 @@ Object .assign (Object .setPrototypeOf (DependentRenderer .prototype, X3DBaseNod
126
126
  },
127
127
  });
128
128
 
129
- for (const key of Reflect .ownKeys (DependentRenderer .prototype))
129
+ for (const key of Object .keys (DependentRenderer .prototype))
130
130
  Object .defineProperty (DependentRenderer .prototype, key, { enumerable: false });
131
131
 
132
132
  export default DependentRenderer;
@@ -162,7 +162,7 @@ Object .assign (TextureBuffer .prototype,
162
162
 
163
163
  return array;
164
164
  },
165
- readDepth: (function ()
165
+ readDepth: (() =>
166
166
  {
167
167
  const
168
168
  invProjectionMatrix = new Matrix4 (),
@@ -233,7 +233,7 @@ Object .assign (TextureBuffer .prototype,
233
233
  },
234
234
  });
235
235
 
236
- for (const key of Reflect .ownKeys (TextureBuffer .prototype))
236
+ for (const key of Object .keys (TextureBuffer .prototype))
237
237
  Object .defineProperty (TextureBuffer .prototype, key, { enumerable: false });
238
238
 
239
239
  export default TextureBuffer;
@@ -199,7 +199,7 @@ Object .assign (X3DRenderObject .prototype,
199
199
  {
200
200
  this .localShadows .pop ();
201
201
  },
202
- setGlobalFog: (function ()
202
+ setGlobalFog: (() =>
203
203
  {
204
204
  const modelViewMatrix = new Matrix4 ();
205
205
 
@@ -343,7 +343,7 @@ Object .assign (X3DRenderObject .prototype,
343
343
 
344
344
  return translation .assign (Vector3 .Zero);
345
345
  },
346
- getDistance: (function ()
346
+ getDistance: (() =>
347
347
  {
348
348
  const
349
349
  projectionMatrix = new Matrix4 (),
@@ -402,7 +402,7 @@ Object .assign (X3DRenderObject .prototype,
402
402
  return -depth;
403
403
  };
404
404
  })(),
405
- getDepth: (function ()
405
+ getDepth: (() =>
406
406
  {
407
407
  const
408
408
  depthBufferViewport = new Vector4 (0, 0, DEPTH_BUFFER_SIZE, DEPTH_BUFFER_SIZE),
@@ -475,7 +475,7 @@ Object .assign (X3DRenderObject .prototype,
475
475
  {
476
476
  ViewVolume .unProjectRay (pointer .x, pointer .y, Matrix4 .Identity, projectionMatrix, viewport, this .hitRay);
477
477
  },
478
- addPointingShape: (function ()
478
+ addPointingShape: (() =>
479
479
  {
480
480
  const
481
481
  bboxSize = new Vector3 (0, 0, 0),
@@ -518,7 +518,7 @@ Object .assign (X3DRenderObject .prototype,
518
518
  return false;
519
519
  };
520
520
  })(),
521
- addCollisionShape: (function ()
521
+ addCollisionShape: (() =>
522
522
  {
523
523
  const
524
524
  bboxSize = new Vector3 (0, 0, 0),
@@ -564,7 +564,7 @@ Object .assign (X3DRenderObject .prototype,
564
564
  return false;
565
565
  };
566
566
  })(),
567
- addShadowShape: (function ()
567
+ addShadowShape: (() =>
568
568
  {
569
569
  const
570
570
  bboxSize = new Vector3 (0, 0, 0),
@@ -606,7 +606,7 @@ Object .assign (X3DRenderObject .prototype,
606
606
  return false;
607
607
  };
608
608
  })(),
609
- addDisplayShape: (function ()
609
+ addDisplayShape: (() =>
610
610
  {
611
611
  const
612
612
  bboxSize = new Vector3 (0, 0, 0),
@@ -675,7 +675,7 @@ Object .assign (X3DRenderObject .prototype,
675
675
  objectsCount: [0, 0, 0], // [clip planes, lights, texture projectors]
676
676
  };
677
677
  },
678
- pointing: (function ()
678
+ pointing: (() =>
679
679
  {
680
680
  const projectionMatrixArray = new Float32Array (16);
681
681
 
@@ -741,7 +741,7 @@ Object .assign (X3DRenderObject .prototype,
741
741
  }
742
742
  };
743
743
  })(),
744
- collide: (function ()
744
+ collide: (() =>
745
745
  {
746
746
  const
747
747
  invModelViewMatrix = new Matrix4 (),
@@ -798,7 +798,7 @@ Object .assign (X3DRenderObject .prototype,
798
798
  collision .set_active (true);
799
799
  };
800
800
  })(),
801
- gravite: (function ()
801
+ gravite: (() =>
802
802
  {
803
803
  const
804
804
  projectionMatrix = new Matrix4 (),
@@ -917,7 +917,7 @@ Object .assign (X3DRenderObject .prototype,
917
917
  }
918
918
  };
919
919
  })(),
920
- depth: (function ()
920
+ depth: (() =>
921
921
  {
922
922
  const projectionMatrixArray = new Float32Array (16);
923
923
 
@@ -55,7 +55,7 @@ function RouteArray (values = [ ])
55
55
 
56
56
  Object .setPrototypeOf (RouteArray .prototype, X3DInfoArray .prototype);
57
57
 
58
- for (const key of Reflect .ownKeys (RouteArray .prototype))
58
+ for (const key of Object .keys (RouteArray .prototype))
59
59
  Object .defineProperty (RouteArray .prototype, key, { enumerable: false });
60
60
 
61
61
  Object .defineProperties (RouteArray,