x_ite 8.6.24 → 8.7.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 (106) hide show
  1. package/README.md +2 -0
  2. package/dist/assets/components/Annotation.js +13 -13
  3. package/dist/assets/components/Annotation.min.js +1 -1
  4. package/dist/assets/components/CADGeometry.js +13 -13
  5. package/dist/assets/components/CADGeometry.min.js +1 -1
  6. package/dist/assets/components/CubeMapTexturing.js +34 -39
  7. package/dist/assets/components/CubeMapTexturing.min.js +1 -1
  8. package/dist/assets/components/DIS.js +13 -13
  9. package/dist/assets/components/DIS.min.js +1 -1
  10. package/dist/assets/components/EventUtilities.js +9 -9
  11. package/dist/assets/components/EventUtilities.min.js +1 -1
  12. package/dist/assets/components/Geometry2D.js +19 -19
  13. package/dist/assets/components/Geometry2D.min.js +1 -1
  14. package/dist/assets/components/Geospatial.js +33 -33
  15. package/dist/assets/components/Geospatial.min.js +1 -1
  16. package/dist/assets/components/HAnim.js +18 -18
  17. package/dist/assets/components/HAnim.min.js +1 -1
  18. package/dist/assets/components/KeyDeviceSensor.js +8 -8
  19. package/dist/assets/components/KeyDeviceSensor.min.js +1 -1
  20. package/dist/assets/components/Layout.js +27 -27
  21. package/dist/assets/components/Layout.min.js +1 -1
  22. package/dist/assets/components/NURBS.js +32 -32
  23. package/dist/assets/components/NURBS.min.js +1 -1
  24. package/dist/assets/components/ParticleSystems.js +22 -22
  25. package/dist/assets/components/ParticleSystems.min.js +1 -1
  26. package/dist/assets/components/Picking.js +26 -26
  27. package/dist/assets/components/Picking.min.js +1 -1
  28. package/dist/assets/components/RigidBodyPhysics.js +20 -20
  29. package/dist/assets/components/RigidBodyPhysics.min.js +1 -1
  30. package/dist/assets/components/Scripting.js +28 -28
  31. package/dist/assets/components/Scripting.min.js +1 -1
  32. package/dist/assets/components/Text.js +24 -24
  33. package/dist/assets/components/Text.min.js +1 -1
  34. package/dist/assets/components/TextureProjector.js +14 -14
  35. package/dist/assets/components/TextureProjector.min.js +1 -1
  36. package/dist/assets/components/Texturing3D.js +1116 -1685
  37. package/dist/assets/components/Texturing3D.min.js +1 -1
  38. package/dist/assets/components/VolumeRendering.js +25 -25
  39. package/dist/assets/components/VolumeRendering.min.js +1 -1
  40. package/dist/assets/components/X_ITE.js +9 -9
  41. package/dist/assets/components/X_ITE.min.js +1 -1
  42. package/dist/x_ite.css +1 -1
  43. package/dist/x_ite.js +275 -235
  44. package/dist/x_ite.min.js +1 -1
  45. package/dist/x_ite.zip +0 -0
  46. package/docs/_config.yml +1 -1
  47. package/docs/_posts/accessing-the-external-browser.md +1 -1
  48. package/docs/_posts/components/Geospatial/GeoViewpoint.md +41 -0
  49. package/docs/_posts/components/Navigation/OrthoViewpoint.md +41 -0
  50. package/docs/_posts/components/Navigation/Viewpoint.md +41 -0
  51. package/docs/_posts/components/Networking/Inline.md +1 -1
  52. package/docs/_posts/components/X_ITE/BlendMode.md +1 -1
  53. package/docs/_posts/getting-started.md +4 -1
  54. package/docs/_posts/glossary.md +3 -3
  55. package/docs/_posts/laboratory/x3d-file-converter.md +1 -1
  56. package/docs/_posts/reference/browser-services.md +48 -20
  57. package/docs/_posts/reference/field-services-and-objects.md +23 -23
  58. package/docs/_posts/reference/scene-services.md +1 -1
  59. package/docs/_posts/supported-nodes.md +1 -1
  60. package/docs/_posts/tutorials/basic-nodes.md +1 -1
  61. package/docs/_posts/tutorials/building-a-x3d-world.md +1 -1
  62. package/docs/_posts/tutorials/building-primitive-shapes.md +1 -1
  63. package/docs/_posts/tutorials/increasing-rendering-speed.md +1 -1
  64. package/docs/_posts/tutorials/introducing-x3d.md +1 -1
  65. package/docs/_posts/tutorials/overview.md +1 -1
  66. package/docs/_posts/what's-new.md +11 -1
  67. package/package.json +4 -4
  68. package/src/x_ite/Base/X3DBaseNode.js +2 -2
  69. package/src/x_ite/Base/X3DField.js +4 -4
  70. package/src/x_ite/Browser/Core/BrowserOptions.js +12 -4
  71. package/src/x_ite/Browser/Core/X3DCoreContext.js +79 -31
  72. package/src/x_ite/Browser/NURBS/NURBS.js +3 -3
  73. package/src/x_ite/Browser/Shaders/X3DShadersContext.js +2 -2
  74. package/src/x_ite/Browser/Texturing/X3DTexturingContext.js +10 -11
  75. package/src/x_ite/Browser/VERSION.js +1 -1
  76. package/src/x_ite/Browser/X3DBrowser.js +52 -28
  77. package/src/x_ite/Components/CubeMapTexturing/ComposedCubeMapTexture.js +9 -14
  78. package/src/x_ite/Components/EnvironmentalEffects/Background.js +6 -6
  79. package/src/x_ite/Components/EnvironmentalEffects/TextureBackground.js +14 -34
  80. package/src/x_ite/Components/EnvironmentalEffects/X3DBackgroundNode.js +9 -36
  81. package/src/x_ite/Components/NURBS/NurbsCurve.js +1 -1
  82. package/src/x_ite/Components/NURBS/NurbsCurve2D.js +1 -1
  83. package/src/x_ite/Components/NURBS/NurbsOrientationInterpolator.js +1 -1
  84. package/src/x_ite/Components/NURBS/NurbsPositionInterpolator.js +1 -1
  85. package/src/x_ite/Components/NURBS/X3DNurbsSurfaceGeometryNode.js +1 -1
  86. package/src/x_ite/Components/Picking/LinePickSensor.js +2 -2
  87. package/src/x_ite/Components/Picking/PointPickSensor.js +2 -2
  88. package/src/x_ite/Components/Picking/PrimitivePickSensor.js +2 -2
  89. package/src/x_ite/Components/Picking/VolumePickSensor.js +2 -2
  90. package/src/x_ite/Components/RigidBodyPhysics/CollisionSensor.js +1 -1
  91. package/src/x_ite/Components/RigidBodyPhysics/MotorJoint.js +1 -1
  92. package/src/x_ite/Components/Shape/X3DOneSidedMaterialNode.js +1 -1
  93. package/src/x_ite/Components/Sound/ListenerPointSource.js +2 -1
  94. package/src/x_ite/Components/Sound/MicrophoneSource.js +2 -1
  95. package/src/x_ite/Components/Sound/OscillatorSource.js +2 -1
  96. package/src/x_ite/Components/Sound/StreamAudioSource.js +2 -1
  97. package/src/x_ite/Components/Sound/X3DSoundProcessingNode.js +3 -0
  98. package/src/x_ite/Components/VolumeRendering/IsoSurfaceVolumeData.js +2 -2
  99. package/src/x_ite/Components/VolumeRendering/SegmentedVolumeData.js +2 -2
  100. package/src/x_ite/Components/VolumeRendering/VolumeData.js +2 -2
  101. package/src/x_ite/Fields/SFNode.js +5 -5
  102. package/src/x_ite/Fields.js +5 -4
  103. package/src/x_ite/Parser/X3DParser.js +1 -1
  104. package/src/x_ite/X3DCanvasElement.js +4 -4
  105. package/src/x_ite.html +1 -1
  106. package/x_ite.min.html +1 -1
@@ -136,12 +136,12 @@ Background .prototype = Object .assign (Object .create (X3DBackgroundNode .proto
136
136
  topTexture .setup ();
137
137
  bottomTexture .setup ();
138
138
 
139
- this .set_frontTexture__ (frontTexture);
140
- this .set_backTexture__ (backTexture);
141
- this .set_leftTexture__ (leftTexture);
142
- this .set_rightTexture__ (rightTexture);
143
- this .set_topTexture__ (topTexture);
144
- this .set_bottomTexture__ (bottomTexture);
139
+ this .set_texture__ (frontTexture, 0);
140
+ this .set_texture__ (backTexture, 1);
141
+ this .set_texture__ (leftTexture, 2);
142
+ this .set_texture__ (rightTexture, 3);
143
+ this .set_texture__ (topTexture, 4);
144
+ this .set_texture__ (bottomTexture, 5);
145
145
  }
146
146
  });
147
147
 
@@ -99,43 +99,23 @@ TextureBackground .prototype = Object .assign (Object .create (X3DBackgroundNode
99
99
  {
100
100
  X3DBackgroundNode .prototype .initialize .call (this);
101
101
 
102
- this ._frontTexture .addInterest ("set_frontTexture__", this);
103
- this ._backTexture .addInterest ("set_backTexture__", this);
104
- this ._leftTexture .addInterest ("set_leftTexture__", this);
105
- this ._rightTexture .addInterest ("set_rightTexture__", this);
106
- this ._topTexture .addInterest ("set_topTexture__", this);
107
- this ._bottomTexture .addInterest ("set_bottomTexture__", this);
102
+ this ._frontTexture .addInterest ("set_texture__", this, 0);
103
+ this ._backTexture .addInterest ("set_texture__", this, 1);
104
+ this ._leftTexture .addInterest ("set_texture__", this, 2);
105
+ this ._rightTexture .addInterest ("set_texture__", this, 3);
106
+ this ._topTexture .addInterest ("set_texture__", this, 4);
107
+ this ._bottomTexture .addInterest ("set_texture__", this, 5);
108
108
 
109
- this .set_frontTexture__ (this ._frontTexture);
110
- this .set_backTexture__ (this ._backTexture);
111
- this .set_leftTexture__ (this ._leftTexture);
112
- this .set_rightTexture__ (this ._rightTexture);
113
- this .set_topTexture__ (this ._topTexture);
114
- this .set_bottomTexture__ (this ._bottomTexture);
109
+ this .set_texture__ (0, this ._frontTexture);
110
+ this .set_texture__ (1, this ._backTexture);
111
+ this .set_texture__ (2, this ._leftTexture);
112
+ this .set_texture__ (3, this ._rightTexture);
113
+ this .set_texture__ (4, this ._topTexture);
114
+ this .set_texture__ (5, this ._bottomTexture);
115
115
  },
116
- set_frontTexture__: function ()
116
+ set_texture__: function (index, textureNode)
117
117
  {
118
- X3DBackgroundNode .prototype .set_frontTexture__ .call (this, X3DCast (X3DConstants .X3DTextureNode, this ._frontTexture));
119
- },
120
- set_backTexture__: function ()
121
- {
122
- X3DBackgroundNode .prototype .set_backTexture__ .call (this, X3DCast (X3DConstants .X3DTextureNode, this ._backTexture));
123
- },
124
- set_leftTexture__: function ()
125
- {
126
- X3DBackgroundNode .prototype .set_leftTexture__ .call (this, X3DCast (X3DConstants .X3DTextureNode, this ._leftTexture));
127
- },
128
- set_rightTexture__: function ()
129
- {
130
- X3DBackgroundNode .prototype .set_rightTexture__ .call (this, X3DCast (X3DConstants .X3DTextureNode, this ._rightTexture));
131
- },
132
- set_topTexture__: function ()
133
- {
134
- X3DBackgroundNode .prototype .set_topTexture__ .call (this, X3DCast (X3DConstants .X3DTextureNode, this ._topTexture));
135
- },
136
- set_bottomTexture__: function ()
137
- {
138
- X3DBackgroundNode .prototype .set_bottomTexture__ .call (this, X3DCast (X3DConstants .X3DTextureNode, this ._bottomTexture));
118
+ X3DBackgroundNode .prototype .set_texture__ .call (this, X3DCast (X3DConstants .X3DTextureNode, textureNode), index);
139
119
  },
140
120
  });
141
121
 
@@ -141,50 +141,23 @@ X3DBackgroundNode .prototype = Object .assign (Object .create (X3DBindableNode .
141
141
 
142
142
  return false;
143
143
  },
144
- set_frontTexture__: function (value)
144
+ set_texture__: function (textureNode, index)
145
145
  {
146
- this .updateTexture (0, value);
147
- },
148
- set_backTexture__: function (value)
149
- {
150
- this .updateTexture (1, value);
151
- },
152
- set_leftTexture__: function (value)
153
- {
154
- this .updateTexture (2, value);
155
- },
156
- set_rightTexture__: function (value)
157
- {
158
- this .updateTexture (3, value);
159
- },
160
- set_topTexture__: function (value)
161
- {
162
- this .updateTexture (4, value);
163
- },
164
- set_bottomTexture__: function (value)
165
- {
166
- this .updateTexture (5, value);
167
- },
168
- updateTexture: function (index, textureNode)
169
- {
170
- this .textureNodes [index] ?._loadState .removeInterest ("setTextureBit", this);
146
+ this .textureNodes [index] ?._loadState .removeInterest ("set_loadState__", this);
171
147
 
172
148
  this .textureNodes [index] = textureNode;
173
149
 
174
- if (textureNode)
175
- {
176
- textureNode ._loadState .addInterest ("setTextureBit", this, index, textureNode);
150
+ textureNode ?._loadState .addInterest ("set_loadState__", this, textureNode, index);
177
151
 
178
- this .setTextureBit (index, textureNode, textureNode ._loadState);
179
- }
180
- else
181
- {
182
- this .textureBits .set (index, false);
183
- }
152
+ this .set_loadState__ (textureNode, index);
153
+ },
154
+ set_loadState__: function (textureNode, index)
155
+ {
156
+ this .setTextureBit (index, textureNode, textureNode ?.checkLoadState () ?? X3DConstants .NOT_STARTED);
184
157
  },
185
158
  setTextureBit: function (bit, textureNode, loadState)
186
159
  {
187
- this .textureBits .set (bit, loadState .getValue () === X3DConstants .COMPLETE_STATE || textureNode .getWidth ());
160
+ this .textureBits .set (bit, loadState === X3DConstants .COMPLETE_STATE || textureNode ?.getWidth ());
188
161
  },
189
162
  getColor: function (theta, color, angle)
190
163
  {
@@ -199,7 +199,7 @@ NurbsCurve .prototype = Object .assign (Object .create (X3DParametricGeometryNod
199
199
  });
200
200
 
201
201
  this .sampleOptions .resolution [0] = this .getTessellation (knots .length);
202
- this .sampleOptions .haveWeights = Boolean (weights);
202
+ this .sampleOptions .haveWeights = !! weights;
203
203
 
204
204
  const
205
205
  mesh = nurbs .sample (this .mesh, surface, this .sampleOptions),
@@ -157,7 +157,7 @@ NurbsCurve2D .prototype = Object .assign (Object .create (X3DNurbsControlCurveNo
157
157
  });
158
158
 
159
159
  this .sampleOptions .resolution [0] = this .getTessellation (knots .length);
160
- this .sampleOptions .haveWeights = Boolean (weights);
160
+ this .sampleOptions .haveWeights = !! weights;
161
161
 
162
162
  const
163
163
  mesh = nurbs .sample (this .mesh, surface, this .sampleOptions),
@@ -187,7 +187,7 @@ NurbsOrientationInterpolator .prototype = Object .assign (Object .create (X3DChi
187
187
  debug: false,
188
188
  });
189
189
 
190
- this .sampleOptions .haveWeights = Boolean (weights);
190
+ this .sampleOptions .haveWeights = !! weights;
191
191
 
192
192
  const
193
193
  mesh = nurbs .sample (this .mesh, surface, this .sampleOptions),
@@ -185,7 +185,7 @@ NurbsPositionInterpolator .prototype = Object .assign (Object .create (X3DChildN
185
185
  debug: false,
186
186
  });
187
187
 
188
- this .sampleOptions .haveWeights = Boolean (weights);
188
+ this .sampleOptions .haveWeights = !! weights;
189
189
 
190
190
  const
191
191
  mesh = nurbs .sample (this .mesh, surface, this .sampleOptions),
@@ -211,7 +211,7 @@ X3DNurbsSurfaceGeometryNode .prototype = Object .assign (Object .create (X3DPara
211
211
  sampleOptions .closed [0] = uClosed;
212
212
  sampleOptions .closed [1] = vClosed;
213
213
  sampleOptions .domain = undefined;
214
- sampleOptions .haveWeights = Boolean (weights);
214
+ sampleOptions .haveWeights = !! weights;
215
215
  sampleOptions .trimmingContours = this .getTrimmingContours ();
216
216
 
217
217
  const
@@ -196,7 +196,7 @@ LinePickSensor .prototype = Object .assign (Object .create (X3DPickSensorNode .p
196
196
 
197
197
  var
198
198
  pickedGeometries = this .getPickedGeometries (),
199
- active = Boolean (pickedGeometries .length);
199
+ active = !! pickedGeometries .length;
200
200
 
201
201
  pickedGeometries .remove (0, pickedGeometries .length, null);
202
202
 
@@ -272,7 +272,7 @@ LinePickSensor .prototype = Object .assign (Object .create (X3DPickSensorNode .p
272
272
 
273
273
  var
274
274
  pickedGeometries = this .getPickedGeometries (),
275
- active = Boolean (pickedGeometries .length);
275
+ active = !! pickedGeometries .length;
276
276
 
277
277
  pickedGeometries .remove (0, pickedGeometries .length, null);
278
278
 
@@ -237,7 +237,7 @@ PointPickSensor .prototype = Object .assign (Object .create (X3DPickSensorNode .
237
237
 
238
238
  var
239
239
  pickedGeometries = this .getPickedGeometries (),
240
- active = Boolean (pickedGeometries .length);
240
+ active = !! pickedGeometries .length;
241
241
 
242
242
  pickedGeometries .remove (0, pickedGeometries .length, null);
243
243
 
@@ -301,7 +301,7 @@ PointPickSensor .prototype = Object .assign (Object .create (X3DPickSensorNode .
301
301
 
302
302
  var
303
303
  pickedGeometries = this .getPickedGeometries (),
304
- active = Boolean (pickedGeometries .length);
304
+ active = !! pickedGeometries .length;
305
305
 
306
306
  pickedGeometries .remove (0, pickedGeometries .length, null);
307
307
 
@@ -183,7 +183,7 @@ PrimitivePickSensor .prototype = Object .assign (Object .create (X3DPickSensorNo
183
183
 
184
184
  var
185
185
  pickedGeometries = this .getPickedGeometries (),
186
- active = Boolean (pickedGeometries .length);
186
+ active = !! pickedGeometries .length;
187
187
 
188
188
  pickedGeometries .remove (0, pickedGeometries .length, null);
189
189
 
@@ -236,7 +236,7 @@ PrimitivePickSensor .prototype = Object .assign (Object .create (X3DPickSensorNo
236
236
 
237
237
  var
238
238
  pickedGeometries = this .getPickedGeometries (),
239
- active = Boolean (pickedGeometries .length);
239
+ active = !! pickedGeometries .length;
240
240
 
241
241
  pickedGeometries .remove (0, pickedGeometries .length, null);
242
242
 
@@ -158,7 +158,7 @@ VolumePickSensor .prototype = Object .assign (Object .create (X3DPickSensorNode
158
158
 
159
159
  var
160
160
  pickedGeometries = this .getPickedGeometries (),
161
- active = Boolean (pickedGeometries .length);
161
+ active = !! pickedGeometries .length;
162
162
 
163
163
  pickedGeometries .remove (0, pickedGeometries .length, null);
164
164
 
@@ -211,7 +211,7 @@ VolumePickSensor .prototype = Object .assign (Object .create (X3DPickSensorNode
211
211
 
212
212
  var
213
213
  pickedGeometries = this .getPickedGeometries (),
214
- active = Boolean (pickedGeometries .length);
214
+ active = !! pickedGeometries .length;
215
215
 
216
216
  pickedGeometries .remove (0, pickedGeometries .length, null);
217
217
 
@@ -225,7 +225,7 @@ CollisionSensor .prototype = Object .assign (Object .create (X3DSensorNode .prot
225
225
  },
226
226
  this);
227
227
 
228
- var active = Boolean (contactNodes .length);
228
+ var active = !! contactNodes .length;
229
229
 
230
230
  if (this ._isActive .getValue () !== active)
231
231
  this ._isActive = active;
@@ -59,7 +59,7 @@ function MotorJoint (executionContext)
59
59
 
60
60
  // Units
61
61
 
62
- this ._axis1angle .setunit ("angle");
62
+ this ._axis1Angle .setUnit ("angle");
63
63
  this ._axis2Angle .setUnit ("angle");
64
64
  this ._axis3Angle .setUnit ("angle");
65
65
  this ._motor1Angle .setUnit ("angle");
@@ -111,7 +111,7 @@ X3DOneSidedMaterialNode .prototype = Object .assign (Object .create (X3DMaterial
111
111
  },
112
112
  set_transparent__: function ()
113
113
  {
114
- this .setTransparent (Boolean (this .transparency));
114
+ this .setTransparent (!! this .transparency);
115
115
  },
116
116
  getBaseTexture: function ()
117
117
  {
@@ -57,7 +57,8 @@ function ListenerPointSource (executionContext)
57
57
 
58
58
  this .addType (X3DConstants .ListenerPointSource);
59
59
 
60
- this .addChildObjects ("speed", new Fields .SFFloat (1));
60
+ this .addChildObjects ("loop", new Fields .SFBool (),
61
+ "speed", new Fields .SFFloat (1));
61
62
 
62
63
  this ._position .setUnit ("length");
63
64
  }
@@ -57,7 +57,8 @@ function MicrophoneSource (executionContext)
57
57
 
58
58
  this .addType (X3DConstants .MicrophoneSource);
59
59
 
60
- this .addChildObjects ("speed", new Fields .SFFloat (1));
60
+ this .addChildObjects ("loop", new Fields .SFBool (),
61
+ "speed", new Fields .SFFloat (1));
61
62
  }
62
63
 
63
64
  MicrophoneSource .prototype = Object .assign (Object .create (X3DSoundSourceNode .prototype),
@@ -57,7 +57,8 @@ function OscillatorSource (executionContext)
57
57
 
58
58
  this .addType (X3DConstants .OscillatorSource);
59
59
 
60
- this .addChildObjects ("speed", new Fields .SFFloat (1));
60
+ this .addChildObjects ("loop", new Fields .SFBool (),
61
+ "speed", new Fields .SFFloat (1));
61
62
  }
62
63
 
63
64
  OscillatorSource .prototype = Object .assign (Object .create (X3DSoundSourceNode .prototype),
@@ -57,7 +57,8 @@ function StreamAudioSource (executionContext)
57
57
 
58
58
  this .addType (X3DConstants .StreamAudioSource);
59
59
 
60
- this .addChildObjects ("speed", new Fields .SFFloat (1));
60
+ this .addChildObjects ("loop", new Fields .SFBool (),
61
+ "speed", new Fields .SFFloat (1));
61
62
  }
62
63
 
63
64
  StreamAudioSource .prototype = Object .assign (Object .create (X3DSoundSourceNode .prototype),
@@ -45,6 +45,7 @@
45
45
  *
46
46
  ******************************************************************************/
47
47
 
48
+ import Fields from "../../Fields.js";
48
49
  import X3DChildNode from "../Core/X3DChildNode.js";
49
50
  import X3DTimeDependentNode from "../Time/X3DTimeDependentNode.js";
50
51
  import X3DConstants from "../../Base/X3DConstants.js";
@@ -55,6 +56,8 @@ function X3DSoundProcessingNode (executionContext)
55
56
  X3DTimeDependentNode .call (this, executionContext);
56
57
 
57
58
  this .addType (X3DConstants .X3DSoundProcessingNode);
59
+
60
+ this .addChildObjects ("loop", new Fields .SFBool ());
58
61
  }
59
62
 
60
63
  X3DSoundProcessingNode .prototype = Object .assign (Object .create (X3DChildNode .prototype),
@@ -309,7 +309,7 @@ IsoSurfaceVolumeData .prototype = Object .assign (Object .create (X3DVolumeDataN
309
309
  // this .getBrowser () .print (fs);
310
310
 
311
311
  const vertexShader = new ShaderPart (this .getExecutionContext ());
312
- vertexShader ._url .push ("data:x-shader/x-vertex," + vs);
312
+ vertexShader ._url .push (encodeURI ("data:x-shader/x-vertex," + vs));
313
313
  vertexShader .setPrivate (true);
314
314
  vertexShader .setName ("VolumeDataVertexShader");
315
315
  vertexShader .setOptions (options);
@@ -317,7 +317,7 @@ IsoSurfaceVolumeData .prototype = Object .assign (Object .create (X3DVolumeDataN
317
317
 
318
318
  const fragmentShader = new ShaderPart (this .getExecutionContext ());
319
319
  fragmentShader ._type = "FRAGMENT";
320
- fragmentShader ._url .push ("data:x-shader/x-fragment," + fs);
320
+ fragmentShader ._url .push (encodeURI ("data:x-shader/x-fragment," + fs));
321
321
  fragmentShader .setPrivate (true);
322
322
  fragmentShader .setName ("VolumeDataFragmentShader");
323
323
  fragmentShader .setOptions (options);
@@ -222,7 +222,7 @@ SegmentedVolumeData .prototype = Object .assign (Object .create (X3DVolumeDataNo
222
222
  // this .getBrowser () .print (fs);
223
223
 
224
224
  const vertexShader = new ShaderPart (this .getExecutionContext ());
225
- vertexShader ._url .push ("data:x-shader/x-vertex," + vs);
225
+ vertexShader ._url .push (encodeURI ("data:x-shader/x-vertex," + vs));
226
226
  vertexShader .setPrivate (true);
227
227
  vertexShader .setName ("SegmentedVolumeDataVertexShader");
228
228
  vertexShader .setOptions (options);
@@ -230,7 +230,7 @@ SegmentedVolumeData .prototype = Object .assign (Object .create (X3DVolumeDataNo
230
230
 
231
231
  const fragmentShader = new ShaderPart (this .getExecutionContext ());
232
232
  fragmentShader ._type = "FRAGMENT";
233
- fragmentShader ._url .push ("data:x-shader/x-fragment," + fs);
233
+ fragmentShader ._url .push (encodeURI ("data:x-shader/x-fragment," + fs));
234
234
  fragmentShader .setPrivate (true);
235
235
  fragmentShader .setName ("SegmentedVolumeDataFragmentShader");
236
236
  fragmentShader .setOptions (options);
@@ -162,7 +162,7 @@ VolumeData .prototype = Object .assign (Object .create (X3DVolumeDataNode .proto
162
162
  // this .getBrowser () .print (fs);
163
163
 
164
164
  const vertexShader = new ShaderPart (this .getExecutionContext ());
165
- vertexShader ._url .push ("data:x-shader/x-vertex," + vs);
165
+ vertexShader ._url .push (encodeURI ("data:x-shader/x-vertex," + vs));
166
166
  vertexShader .setPrivate (true);
167
167
  vertexShader .setName ("VolumeDataVertexShader");
168
168
  vertexShader .setOptions (options);
@@ -170,7 +170,7 @@ VolumeData .prototype = Object .assign (Object .create (X3DVolumeDataNode .proto
170
170
 
171
171
  const fragmentShader = new ShaderPart (this .getExecutionContext ());
172
172
  fragmentShader ._type = "FRAGMENT";
173
- fragmentShader ._url .push ("data:x-shader/x-fragment," + fs);
173
+ fragmentShader ._url .push (encodeURI ("data:x-shader/x-fragment," + fs));
174
174
  fragmentShader .setPrivate (true);
175
175
  fragmentShader .setName ("VolumeDataFragmentShader");
176
176
  fragmentShader .setOptions (options);
@@ -113,7 +113,7 @@ const handler =
113
113
  {
114
114
  try
115
115
  {
116
- return Boolean (target .getValue () .getField (key));
116
+ return !! target .getValue () .getField (key);
117
117
  }
118
118
  catch (error)
119
119
  {
@@ -299,7 +299,7 @@ SFNode .prototype = Object .assign (Object .create (X3DField .prototype),
299
299
 
300
300
  throw new Error ("SFNode.getFieldDefinitions: node is null.");
301
301
  },
302
- addFieldCallback: function (name, string, object)
302
+ addFieldCallback: function (name, key, object)
303
303
  {
304
304
  const target = this [_target];
305
305
 
@@ -314,13 +314,13 @@ SFNode .prototype = Object .assign (Object .create (X3DField .prototype),
314
314
  const value = target .getValue ();
315
315
 
316
316
  if (value)
317
- return value .getField (name) .addFieldCallback (string, object);
317
+ return value .getField (name) .addFieldCallback (key, object);
318
318
 
319
319
  throw new Error ("SFNode.addFieldCallback: node is null.");
320
320
  }
321
321
  }
322
322
  },
323
- removeFieldCallback: function (name, string)
323
+ removeFieldCallback: function (name, key)
324
324
  {
325
325
  const target = this [_target];
326
326
 
@@ -335,7 +335,7 @@ SFNode .prototype = Object .assign (Object .create (X3DField .prototype),
335
335
  const value = target .getValue ();
336
336
 
337
337
  if (value)
338
- return value .getField (name) .removeFieldCallback (string);
338
+ return value .getField (name) .removeFieldCallback (key);
339
339
 
340
340
  throw new Error ("SFNode.removeFieldCallback: node is null.");
341
341
  }
@@ -63,8 +63,7 @@ import SFVec3 from "./Fields/SFVec3.js";
63
63
  import SFVec4 from "./Fields/SFVec4.js";
64
64
  import ArrayFields from "./Fields/ArrayFields.js";
65
65
 
66
- const Fields = Object .assign (
67
- {
66
+ const Fields = {
68
67
  SFBool: SFBool,
69
68
  SFColor: SFColor,
70
69
  SFColorRGBA: SFColorRGBA,
@@ -86,8 +85,10 @@ const Fields = Object .assign (
86
85
  SFVec3f: SFVec3 .SFVec3f,
87
86
  SFVec4d: SFVec4 .SFVec4d,
88
87
  SFVec4f: SFVec4 .SFVec4f,
88
+
89
89
  VrmlMatrix: SFMatrix4 .VrmlMatrix,
90
- },
91
- ArrayFields);
90
+
91
+ ... ArrayFields
92
+ };
92
93
 
93
94
  export default Fields;
@@ -88,7 +88,7 @@ X3DParser .prototype = {
88
88
  },
89
89
  isInsideProtoDefinition: function ()
90
90
  {
91
- return Boolean (this .prototypes .length);
91
+ return !! this .prototypes .length;
92
92
  },
93
93
  loadComponents: function ()
94
94
  {
@@ -76,10 +76,7 @@ class X3DCanvasElement extends HTMLElement
76
76
 
77
77
  shadow .appendChild (link);
78
78
 
79
- Object .defineProperty (this, "browser",
80
- {
81
- value: new X3DBrowser (this),
82
- })
79
+ new X3DBrowser (this)
83
80
  }
84
81
 
85
82
  connectedCallback ()
@@ -101,6 +98,9 @@ class X3DCanvasElement extends HTMLElement
101
98
  "debug",
102
99
  "multisampling",
103
100
  "notifications",
101
+ "onerror",
102
+ "oninitialized",
103
+ "onshutdown",
104
104
  "splashScreen",
105
105
  "splashscreen",
106
106
  "src",
package/src/x_ite.html CHANGED
@@ -402,7 +402,7 @@ main.color-management #browser {
402
402
  <main>
403
403
  <div>
404
404
  <form action="javascript:alert('form submitted')">
405
- <x3d-canvas id="browser" splashScreen="true" contextMenu="true" cache="false" debug="true" preserveDrawingBuffer="false" onload="$('#file') .addClass ('loaded')" x-baseURL="tests/" x-src="lines.x3d">
405
+ <x3d-canvas id="browser" splashScreen="true" contextMenu="true" cache="false" debug="true" preserveDrawingBuffer="false" oninitialized="$('#file') .addClass ('loaded')" x-baseURL="tests/" x-src="lines.x3d">
406
406
  <p class="fallback">
407
407
  Sorry,<br/>
408
408
  it wasn't me!<br/>
package/x_ite.min.html CHANGED
@@ -383,7 +383,7 @@ main.color-management #browser {
383
383
  <main>
384
384
  <div>
385
385
  <form action="javascript:alert('form submitted')">
386
- <x3d-canvas id="browser" splashScreen="true" contextMenu="true" cache="false" debug="true" preserveDrawingBuffer="false" onload="$('#file') .addClass ('loaded')" x-baseURL="src/tests/" x-src="lines.x3d">
386
+ <x3d-canvas id="browser" splashScreen="true" contextMenu="true" cache="false" debug="true" preserveDrawingBuffer="false" oninitialized="$('#file') .addClass ('loaded')" x-baseURL="src/tests/" x-src="lines.x3d">
387
387
  <p class="fallback">
388
388
  Sorry,<br/>
389
389
  it wasn't me!<br/>