x_ite 8.7.1 → 8.7.3

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 (86) hide show
  1. package/.vscode/tasks.json +0 -18
  2. package/Makefile +4 -1
  3. package/build/bin/bump.pl +16 -0
  4. package/build/bin/version.pl +32 -13
  5. package/dist/LICENSE.md +2 -16
  6. package/dist/assets/components/Annotation.js +13 -13
  7. package/dist/assets/components/Annotation.min.js +1 -1
  8. package/dist/assets/components/CADGeometry.js +13 -13
  9. package/dist/assets/components/CADGeometry.min.js +1 -1
  10. package/dist/assets/components/CubeMapTexturing.js +25 -25
  11. package/dist/assets/components/CubeMapTexturing.min.js +1 -1
  12. package/dist/assets/components/DIS.js +13 -13
  13. package/dist/assets/components/DIS.min.js +1 -1
  14. package/dist/assets/components/EventUtilities.js +9 -9
  15. package/dist/assets/components/EventUtilities.min.js +1 -1
  16. package/dist/assets/components/Geometry2D.js +19 -19
  17. package/dist/assets/components/Geometry2D.min.js +1 -1
  18. package/dist/assets/components/Geospatial.js +33 -33
  19. package/dist/assets/components/Geospatial.min.js +1 -1
  20. package/dist/assets/components/HAnim.js +18 -18
  21. package/dist/assets/components/HAnim.min.js +1 -1
  22. package/dist/assets/components/KeyDeviceSensor.js +8 -8
  23. package/dist/assets/components/KeyDeviceSensor.min.js +1 -1
  24. package/dist/assets/components/Layout.js +27 -27
  25. package/dist/assets/components/Layout.min.js +1 -1
  26. package/dist/assets/components/NURBS.js +24 -24
  27. package/dist/assets/components/NURBS.min.js +1 -1
  28. package/dist/assets/components/ParticleSystems.js +22 -22
  29. package/dist/assets/components/ParticleSystems.min.js +1 -1
  30. package/dist/assets/components/Picking.js +18 -18
  31. package/dist/assets/components/Picking.min.js +1 -1
  32. package/dist/assets/components/RigidBodyPhysics.js +18 -18
  33. package/dist/assets/components/RigidBodyPhysics.min.js +1 -1
  34. package/dist/assets/components/Scripting.js +28 -28
  35. package/dist/assets/components/Scripting.min.js +1 -1
  36. package/dist/assets/components/Text.js +24 -24
  37. package/dist/assets/components/Text.min.js +1 -1
  38. package/dist/assets/components/TextureProjector.js +14 -14
  39. package/dist/assets/components/TextureProjector.min.js +1 -1
  40. package/dist/assets/components/Texturing3D.js +30 -30
  41. package/dist/assets/components/Texturing3D.min.js +1 -1
  42. package/dist/assets/components/VolumeRendering.js +19 -19
  43. package/dist/assets/components/VolumeRendering.min.js +1 -1
  44. package/dist/assets/components/X_ITE.js +9 -9
  45. package/dist/assets/components/X_ITE.min.js +1 -1
  46. package/dist/x_ite.css +1 -1
  47. package/dist/x_ite.js +1265 -1611
  48. package/dist/x_ite.min.js +1 -1
  49. package/dist/x_ite.zip +0 -0
  50. package/docs/_config.yml +2 -2
  51. package/docs/_posts/getting-started.md +2 -0
  52. package/package.json +2 -2
  53. package/src/assets/shaders/webgl1/include/Fragment.glsl.js +4 -2
  54. package/src/assets/shaders/webgl2/include/Fragment.glsl.js +4 -2
  55. package/src/bookmarks.js +3 -2
  56. package/src/standard/Math/Algorithm.js +18 -0
  57. package/src/x_ite/Base/X3DArrayField.js +19 -7
  58. package/src/x_ite/Base/X3DObject.js +5 -0
  59. package/src/x_ite/Base/X3DObjectArrayField.js +20 -21
  60. package/src/x_ite/Base/X3DTypedArrayField.js +86 -178
  61. package/src/x_ite/Browser/Core/BrowserOptions.js +2 -2
  62. package/src/x_ite/Browser/Core/RenderingProperties.js +1 -1
  63. package/src/x_ite/Browser/Core/X3DCoreContext.js +22 -6
  64. package/src/x_ite/Browser/DOMIntegration.js +5 -5
  65. package/src/x_ite/Browser/VERSION.js +1 -1
  66. package/src/x_ite/Browser/X3DBrowser.js +5 -7
  67. package/src/x_ite/Components/Core/X3DNode.js +0 -10
  68. package/src/x_ite/Configuration/ComponentInfo.js +2 -3
  69. package/src/x_ite/Execution/X3DScene.js +1 -1
  70. package/src/x_ite/Fields/ArrayFields.js +13 -9
  71. package/src/x_ite/Fields/SFColor.js +4 -4
  72. package/src/x_ite/Fields/SFDouble.js +2 -2
  73. package/src/x_ite/Fields/SFFloat.js +2 -2
  74. package/src/x_ite/Fields/SFImage.js +11 -2
  75. package/src/x_ite/Fields/SFMatrixPrototypeTemplate.js +1 -1
  76. package/src/x_ite/Fields/SFNode.js +4 -0
  77. package/src/x_ite/Fields/SFRotation.js +8 -8
  78. package/src/x_ite/Fields/SFTime.js +1 -1
  79. package/src/x_ite/Fields/SFVecPrototypeTemplate.js +1 -1
  80. package/src/x_ite/InputOutput/FileLoader.js +1 -1
  81. package/src/x_ite/InputOutput/Generator.js +7 -7
  82. package/src/x_ite/Parser/JSONParser.js +4 -23
  83. package/src/x_ite/Parser/XMLParser.js +5 -11
  84. package/src/x_ite/X3D.js +1 -1
  85. package/src/x_ite/X3DCanvasElement.js +0 -24
  86. package/src/x_ite.js +1 -1
@@ -56,10 +56,9 @@ function ComponentInfo ({ name, level, title, providerUrl, external = false, dep
56
56
  level: { value: level, enumerable: true },
57
57
  title: { value: title, enumerable: true },
58
58
  providerUrl: { value: providerUrl || URLs .getProviderUrl (external && name), enumerable: true },
59
+ external: { value: external },
60
+ dependencies: { value: dependencies },
59
61
  });
60
-
61
- $.data (this, "external", external)
62
- $.data (this, "dependencies", dependencies)
63
62
  }
64
63
 
65
64
  ComponentInfo .prototype = Object .assign (Object .create (X3DObject .prototype),
@@ -671,7 +671,7 @@ X3DScene .prototype = Object .assign (Object .create (X3DExecutionContext .proto
671
671
  generator .string += ':';
672
672
  generator .string += generator .TidySpace ();
673
673
  generator .string += '"';
674
- generator .string += this .getSpecificationVersion ();
674
+ generator .string += LATEST_VERSION;
675
675
  generator .string += '"';
676
676
  generator .string += ',';
677
677
  generator .string += generator .TidyBreak ();
@@ -83,9 +83,9 @@ const
83
83
 
84
84
  const _cloneCount = Symbol ();
85
85
 
86
- function MFNode (value)
86
+ function MFNode (... args)
87
87
  {
88
- return X3DObjectArrayField .call (this, arguments);
88
+ return X3DObjectArrayField .call (this, args);
89
89
  }
90
90
 
91
91
  MFNode .prototype = Object .assign (Object .create (X3DObjectArrayField .prototype),
@@ -419,9 +419,9 @@ MFNode .prototype = Object .assign (Object .create (X3DObjectArrayField .prototy
419
419
  for (const key of Reflect .ownKeys (MFNode .prototype))
420
420
  Object .defineProperty (MFNode .prototype, key, { enumerable: false });
421
421
 
422
- function MFString (value)
422
+ function MFString (... args)
423
423
  {
424
- return X3DObjectArrayField .call (this, arguments);
424
+ return X3DObjectArrayField .call (this, args);
425
425
  }
426
426
 
427
427
  MFString .prototype = Object .assign (Object .create (X3DObjectArrayField .prototype),
@@ -480,11 +480,15 @@ MFString .prototype = Object .assign (Object .create (X3DObjectArrayField .proto
480
480
  for (const key of Reflect .ownKeys (MFString .prototype))
481
481
  Object .defineProperty (MFString .prototype, key, { enumerable: false });
482
482
 
483
+ /**
484
+ * MFImage
485
+ */
486
+
483
487
  function MFImageTemplate (TypeName, Type, SingleType, ValueType, ArrayType, Components)
484
488
  {
485
- function ArrayField (value)
489
+ function ArrayField (... args)
486
490
  {
487
- return X3DObjectArrayField .call (this, arguments);
491
+ return X3DObjectArrayField .call (this, args);
488
492
  }
489
493
 
490
494
  ArrayField .prototype = Object .assign (Object .create (X3DObjectArrayField .prototype),
@@ -524,9 +528,9 @@ function MFImageTemplate (TypeName, Type, SingleType, ValueType, ArrayType, Comp
524
528
 
525
529
  function TypedArrayTemplate (TypeName, Type, SingleType, ValueType, ArrayType, Components)
526
530
  {
527
- function ArrayField (value)
531
+ function ArrayField (... args)
528
532
  {
529
- return X3DTypedArrayField .call (this, arguments);
533
+ return X3DTypedArrayField .call (this, args);
530
534
  }
531
535
 
532
536
  ArrayField .prototype = Object .assign (Object .create (X3DTypedArrayField .prototype),
@@ -564,7 +568,7 @@ function TypedArrayTemplate (TypeName, Type, SingleType, ValueType, ArrayType, C
564
568
  return ArrayField;
565
569
  }
566
570
 
567
- function Value (value) { return value; }
571
+ const Value = (value) => value;
568
572
 
569
573
  const ArrayFields =
570
574
  {
@@ -134,11 +134,11 @@ SFColor .prototype = Object .assign (Object .create (X3DField .prototype),
134
134
 
135
135
  for (let i = 0; i < last; ++ i)
136
136
  {
137
- generator .string += generator .Precision (value [i]);
137
+ generator .string += generator .FloatFormat (value [i]);
138
138
  generator .string += generator .TidySpace ();
139
139
  }
140
140
 
141
- generator .string += generator .Precision (value [last]);
141
+ generator .string += generator .FloatFormat (value [last]);
142
142
  },
143
143
  toVRMLStream: function (generator)
144
144
  {
@@ -166,12 +166,12 @@ SFColor .prototype = Object .assign (Object .create (X3DField .prototype),
166
166
 
167
167
  for (let i = 0; i < last; ++ i)
168
168
  {
169
- generator .string += generator .JSONNumber (generator .Precision (value [i]));
169
+ generator .string += generator .JSONNumber (generator .FloatFormat (value [i]));
170
170
  generator .string += ',';
171
171
  generator .string += generator .TidySpace ();
172
172
  }
173
173
 
174
- generator .string += generator .JSONNumber (generator .Precision (value [last]));
174
+ generator .string += generator .JSONNumber (generator .FloatFormat (value [last]));
175
175
  },
176
176
  });
177
177
 
@@ -81,7 +81,7 @@ SFDouble .prototype = Object .assign (Object .create (X3DField .prototype),
81
81
  {
82
82
  const category = generator .Unit (this .getUnit ());
83
83
 
84
- generator .string += generator .DoublePrecision (generator .ToUnit (category, this .getValue ()));
84
+ generator .string += generator .DoubleFormat (generator .ToUnit (category, this .getValue ()));
85
85
  },
86
86
  toVRMLStream: function (generator)
87
87
  {
@@ -99,7 +99,7 @@ SFDouble .prototype = Object .assign (Object .create (X3DField .prototype),
99
99
  {
100
100
  const category = generator .Unit (this .getUnit ());
101
101
 
102
- generator .string += generator .JSONNumber (generator .DoublePrecision (generator .ToUnit (category, this .getValue ())));
102
+ generator .string += generator .JSONNumber (generator .DoubleFormat (generator .ToUnit (category, this .getValue ())));
103
103
  },
104
104
  });
105
105
 
@@ -81,7 +81,7 @@ SFFloat .prototype = Object .assign (Object .create (X3DField .prototype),
81
81
  {
82
82
  const category = generator .Unit (this .getUnit ());
83
83
 
84
- generator .string += generator .Precision (generator .ToUnit (category, this .getValue ()));
84
+ generator .string += generator .FloatFormat (generator .ToUnit (category, this .getValue ()));
85
85
  },
86
86
  toVRMLStream: function (generator)
87
87
  {
@@ -99,7 +99,7 @@ SFFloat .prototype = Object .assign (Object .create (X3DField .prototype),
99
99
  {
100
100
  const category = generator .Unit (this .getUnit ());
101
101
 
102
- generator .string += generator .JSONNumber (generator .Precision (generator .ToUnit (category, this .getValue ())));
102
+ generator .string += generator .JSONNumber (generator .FloatFormat (generator .ToUnit (category, this .getValue ())));
103
103
  },
104
104
  });
105
105
 
@@ -134,6 +134,8 @@ Image .prototype =
134
134
  * SFImage
135
135
  */
136
136
 
137
+ const _set_size = Symbol ();
138
+
137
139
  function SFImage (width, height, comp, array)
138
140
  {
139
141
  const MFInt32 = ArrayFields .MFInt32;
@@ -146,16 +148,23 @@ function SFImage (width, height, comp, array)
146
148
  X3DField .call (this, new Image (0, 0, 0, new MFInt32 ()));
147
149
 
148
150
  this .getValue () .getArray () .addParent (this);
149
- this .addInterest ("set_size__", this);
151
+ this .addInterest (_set_size, this);
150
152
  }
151
153
 
152
154
  SFImage .prototype = Object .assign (Object .create (X3DField .prototype),
153
155
  {
154
156
  constructor: SFImage,
155
- set_size__: function ()
157
+ [_set_size]: function ()
156
158
  {
157
159
  this .getValue () .getArray () .length = this .width * this .height;
158
160
  },
161
+ [Symbol .iterator]: function* ()
162
+ {
163
+ yield this .width;
164
+ yield this .height;
165
+ yield this .comp;
166
+ yield this .array;
167
+ },
159
168
  copy: function ()
160
169
  {
161
170
  return new SFImage (this .getValue () .copy ());
@@ -49,7 +49,7 @@ import X3DField from "../Base/X3DField.js";
49
49
 
50
50
  function SFMatrixPrototypeTemplate (TypeName, Type, Matrix, SFVec, double)
51
51
  {
52
- const _formatter = double ? "DoublePrecision" : "Precision";
52
+ const _formatter = double ? "DoubleFormat" : "FloatFormat";
53
53
 
54
54
  return Object .assign (Object .create (X3DField .prototype),
55
55
  {
@@ -369,6 +369,10 @@ SFNode .prototype = Object .assign (Object .create (X3DField .prototype),
369
369
  {
370
370
  this [_target] .getValue () .setUserData (key, value);
371
371
  },
372
+ removeNodeUserData: function (key)
373
+ {
374
+ this [_target] .getValue () .removeUserData (key);
375
+ },
372
376
  valueOf: function ()
373
377
  {
374
378
  const
@@ -155,13 +155,13 @@ SFRotation .prototype = Object .assign (Object .create (X3DField .prototype),
155
155
  {
156
156
  const rotation = this .getValue ();
157
157
 
158
- generator .string += generator .DoublePrecision (rotation .x);
158
+ generator .string += generator .DoubleFormat (rotation .x);
159
159
  generator .string += generator .TidySpace ();
160
- generator .string += generator .DoublePrecision (rotation .y);
160
+ generator .string += generator .DoubleFormat (rotation .y);
161
161
  generator .string += generator .TidySpace ();
162
- generator .string += generator .DoublePrecision (rotation .z);
162
+ generator .string += generator .DoubleFormat (rotation .z);
163
163
  generator .string += generator .TidySpace ();
164
- generator .string += generator .DoublePrecision (generator .ToUnit ("angle", rotation .angle));
164
+ generator .string += generator .DoubleFormat (generator .ToUnit ("angle", rotation .angle));
165
165
  },
166
166
  toVRMLStream: function (generator)
167
167
  {
@@ -185,16 +185,16 @@ SFRotation .prototype = Object .assign (Object .create (X3DField .prototype),
185
185
  {
186
186
  const rotation = this .getValue ();
187
187
 
188
- generator .string += generator .JSONNumber (generator .DoublePrecision (rotation .x));
188
+ generator .string += generator .JSONNumber (generator .DoubleFormat (rotation .x));
189
189
  generator .string += ',';
190
190
  generator .string += generator .TidySpace ();
191
- generator .string += generator .JSONNumber (generator .DoublePrecision (rotation .y));
191
+ generator .string += generator .JSONNumber (generator .DoubleFormat (rotation .y));
192
192
  generator .string += ',';
193
193
  generator .string += generator .TidySpace ();
194
- generator .string += generator .JSONNumber (generator .DoublePrecision (rotation .z));
194
+ generator .string += generator .JSONNumber (generator .DoubleFormat (rotation .z));
195
195
  generator .string += ',';
196
196
  generator .string += generator .TidySpace ();
197
- generator .string += generator .JSONNumber (generator .DoublePrecision (generator .ToUnit ("angle", rotation .angle)));
197
+ generator .string += generator .JSONNumber (generator .DoubleFormat (generator .ToUnit ("angle", rotation .angle)));
198
198
  },
199
199
  });
200
200
 
@@ -95,7 +95,7 @@ SFTime .prototype = Object .assign (Object .create (X3DField .prototype),
95
95
  },
96
96
  toJSONStreamValue: function (generator)
97
97
  {
98
- generator .string += generator .JSONNumber (generator .DoublePrecision (this .getValue ()));
98
+ generator .string += generator .JSONNumber (generator .DoubleFormat (this .getValue ()));
99
99
  },
100
100
  });
101
101
 
@@ -49,7 +49,7 @@ import X3DField from "../Base/X3DField.js";
49
49
 
50
50
  function SFVecPrototypeTemplate (TypeName, Type, ValueType, double)
51
51
  {
52
- const _formatter = double ? "DoublePrecision" : "Precision";
52
+ const _formatter = double ? "DoubleFormat" : "FloatFormat";
53
53
 
54
54
  return Object .assign (Object .create (X3DField .prototype),
55
55
  {
@@ -243,7 +243,7 @@ FileLoader .prototype = Object .assign (Object .create (X3DObject .prototype),
243
243
  if (result [3] === "base64")
244
244
  data = atob (data);
245
245
  else
246
- data = decodeURIComponent (data);
246
+ data = unescape (data); // Don't use decodeURIComponent!
247
247
 
248
248
  this .callback (data);
249
249
  return;
@@ -231,23 +231,23 @@ Generator .prototype =
231
231
 
232
232
  return "";
233
233
  },
234
- Precision: function (value)
234
+ FloatFormat: function (value)
235
235
  {
236
236
  if (Number .isFinite (value))
237
237
  {
238
238
  const exponent = Math .log10 (Math .abs (value));
239
239
 
240
240
  if ((this .precision > exponent && exponent >= -4) || value === 0)
241
- return this .floatFormat (Math .fround (value));
241
+ return this .floatFormat (value);
242
242
 
243
- return this .floatExponentialFormat (Math .fround (value)) .toLowerCase ();
243
+ return this .floatExponentialFormat (value) .toLowerCase ();
244
244
  }
245
245
  else
246
246
  {
247
247
  return String (value);
248
248
  }
249
249
  },
250
- DoublePrecision: function (value)
250
+ DoubleFormat: function (value)
251
251
  {
252
252
  if (Number .isFinite (value))
253
253
  {
@@ -267,13 +267,13 @@ Generator .prototype =
267
267
  {
268
268
  this .executionContextStack .push (executionContext);
269
269
 
270
- if (! this .names .has (executionContext))
270
+ if (!this .names .has (executionContext))
271
271
  this .names .set (executionContext, Object .assign (new Set (), { index: 0 }));
272
272
 
273
- if (! this .importedNodesIndex .has (executionContext))
273
+ if (!this .importedNodesIndex .has (executionContext))
274
274
  this .importedNodesIndex .set (executionContext, new Set ());
275
275
 
276
- if (! this .exportedNodesIndex .has (executionContext))
276
+ if (!this .exportedNodesIndex .has (executionContext))
277
277
  this .exportedNodesIndex .set (executionContext, new Set ());
278
278
  },
279
279
  PopExecutionContext: function ()
@@ -167,7 +167,7 @@ JSONParser .prototype = Object .assign (Object .create (X3DParser .prototype),
167
167
  {
168
168
  console .error ("Trouble creating element for", key);
169
169
 
170
- child = document .createElement(key);
170
+ child = document .createElement (key);
171
171
  }
172
172
  }
173
173
 
@@ -178,28 +178,9 @@ JSONParser .prototype = Object .assign (Object .create (X3DParser .prototype),
178
178
  },
179
179
  createCDATA: function (document, element, str)
180
180
  {
181
- /**
182
- * a way to create a CDATA function or script in HTML, by using a DOM parser.
183
- */
184
-
185
- let y = str .trim ()
186
- .replace (/\\"/g, "\\\"")
187
- .replace (/&lt;/g, "<")
188
- .replace (/&gt;/g, ">")
189
- .replace (/&amp;/g, "&");
190
-
191
- do
192
- {
193
- str = y;
194
- y = str .replace (/'([^'\r\n]*)\n([^']*)'/g, "'$1\\n$2'");
195
- }
196
- while (y !== str);
197
-
198
181
  const
199
- domParser = new DOMParser(),
200
- cdataStr = "<script> <![CDATA[ " + y + " ]]> </script>", // has to be wrapped into an element
201
- scriptDoc = domParser .parseFromString (cdataStr, "application/xml"),
202
- cdata = scriptDoc .children [0] .childNodes [1]; // space after script is childNode[0]
182
+ docu = new DOMParser () .parseFromString ("<xml></xml>", "application/xml"),
183
+ cdata = docu .createCDATASection (str);
203
184
 
204
185
  element .appendChild (cdata);
205
186
  },
@@ -230,7 +211,7 @@ JSONParser .prototype = Object .assign (Object .create (X3DParser .prototype),
230
211
  }
231
212
  else if (key === "#sourceCode" || key === "@sourceCode" || key === "#sourceText")
232
213
  {
233
- this .createCDATA (document, element, object [key] .join ("\r\n") + "\r\n");
214
+ this .createCDATA (document, element, object [key] .join ("\n"));
234
215
  }
235
216
  else
236
217
  {
@@ -47,6 +47,7 @@
47
47
 
48
48
  import X3DField from "../Base/X3DField.js";
49
49
  import X3DBaseNode from "../Base/X3DBaseNode.js";
50
+ import X3DNode from "../Components/Core/X3DNode.js";
50
51
  import X3DPrototypeInstance from "../Components/Core/X3DPrototypeInstance.js";
51
52
  import Fields from "../Fields.js";
52
53
  import X3DParser from "./X3DParser.js";
@@ -667,7 +668,7 @@ XMLParser .prototype = Object .assign (Object .create (X3DParser .prototype),
667
668
  node = this .getParent (),
668
669
  proto = this .getPrototype ();
669
670
 
670
- if (! (node instanceof X3DBaseNode))
671
+ if (! (node instanceof X3DNode))
671
672
  return;
672
673
 
673
674
  var
@@ -932,17 +933,10 @@ XMLParser .prototype = Object .assign (Object .create (X3DParser .prototype),
932
933
  if (this .getParents () .length === 0)
933
934
  return;
934
935
 
935
- var node = this .getParent ();
936
-
937
- if (node instanceof X3DBaseNode)
938
- {
939
- var field = node .getSourceText ();
936
+ const node = this .getParent ();
940
937
 
941
- if (field)
942
- {
943
- field .push (xmlElement .data);
944
- }
945
- }
938
+ if (node instanceof X3DNode)
939
+ node .getSourceText () ?.push (xmlElement .data);
946
940
  },
947
941
  useAttribute: function (xmlElement)
948
942
  {
package/src/x_ite/X3D.js CHANGED
@@ -163,7 +163,7 @@ Object .assign (X3D,
163
163
  })(),
164
164
  getBrowser: function (element)
165
165
  {
166
- return $(element || "x3d-canvas, X3DCanvas") .data ("browser");
166
+ return $(element || "x3d-canvas, X3DCanvas") .prop ("browser");
167
167
  },
168
168
  createBrowser: function (url, parameter)
169
169
  {
@@ -46,36 +46,13 @@
46
46
  ******************************************************************************/
47
47
 
48
48
  import X3DBrowser from "./Browser/X3DBrowser.js";
49
- import URLs from "./Browser/Networking/URLs.js";
50
49
 
51
50
  class X3DCanvasElement extends HTMLElement
52
51
  {
53
- static define ()
54
- {
55
- customElements .define ("x3d-canvas", X3DCanvasElement);
56
- }
57
-
58
52
  constructor ()
59
53
  {
60
54
  super ();
61
55
 
62
- const
63
- shadow = this .attachShadow ({ mode: "open", delegatesFocus: true }),
64
- link = document .createElement ("link");
65
-
66
- $(this) .data ("shadow", $(shadow));
67
- $(this) .data ("loaded", new Promise (function (resolve, reject)
68
- {
69
- link .onload = resolve;
70
- link .onerror = reject;
71
- }));
72
-
73
- link .setAttribute ("rel", "stylesheet");
74
- link .setAttribute ("type", "text/css");
75
- link .setAttribute ("href", new URL ("x_ite.css", URLs .getScriptUrl ()) .href);
76
-
77
- shadow .appendChild (link);
78
-
79
56
  new X3DBrowser (this)
80
57
  }
81
58
 
@@ -98,7 +75,6 @@ class X3DCanvasElement extends HTMLElement
98
75
  "debug",
99
76
  "multisampling",
100
77
  "notifications",
101
- "onerror",
102
78
  "oninitialized",
103
79
  "onshutdown",
104
80
  "splashScreen",
package/src/x_ite.js CHANGED
@@ -53,7 +53,7 @@ import shim from "./shim.js";
53
53
 
54
54
  window [Symbol .for ("X_ITE.X3D")] = X3D;
55
55
 
56
- X3DCanvasElement .define ();
56
+ customElements .define ("x3d-canvas", X3DCanvasElement);
57
57
 
58
58
  X3D ();
59
59