x_ite 8.6.13 → 8.6.14

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 (138) 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 +21 -21
  4. package/dist/assets/components/CADGeometry.min.js +1 -1
  5. package/dist/assets/components/CubeMapTexturing.js +27 -27
  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 +23 -23
  12. package/dist/assets/components/Geometry2D.min.js +1 -1
  13. package/dist/assets/components/Geospatial.js +40 -40
  14. package/dist/assets/components/Geospatial.min.js +1 -1
  15. package/dist/assets/components/HAnim.js +18 -18
  16. package/dist/assets/components/HAnim.min.js +1 -1
  17. package/dist/assets/components/KeyDeviceSensor.js +10 -10
  18. package/dist/assets/components/KeyDeviceSensor.min.js +1 -1
  19. package/dist/assets/components/Layout.js +27 -27
  20. package/dist/assets/components/Layout.min.js +1 -1
  21. package/dist/assets/components/NURBS.js +28 -28
  22. package/dist/assets/components/NURBS.min.js +1 -1
  23. package/dist/assets/components/ParticleSystems.js +30 -30
  24. package/dist/assets/components/ParticleSystems.min.js +1 -1
  25. package/dist/assets/components/Picking.js +22 -22
  26. package/dist/assets/components/Picking.min.js +1 -1
  27. package/dist/assets/components/RigidBodyPhysics.js +37 -37
  28. package/dist/assets/components/RigidBodyPhysics.min.js +1 -1
  29. package/dist/assets/components/Scripting.js +31 -31
  30. package/dist/assets/components/Scripting.min.js +1 -1
  31. package/dist/assets/components/Text.js +25 -25
  32. package/dist/assets/components/Text.min.js +1 -1
  33. package/dist/assets/components/TextureProjector.js +14 -14
  34. package/dist/assets/components/TextureProjector.min.js +1 -1
  35. package/dist/assets/components/Texturing3D.js +32 -32
  36. package/dist/assets/components/Texturing3D.min.js +1 -1
  37. package/dist/assets/components/VolumeRendering.js +28 -28
  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 +746 -683
  43. package/dist/x_ite.min.js +1 -1
  44. package/dist/x_ite.zip +0 -0
  45. package/docs/_config.yml +2 -2
  46. package/package.json +1 -1
  47. package/src/standard/Math/Numbers/Matrix2.js +3 -3
  48. package/src/standard/Math/Numbers/Vector4.js +1 -0
  49. package/src/x_ite/Base/X3DBaseNode.js +58 -53
  50. package/src/x_ite/Browser/Core/BrowserOptions.js +2 -1
  51. package/src/x_ite/Browser/Core/X3DCoreContext.js +2 -3
  52. package/src/x_ite/Browser/Navigation/ExamineViewer.js +0 -3
  53. package/src/x_ite/Browser/Navigation/FlyViewer.js +0 -2
  54. package/src/x_ite/Browser/Navigation/X3DNavigationContext.js +10 -12
  55. package/src/x_ite/Browser/PointingDeviceSensor/X3DPointingDeviceSensorContext.js +40 -21
  56. package/src/x_ite/Browser/VERSION.js +1 -1
  57. package/src/x_ite/Browser/VolumeRendering/X3DVolumeRenderingContext.js +1 -1
  58. package/src/x_ite/Browser/X3DBrowser.js +19 -19
  59. package/src/x_ite/Components/CADGeometry/CADFace.js +8 -8
  60. package/src/x_ite/Components/Core/MetadataBoolean.js +4 -4
  61. package/src/x_ite/Components/Core/MetadataDouble.js +4 -4
  62. package/src/x_ite/Components/Core/MetadataFloat.js +4 -4
  63. package/src/x_ite/Components/Core/MetadataInteger.js +4 -4
  64. package/src/x_ite/Components/Core/MetadataSet.js +4 -4
  65. package/src/x_ite/Components/Core/MetadataString.js +4 -4
  66. package/src/x_ite/Components/Core/X3DNode.js +17 -16
  67. package/src/x_ite/Components/Core/X3DPrototypeInstance.js +11 -14
  68. package/src/x_ite/Components/CubeMapTexturing/ImageCubeMapTexture.js +2 -2
  69. package/src/x_ite/Components/EnvironmentalEffects/X3DBackgroundNode.js +1 -1
  70. package/src/x_ite/Components/EnvironmentalSensor/TransformSensor.js +2 -2
  71. package/src/x_ite/Components/EnvironmentalSensor/X3DEnvironmentalSensorNode.js +2 -2
  72. package/src/x_ite/Components/Followers/X3DFollowerNode.js +2 -2
  73. package/src/x_ite/Components/Geometry2D/Arc2D.js +1 -1
  74. package/src/x_ite/Components/Geometry2D/ArcClose2D.js +1 -1
  75. package/src/x_ite/Components/Geometry2D/Circle2D.js +1 -1
  76. package/src/x_ite/Components/Geometry2D/Disk2D.js +1 -1
  77. package/src/x_ite/Components/Geometry3D/Cone.js +1 -1
  78. package/src/x_ite/Components/Geometry3D/Cylinder.js +1 -1
  79. package/src/x_ite/Components/Geometry3D/ElevationGrid.js +10 -10
  80. package/src/x_ite/Components/Geometry3D/IndexedFaceSet.js +3 -3
  81. package/src/x_ite/Components/Geometry3D/Sphere.js +1 -1
  82. package/src/x_ite/Components/Geospatial/GeoElevationGrid.js +7 -7
  83. package/src/x_ite/Components/Grouping/Switch.js +7 -7
  84. package/src/x_ite/Components/KeyDeviceSensor/X3DKeyDeviceSensorNode.js +2 -2
  85. package/src/x_ite/Components/Layering/X3DLayerNode.js +40 -49
  86. package/src/x_ite/Components/NURBS/X3DNurbsSurfaceGeometryNode.js +4 -4
  87. package/src/x_ite/Components/Navigation/Collision.js +4 -4
  88. package/src/x_ite/Components/Navigation/LOD.js +7 -7
  89. package/src/x_ite/Components/Networking/Inline.js +2 -2
  90. package/src/x_ite/Components/Networking/X3DUrlObject.js +2 -2
  91. package/src/x_ite/Components/ParticleSystems/ParticleSystem.js +8 -8
  92. package/src/x_ite/Components/Picking/X3DPickSensorNode.js +4 -4
  93. package/src/x_ite/Components/PointingDeviceSensor/X3DPointingDeviceSensorNode.js +28 -19
  94. package/src/x_ite/Components/Rendering/IndexedLineSet.js +11 -11
  95. package/src/x_ite/Components/Rendering/LineSet.js +12 -12
  96. package/src/x_ite/Components/Rendering/PointSet.js +11 -11
  97. package/src/x_ite/Components/Rendering/X3DComposedGeometryNode.js +14 -14
  98. package/src/x_ite/Components/Rendering/X3DGeometryNode.js +6 -6
  99. package/src/x_ite/Components/Rendering/X3DLineGeometryNode.js +6 -6
  100. package/src/x_ite/Components/Rendering/X3DPointGeometryNode.js +4 -4
  101. package/src/x_ite/Components/RigidBodyPhysics/CollidableOffset.js +7 -7
  102. package/src/x_ite/Components/RigidBodyPhysics/CollidableShape.js +7 -7
  103. package/src/x_ite/Components/RigidBodyPhysics/CollisionSensor.js +3 -3
  104. package/src/x_ite/Components/RigidBodyPhysics/RigidBodyCollection.js +2 -2
  105. package/src/x_ite/Components/Scripting/Script.js +3 -3
  106. package/src/x_ite/Components/Shaders/ComposedShader.js +5 -7
  107. package/src/x_ite/Components/Shaders/ShaderPart.js +0 -2
  108. package/src/x_ite/Components/Shaders/X3DProgrammableShaderObject.js +3 -3
  109. package/src/x_ite/Components/Shape/Appearance.js +4 -4
  110. package/src/x_ite/Components/Shape/Material.js +1 -1
  111. package/src/x_ite/Components/Shape/PhysicalMaterial.js +1 -1
  112. package/src/x_ite/Components/Shape/UnlitMaterial.js +1 -1
  113. package/src/x_ite/Components/Shape/X3DMaterialNode.js +1 -1
  114. package/src/x_ite/Components/Shape/X3DShapeNode.js +1 -1
  115. package/src/x_ite/Components/Sound/AudioClip.js +2 -2
  116. package/src/x_ite/Components/Sound/Sound.js +2 -2
  117. package/src/x_ite/Components/Text/Text.js +1 -1
  118. package/src/x_ite/Components/Texturing/ImageTexture.js +2 -2
  119. package/src/x_ite/Components/Texturing/MovieTexture.js +2 -2
  120. package/src/x_ite/Components/Texturing3D/ImageTextureAtlas.js +2 -2
  121. package/src/x_ite/Components/Time/TimeSensor.js +1 -1
  122. package/src/x_ite/Components/Time/X3DTimeDependentNode.js +6 -6
  123. package/src/x_ite/Components/VolumeRendering/X3DVolumeDataNode.js +8 -8
  124. package/src/x_ite/Execution/BindableList.js +16 -19
  125. package/src/x_ite/Execution/X3DExecutionContext.js +19 -13
  126. package/src/x_ite/Execution/X3DScene.js +4 -0
  127. package/src/x_ite/Fields/ArrayFields.js +42 -22
  128. package/src/x_ite/Fields/SFNode.js +3 -6
  129. package/src/x_ite/Fields/SFNodeCache.js +34 -19
  130. package/src/x_ite/InputOutput/FileLoader.js +22 -14
  131. package/src/x_ite/Parser/GLTF2Parser.js +48 -48
  132. package/src/x_ite/Parser/VRMLParser.js +65 -33
  133. package/src/x_ite/Parser/X3DParser.js +9 -36
  134. package/src/x_ite/Parser/XMLParser.js +8 -8
  135. package/src/x_ite/Prototype/X3DExternProtoDeclaration.js +2 -2
  136. package/src/x_ite/Prototype/X3DProtoDeclaration.js +1 -2
  137. package/src/x_ite/Prototype/X3DProtoDeclarationNode.js +1 -1
  138. package/.github/ISSUE_TEMPLATE/bug_report.md +0 -38
@@ -141,35 +141,35 @@ PointSet .prototype = Object .assign (Object .create (X3DPointGeometryNode .prot
141
141
  },
142
142
  set_fogCoord__: function ()
143
143
  {
144
- this .fogCoordNode?.removeInterest ("requestRebuild", this);
144
+ this .fogCoordNode ?.removeInterest ("requestRebuild", this);
145
145
 
146
146
  this .fogCoordNode = X3DCast (X3DConstants .FogCoordinate, this ._fogCoord);
147
147
 
148
- this .fogCoordNode?.addInterest ("requestRebuild", this);
148
+ this .fogCoordNode ?.addInterest ("requestRebuild", this);
149
149
  },
150
150
  set_color__: function ()
151
151
  {
152
- this .colorNode?.removeInterest ("requestRebuild", this);
152
+ this .colorNode ?.removeInterest ("requestRebuild", this);
153
153
 
154
154
  this .colorNode = X3DCast (X3DConstants .X3DColorNode, this ._color);
155
155
 
156
- this .colorNode?.addInterest ("requestRebuild", this);
156
+ this .colorNode ?.addInterest ("requestRebuild", this);
157
157
  },
158
158
  set_normal__: function ()
159
159
  {
160
- this .normalNode?.removeInterest ("requestRebuild", this);
160
+ this .normalNode ?.removeInterest ("requestRebuild", this);
161
161
 
162
162
  this .normalNode = X3DCast (X3DConstants .X3DNormalNode, this ._normal);
163
163
 
164
- this .normalNode?.addInterest ("requestRebuild", this);
164
+ this .normalNode ?.addInterest ("requestRebuild", this);
165
165
  },
166
166
  set_coord__: function ()
167
167
  {
168
- this .coordNode?.removeInterest ("requestRebuild", this);
168
+ this .coordNode ?.removeInterest ("requestRebuild", this);
169
169
 
170
170
  this .coordNode = X3DCast (X3DConstants .X3DCoordinateNode, this ._coord);
171
171
 
172
- this .coordNode?.addInterest ("requestRebuild", this);
172
+ this .coordNode ?.addInterest ("requestRebuild", this);
173
173
  },
174
174
  build: function ()
175
175
  {
@@ -196,9 +196,9 @@ PointSet .prototype = Object .assign (Object .create (X3DPointGeometryNode .prot
196
196
  attribNodes [a] .addValue (i, attribArrays [a]);
197
197
  }
198
198
 
199
- fogCoordNode?.addDepths (fogDepthArray, numPoints);
200
- colorNode ?.addColors (colorArray, numPoints);
201
- normalNode ?.addNormals (normalArray, numPoints);
199
+ fogCoordNode ?.addDepths (fogDepthArray, numPoints);
200
+ colorNode ?.addColors (colorArray, numPoints);
201
+ normalNode ?.addNormals (normalArray, numPoints);
202
202
 
203
203
  coordNode .addPoints (vertexArray, numPoints);
204
204
  },
@@ -134,47 +134,47 @@ X3DComposedGeometryNode .prototype = Object .assign (Object .create (X3DGeometry
134
134
  },
135
135
  set_fogCoord__: function ()
136
136
  {
137
- this .fogCoordNode?.removeInterest ("requestRebuild", this);
137
+ this .fogCoordNode ?.removeInterest ("requestRebuild", this);
138
138
 
139
139
  this .fogCoordNode = X3DCast (X3DConstants .FogCoordinate, this ._fogCoord);
140
140
 
141
- this .fogCoordNode?.addInterest ("requestRebuild", this);
141
+ this .fogCoordNode ?.addInterest ("requestRebuild", this);
142
142
  },
143
143
  set_color__: function ()
144
144
  {
145
- this .colorNode?.removeInterest ("requestRebuild", this);
145
+ this .colorNode ?.removeInterest ("requestRebuild", this);
146
146
 
147
147
  this .colorNode = X3DCast (X3DConstants .X3DColorNode, this ._color);
148
148
 
149
- this .colorNode?.addInterest ("requestRebuild", this);
149
+ this .colorNode ?.addInterest ("requestRebuild", this);
150
150
 
151
- this .setTransparent (this .colorNode?.isTransparent () ?? false);
151
+ this .setTransparent (this .colorNode ?.isTransparent () ?? false);
152
152
  },
153
153
  set_texCoord__: function ()
154
154
  {
155
- this .texCoordNode?.removeInterest ("requestRebuild", this);
155
+ this .texCoordNode ?.removeInterest ("requestRebuild", this);
156
156
 
157
157
  this .texCoordNode = X3DCast (X3DConstants .X3DTextureCoordinateNode, this ._texCoord);
158
158
 
159
- this .texCoordNode?.addInterest ("requestRebuild", this);
159
+ this .texCoordNode ?.addInterest ("requestRebuild", this);
160
160
 
161
161
  this .setTextureCoordinate (this .texCoordNode);
162
162
  },
163
163
  set_normal__: function ()
164
164
  {
165
- this .normalNode?.removeInterest ("requestRebuild", this);
165
+ this .normalNode ?.removeInterest ("requestRebuild", this);
166
166
 
167
167
  this .normalNode = X3DCast (X3DConstants .X3DNormalNode, this ._normal);
168
168
 
169
- this .normalNode?.addInterest ("requestRebuild", this);
169
+ this .normalNode ?.addInterest ("requestRebuild", this);
170
170
  },
171
171
  set_coord__: function ()
172
172
  {
173
- this .coordNode?.removeInterest ("requestRebuild", this);
173
+ this .coordNode ?.removeInterest ("requestRebuild", this);
174
174
 
175
175
  this .coordNode = X3DCast (X3DConstants .X3DCoordinateNode, this ._coord);
176
176
 
177
- this .coordNode?.addInterest ("requestRebuild", this);
177
+ this .coordNode ?.addInterest ("requestRebuild", this);
178
178
  },
179
179
  getPolygonIndex: function (index)
180
180
  {
@@ -211,7 +211,7 @@ X3DComposedGeometryNode .prototype = Object .assign (Object .create (X3DGeometry
211
211
  normalArray = this .getNormals (),
212
212
  vertexArray = this .getVertices ();
213
213
 
214
- texCoordNode?.init (multiTexCoordArray);
214
+ texCoordNode ?.init (multiTexCoordArray);
215
215
 
216
216
  // Fill GeometryNode
217
217
 
@@ -224,7 +224,7 @@ X3DComposedGeometryNode .prototype = Object .assign (Object .create (X3DGeometry
224
224
  for (let a = 0; a < numAttribNodes; ++ a)
225
225
  attribNodes [a] .addValue (index, attribArrays [a]);
226
226
 
227
- fogCoordNode?.addDepth (index, fogDepthArray);
227
+ fogCoordNode ?.addDepth (index, fogDepthArray);
228
228
 
229
229
  if (colorNode)
230
230
  {
@@ -234,7 +234,7 @@ X3DComposedGeometryNode .prototype = Object .assign (Object .create (X3DGeometry
234
234
  colorNode .addColor (face, colorArray);
235
235
  }
236
236
 
237
- texCoordNode?.addPoint (index, multiTexCoordArray);
237
+ texCoordNode ?.addPoint (index, multiTexCoordArray);
238
238
 
239
239
  if (normalNode)
240
240
  {
@@ -169,7 +169,7 @@ X3DGeometryNode .prototype = Object .assign (Object .create (X3DNode .prototype)
169
169
  browser = this .getBrowser (),
170
170
  gl = browser .getContext ();
171
171
 
172
- this .isLive () .addInterest ("set_live__", this);
172
+ this .getLive () .addInterest ("set_live__", this);
173
173
 
174
174
  this .addInterest ("requestRebuild", this);
175
175
  this ._rebuild .addInterest ("rebuild", this);
@@ -697,7 +697,7 @@ X3DGeometryNode .prototype = Object .assign (Object .create (X3DNode .prototype)
697
697
  })(),
698
698
  set_live__: function ()
699
699
  {
700
- if (this .isLive () .getValue ())
700
+ if (this .getLive () .getValue ())
701
701
  this .getBrowser () .getBrowserOptions () ._Shading .addInterest ("set_shading__", this);
702
702
  else
703
703
  this .getBrowser () .getBrowserOptions () ._Shading .removeInterest ("set_shading__", this);
@@ -1009,7 +1009,7 @@ X3DGeometryNode .prototype = Object .assign (Object .create (X3DNode .prototype)
1009
1009
  attribBuffers = this .attribBuffers,
1010
1010
  primitiveMode = browser .getPrimitiveMode (this .primitiveMode);
1011
1011
 
1012
- blendModeNode?.enable (gl);
1012
+ blendModeNode ?.enable (gl);
1013
1013
 
1014
1014
  shaderNode .enable (gl);
1015
1015
  shaderNode .setUniforms (gl, this, renderContext, front);
@@ -1080,7 +1080,7 @@ X3DGeometryNode .prototype = Object .assign (Object .create (X3DNode .prototype)
1080
1080
  }
1081
1081
  }
1082
1082
 
1083
- blendModeNode?.disable (gl);
1083
+ blendModeNode ?.disable (gl);
1084
1084
  },
1085
1085
  displaySimpleParticles: function (gl, shaderNode, particleSystem)
1086
1086
  {
@@ -1128,7 +1128,7 @@ X3DGeometryNode .prototype = Object .assign (Object .create (X3DNode .prototype)
1128
1128
  attribBuffers = this .attribBuffers,
1129
1129
  primitiveMode = browser .getPrimitiveMode (this .primitiveMode);
1130
1130
 
1131
- blendModeNode?.enable (gl);
1131
+ blendModeNode ?.enable (gl);
1132
1132
 
1133
1133
  // Setup shader.
1134
1134
 
@@ -1198,7 +1198,7 @@ X3DGeometryNode .prototype = Object .assign (Object .create (X3DNode .prototype)
1198
1198
  gl .drawArraysInstanced (primitiveMode, 0, this .vertexCount, particleSystem .numParticles);
1199
1199
  }
1200
1200
 
1201
- blendModeNode?.disable (gl);
1201
+ blendModeNode ?.disable (gl);
1202
1202
  },
1203
1203
  });
1204
1204
 
@@ -313,7 +313,7 @@ X3DLineGeometryNode .prototype = Object .assign (Object .create (X3DGeometryNode
313
313
 
314
314
  // Render triangles.
315
315
 
316
- blendModeNode?.enable (gl);
316
+ blendModeNode ?.enable (gl);
317
317
 
318
318
  // Setup shader.
319
319
 
@@ -355,7 +355,7 @@ X3DLineGeometryNode .prototype = Object .assign (Object .create (X3DGeometryNode
355
355
  gl .enable (gl .CULL_FACE);
356
356
  gl .drawArrays (primitiveMode, 0, this .vertexCount * 3);
357
357
 
358
- blendModeNode?.disable (gl);
358
+ blendModeNode ?.disable (gl);
359
359
 
360
360
  return;
361
361
  }
@@ -363,7 +363,7 @@ X3DLineGeometryNode .prototype = Object .assign (Object .create (X3DGeometryNode
363
363
 
364
364
  const primitiveMode = browser .getPrimitiveMode (this .getPrimitiveMode ());
365
365
 
366
- blendModeNode?.enable (gl);
366
+ blendModeNode ?.enable (gl);
367
367
 
368
368
  // Setup shader.
369
369
 
@@ -393,7 +393,7 @@ X3DLineGeometryNode .prototype = Object .assign (Object .create (X3DGeometryNode
393
393
 
394
394
  gl .drawArrays (primitiveMode, 0, this .vertexCount);
395
395
 
396
- blendModeNode?.disable (gl);
396
+ blendModeNode ?.disable (gl);
397
397
 
398
398
  gl .lineWidth (1);
399
399
  };
@@ -409,7 +409,7 @@ X3DLineGeometryNode .prototype = Object .assign (Object .create (X3DGeometryNode
409
409
  attribBuffers = this .getAttribBuffers (),
410
410
  primitiveMode = browser .getPrimitiveMode (this .getPrimitiveMode ());
411
411
 
412
- blendModeNode?.enable (gl);
412
+ blendModeNode ?.enable (gl);
413
413
 
414
414
  // Setup shader.
415
415
 
@@ -448,7 +448,7 @@ X3DLineGeometryNode .prototype = Object .assign (Object .create (X3DGeometryNode
448
448
 
449
449
  gl .drawArraysInstanced (primitiveMode, 0, this .vertexCount, particleSystem .numParticles);
450
450
 
451
- blendModeNode?.disable (gl);
451
+ blendModeNode ?.disable (gl);
452
452
 
453
453
  gl .lineWidth (1);
454
454
  },
@@ -81,7 +81,7 @@ X3DPointGeometryNode .prototype = Object .assign (Object .create (X3DGeometryNod
81
81
  attribNodes = this .getAttrib (),
82
82
  attribBuffers = this .getAttribBuffers ();
83
83
 
84
- blendModeNode?.enable (gl);
84
+ blendModeNode ?.enable (gl);
85
85
 
86
86
  // Setup shader.
87
87
 
@@ -109,7 +109,7 @@ X3DPointGeometryNode .prototype = Object .assign (Object .create (X3DGeometryNod
109
109
 
110
110
  gl .drawArrays (this .primitiveMode, 0, this .vertexCount);
111
111
 
112
- blendModeNode?.disable (gl);
112
+ blendModeNode ?.disable (gl);
113
113
  },
114
114
  displayParticles: function (gl, renderContext, particleSystem)
115
115
  {
@@ -120,7 +120,7 @@ X3DPointGeometryNode .prototype = Object .assign (Object .create (X3DGeometryNod
120
120
  attribNodes = this .getAttrib (),
121
121
  attribBuffers = this .getAttribBuffers ();
122
122
 
123
- blendModeNode?.enable (gl);
123
+ blendModeNode ?.enable (gl);
124
124
 
125
125
  // Setup shader.
126
126
 
@@ -159,7 +159,7 @@ X3DPointGeometryNode .prototype = Object .assign (Object .create (X3DGeometryNod
159
159
 
160
160
  gl .drawArraysInstanced (this .primitiveMode, 0, this .vertexCount, particleSystem .numParticles);
161
161
 
162
- blendModeNode?.disable (gl);
162
+ blendModeNode ?.disable (gl);
163
163
  },
164
164
  });
165
165
 
@@ -104,7 +104,7 @@ CollidableOffset .prototype = Object .assign (Object .create (X3DNBodyCollidable
104
104
  getBBox: function (bbox, shadows)
105
105
  {
106
106
  if (this ._bboxSize .getValue () .equals (this .getDefaultBBoxSize ()))
107
- return this .visibleNode?.getBBox (bbox, shadows) .multRight (this .getMatrix ()) ?? bbox .set ();
107
+ return this .visibleNode ?.getBBox (bbox, shadows) .multRight (this .getMatrix ()) ?? bbox .set ();
108
108
 
109
109
  return bbox .set (this ._bboxSize .getValue (), this ._bboxCenter .getValue ());
110
110
  },
@@ -154,7 +154,7 @@ CollidableOffset .prototype = Object .assign (Object .create (X3DNBodyCollidable
154
154
  },
155
155
  set_cameraObject__: function ()
156
156
  {
157
- this .setCameraObject (!!this .visibleNode?.isCameraObject ());
157
+ this .setCameraObject (!!this .visibleNode ?.isCameraObject ());
158
158
  },
159
159
  set_visible__: function ()
160
160
  {
@@ -195,7 +195,7 @@ CollidableOffset .prototype = Object .assign (Object .create (X3DNBodyCollidable
195
195
  modelViewMatrix .push ();
196
196
  modelViewMatrix .multLeft (this .getMatrix ());
197
197
 
198
- this .visibleNode?.traverse (type, renderObject);
198
+ this .visibleNode ?.traverse (type, renderObject);
199
199
 
200
200
  modelViewMatrix .pop ();
201
201
  return;
@@ -211,7 +211,7 @@ CollidableOffset .prototype = Object .assign (Object .create (X3DNBodyCollidable
211
211
  modelViewMatrix .push ();
212
212
  modelViewMatrix .multLeft (this .getMatrix ());
213
213
 
214
- this .visibleNode?.traverse (type, renderObject);
214
+ this .visibleNode ?.traverse (type, renderObject);
215
215
 
216
216
  modelViewMatrix .pop ();
217
217
  pickingHierarchy .pop ();
@@ -224,7 +224,7 @@ CollidableOffset .prototype = Object .assign (Object .create (X3DNBodyCollidable
224
224
  modelViewMatrix .push ();
225
225
  modelViewMatrix .multLeft (this .getMatrix ());
226
226
 
227
- this .visibleNode?.traverse (type, renderObject);
227
+ this .visibleNode ?.traverse (type, renderObject);
228
228
 
229
229
  modelViewMatrix .pop ();
230
230
  break;
@@ -236,9 +236,9 @@ CollidableOffset .prototype = Object .assign (Object .create (X3DNBodyCollidable
236
236
  modelViewMatrix .push ();
237
237
  modelViewMatrix .multLeft (this .getMatrix ());
238
238
 
239
- this .visibleNode?.traverse (type, renderObject);
239
+ this .visibleNode ?.traverse (type, renderObject);
240
240
 
241
- this .boundedObject?.displayBBox (type, renderObject);
241
+ this .boundedObject ?.displayBBox (type, renderObject);
242
242
 
243
243
  modelViewMatrix .pop ();
244
244
  return;
@@ -111,7 +111,7 @@ CollidableShape .prototype = Object .assign (Object .create (X3DNBodyCollidableN
111
111
  getBBox: function (bbox, shadows)
112
112
  {
113
113
  if (this ._bboxSize .getValue () .equals (this .getDefaultBBoxSize ()))
114
- return this .visibleNode?.getBBox (bbox, shadows) .multRight (this .getMatrix ()) ?? bbox .set ();
114
+ return this .visibleNode ?.getBBox (bbox, shadows) .multRight (this .getMatrix ()) ?? bbox .set ();
115
115
 
116
116
  return bbox .set (this ._bboxSize .getValue (), this ._bboxCenter .getValue ());
117
117
  },
@@ -219,7 +219,7 @@ CollidableShape .prototype = Object .assign (Object .create (X3DNBodyCollidableN
219
219
  },
220
220
  set_cameraObject__: function ()
221
221
  {
222
- this .setCameraObject (!!this .visibleNode?.isCameraObject ());
222
+ this .setCameraObject (!!this .visibleNode ?.isCameraObject ());
223
223
  },
224
224
  set_visible__: function ()
225
225
  {
@@ -425,7 +425,7 @@ CollidableShape .prototype = Object .assign (Object .create (X3DNBodyCollidableN
425
425
  modelViewMatrix .push ();
426
426
  modelViewMatrix .multLeft (this .getMatrix ());
427
427
 
428
- this .visibleNode?.traverse (type, renderObject);
428
+ this .visibleNode ?.traverse (type, renderObject);
429
429
 
430
430
  modelViewMatrix .pop ();
431
431
  return;
@@ -441,7 +441,7 @@ CollidableShape .prototype = Object .assign (Object .create (X3DNBodyCollidableN
441
441
  modelViewMatrix .push ();
442
442
  modelViewMatrix .multLeft (this .getMatrix ());
443
443
 
444
- this .visibleNode?.traverse (type, renderObject);
444
+ this .visibleNode ?.traverse (type, renderObject);
445
445
 
446
446
  modelViewMatrix .pop ();
447
447
  pickingHierarchy .pop ();
@@ -454,7 +454,7 @@ CollidableShape .prototype = Object .assign (Object .create (X3DNBodyCollidableN
454
454
  modelViewMatrix .push ();
455
455
  modelViewMatrix .multLeft (this .getMatrix ());
456
456
 
457
- this .visibleNode?.traverse (type, renderObject);
457
+ this .visibleNode ?.traverse (type, renderObject);
458
458
 
459
459
  modelViewMatrix .pop ();
460
460
  return;
@@ -466,9 +466,9 @@ CollidableShape .prototype = Object .assign (Object .create (X3DNBodyCollidableN
466
466
  modelViewMatrix .push ();
467
467
  modelViewMatrix .multLeft (this .getMatrix ());
468
468
 
469
- this .visibleNode?.traverse (type, renderObject);
469
+ this .visibleNode ?.traverse (type, renderObject);
470
470
 
471
- this .boundedObject?.displayBBox (type, renderObject);
471
+ this .boundedObject ?.displayBBox (type, renderObject);
472
472
 
473
473
  modelViewMatrix .pop ();
474
474
  return;
@@ -94,7 +94,7 @@ CollisionSensor .prototype = Object .assign (Object .create (X3DSensorNode .prot
94
94
  {
95
95
  X3DSensorNode .prototype .initialize .call (this);
96
96
 
97
- this .isLive () .addInterest ("set_live__", this);
97
+ this .getLive () .addInterest ("set_live__", this);
98
98
 
99
99
  this ._collider .addInterest ("set_collider__", this);
100
100
 
@@ -102,7 +102,7 @@ CollisionSensor .prototype = Object .assign (Object .create (X3DSensorNode .prot
102
102
  },
103
103
  set_live__: function ()
104
104
  {
105
- if (this .isLive () .getValue () && this ._enabled .getValue () && this .colliderNode)
105
+ if (this .getLive () .getValue () && this ._enabled .getValue () && this .colliderNode)
106
106
  {
107
107
  this .getBrowser () .sensorEvents () .addInterest ("update", this);
108
108
  }
@@ -264,7 +264,7 @@ CollisionSensor .prototype = Object .assign (Object .create (X3DSensorNode .prot
264
264
  if (contactNode)
265
265
  return contactNode;
266
266
 
267
- contactNode = this .contactCache [index] = this .getExecutionContext () .createNode ("Contact", false);
267
+ contactNode = this .contactCache [index] = this .getExecutionContext () .createNode ("Contact", { setup: false });
268
268
 
269
269
  contactNode .setup ();
270
270
 
@@ -127,7 +127,7 @@ RigidBodyCollection .prototype = Object .assign (Object .create (X3DChildNode .p
127
127
  {
128
128
  X3DChildNode .prototype .initialize .call (this);
129
129
 
130
- this .isLive () .addInterest ("set_enabled__", this);
130
+ this .getLive () .addInterest ("set_enabled__", this);
131
131
 
132
132
  this ._enabled .addInterest ("set_enabled__", this);
133
133
  this ._set_contacts .addInterest ("set_contacts__", this);
@@ -158,7 +158,7 @@ RigidBodyCollection .prototype = Object .assign (Object .create (X3DChildNode .p
158
158
  },
159
159
  set_enabled__: function ()
160
160
  {
161
- if (this .isLive () .getValue () && this ._enabled .getValue ())
161
+ if (this .getLive () .getValue () && this ._enabled .getValue ())
162
162
  this .getBrowser () .sensorEvents () .addInterest ("update", this);
163
163
  else
164
164
  this .getBrowser () .sensorEvents () .removeInterest ("update", this);
@@ -225,7 +225,7 @@ Script .prototype = Object .assign (Object .create (X3DScriptNode .prototype),
225
225
  const
226
226
  browser = this .getBrowser (),
227
227
  executionContext = this .getExecutionContext (),
228
- live = this .isLive ();
228
+ live = this .getLive ();
229
229
 
230
230
  function SFNode (vrmlSyntax)
231
231
  {
@@ -233,7 +233,7 @@ Script .prototype = Object .assign (Object .create (X3DScriptNode .prototype),
233
233
  scene = browser .createX3DFromString (String (vrmlSyntax)),
234
234
  rootNodes = scene .getRootNodes ();
235
235
 
236
- live .addFieldInterest (scene .isLive ());
236
+ live .addFieldInterest (scene .getLive ());
237
237
 
238
238
  scene .setLive (live .getValue ());
239
239
  scene .setPrivate (executionContext .isPrivate ());
@@ -393,7 +393,7 @@ Script .prototype = Object .assign (Object .create (X3DScriptNode .prototype),
393
393
  if (!this .context)
394
394
  return;
395
395
 
396
- if (this .isLive () .getValue ())
396
+ if (this .getLive () .getValue ())
397
397
  {
398
398
  if (!this .initialized)
399
399
  {
@@ -99,7 +99,7 @@ ComposedShader .prototype = Object .assign (Object .create (X3DShaderNode .proto
99
99
  X3DShaderNode .prototype .initialize .call (this);
100
100
  X3DProgrammableShaderObject .prototype .initialize .call (this);
101
101
 
102
- this .isLive () .addInterest ("set_live__", this);
102
+ this .getLive () .addInterest ("set_live__", this);
103
103
 
104
104
  // https://www.web3d.org/documents/specifications/19775-1/V4.0/Part01/shaders_glsl.html#relinkingprograms
105
105
  this ._activate .addInterest ("set_activate__", this);
@@ -123,7 +123,7 @@ ComposedShader .prototype = Object .assign (Object .create (X3DShaderNode .proto
123
123
  },
124
124
  addUserDefinedField: function (accessType, name, field)
125
125
  {
126
- const shaderFields = this .isInitialized () && this .isLive () .getValue () && this .isValid ();
126
+ const shaderFields = this .isInitialized () && this .getLive () .getValue () && this .isValid ();
127
127
 
128
128
  if (shaderFields)
129
129
  this .removeShaderFields ();
@@ -135,7 +135,7 @@ ComposedShader .prototype = Object .assign (Object .create (X3DShaderNode .proto
135
135
  },
136
136
  removeUserDefinedField: function (name)
137
137
  {
138
- const shaderFields = this .isInitialized () && this .isLive () .getValue () && this .isValid ();
138
+ const shaderFields = this .isInitialized () && this .getLive () .getValue () && this .isValid ();
139
139
 
140
140
  if (shaderFields)
141
141
  this .removeShaderFields ();
@@ -155,7 +155,7 @@ ComposedShader .prototype = Object .assign (Object .create (X3DShaderNode .proto
155
155
  },
156
156
  set_live__: function ()
157
157
  {
158
- if (this .isLive () .getValue ())
158
+ if (this .getLive () .getValue ())
159
159
  {
160
160
  if (this .isValid ())
161
161
  this .addShaderFields ();
@@ -192,7 +192,7 @@ ComposedShader .prototype = Object .assign (Object .create (X3DShaderNode .proto
192
192
  {
193
193
  const partNode = X3DCast (X3DConstants .ShaderPart, node);
194
194
 
195
- if (partNode?.getShader ())
195
+ if (partNode ?.getShader ())
196
196
  gl .attachShader (program, partNode .getShader ());
197
197
  }
198
198
 
@@ -224,8 +224,6 @@ ComposedShader .prototype = Object .assign (Object .create (X3DShaderNode .proto
224
224
  },
225
225
  dispose: function ()
226
226
  {
227
- this .getBrowser () .getContext () .deleteProgram (this .program);
228
-
229
227
  X3DProgrammableShaderObject .prototype .dispose .call (this);
230
228
  X3DShaderNode .prototype .dispose .call (this);
231
229
  },
@@ -219,8 +219,6 @@ ShaderPart .prototype = Object .assign (Object .create (X3DNode .prototype),
219
219
  },
220
220
  dispose: function ()
221
221
  {
222
- this .getBrowser () .getContext () .deleteShader (this .shader);
223
-
224
222
  X3DUrlObject .prototype .dispose .call (this);
225
223
  X3DNode .prototype .dispose .call (this);
226
224
  },
@@ -1045,7 +1045,7 @@ X3DProgrammableShaderObject .prototype =
1045
1045
 
1046
1046
  // Fog
1047
1047
 
1048
- fogNode?.setShaderUniforms (gl, this);
1048
+ fogNode ?.setShaderUniforms (gl, this);
1049
1049
 
1050
1050
  // Clip planes and local lights
1051
1051
 
@@ -1062,7 +1062,7 @@ X3DProgrammableShaderObject .prototype =
1062
1062
 
1063
1063
  // Style Properties
1064
1064
 
1065
- stylePropertiesNode?.setShaderUniforms (gl, this);
1065
+ stylePropertiesNode ?.setShaderUniforms (gl, this);
1066
1066
 
1067
1067
  // Material
1068
1068
 
@@ -1070,7 +1070,7 @@ X3DProgrammableShaderObject .prototype =
1070
1070
 
1071
1071
  // Texture
1072
1072
 
1073
- textureNode?.setShaderUniforms (gl, this, renderObject);
1073
+ textureNode ?.setShaderUniforms (gl, this, renderObject);
1074
1074
 
1075
1075
  appearanceNode .getTextureTransform () .setShaderUniforms (gl, this);
1076
1076
  geometryContext .getTextureCoordinate () .setShaderUniforms (gl, this);
@@ -419,10 +419,10 @@ Appearance .prototype = Object .assign (Object .create (X3DAppearanceNode .proto
419
419
  switch (this .alphaMode)
420
420
  {
421
421
  case AlphaMode .AUTO:
422
- this .setTransparent (!!(this .stylePropertiesNode [3]?.isTransparent () ||
423
- this .materialNode?.isTransparent () ||
424
- this .backMaterialNode?.isTransparent () ||
425
- this .textureNode?.isTransparent () ||
422
+ this .setTransparent (!!(this .stylePropertiesNode [3] ?.isTransparent () ||
423
+ this .materialNode ?.isTransparent () ||
424
+ this .backMaterialNode ?.isTransparent () ||
425
+ this .textureNode ?.isTransparent () ||
426
426
  this .blendModeNode));
427
427
  break;
428
428
  case AlphaMode .OPAQUE:
@@ -214,7 +214,7 @@ Material .prototype = Object .assign (Object .create (X3DOneSidedMaterialNode .p
214
214
  },
215
215
  set_transparent__: function ()
216
216
  {
217
- this .setTransparent (!!(this .getTransparency () || this .diffuseTextureNode?.isTransparent ()));
217
+ this .setTransparent (!!(this .getTransparency () || this .diffuseTextureNode ?.isTransparent ()));
218
218
  },
219
219
  getBaseTexture: function ()
220
220
  {
@@ -173,7 +173,7 @@ PhysicalMaterial .prototype = Object .assign (Object .create (X3DOneSidedMateria
173
173
  },
174
174
  set_transparent__: function ()
175
175
  {
176
- this .setTransparent (!!(this .getTransparency () || this .baseTextureNode?.isTransparent ()));
176
+ this .setTransparent (!!(this .getTransparency () || this .baseTextureNode ?.isTransparent ()));
177
177
  },
178
178
  getBaseTexture: function ()
179
179
  {
@@ -106,7 +106,7 @@ UnlitMaterial .prototype = Object .assign (Object .create (X3DOneSidedMaterialNo
106
106
  set_transparent__: function ()
107
107
  {
108
108
  this .setTransparent (!!(this .getTransparency () ||
109
- this .getEmissiveTexture ()?.isTransparent ()));
109
+ this .getEmissiveTexture () ?.isTransparent ()));
110
110
  },
111
111
  getMaterialKey: function ()
112
112
  {
@@ -120,7 +120,7 @@ X3DMaterialNode .prototype = Object .assign (Object .create (X3DAppearanceChildN
120
120
  key += appearanceNode .getNormalizedAlphaMode (transparent);
121
121
  key += this .getMaterialKey (shadows);
122
122
  key += shadows ? 1 : 0;
123
- key += fogNode?.getFogType () ?? 0;
123
+ key += fogNode ?.getFogType () ?? 0;
124
124
  key += shapeNode .getShapeKey ();
125
125
  key += appearanceNode .getStyleProperties (geometryContext .geometryType) ? 1 : 0;
126
126
  key += appearanceNode .getTextureTransformMapping () .size || 1;
@@ -181,7 +181,7 @@ X3DShapeNode .prototype = Object .assign (Object .create (X3DChildNode .prototyp
181
181
  {
182
182
  if (this .appearanceNode .getAlphaMode () === AlphaMode .AUTO)
183
183
  {
184
- this .transparent = !!(this .appearanceNode .isTransparent () || this .geometryNode?.isTransparent ());
184
+ this .transparent = !!(this .appearanceNode .isTransparent () || this .geometryNode ?.isTransparent ());
185
185
  }
186
186
  else
187
187
  {
@@ -175,7 +175,7 @@ AudioClip .prototype = Object .assign (Object .create (X3DSoundSourceNode .proto
175
175
  setError: function (event)
176
176
  {
177
177
  if (this .URL .protocol !== "data:")
178
- console .warn ("Error loading audio:", decodeURI (this .URL .href), event .type);
178
+ console .warn (`Error loading audio '${decodeURI (this .URL .href)}'`, event .type);
179
179
 
180
180
  this .loadNext ();
181
181
  },
@@ -184,7 +184,7 @@ AudioClip .prototype = Object .assign (Object .create (X3DSoundSourceNode .proto
184
184
  if (DEBUG)
185
185
  {
186
186
  if (this .URL .protocol !== "data:")
187
- console .info ("Done loading audio:", decodeURI (this .URL .href));
187
+ console .info (`Done loading audio '${decodeURI (this .URL .href)}'`);
188
188
  }
189
189
 
190
190
  this .audio .unbind ("canplaythrough");