x_ite 10.5.7 → 10.5.9

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 (50) hide show
  1. package/README.md +4 -4
  2. package/dist/assets/components/AnnotationComponent.js +2 -2
  3. package/dist/assets/components/AnnotationComponent.min.js +2 -2
  4. package/dist/assets/components/CADGeometryComponent.js +2 -2
  5. package/dist/assets/components/CADGeometryComponent.min.js +2 -2
  6. package/dist/assets/components/CubeMapTexturingComponent.js +3 -3
  7. package/dist/assets/components/CubeMapTexturingComponent.min.js +2 -2
  8. package/dist/assets/components/DISComponent.js +2 -2
  9. package/dist/assets/components/DISComponent.min.js +2 -2
  10. package/dist/assets/components/EventUtilitiesComponent.js +2 -2
  11. package/dist/assets/components/EventUtilitiesComponent.min.js +2 -2
  12. package/dist/assets/components/Geometry2DComponent.js +2 -2
  13. package/dist/assets/components/Geometry2DComponent.min.js +2 -2
  14. package/dist/assets/components/GeospatialComponent.js +2 -2
  15. package/dist/assets/components/GeospatialComponent.min.js +2 -2
  16. package/dist/assets/components/HAnimComponent.js +373 -114
  17. package/dist/assets/components/HAnimComponent.min.js +2 -2
  18. package/dist/assets/components/KeyDeviceSensorComponent.js +2 -2
  19. package/dist/assets/components/KeyDeviceSensorComponent.min.js +2 -2
  20. package/dist/assets/components/LayoutComponent.js +2 -2
  21. package/dist/assets/components/LayoutComponent.min.js +2 -2
  22. package/dist/assets/components/NURBSComponent.js +2 -2
  23. package/dist/assets/components/NURBSComponent.min.js +2 -2
  24. package/dist/assets/components/ParticleSystemsComponent.js +2 -2
  25. package/dist/assets/components/ParticleSystemsComponent.min.js +2 -2
  26. package/dist/assets/components/PickingComponent.js +2 -2
  27. package/dist/assets/components/PickingComponent.min.js +2 -2
  28. package/dist/assets/components/RigidBodyPhysicsComponent.js +2 -2
  29. package/dist/assets/components/RigidBodyPhysicsComponent.min.js +2 -2
  30. package/dist/assets/components/ScriptingComponent.js +2 -2
  31. package/dist/assets/components/ScriptingComponent.min.js +2 -2
  32. package/dist/assets/components/TextComponent.js +4 -4
  33. package/dist/assets/components/TextComponent.min.js +2 -2
  34. package/dist/assets/components/TextureProjectionComponent.js +2 -2
  35. package/dist/assets/components/TextureProjectionComponent.min.js +2 -2
  36. package/dist/assets/components/Texturing3DComponent.js +11 -11
  37. package/dist/assets/components/Texturing3DComponent.min.js +2 -2
  38. package/dist/assets/components/VolumeRenderingComponent.js +2 -2
  39. package/dist/assets/components/VolumeRenderingComponent.min.js +2 -2
  40. package/dist/assets/components/X_ITEComponent.js +2 -2
  41. package/dist/assets/components/X_ITEComponent.min.js +2 -2
  42. package/dist/example.html +1 -1
  43. package/dist/x_ite.css +1 -1
  44. package/dist/x_ite.d.ts +13 -0
  45. package/dist/x_ite.js +860 -423
  46. package/dist/x_ite.min.js +2 -2
  47. package/dist/x_ite.min.mjs +2 -2
  48. package/dist/x_ite.mjs +860 -423
  49. package/dist/x_ite.zip +0 -0
  50. package/package.json +2 -2
package/dist/x_ite.js CHANGED
@@ -1,4 +1,4 @@
1
- /* X_ITE v10.5.7 */
1
+ /* X_ITE v10.5.9 */
2
2
  (function webpackUniversalModuleDefinition(root, factory) {
3
3
  if(typeof exports === 'object' && typeof module === 'object')
4
4
  module.exports = factory();
@@ -12,10 +12,10 @@
12
12
  return /******/ (() => { // webpackBootstrap
13
13
  /******/ var __webpack_modules__ = ({
14
14
 
15
- /***/ 690:
15
+ /***/ 58:
16
16
  /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
17
17
 
18
- /* provided dependency */ var jQuery = __webpack_require__(58);
18
+ /* provided dependency */ var jQuery = __webpack_require__(394);
19
19
  /**
20
20
  * @preserve jquery.fullscreen 1.1.5
21
21
  * https://github.com/code-lts/jquery-fullscreen-plugin
@@ -211,7 +211,7 @@ installFullScreenHandlers();
211
211
 
212
212
  /***/ }),
213
213
 
214
- /***/ 880:
214
+ /***/ 576:
215
215
  /***/ ((module, exports, __webpack_require__) => {
216
216
 
217
217
  var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!
@@ -225,7 +225,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_
225
225
  (function (factory) {
226
226
  if ( true ) {
227
227
  // AMD. Register as an anonymous module.
228
- !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(58)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),
228
+ !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(394)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),
229
229
  __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?
230
230
  (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),
231
231
  __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
@@ -436,7 +436,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_
436
436
 
437
437
  /***/ }),
438
438
 
439
- /***/ 58:
439
+ /***/ 394:
440
440
  /***/ (function(module, exports) {
441
441
 
442
442
  var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!
@@ -11160,7 +11160,7 @@ return jQuery;
11160
11160
 
11161
11161
  /***/ }),
11162
11162
 
11163
- /***/ 499:
11163
+ /***/ 787:
11164
11164
  /***/ ((module) => {
11165
11165
 
11166
11166
  /**
@@ -15939,7 +15939,7 @@ if (true) {
15939
15939
 
15940
15940
  /***/ }),
15941
15941
 
15942
- /***/ 642:
15942
+ /***/ 514:
15943
15943
  /***/ (function(__unused_webpack_module, exports) {
15944
15944
 
15945
15945
 
@@ -19184,7 +19184,7 @@ if (true) {
19184
19184
 
19185
19185
  /***/ }),
19186
19186
 
19187
- /***/ 85:
19187
+ /***/ 485:
19188
19188
  /***/ (function(module, exports) {
19189
19189
 
19190
19190
  var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*
@@ -20311,7 +20311,7 @@ Object .defineProperty (Namespace, "add",
20311
20311
  return module;
20312
20312
  }
20313
20313
 
20314
- const X3D = window [Symbol .for ("X_ITE.X3D-10.5.7")];
20314
+ const X3D = window [Symbol .for ("X_ITE.X3D-10.5.9")];
20315
20315
 
20316
20316
  if (X3D)
20317
20317
  X3D [name] = module;
@@ -23449,7 +23449,7 @@ Object .assign (Color3 .prototype,
23449
23449
  this [_b] = color [_b];
23450
23450
  return this;
23451
23451
  },
23452
- set (r, g, b)
23452
+ set (r = 0, g = 0, b = 0)
23453
23453
  {
23454
23454
  this [_r] = Math .max (r, 0);
23455
23455
  this [_g] = Math .max (g, 0);
@@ -23986,7 +23986,7 @@ Object .assign (Color4 .prototype,
23986
23986
  this [_a] = color [_a];
23987
23987
  return this;
23988
23988
  },
23989
- set (r, g, b, a)
23989
+ set (r = 0, g = 0, b = 0, a = 0)
23990
23990
  {
23991
23991
  this [Color4_r] = Math .max (r, 0);
23992
23992
  this [Color4_g] = Math .max (g, 0);
@@ -24822,6 +24822,18 @@ function SFMatrixPrototypeTemplate (Constructor, TypeName, Matrix, double, prope
24822
24822
  {
24823
24823
  return new (vector .constructor) (this .getValue () .multMatrixDir (vector .getValue () .copy ()));
24824
24824
  },
24825
+ translate (translation)
24826
+ {
24827
+ return new (this .constructor) (this .getValue () .copy () .translate (translation .getValue ()));
24828
+ },
24829
+ rotate (rotation)
24830
+ {
24831
+ return new (this .constructor) (this .getValue () .copy () .rotate (rotation .getValue ()));
24832
+ },
24833
+ scale (scale)
24834
+ {
24835
+ return new (this .constructor) (this .getValue () .copy () .scale (scale .getValue ()));
24836
+ },
24825
24837
  toStream (generator)
24826
24838
  {
24827
24839
  const
@@ -24972,22 +24984,22 @@ Object .assign (Vector2 .prototype,
24972
24984
  copy .y = this .y;
24973
24985
  return copy;
24974
24986
  },
24975
- assign (vector)
24987
+ assign ({ x, y })
24976
24988
  {
24977
- this .x = vector .x;
24978
- this .y = vector .y;
24989
+ this .x = x;
24990
+ this .y = y;
24979
24991
  return this;
24980
24992
  },
24981
- set (x, y)
24993
+ set (x = 0, y = 0)
24982
24994
  {
24983
24995
  this .x = x;
24984
24996
  this .y = y;
24985
24997
  return this;
24986
24998
  },
24987
- equals (vector)
24999
+ equals ({ x, y })
24988
25000
  {
24989
- return this .x === vector .x &&
24990
- this .y === vector .y;
25001
+ return this .x === x &&
25002
+ this .y === y;
24991
25003
  },
24992
25004
  negate ()
24993
25005
  {
@@ -25001,16 +25013,16 @@ Object .assign (Vector2 .prototype,
25001
25013
  this .y = 1 / this .y;
25002
25014
  return this;
25003
25015
  },
25004
- add (vector)
25016
+ add ({ x, y })
25005
25017
  {
25006
- this .x += vector .x;
25007
- this .y += vector .y;
25018
+ this .x += x;
25019
+ this .y += y;
25008
25020
  return this;
25009
25021
  },
25010
- subtract (vector)
25022
+ subtract ({ x, y })
25011
25023
  {
25012
- this .x -= vector .x;
25013
- this .y -= vector .y;
25024
+ this .x -= x;
25025
+ this .y -= y;
25014
25026
  return this;
25015
25027
  },
25016
25028
  multiply (value)
@@ -25019,10 +25031,10 @@ Object .assign (Vector2 .prototype,
25019
25031
  this .y *= value;
25020
25032
  return this;
25021
25033
  },
25022
- multVec (vector)
25034
+ multVec ({ x, y })
25023
25035
  {
25024
- this .x *= vector .x;
25025
- this .y *= vector .y;
25036
+ this .x *= x;
25037
+ this .y *= y;
25026
25038
  return this;
25027
25039
  },
25028
25040
  divide (value)
@@ -25031,10 +25043,10 @@ Object .assign (Vector2 .prototype,
25031
25043
  this .y /= value;
25032
25044
  return this;
25033
25045
  },
25034
- divVec (vector)
25046
+ divVec ({ x, y })
25035
25047
  {
25036
- this .x /= vector .x;
25037
- this .y /= vector .y;
25048
+ this .x /= x;
25049
+ this .y /= y;
25038
25050
  return this;
25039
25051
  },
25040
25052
  normalize ()
@@ -25049,10 +25061,10 @@ Object .assign (Vector2 .prototype,
25049
25061
 
25050
25062
  return this;
25051
25063
  },
25052
- dot (vector)
25064
+ dot ({ x, y })
25053
25065
  {
25054
- return this .x * vector .x +
25055
- this .y * vector .y;
25066
+ return this .x * x +
25067
+ this .y * y;
25056
25068
  },
25057
25069
  norm ()
25058
25070
  {
@@ -25065,33 +25077,35 @@ Object .assign (Vector2 .prototype,
25065
25077
  {
25066
25078
  return Math .hypot (this .x, this .y);
25067
25079
  },
25068
- distance (vector)
25080
+ distance ({ x, y })
25069
25081
  {
25070
- return Math .hypot (this .x - vector .x,
25071
- this .y - vector .y);
25082
+ return Math .hypot (this .x - x,
25083
+ this .y - y);
25072
25084
  },
25073
- lerp (destination, t)
25085
+ lerp ({ x: dX, y: dY }, t)
25074
25086
  {
25075
25087
  const { x, y } = this;
25076
25088
 
25077
- this .x = x + t * (destination .x - x);
25078
- this .y = y + t * (destination .y - y);
25089
+ this .x = x + t * (dX - x);
25090
+ this .y = y + t * (dY - y);
25079
25091
  return this;
25080
25092
  },
25081
25093
  abs ()
25082
25094
  {
25083
- this .x = Math .abs (this .x);
25084
- this .y = Math .abs (this .y);
25095
+ const { x, y } = this;
25096
+
25097
+ this .x = Math .abs (x);
25098
+ this .y = Math .abs (y);
25085
25099
  return this;
25086
25100
  },
25087
25101
  min (vector)
25088
25102
  {
25089
25103
  let { x, y } = this;
25090
25104
 
25091
- for (const vector of arguments)
25105
+ for (const { x: minX, y: minY } of arguments)
25092
25106
  {
25093
- x = Math .min (x, vector .x);
25094
- y = Math .min (y, vector .y);
25107
+ x = Math .min (x, minX);
25108
+ y = Math .min (y, minY);
25095
25109
  }
25096
25110
 
25097
25111
  this .x = x;
@@ -25102,20 +25116,21 @@ Object .assign (Vector2 .prototype,
25102
25116
  {
25103
25117
  let { x, y } = this;
25104
25118
 
25105
- for (const vector of arguments)
25119
+ for (const { x: maxX, y: maxY } of arguments)
25106
25120
  {
25107
- x = Math .max (x, vector .x);
25108
- y = Math .max (y, vector .y);
25121
+ x = Math .max (x, maxX);
25122
+ y = Math .max (y, maxY);
25109
25123
  }
25110
25124
 
25111
25125
  this .x = x;
25112
25126
  this .y = y;
25113
25127
  return this;
25114
25128
  },
25115
- clamp (min, max)
25129
+ clamp ({ x: minX, y: minY }, { x: maxX, y: maxY })
25116
25130
  {
25117
- this .x = Math_Algorithm .clamp (this .x, min .x, max .x);
25118
- this .y = Math_Algorithm .clamp (this .y, min .y, max .y);
25131
+ this .x = Math_Algorithm .clamp (this .x, minX, maxX);
25132
+ this .y = Math_Algorithm .clamp (this .y, minY, maxY);
25133
+ return this;
25119
25134
  },
25120
25135
  toString ()
25121
25136
  {
@@ -25227,25 +25242,25 @@ Object .assign (Vector3 .prototype,
25227
25242
  copy .z = this .z;
25228
25243
  return copy;
25229
25244
  },
25230
- assign (vector)
25245
+ assign ({ x, y, z })
25231
25246
  {
25232
- this .x = vector .x;
25233
- this .y = vector .y;
25234
- this .z = vector .z;
25247
+ this .x = x;
25248
+ this .y = y;
25249
+ this .z = z;
25235
25250
  return this;
25236
25251
  },
25237
- set (x, y, z)
25252
+ set (x = 0, y = 0, z = 0)
25238
25253
  {
25239
25254
  this .x = x;
25240
25255
  this .y = y;
25241
25256
  this .z = z;
25242
25257
  return this;
25243
25258
  },
25244
- equals (vector)
25259
+ equals ({ x, y, z })
25245
25260
  {
25246
- return this .x === vector .x &&
25247
- this .y === vector .y &&
25248
- this .z === vector .z;
25261
+ return this .x === x &&
25262
+ this .y === y &&
25263
+ this .z === z;
25249
25264
  },
25250
25265
  negate ()
25251
25266
  {
@@ -25261,18 +25276,18 @@ Object .assign (Vector3 .prototype,
25261
25276
  this .z = 1 / this .z;
25262
25277
  return this;
25263
25278
  },
25264
- add (vector)
25279
+ add ({ x, y, z })
25265
25280
  {
25266
- this .x += vector .x;
25267
- this .y += vector .y;
25268
- this .z += vector .z;
25281
+ this .x += x;
25282
+ this .y += y;
25283
+ this .z += z;
25269
25284
  return this;
25270
25285
  },
25271
- subtract (vector)
25286
+ subtract ({ x, y, z })
25272
25287
  {
25273
- this .x -= vector .x;
25274
- this .y -= vector .y;
25275
- this .z -= vector .z;
25288
+ this .x -= x;
25289
+ this .y -= y;
25290
+ this .z -= z;
25276
25291
  return this;
25277
25292
  },
25278
25293
  multiply (value)
@@ -25282,11 +25297,11 @@ Object .assign (Vector3 .prototype,
25282
25297
  this .z *= value;
25283
25298
  return this;
25284
25299
  },
25285
- multVec (vector)
25300
+ multVec ({ x, y, z })
25286
25301
  {
25287
- this .x *= vector .x;
25288
- this .y *= vector .y;
25289
- this .z *= vector .z;
25302
+ this .x *= x;
25303
+ this .y *= y;
25304
+ this .z *= z;
25290
25305
  return this;
25291
25306
  },
25292
25307
  divide (value)
@@ -25296,18 +25311,16 @@ Object .assign (Vector3 .prototype,
25296
25311
  this .z /= value;
25297
25312
  return this;
25298
25313
  },
25299
- divVec (vector)
25314
+ divVec ({ x, y, z })
25300
25315
  {
25301
- this .x /= vector .x;
25302
- this .y /= vector .y;
25303
- this .z /= vector .z;
25316
+ this .x /= x;
25317
+ this .y /= y;
25318
+ this .z /= z;
25304
25319
  return this;
25305
25320
  },
25306
- cross (vector)
25321
+ cross ({ x: bx, y: by, z: bz })
25307
25322
  {
25308
- const
25309
- { x: ax, y: ay, z: az } = this,
25310
- { x: bx, y: by, z: bz } = vector;
25323
+ const { x: ax, y: ay, z: az } = this;
25311
25324
 
25312
25325
  this .x = ay * bz - az * by;
25313
25326
  this .y = az * bx - ax * bz;
@@ -25328,11 +25341,11 @@ Object .assign (Vector3 .prototype,
25328
25341
 
25329
25342
  return this;
25330
25343
  },
25331
- dot (vector)
25344
+ dot ({ x, y, z })
25332
25345
  {
25333
- return this .x * vector .x +
25334
- this .y * vector .y +
25335
- this .z * vector .z;
25346
+ return this .x * x +
25347
+ this .y * y +
25348
+ this .z * z;
25336
25349
  },
25337
25350
  norm ()
25338
25351
  {
@@ -25346,19 +25359,19 @@ Object .assign (Vector3 .prototype,
25346
25359
  {
25347
25360
  return Math .hypot (this .x, this .y, this .z);
25348
25361
  },
25349
- distance (vector)
25362
+ distance ({ x, y, z })
25350
25363
  {
25351
- return Math .hypot (this .x - vector .x,
25352
- this .y - vector .y,
25353
- this .z - vector .z);
25364
+ return Math .hypot (this .x - x,
25365
+ this .y - y,
25366
+ this .z - z);
25354
25367
  },
25355
- lerp (destination, t)
25368
+ lerp ({ x: dX, y: dY, z: dZ }, t)
25356
25369
  {
25357
25370
  const { x, y, z } = this;
25358
25371
 
25359
- this .x = x + t * (destination .x - x);
25360
- this .y = y + t * (destination .y - y);
25361
- this .z = z + t * (destination .z - z);
25372
+ this .x = x + t * (dX - x);
25373
+ this .y = y + t * (dY - y);
25374
+ this .z = z + t * (dZ - z);
25362
25375
  return this;
25363
25376
  },
25364
25377
  slerp: (() =>
@@ -25372,20 +25385,22 @@ Object .assign (Vector3 .prototype,
25372
25385
  })(),
25373
25386
  abs ()
25374
25387
  {
25375
- this .x = Math .abs (this .x);
25376
- this .y = Math .abs (this .y);
25377
- this .z = Math .abs (this .z);
25388
+ const { x, y, z } = this;
25389
+
25390
+ this .x = Math .abs (x);
25391
+ this .y = Math .abs (y);
25392
+ this .z = Math .abs (z);
25378
25393
  return this;
25379
25394
  },
25380
25395
  min (vector)
25381
25396
  {
25382
25397
  let { x, y, z } = this;
25383
25398
 
25384
- for (const vector of arguments)
25399
+ for (const { x: minX, y: minY, z: minZ } of arguments)
25385
25400
  {
25386
- x = Math .min (x, vector .x);
25387
- y = Math .min (y, vector .y);
25388
- z = Math .min (z, vector .z);
25401
+ x = Math .min (x, minX);
25402
+ y = Math .min (y, minY);
25403
+ z = Math .min (z, minZ);
25389
25404
  }
25390
25405
 
25391
25406
  this .x = x;
@@ -25397,11 +25412,11 @@ Object .assign (Vector3 .prototype,
25397
25412
  {
25398
25413
  let { x, y, z } = this;
25399
25414
 
25400
- for (const vector of arguments)
25415
+ for (const { x: maxX, y: maxY, z: maxZ } of arguments)
25401
25416
  {
25402
- x = Math .max (x, vector .x);
25403
- y = Math .max (y, vector .y);
25404
- z = Math .max (z, vector .z);
25417
+ x = Math .max (x, maxX);
25418
+ y = Math .max (y, maxY);
25419
+ z = Math .max (z, maxZ);
25405
25420
  }
25406
25421
 
25407
25422
  this .x = x;
@@ -25409,11 +25424,12 @@ Object .assign (Vector3 .prototype,
25409
25424
  this .z = z;
25410
25425
  return this;
25411
25426
  },
25412
- clamp (min, max)
25427
+ clamp ({ x: minX, y: minY, z: minZ }, { x: maxX, y: maxY, z: maxZ })
25413
25428
  {
25414
- this .x = Math_Algorithm .clamp (this .x, min .x, max .x);
25415
- this .y = Math_Algorithm .clamp (this .y, min .y, max .y);
25416
- this .z = Math_Algorithm .clamp (this .z, min .z, max .z);
25429
+ this .x = Math_Algorithm .clamp (this .x, minX, maxX);
25430
+ this .y = Math_Algorithm .clamp (this .y, minY, maxY);
25431
+ this .z = Math_Algorithm .clamp (this .z, minZ, maxZ);
25432
+ return this;
25417
25433
  },
25418
25434
  toString ()
25419
25435
  {
@@ -26700,6 +26716,10 @@ function SFMatrix3Template (TypeName, double)
26700
26716
  args .length = 0;
26701
26717
  };
26702
26718
  })(),
26719
+ rotate (rotation)
26720
+ {
26721
+ return new (this .constructor) (this .getValue () .copy () .rotate (rotation));
26722
+ },
26703
26723
  });
26704
26724
  }
26705
26725
 
@@ -26788,15 +26808,15 @@ Object .assign (Vector4 .prototype,
26788
26808
  copy .w = this .w;
26789
26809
  return copy;
26790
26810
  },
26791
- assign (vector)
26811
+ assign ({ x, y, z, w })
26792
26812
  {
26793
- this .x = vector .x;
26794
- this .y = vector .y;
26795
- this .z = vector .z;
26796
- this .w = vector .w;
26813
+ this .x = x;
26814
+ this .y = y;
26815
+ this .z = z;
26816
+ this .w = w;
26797
26817
  return this;
26798
26818
  },
26799
- set (x, y, z, w)
26819
+ set (x = 0, y = 0, z = 0, w = 0)
26800
26820
  {
26801
26821
  this .x = x;
26802
26822
  this .y = y;
@@ -26804,19 +26824,12 @@ Object .assign (Vector4 .prototype,
26804
26824
  this .w = w;
26805
26825
  return this;
26806
26826
  },
26807
- equals (vector)
26827
+ equals ({ x, y, z, w })
26808
26828
  {
26809
- return this .x === vector .x &&
26810
- this .y === vector .y &&
26811
- this .z === vector .z &&
26812
- this .w === vector .w;
26813
- },
26814
- getReal (vector)
26815
- {
26816
- vector .x = this .x / this .w;
26817
- vector .y = this .y / this .w;
26818
- vector .z = this .z / this .w;
26819
- return vector;
26829
+ return this .x === x &&
26830
+ this .y === y &&
26831
+ this .z === z &&
26832
+ this .w === w;
26820
26833
  },
26821
26834
  negate ()
26822
26835
  {
@@ -26834,20 +26847,20 @@ Object .assign (Vector4 .prototype,
26834
26847
  this .w = 1 / this .w;
26835
26848
  return this;
26836
26849
  },
26837
- add (vector)
26850
+ add ({ x, y, z, w })
26838
26851
  {
26839
- this .x += vector .x;
26840
- this .y += vector .y;
26841
- this .z += vector .z;
26842
- this .w += vector .w;
26852
+ this .x += x;
26853
+ this .y += y;
26854
+ this .z += z;
26855
+ this .w += w;
26843
26856
  return this;
26844
26857
  },
26845
- subtract (vector)
26858
+ subtract ({ x, y, z, w })
26846
26859
  {
26847
- this .x -= vector .x;
26848
- this .y -= vector .y;
26849
- this .z -= vector .z;
26850
- this .w -= vector .w;
26860
+ this .x -= x;
26861
+ this .y -= y;
26862
+ this .z -= z;
26863
+ this .w -= w;
26851
26864
  return this;
26852
26865
  },
26853
26866
  multiply (value)
@@ -26858,12 +26871,12 @@ Object .assign (Vector4 .prototype,
26858
26871
  this .w *= value;
26859
26872
  return this;
26860
26873
  },
26861
- multVec (vector)
26874
+ multVec ({ x, y, z, w })
26862
26875
  {
26863
- this .x *= vector .x;
26864
- this .y *= vector .y;
26865
- this .z *= vector .z;
26866
- this .w *= vector .w;
26876
+ this .x *= x;
26877
+ this .y *= y;
26878
+ this .z *= z;
26879
+ this .w *= w;
26867
26880
  return this;
26868
26881
  },
26869
26882
  divide (value)
@@ -26874,12 +26887,12 @@ Object .assign (Vector4 .prototype,
26874
26887
  this .w /= value;
26875
26888
  return this;
26876
26889
  },
26877
- divVec (vector)
26890
+ divVec ({ x, y, z, w })
26878
26891
  {
26879
- this .x /= vector .x;
26880
- this .y /= vector .y;
26881
- this .z /= vector .z;
26882
- this .w /= vector .w;
26892
+ this .x /= x;
26893
+ this .y /= y;
26894
+ this .z /= z;
26895
+ this .w /= w;
26883
26896
  return this;
26884
26897
  },
26885
26898
  normalize ()
@@ -26896,12 +26909,12 @@ Object .assign (Vector4 .prototype,
26896
26909
 
26897
26910
  return this;
26898
26911
  },
26899
- dot (vector)
26912
+ dot ({ x, y, z, w })
26900
26913
  {
26901
- return this .x * vector .x +
26902
- this .y * vector .y +
26903
- this .z * vector .z +
26904
- this .w * vector .w;
26914
+ return this .x * x +
26915
+ this .y * y +
26916
+ this .z * z +
26917
+ this .w * w;
26905
26918
  },
26906
26919
  norm ()
26907
26920
  {
@@ -26916,41 +26929,43 @@ Object .assign (Vector4 .prototype,
26916
26929
  {
26917
26930
  return Math .hypot (this .x, this .y, this .z, this .w);
26918
26931
  },
26919
- distance (vector)
26932
+ distance ({ x, y, z, w })
26920
26933
  {
26921
- return Math .hypot (this .x - vector .x,
26922
- this .y - vector .y,
26923
- this .z - vector .z,
26924
- this .w - vector .w);
26934
+ return Math .hypot (this .x - x,
26935
+ this .y - y,
26936
+ this .z - z,
26937
+ this .w - w);
26925
26938
  },
26926
- lerp (destination, t)
26939
+ lerp ({ x: dX, y: dY, z: dZ, w: dW }, t)
26927
26940
  {
26928
26941
  const { x, y, z, w } = this;
26929
26942
 
26930
- this .x = x + t * (destination .x - x);
26931
- this .y = y + t * (destination .y - y);
26932
- this .z = z + t * (destination .z - z);
26933
- this .w = w + t * (destination .w - w);
26943
+ this .x = x + t * (dX - x);
26944
+ this .y = y + t * (dY - y);
26945
+ this .z = z + t * (dZ - z);
26946
+ this .w = w + t * (dW - w);
26934
26947
  return this;
26935
26948
  },
26936
26949
  abs ()
26937
26950
  {
26938
- this .x = Math .abs (this .x);
26939
- this .y = Math .abs (this .y);
26940
- this .z = Math .abs (this .z);
26941
- this .w = Math .abs (this .w);
26951
+ const { x, y, z, w } = this;
26952
+
26953
+ this .x = Math .abs (x);
26954
+ this .y = Math .abs (y);
26955
+ this .z = Math .abs (z);
26956
+ this .w = Math .abs (w);
26942
26957
  return this;
26943
26958
  },
26944
26959
  min (vector)
26945
26960
  {
26946
26961
  let { x, y, z, w } = this;
26947
26962
 
26948
- for (const vector of arguments)
26963
+ for (const { x: minX, y: minY, z: minZ, w: minW } of arguments)
26949
26964
  {
26950
- x = Math .min (x, vector .x);
26951
- y = Math .min (y, vector .y);
26952
- z = Math .min (z, vector .z);
26953
- w = Math .min (w, vector .w);
26965
+ x = Math .min (x, minX);
26966
+ y = Math .min (y, minY);
26967
+ z = Math .min (z, minZ);
26968
+ w = Math .min (w, minW);
26954
26969
  }
26955
26970
 
26956
26971
  this .x = x;
@@ -26963,12 +26978,12 @@ Object .assign (Vector4 .prototype,
26963
26978
  {
26964
26979
  let { x, y, z, w } = this;
26965
26980
 
26966
- for (const vector of arguments)
26981
+ for (const { x: maxX, y: maxY, z: maxZ, w: maxW } of arguments)
26967
26982
  {
26968
- x = Math .max (x, vector .x);
26969
- y = Math .max (y, vector .y);
26970
- z = Math .max (z, vector .z);
26971
- w = Math .max (w, vector .w);
26983
+ x = Math .max (x, maxX);
26984
+ y = Math .max (y, maxY);
26985
+ z = Math .max (z, maxZ);
26986
+ w = Math .max (w, maxW);
26972
26987
  }
26973
26988
 
26974
26989
  this .x = x;
@@ -26977,12 +26992,13 @@ Object .assign (Vector4 .prototype,
26977
26992
  this .w = w;
26978
26993
  return this;
26979
26994
  },
26980
- clamp (min, max)
26995
+ clamp ({ x: minX, y: minY, z: minZ, w: minW }, { x: maxX, y: maxY, z: maxZ, w: maxW })
26981
26996
  {
26982
- this .x = Math_Algorithm .clamp (this .x, min .x, max .x);
26983
- this .y = Math_Algorithm .clamp (this .y, min .y, max .y);
26984
- this .z = Math_Algorithm .clamp (this .z, min .z, max .z);
26985
- this .w = Math_Algorithm .clamp (this .w, min .w, max .w);
26997
+ this .x = Math_Algorithm .clamp (this .x, minX, maxX);
26998
+ this .y = Math_Algorithm .clamp (this .y, minY, maxY);
26999
+ this .z = Math_Algorithm .clamp (this .z, minZ, maxZ);
27000
+ this .w = Math_Algorithm .clamp (this .w, minW, maxW);
27001
+ return this;
26986
27002
  },
26987
27003
  toString ()
26988
27004
  {
@@ -27113,15 +27129,15 @@ Object .assign (Quaternion .prototype,
27113
27129
  copy .w = this .w;
27114
27130
  return copy;
27115
27131
  },
27116
- assign (quat)
27132
+ assign ({ x, y, z, w })
27117
27133
  {
27118
- this .x = quat .x;
27119
- this .y = quat .y;
27120
- this .z = quat .z;
27121
- this .w = quat .w;
27134
+ this .x = x;
27135
+ this .y = y;
27136
+ this .z = z;
27137
+ this .w = w;
27122
27138
  return this;
27123
27139
  },
27124
- set (x, y, z, w)
27140
+ set (x = 0, y = 0, z = 0, w = 1)
27125
27141
  {
27126
27142
  this .x = x;
27127
27143
  this .y = y;
@@ -27382,12 +27398,12 @@ Object .assign (Quaternion .prototype,
27382
27398
  {
27383
27399
  return !this .w;
27384
27400
  },
27385
- equals (quat)
27401
+ equals ({ x, y, z, w })
27386
27402
  {
27387
- return this .x === quat .x &&
27388
- this .y === quat .y &&
27389
- this .z === quat .z &&
27390
- this .w === quat .w;
27403
+ return this .x === x &&
27404
+ this .y === y &&
27405
+ this .z === z &&
27406
+ this .w === w;
27391
27407
  },
27392
27408
  negate ()
27393
27409
  {
@@ -27404,20 +27420,20 @@ Object .assign (Quaternion .prototype,
27404
27420
  this .z = -this .z;
27405
27421
  return this;
27406
27422
  },
27407
- add (quat)
27423
+ add ({ x, y, z, w })
27408
27424
  {
27409
- this .x += quat .x;
27410
- this .y += quat .y;
27411
- this .z += quat .z;
27412
- this .w += quat .w;
27425
+ this .x += x;
27426
+ this .y += y;
27427
+ this .z += z;
27428
+ this .w += w;
27413
27429
  return this;
27414
27430
  },
27415
- subtract (quat)
27431
+ subtract ({ x, y, z, w })
27416
27432
  {
27417
- this .x -= quat .x;
27418
- this .y -= quat .y;
27419
- this .z -= quat .z;
27420
- this .w -= quat .w;
27433
+ this .x -= x;
27434
+ this .y -= y;
27435
+ this .z -= z;
27436
+ this .w -= w;
27421
27437
  return this;
27422
27438
  },
27423
27439
  multiply (value)
@@ -29776,6 +29792,10 @@ function SFVecPrototypeTemplate (Constructor, TypeName, Vector, double, properti
29776
29792
  {
29777
29793
  return new (this .constructor) (this .getValue () .copy () .add (vector .getValue ()));
29778
29794
  },
29795
+ clamp (low, high)
29796
+ {
29797
+ return new (this .constructor) (this .getValue () .copy () .clamp (low .getValue (), high .getValue ()));
29798
+ },
29779
29799
  distance (vector)
29780
29800
  {
29781
29801
  return this .getValue () .distance (vector .getValue ());
@@ -34173,7 +34193,7 @@ const X3DBaseNode_default_ = X3DBaseNode;
34173
34193
 
34174
34194
  /* harmony default export */ const Base_X3DBaseNode = (x_ite_Namespace .add ("X3DBaseNode", X3DBaseNode_default_));
34175
34195
  ;// ./src/x_ite/Browser/Legacy.js
34176
- /* provided dependency */ var $ = __webpack_require__(58);
34196
+ /* provided dependency */ var $ = __webpack_require__(394);
34177
34197
  /*******************************************************************************
34178
34198
  *
34179
34199
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -34309,7 +34329,7 @@ const Legacy_default_ = Legacy;
34309
34329
  *
34310
34330
  ******************************************************************************/
34311
34331
 
34312
- const BROWSER_VERSION_default_ = "10.5.7";
34332
+ const BROWSER_VERSION_default_ = "10.5.9";
34313
34333
  ;
34314
34334
 
34315
34335
  /* harmony default export */ const BROWSER_VERSION = (x_ite_Namespace .add ("BROWSER_VERSION", BROWSER_VERSION_default_));
@@ -37334,7 +37354,7 @@ const X3DBindableNode_default_ = X3DBindableNode;
37334
37354
 
37335
37355
  /* harmony default export */ const Core_X3DBindableNode = (x_ite_Namespace .add ("X3DBindableNode", X3DBindableNode_default_));
37336
37356
  ;// ./src/standard/Math/Geometry/Triangle3.js
37337
- /* provided dependency */ var libtess = __webpack_require__(499);
37357
+ /* provided dependency */ var libtess = __webpack_require__(787);
37338
37358
  /*******************************************************************************
37339
37359
  *
37340
37360
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -39900,7 +39920,7 @@ const X3DProtoDeclaration_default_ = X3DProtoDeclaration;
39900
39920
 
39901
39921
  /* harmony default export */ const Prototype_X3DProtoDeclaration = (x_ite_Namespace .add ("X3DProtoDeclaration", X3DProtoDeclaration_default_));
39902
39922
  ;// ./src/x_ite/Parser/X3DParser.js
39903
- /* provided dependency */ var X3DParser_$ = __webpack_require__(58);
39923
+ /* provided dependency */ var X3DParser_$ = __webpack_require__(394);
39904
39924
  /*******************************************************************************
39905
39925
  *
39906
39926
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -40155,7 +40175,7 @@ const Expressions_default_ = Expressions;
40155
40175
 
40156
40176
  /* harmony default export */ const Parser_Expressions = (x_ite_Namespace .add ("Expressions", Expressions_default_));
40157
40177
  ;// ./src/x_ite/Parser/VRMLParser.js
40158
- /* provided dependency */ var VRMLParser_$ = __webpack_require__(58);
40178
+ /* provided dependency */ var VRMLParser_$ = __webpack_require__(394);
40159
40179
  /*******************************************************************************
40160
40180
  *
40161
40181
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -42795,7 +42815,7 @@ const VRMLParser_default_ = VRMLParser;
42795
42815
 
42796
42816
  /* harmony default export */ const Parser_VRMLParser = (x_ite_Namespace .add ("VRMLParser", VRMLParser_default_));
42797
42817
  ;// ./src/x_ite/Parser/XMLParser.js
42798
- /* provided dependency */ var XMLParser_$ = __webpack_require__(58);
42818
+ /* provided dependency */ var XMLParser_$ = __webpack_require__(394);
42799
42819
  /*******************************************************************************
42800
42820
  *
42801
42821
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -44973,7 +44993,7 @@ const URLs_default_ = URLs;
44973
44993
 
44974
44994
  /* harmony default export */ const Networking_URLs = (x_ite_Namespace .add ("URLs", URLs_default_));
44975
44995
  ;// ./src/x_ite/Parser/GLTF2Parser.js
44976
- /* provided dependency */ var GLTF2Parser_$ = __webpack_require__(58);
44996
+ /* provided dependency */ var GLTF2Parser_$ = __webpack_require__(394);
44977
44997
  /*******************************************************************************
44978
44998
  *
44979
44999
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -45034,6 +45054,7 @@ const URLs_default_ = URLs;
45034
45054
 
45035
45055
 
45036
45056
 
45057
+
45037
45058
  // https://registry.khronos.org/glTF/specs/2.0/glTF-2.0.html
45038
45059
  // https://github.com/KhronosGroup/glTF-Sample-Assets
45039
45060
 
@@ -45068,6 +45089,8 @@ function GLTF2Parser (scene)
45068
45089
  this .nodes = [ ];
45069
45090
  this .skins = [ ];
45070
45091
  this .joints = new Set ();
45092
+ this .pointerAliases = new Map ();
45093
+ this .animationScripts = [ ];
45071
45094
  }
45072
45095
 
45073
45096
  Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser .prototype),
@@ -45183,7 +45206,7 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
45183
45206
  this .camerasArray (glTF .cameras);
45184
45207
  this .skinsArray (glTF .skins);
45185
45208
  this .nodesArray (glTF .nodes);
45186
- this .scenesArray (glTF .scenes, glTF .scene);
45209
+ this .scenesArray (glTF, glTF .scenes, glTF .scene);
45187
45210
  this .animationsArray (glTF .animations);
45188
45211
 
45189
45212
  this .viewpointsCenterOfRotation (this .getScene ());
@@ -45252,8 +45275,9 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
45252
45275
  return;
45253
45276
 
45254
45277
  const
45255
- browser = this .getBrowser (),
45256
- scene = this .getScene ();
45278
+ browser = this .getBrowser (),
45279
+ scene = this .getScene (),
45280
+ components = [ ];
45257
45281
 
45258
45282
  for (const extension of extensions)
45259
45283
  {
@@ -45263,11 +45287,7 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
45263
45287
  {
45264
45288
  case "EXT_lights_image_based":
45265
45289
  {
45266
- const component = browser .getComponent ("CubeMapTexturing", 3);
45267
-
45268
- if (!scene .hasComponent (component))
45269
- scene .addComponent (component);
45270
-
45290
+ components .push (browser .getComponent ("CubeMapTexturing", 3));
45271
45291
  break;
45272
45292
  }
45273
45293
  // https://github.com/KhronosGroup/glTF/pull/1956
@@ -45289,24 +45309,28 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
45289
45309
  case "KHR_materials_transmission":
45290
45310
  case "KHR_materials_volume":
45291
45311
  {
45292
- const component = browser .getComponent ("X_ITE", 1);
45293
-
45294
- if (!scene .hasComponent (component))
45295
- scene .addComponent (component);
45296
-
45312
+ components .push (browser .getComponent ("X_ITE", 1));
45297
45313
  break;
45298
45314
  }
45299
45315
  case "KHR_texture_transform":
45300
45316
  {
45301
- const component = browser .getComponent ("Texturing3D", 2);
45302
-
45303
- if (!scene .hasComponent (component))
45304
- scene .addComponent (component);
45305
-
45317
+ components .push (browser .getComponent ("Texturing3D", 2));
45318
+ break;
45319
+ }
45320
+ case "KHR_animation_pointer":
45321
+ {
45322
+ components .push (browser .getComponent ("EventUtilities", 1));
45323
+ components .push (browser .getComponent ("Scripting", 1));
45306
45324
  break;
45307
45325
  }
45308
45326
  }
45309
45327
  }
45328
+
45329
+ for (const component of components)
45330
+ {
45331
+ if (!scene .hasComponent (component))
45332
+ scene .addComponent (component);
45333
+ }
45310
45334
  },
45311
45335
  extensionsObject (extensions)
45312
45336
  {
@@ -45417,6 +45441,8 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
45417
45441
 
45418
45442
  lightNode .setup ();
45419
45443
 
45444
+ light .pointers = [lightNode];
45445
+
45420
45446
  return light .node = lightNode;
45421
45447
  },
45422
45448
  khrLightsPunctualObject (KHR_lights_punctual)
@@ -45463,6 +45489,8 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
45463
45489
  scene .addNamedNode (scene .getUniqueName (name), lightNode);
45464
45490
  scene .addExportedNode (scene .getUniqueExportName (name), lightNode);
45465
45491
 
45492
+ light .pointers = [lightNode];
45493
+
45466
45494
  return light .node = lightNode;
45467
45495
  },
45468
45496
  lightType (light)
@@ -45496,6 +45524,10 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
45496
45524
  lightNode ._beamWidth = this .numberValue (light .innerConeAngle, 0);
45497
45525
  lightNode ._attenuation = new Numbers_Vector3 (0, 0, 1);
45498
45526
 
45527
+ this .addAnimationPointerAlias (lightNode, "range", "radius");
45528
+ this .addAnimationPointerAlias (lightNode, "outerConeAngle", "cutOffAngle");
45529
+ this .addAnimationPointerAlias (lightNode, "innerConeAngle", "beamWidth");
45530
+
45499
45531
  return lightNode;
45500
45532
  },
45501
45533
  pointLight (light)
@@ -45507,6 +45539,8 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
45507
45539
  lightNode ._radius = this .numberValue (light .range, 0) || -1;
45508
45540
  lightNode ._attenuation = new Numbers_Vector3 (0, 0, 1);
45509
45541
 
45542
+ this .addAnimationPointerAlias (lightNode, "range", "radius");
45543
+
45510
45544
  return lightNode;
45511
45545
  },
45512
45546
  khrMaterialsVariantsObjectVariants (KHR_materials_variants)
@@ -45912,11 +45946,12 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
45912
45946
 
45913
45947
  const texCoordIndices = this .getTexCoordIndices ("", material);
45914
45948
 
45915
- this .texCoordIndex = Array .from (texCoordIndices) .reduce ((p, c) => Math .max (p, c), -1);
45916
- this .textureTransformNodes = [ ];
45917
- this .texCoordMappings = new Map ();
45918
- this .texCoordOfNode = new Map ();
45919
- material .texCoordMappings = this .texCoordMappings;
45949
+ this .texCoordIndex = Array .from (texCoordIndices) .reduce ((p, c) => Math .max (p, c), -1);
45950
+ this .textureTransformNodes = [ ];
45951
+ this .texCoordMappings = new Map ();
45952
+ this .texCoordOfNode = new Map ();
45953
+ this .texCoordExtensionOfNode = new Map ();
45954
+ material .texCoordMappings = this .texCoordMappings;
45920
45955
 
45921
45956
  const
45922
45957
  scene = this .getScene (),
@@ -45973,6 +46008,8 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
45973
46008
 
45974
46009
  appearanceNode .setup ();
45975
46010
 
46011
+ material .pointers = [appearanceNode, materialNode];
46012
+
45976
46013
  return material .appearanceNode = appearanceNode;
45977
46014
  },
45978
46015
  getTexCoordIndices (key, object, indices = new Set ())
@@ -46031,6 +46068,8 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
46031
46068
  materialNode ._metallicRoughnessTexture = this .textureInfo (pbrMetallicRoughness .metallicRoughnessTexture);
46032
46069
  materialNode ._metallicRoughnessTextureMapping = this .textureMapping (pbrMetallicRoughness .metallicRoughnessTexture);
46033
46070
 
46071
+ pbrMetallicRoughness .pointers = [materialNode];
46072
+
46034
46073
  return materialNode;
46035
46074
  },
46036
46075
  pbrSpecularGlossinessObject (pbrSpecularGlossiness)
@@ -46066,6 +46105,8 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
46066
46105
  materialNode ._specularGlossinessTexture = this .textureInfo (pbrSpecularGlossiness .specularGlossinessTexture);
46067
46106
  materialNode ._specularGlossinessTextureMapping = this .textureMapping (pbrSpecularGlossiness .specularGlossinessTexture);
46068
46107
 
46108
+ pbrSpecularGlossiness .pointers = [materialNode];
46109
+
46069
46110
  return materialNode;
46070
46111
  },
46071
46112
  occlusionTextureInfo (occlusionTexture, materialNode)
@@ -46164,6 +46205,8 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
46164
46205
 
46165
46206
  extension .setup ();
46166
46207
 
46208
+ KHR_materials_anisotropy .pointers = [extension];
46209
+
46167
46210
  materialNode ._extensions .push (extension);
46168
46211
  },
46169
46212
  khrMaterialsClearcoatObject (KHR_materials_clearcoat, materialNode)
@@ -46186,6 +46229,8 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
46186
46229
 
46187
46230
  extension .setup ();
46188
46231
 
46232
+ KHR_materials_clearcoat .pointers = [extension];
46233
+
46189
46234
  materialNode ._extensions .push (extension);
46190
46235
  },
46191
46236
  khrMaterialsDiffuseTransmissionObject (KHR_materials_diffuse_transmission, materialNode)
@@ -46209,6 +46254,8 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
46209
46254
 
46210
46255
  extension .setup ();
46211
46256
 
46257
+ KHR_materials_diffuse_transmission .pointers = [extension];
46258
+
46212
46259
  materialNode ._extensions .push (extension);
46213
46260
  },
46214
46261
  khrMaterialsDispersionObject (KHR_materials_dispersion, materialNode)
@@ -46222,6 +46269,8 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
46222
46269
 
46223
46270
  extension .setup ();
46224
46271
 
46272
+ KHR_materials_dispersion .pointers = [extension];
46273
+
46225
46274
  materialNode ._extensions .push (extension);
46226
46275
  },
46227
46276
  khrMaterialsEmissiveStrengthObject (KHR_materials_emissive_strength, materialNode)
@@ -46235,6 +46284,8 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
46235
46284
 
46236
46285
  extension .setup ();
46237
46286
 
46287
+ KHR_materials_emissive_strength .pointers = [extension];
46288
+
46238
46289
  materialNode ._extensions .push (extension);
46239
46290
  },
46240
46291
  khrMaterialsIorStrengthObject (KHR_materials_ior, materialNode)
@@ -46245,6 +46296,8 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
46245
46296
 
46246
46297
  extension .setup ();
46247
46298
 
46299
+ KHR_materials_ior .pointers = [extension];
46300
+
46248
46301
  materialNode ._extensions .push (extension);
46249
46302
  },
46250
46303
  khrMaterialsIridescenceObject (KHR_materials_iridescence, materialNode)
@@ -46262,6 +46315,8 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
46262
46315
 
46263
46316
  extension .setup ();
46264
46317
 
46318
+ KHR_materials_iridescence .pointers = [extension];
46319
+
46265
46320
  materialNode ._extensions .push (extension);
46266
46321
  },
46267
46322
  khrMaterialsSheenObject (KHR_materials_sheen, materialNode)
@@ -46285,6 +46340,8 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
46285
46340
 
46286
46341
  extension .setup ();
46287
46342
 
46343
+ KHR_materials_sheen .pointers = [extension];
46344
+
46288
46345
  materialNode ._extensions .push (extension);
46289
46346
  },
46290
46347
  khrMaterialsSpecularObject (KHR_materials_specular, materialNode)
@@ -46308,6 +46365,8 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
46308
46365
 
46309
46366
  extension .setup ();
46310
46367
 
46368
+ KHR_materials_specular .pointers = [extension];
46369
+
46311
46370
  materialNode ._extensions .push (extension);
46312
46371
  },
46313
46372
  khrMaterialsTransmission (KHR_materials_transmission, materialNode)
@@ -46323,6 +46382,8 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
46323
46382
 
46324
46383
  extension .setup ();
46325
46384
 
46385
+ KHR_materials_transmission .pointers = [extension];
46386
+
46326
46387
  materialNode ._extensions .push (extension);
46327
46388
  },
46328
46389
  khrMaterialsVolumeObject (KHR_materials_volume, materialNode)
@@ -46341,6 +46402,8 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
46341
46402
 
46342
46403
  extension .setup ();
46343
46404
 
46405
+ KHR_materials_volume .pointers = [extension];
46406
+
46344
46407
  materialNode ._extensions .push (extension);
46345
46408
  },
46346
46409
  khrMaterialsUnlitObject (KHR_materials_unlit, materialNode)
@@ -46359,6 +46422,7 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
46359
46422
  unlitMaterialNode ._transparency = materialNode ._transparency;
46360
46423
 
46361
46424
  unlitMaterialNode .setup ();
46425
+ this .addAnimationPointerAlias (unlitMaterialNode, "baseColor", "emissiveColor");
46362
46426
 
46363
46427
  materialNode .dispose ();
46364
46428
 
@@ -46397,7 +46461,18 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
46397
46461
  const existing = this .textureTransformNodes .find (node => this .texCoordOfNode .get (node) === texCoord && node ._matrix .getValue () .equals (matrix));
46398
46462
 
46399
46463
  if (existing)
46464
+ {
46465
+ Object .defineProperty (KHR_texture_transform, "pointers",
46466
+ {
46467
+ get: () =>
46468
+ {
46469
+ return this .texCoordExtensionOfNode .get (existing);
46470
+ },
46471
+ configurable: true,
46472
+ });
46473
+
46400
46474
  return existing ._mapping .getValue ();
46475
+ }
46401
46476
 
46402
46477
  // Create new TextureTransformMatrix3D.
46403
46478
 
@@ -46414,6 +46489,54 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
46414
46489
  this .textureTransformNodes .push (textureTransformNode);
46415
46490
  this .texCoordMappings .set (mapping, texCoord);
46416
46491
  this .texCoordOfNode .set (textureTransformNode, texCoord);
46492
+ this .texCoordExtensionOfNode .set (textureTransformNode, KHR_texture_transform);
46493
+
46494
+ Object .defineProperty (KHR_texture_transform, "pointers",
46495
+ {
46496
+ get: () =>
46497
+ {
46498
+ const scriptNode = scene .createNode ("Script", false);
46499
+
46500
+ scriptNode .addUserDefinedField (Base_X3DConstants .inputOutput, "translation", new x_ite_Fields .SFVec2f ());
46501
+ scriptNode .addUserDefinedField (Base_X3DConstants .inputOutput, "rotation", new x_ite_Fields .SFFloat ());
46502
+ scriptNode .addUserDefinedField (Base_X3DConstants .inputOutput, "scale", new x_ite_Fields .SFVec2f (1, 1));
46503
+ scriptNode .addUserDefinedField (Base_X3DConstants .outputOnly, "value_changed", new x_ite_Fields .SFMatrix4f ());
46504
+
46505
+ scriptNode ._url = [/* js */ `ecmascript:
46506
+
46507
+ const
46508
+ flip = new SFMatrix3f (1, 0, 0, 0, -1, 0, 0, 1, 1),
46509
+ matrix = new SFMatrix3f ();
46510
+
46511
+ function eventsProcessed ()
46512
+ {
46513
+ matrix .setTransform (translation, -rotation, scale);
46514
+
46515
+ const m = flip .multLeft (matrix);
46516
+
46517
+ value_changed [0] = m [0];
46518
+ value_changed [1] = m [1];
46519
+ value_changed [4] = m [3];
46520
+ value_changed [5] = m [4];
46521
+ value_changed [12] = m [6];
46522
+ value_changed [13] = m [7];
46523
+ }
46524
+ `];
46525
+
46526
+ scriptNode .setup ();
46527
+
46528
+ scene .addNamedNode (scene .getUniqueName ("CombineTextureMatrixScript"), scriptNode);
46529
+ scene .addRoute (scriptNode, "value_changed", textureTransformNode, "set_matrix");
46530
+
46531
+ this .addAnimationPointerAlias (scriptNode, "offset", "translation");
46532
+ this .animationScripts .push (scriptNode);
46533
+
46534
+ Object .defineProperty (KHR_texture_transform, "pointers", { value: [scriptNode] });
46535
+
46536
+ return [scriptNode];
46537
+ },
46538
+ configurable: true,
46539
+ });
46417
46540
 
46418
46541
  return mapping;
46419
46542
  },
@@ -46818,6 +46941,41 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
46818
46941
 
46819
46942
  viewpointNode .setup ();
46820
46943
 
46944
+ this .addAnimationPointerAlias (viewpointNode, "znear", "nearDistance");
46945
+ this .addAnimationPointerAlias (viewpointNode, "zfar", "farDistance");
46946
+
46947
+ Object .defineProperty (camera, "pointers",
46948
+ {
46949
+ get: () =>
46950
+ {
46951
+ const scriptNode = scene .createNode ("Script", false);
46952
+
46953
+ scriptNode .addUserDefinedField (Base_X3DConstants .inputOutput, "xmag", new x_ite_Fields .SFFloat (1));
46954
+ scriptNode .addUserDefinedField (Base_X3DConstants .inputOutput, "ymag", new x_ite_Fields .SFFloat (1));
46955
+ scriptNode .addUserDefinedField (Base_X3DConstants .outputOnly, "value_changed", new x_ite_Fields .MFFloat ());
46956
+
46957
+ scriptNode ._url = [/* js */ `ecmascript:
46958
+
46959
+ function eventsProcessed ()
46960
+ {
46961
+ value_changed = new MFFloat (-xmag, -ymag, xmag, ymag);
46962
+ }
46963
+ `];
46964
+
46965
+ scriptNode .setup ();
46966
+
46967
+ scene .addNamedNode (scene .getUniqueName ("CombineFieldOfViewScript"), scriptNode);
46968
+ scene .addRoute (scriptNode, "value_changed", viewpointNode, "set_fieldOfView");
46969
+
46970
+ this .animationScripts .push (scriptNode);
46971
+
46972
+ Object .defineProperty (camera, "pointers", { value: [viewpointNode, scriptNode] });
46973
+
46974
+ return [viewpointNode, scriptNode];
46975
+ },
46976
+ configurable: true,
46977
+ });
46978
+
46821
46979
  return viewpointNode;
46822
46980
  },
46823
46981
  perspectiveCamera (camera)
@@ -46830,7 +46988,7 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
46830
46988
  viewpointNode = scene .createNode ("Viewpoint", false);
46831
46989
 
46832
46990
  if (typeof camera .yfov === "number")
46833
- viewpointNode ._fieldOfView = camera .yfov
46991
+ viewpointNode ._fieldOfView = camera .yfov;
46834
46992
 
46835
46993
  if (typeof camera .znear === "number")
46836
46994
  viewpointNode ._nearDistance = camera .znear;
@@ -46840,6 +46998,12 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
46840
46998
 
46841
46999
  viewpointNode .setup ();
46842
47000
 
47001
+ this .addAnimationPointerAlias (viewpointNode, "yfov", "fieldOfView");
47002
+ this .addAnimationPointerAlias (viewpointNode, "znear", "nearDistance");
47003
+ this .addAnimationPointerAlias (viewpointNode, "zfar", "farDistance");
47004
+
47005
+ camera .pointers = [viewpointNode];
47006
+
46843
47007
  return viewpointNode;
46844
47008
  },
46845
47009
  nodesArray (nodes)
@@ -46880,13 +47044,12 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
46880
47044
  {
46881
47045
  // Skins can be cloned.
46882
47046
 
46883
- if (!skin .humanoidNode)
46884
- skin .humanoidNode = scene .createNode ("HAnimHumanoid", false);
46885
-
46886
- node .humanoidNode = skin .humanoidNode;
47047
+ skin .humanoidNode ??= scene .createNode ("HAnimHumanoid", false);
47048
+ node .humanoidNode = skin .humanoidNode;
46887
47049
  }
46888
47050
 
46889
47051
  node .childNode = node .humanoidNode ?? node .transformNode;
47052
+ node .pointers = [node .childNode];
46890
47053
 
46891
47054
  return node;
46892
47055
  },
@@ -47127,7 +47290,7 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
47127
47290
 
47128
47291
  return matrices;
47129
47292
  },
47130
- scenesArray (scenes, sceneNumber = 0)
47293
+ scenesArray (glTF, scenes, sceneNumber = 0)
47131
47294
  {
47132
47295
  if (!(scenes instanceof Array))
47133
47296
  return;
@@ -47168,6 +47331,10 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
47168
47331
 
47169
47332
  switchNode .setup ();
47170
47333
 
47334
+ this .addAnimationPointerAlias (switchNode, "scene", "whichChoice");
47335
+
47336
+ glTF .pointers = [switchNode];
47337
+
47171
47338
  scene .getRootNodes () .push (switchNode);
47172
47339
  return;
47173
47340
  }
@@ -47313,6 +47480,8 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
47313
47480
  if (!(samplers instanceof Array))
47314
47481
  return [ ];
47315
47482
 
47483
+ // Determine cycleInterval.
47484
+
47316
47485
  const cycleInterval = samplers
47317
47486
  .map (sampler => this .accessors [sampler .input])
47318
47487
  .filter (input => input ?.array .length)
@@ -47320,8 +47489,25 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
47320
47489
 
47321
47490
  timeSensorNode ._cycleInterval = cycleInterval;
47322
47491
 
47323
- return channels
47492
+ // Get interpolators.
47493
+
47494
+ channels = channels
47324
47495
  .flatMap (channel => this .animationChannelObject (channel, samplers, timeSensorNode));
47496
+
47497
+ // Insert Script nodes after last interpolator.
47498
+
47499
+ for (const scriptNode of this .animationScripts)
47500
+ {
47501
+ const index = channels .findLastIndex (node => node .getFields ()
47502
+ .some (field => Array .from (field .getOutputRoutes ())
47503
+ .some (route => route .getDestinationNode () === scriptNode)));
47504
+
47505
+ channels .splice (index + 1, 0, scriptNode);
47506
+ }
47507
+
47508
+ this .animationScripts .length = 0;
47509
+
47510
+ return channels;
47325
47511
  },
47326
47512
  animationChannelObject (channel, samplers, timeSensorNode)
47327
47513
  {
@@ -48146,38 +48332,19 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
48146
48332
 
48147
48333
  switch (target .path)
48148
48334
  {
48149
- case "translation":
48335
+ case "pointer":
48150
48336
  {
48151
- const interpolatorNode = this .createPositionInterpolator (interpolation, times, keyValues .array, cycleInterval);
48152
-
48153
- scene .addNamedNode (scene .getUniqueName ("TranslationInterpolator"), interpolatorNode);
48337
+ const [node, field] = this .getAnimationPointer (target .extensions ?.KHR_animation_pointer ?.pointer);
48154
48338
 
48155
- scene .addRoute (timeSensorNode, "fraction_changed", interpolatorNode, "set_fraction");
48156
- scene .addRoute (interpolatorNode, "value_changed", node, "set_translation");
48157
-
48158
- return interpolatorNode;
48339
+ return this .createAnimationPointerInterpolator (timeSensorNode, node, field, interpolation, times, keyValues, cycleInterval);
48159
48340
  }
48341
+ case "translation":
48160
48342
  case "rotation":
48161
- {
48162
- const interpolatorNode = this .createOrientationInterpolator (interpolation, times, keyValues .array, cycleInterval);
48163
-
48164
- scene .addNamedNode (scene .getUniqueName ("RotationInterpolator"), interpolatorNode);
48165
-
48166
- scene .addRoute (timeSensorNode, "fraction_changed", interpolatorNode, "set_fraction");
48167
- scene .addRoute (interpolatorNode, "value_changed", node, "set_rotation");
48168
-
48169
- return interpolatorNode;
48170
- }
48171
48343
  case "scale":
48172
48344
  {
48173
- const interpolatorNode = this .createPositionInterpolator (interpolation, times, keyValues .array, cycleInterval);
48174
-
48175
- scene .addNamedNode (scene .getUniqueName ("ScaleInterpolator"), interpolatorNode);
48345
+ const field = node .getField (target .path);
48176
48346
 
48177
- scene .addRoute (timeSensorNode, "fraction_changed", interpolatorNode, "set_fraction");
48178
- scene .addRoute (interpolatorNode, "value_changed", node, "set_scale");
48179
-
48180
- return interpolatorNode;
48347
+ return this .createAnimationPointerInterpolator (timeSensorNode, node, field, interpolation, times, keyValues, cycleInterval);
48181
48348
  }
48182
48349
  case "weights":
48183
48350
  {
@@ -48204,7 +48371,7 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
48204
48371
  interpolatorNodes .push (coordinateInterpolatorNode);
48205
48372
 
48206
48373
  scene .addRoute (timeSensorNode, "fraction_changed", coordinateInterpolatorNode, "set_fraction");
48207
- scene .addRoute (coordinateInterpolatorNode, "value_changed", geometryNode ._coord, "set_point");
48374
+ scene .addRoute (coordinateInterpolatorNode, "value_changed", geometryNode ._coord, "point");
48208
48375
  }
48209
48376
 
48210
48377
  const normalInterpolatorNode = this .createArrayInterpolator ("NormalInterpolator", interpolation, times, keyValues .array, cycleInterval, targets, attributes, "NORMAL");
@@ -48214,63 +48381,252 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
48214
48381
  interpolatorNodes .push (normalInterpolatorNode);
48215
48382
 
48216
48383
  scene .addRoute (timeSensorNode, "fraction_changed", normalInterpolatorNode, "set_fraction");
48217
- scene .addRoute (normalInterpolatorNode, "value_changed", geometryNode ._normal, "set_vector");
48384
+ scene .addRoute (normalInterpolatorNode, "value_changed", geometryNode ._normal, "vector");
48218
48385
  }
48219
48386
  }
48220
48387
 
48221
48388
  return interpolatorNodes;
48222
48389
  }
48223
- case "pointer":
48390
+ default:
48224
48391
  {
48225
- // const
48226
- // pointer = target .extensions ?.KHR_animation_pointer ?.pointer ?? "",
48227
- // path = pointer .split ("/") .filter (p => p)
48228
- // name = path .pop ();
48229
-
48230
- // let glTF = this .input;
48392
+ return [ ];
48393
+ }
48394
+ }
48395
+ },
48396
+ createAnimationPointerInterpolator: (function ()
48397
+ {
48398
+ const interpolators = new Map ([
48399
+ [Base_X3DConstants .SFBool, { typeName: "BooleanSequencer" }],
48400
+ [Base_X3DConstants .SFInt32, { typeName: "IntegerSequencer" }],
48401
+ [Base_X3DConstants .SFFloat, { typeName: "ScalarInterpolator", components: 1 }],
48402
+ [Base_X3DConstants .SFVec2f, { typeName: "PositionInterpolator2D", components: 2 }],
48403
+ [Base_X3DConstants .SFVec3f, { typeName: "PositionInterpolator", components: 3 }],
48404
+ ]);
48231
48405
 
48232
- // for (const property of path)
48233
- // glTF = glTF [property]
48406
+ return function (timeSensorNode, node, field, interpolation, times, keyValues, cycleInterval)
48407
+ {
48408
+ if (!(node && field))
48409
+ return [ ];
48234
48410
 
48235
- // console .log (glTF)
48411
+ const scene = this .getScene ();
48236
48412
 
48237
- return [ ];
48238
- }
48239
- default:
48413
+ switch (field .getType ())
48240
48414
  {
48241
- return [ ];
48415
+ case Base_X3DConstants .SFColor:
48416
+ {
48417
+ const interpolatorNodes = [ ];
48418
+
48419
+ switch ((keyValues .array .length / times .length) % 3)
48420
+ {
48421
+ case 0: // Color3 pointer
48422
+ {
48423
+ var colors = keyValues .array;
48424
+ break;
48425
+ }
48426
+ default: // Color4 pointer
48427
+ {
48428
+ var
48429
+ colors = keyValues .array .filter ((_, i) => i % 4 < 3),
48430
+ transparencies = keyValues .array .filter ((_, i) => i % 4 === 3);
48431
+
48432
+ transparencies = transparencies .every (value => value >= 1)
48433
+ ? undefined
48434
+ : transparencies .map (value => 1 - value);
48435
+
48436
+ break;
48437
+ }
48438
+ }
48439
+
48440
+ const interpolatorNode = this .createNamedInterpolator ("ColorInterpolator", 3, interpolation, times, colors, cycleInterval);
48441
+
48442
+ scene .addNamedNode (scene .getUniqueName (`${GLTF2Parser_$.toUpperCaseFirst (field .getName ())}Interpolator`), interpolatorNode);
48443
+
48444
+ scene .addRoute (timeSensorNode, "fraction_changed", interpolatorNode, "set_fraction");
48445
+ scene .addRoute (interpolatorNode, "value_changed", node, field .getName ());
48446
+
48447
+ interpolatorNodes .push (interpolatorNode);
48448
+
48449
+ // These are currently the only two affected fields, which are SFColor but pointer is Color4.
48450
+ if (field .getName () .match (/^(?:baseColor|emissiveColor)$/) && transparencies)
48451
+ {
48452
+ const interpolatorNode = this .createNamedInterpolator ("ScalarInterpolator", 1, interpolation, times, transparencies, cycleInterval);
48453
+
48454
+ scene .addNamedNode (scene .getUniqueName ("TransparencyInterpolator"), interpolatorNode);
48455
+
48456
+ scene .addRoute (timeSensorNode, "fraction_changed", interpolatorNode, "set_fraction");
48457
+ scene .addRoute (interpolatorNode, "value_changed", node, "transparency");
48458
+
48459
+ interpolatorNodes .push (interpolatorNode);
48460
+ }
48461
+
48462
+ return interpolatorNodes;
48463
+ }
48464
+ case Base_X3DConstants .SFColorRGBA:
48465
+ {
48466
+ const interpolatorNodes = [ ];
48467
+
48468
+ var
48469
+ colors = keyValues .array .filter ((_, i) => i % 4 < 3),
48470
+ transparencies = keyValues .array .filter ((_, i) => i % 4 === 3);
48471
+
48472
+ transparencies = transparencies .every (value => value >= 1)
48473
+ ? undefined
48474
+ : transparencies .map (value => 1 - value);
48475
+
48476
+ // Script
48477
+
48478
+ const scriptNode = scene .createNode ("Script", false);
48479
+
48480
+ scriptNode .addUserDefinedField (Base_X3DConstants .inputOutput, "color", new x_ite_Fields .SFColor (1, 1, 1));
48481
+ scriptNode .addUserDefinedField (Base_X3DConstants .inputOutput, "alpha" , new x_ite_Fields .SFFloat (1));
48482
+ scriptNode .addUserDefinedField (Base_X3DConstants .outputOnly, "value_changed", new x_ite_Fields .SFColorRGBA ());
48483
+
48484
+ scriptNode ._url = [/* js */ `ecmascript:
48485
+
48486
+ function eventsProcessed ()
48487
+ {
48488
+ value_changed = new SFColorRGBA (... color, alpha);
48489
+ }
48490
+ `];
48491
+
48492
+ scriptNode .setup ();
48493
+
48494
+ scene .addNamedNode (scene .getUniqueName ("CombineColorRGBAScript"), scriptNode);
48495
+ scene .addRoute (scriptNode, "value_changed", node, field .getName ());
48496
+
48497
+ // ColorInterpolator
48498
+
48499
+ const interpolatorNode = this .createNamedInterpolator ("ColorInterpolator", 3, interpolation, times, colors, cycleInterval);
48500
+
48501
+ scene .addNamedNode (scene .getUniqueName (`${GLTF2Parser_$.toUpperCaseFirst (field .getName ())}Interpolator`), interpolatorNode);
48502
+
48503
+ scene .addRoute (timeSensorNode, "fraction_changed", interpolatorNode, "set_fraction");
48504
+ scene .addRoute (interpolatorNode, "value_changed", scriptNode, "color");
48505
+
48506
+ interpolatorNodes .push (interpolatorNode);
48507
+
48508
+ // AlphaInterpolator
48509
+
48510
+ if (transparencies)
48511
+ {
48512
+ const interpolatorNode = this .createNamedInterpolator ("ScalarInterpolator", 1, interpolation, times, transparencies, cycleInterval);
48513
+
48514
+ scene .addNamedNode (scene .getUniqueName ("AlphaInterpolator"), interpolatorNode);
48515
+
48516
+ scene .addRoute (timeSensorNode, "fraction_changed", interpolatorNode, "set_fraction");
48517
+ scene .addRoute (interpolatorNode, "value_changed", scriptNode, "alpha");
48518
+
48519
+ interpolatorNodes .push (interpolatorNode);
48520
+ }
48521
+
48522
+ interpolatorNodes .push (scriptNode);
48523
+
48524
+ return interpolatorNodes;
48525
+ }
48526
+ case Base_X3DConstants .SFRotation:
48527
+ {
48528
+ const interpolatorNode = this .createOrientationInterpolator (interpolation, times, keyValues .array, cycleInterval);
48529
+
48530
+ scene .addNamedNode (scene .getUniqueName (`${GLTF2Parser_$.toUpperCaseFirst (field .getName ())}Interpolator`), interpolatorNode);
48531
+
48532
+ scene .addRoute (timeSensorNode, "fraction_changed", interpolatorNode, "set_fraction");
48533
+ scene .addRoute (interpolatorNode, "value_changed", node, field .getName ());
48534
+
48535
+ return interpolatorNode;
48536
+ }
48537
+ case Base_X3DConstants .SFBool:
48538
+ case Base_X3DConstants .SFInt32:
48539
+ case Base_X3DConstants .SFFloat:
48540
+ case Base_X3DConstants .SFVec2f:
48541
+ case Base_X3DConstants .SFVec3f:
48542
+ {
48543
+ const
48544
+ { typeName, components} = interpolators .get (field .getType ()),
48545
+ suffix = typeName .replace (/^.*?(Sequencer|Interpolator).*?$/, "$1");
48546
+
48547
+ const interpolatorNode = this .createNamedInterpolator (typeName, components, components ? interpolation : "LINEAR", times, keyValues .array, cycleInterval);
48548
+
48549
+ scene .addNamedNode (scene .getUniqueName (GLTF2Parser_$.toUpperCaseFirst (field .getName ()) + suffix), interpolatorNode);
48550
+
48551
+ scene .addRoute (timeSensorNode, "fraction_changed", interpolatorNode, "set_fraction");
48552
+ scene .addRoute (interpolatorNode, "value_changed", node, field .getName ());
48553
+
48554
+ return interpolatorNode;
48555
+ }
48556
+ default:
48557
+ {
48558
+ return [ ];
48559
+ }
48242
48560
  }
48243
- }
48561
+ };
48562
+ })(),
48563
+ getAnimationPointer (pointer = "")
48564
+ {
48565
+ const
48566
+ path = pointer .split ("/") .filter (p => p),
48567
+ field = path .pop () .replace (/(?:Factor$)/, "");
48568
+
48569
+ let glTF = this .input;
48570
+
48571
+ for (const property of path)
48572
+ glTF = glTF ?.[property];
48573
+
48574
+ return glTF ?.pointers
48575
+ ?.map (node => [node, GLTF2Parser_$.try (() => node ?.getField (this .getAnimationPointerAlias (node, field) ?? field))])
48576
+ ?.find (([node, field]) => field)
48577
+ ?? [ ];
48244
48578
  },
48245
- createPositionInterpolator (interpolation, times, keyValues, cycleInterval)
48579
+ addAnimationPointerAlias (node, field, alias)
48246
48580
  {
48247
- const scene = this .getScene ();
48581
+ const key = `${node .getTypeName ()}.${field}`;
48582
+
48583
+ this .pointerAliases .set (key, alias);
48584
+ },
48585
+ getAnimationPointerAlias (node, field)
48586
+ {
48587
+ const key = `${node .getTypeName ()}.${field}`;
48588
+
48589
+ return this .pointerAliases .get (key);
48590
+ },
48591
+ createNamedInterpolator (typeName, components, interpolation, times, keyValues, cycleInterval)
48592
+ {
48593
+ const
48594
+ scene = this .getScene (),
48595
+ interpolatorNode = scene .createNode (typeName, false);
48248
48596
 
48249
48597
  switch (interpolation)
48250
48598
  {
48251
48599
  case "STEP":
48252
48600
  {
48253
- const interpolatorNode = scene .createNode ("PositionInterpolator", false);
48601
+ const
48602
+ key = [ ],
48603
+ keyValue = [ ];
48254
48604
 
48255
48605
  // Key
48256
48606
 
48257
- interpolatorNode ._key .push (times [0] / cycleInterval);
48607
+ key .push (times [0] / cycleInterval);
48258
48608
 
48259
48609
  for (let i = 1, length = times .length; i < length; ++ i)
48260
- interpolatorNode ._key .push (times [i] / cycleInterval, times [i] / cycleInterval);
48610
+ key .push (times [i] / cycleInterval, times [i] / cycleInterval);
48261
48611
 
48262
48612
  // KeyValue
48263
48613
 
48264
- interpolatorNode ._keyValue .push (new Numbers_Vector3 (keyValues [0], keyValues [1], keyValues [2]));
48614
+ const components2 = components * 2;
48265
48615
 
48266
- for (let i = 0, length = keyValues .length - 3; i < length; i += 3)
48616
+ for (let c = 0; c < components; ++ c)
48617
+ keyValue .push (keyValues [c]);
48618
+
48619
+ for (let i = 0, length = keyValues .length - components; i < length; i += components)
48267
48620
  {
48268
- interpolatorNode ._keyValue .push (new Numbers_Vector3 (keyValues [i + 0], keyValues [i + 1], keyValues [i + 2]),
48269
- new Numbers_Vector3 (keyValues [i + 3], keyValues [i + 4], keyValues [i + 5]));
48621
+ for (let c = 0; c < components2; ++ c)
48622
+ keyValue .push (keyValues [i + c]);
48270
48623
  }
48271
48624
 
48272
48625
  // Finish
48273
48626
 
48627
+ interpolatorNode ._key = key;
48628
+ interpolatorNode ._keyValue = keyValue;
48629
+
48274
48630
  interpolatorNode .setup ();
48275
48631
 
48276
48632
  return interpolatorNode;
@@ -48278,8 +48634,6 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
48278
48634
  default:
48279
48635
  case "LINEAR":
48280
48636
  {
48281
- const interpolatorNode = scene .createNode ("PositionInterpolator", false);
48282
-
48283
48637
  interpolatorNode ._key = times .map (t => t / cycleInterval);
48284
48638
  interpolatorNode ._keyValue = keyValues;
48285
48639
 
@@ -48290,14 +48644,14 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
48290
48644
  case "CUBICSPLINE":
48291
48645
  {
48292
48646
  const
48293
- interpolatorNode = scene .createNode ("PositionInterpolator", false),
48294
- vectors = [ ];
48647
+ key = [ ],
48648
+ keyValue = [ ],
48649
+ vectors = [ ],
48650
+ Vector = [Numbers_Vector2, Numbers_Vector2, Numbers_Vector3] [components - 1];
48295
48651
 
48296
- for (let i = 0, length = keyValues .length; i < length; i += 3)
48652
+ for (let i = 0, length = keyValues .length; i < length; i += components)
48297
48653
  {
48298
- vectors .push (new Numbers_Vector3 (keyValues [i + 0],
48299
- keyValues [i + 1],
48300
- keyValues [i + 2]));
48654
+ vectors .push (new Vector (... keyValues .subarray (i, i + components)));
48301
48655
  }
48302
48656
 
48303
48657
  const
@@ -48306,10 +48660,15 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
48306
48660
 
48307
48661
  for (const t of samples)
48308
48662
  {
48309
- interpolatorNode ._key .push (t / cycleInterval);
48310
- interpolatorNode ._keyValue .push (this .cubicSplineVector (t, times, vectors));
48663
+ key .push (t / cycleInterval);
48664
+ keyValue .push (... this .cubicSplineVector (t, times, vectors));
48311
48665
  }
48312
48666
 
48667
+ // Finish
48668
+
48669
+ interpolatorNode ._key = key;
48670
+ interpolatorNode ._keyValue = components === 1 ? keyValue .filter ((_, i) => i % 2 < 1) : keyValue;
48671
+
48313
48672
  interpolatorNode .setup ();
48314
48673
 
48315
48674
  return interpolatorNode;
@@ -48318,14 +48677,14 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
48318
48677
  },
48319
48678
  createOrientationInterpolator (interpolation, times, keyValues, cycleInterval)
48320
48679
  {
48321
- const scene = this .getScene ();
48680
+ const
48681
+ scene = this .getScene (),
48682
+ interpolatorNode = scene .createNode ("OrientationInterpolator", false);
48322
48683
 
48323
48684
  switch (interpolation)
48324
48685
  {
48325
48686
  case "STEP":
48326
48687
  {
48327
- const interpolatorNode = scene .createNode ("OrientationInterpolator", false);
48328
-
48329
48688
  // Key
48330
48689
 
48331
48690
  interpolatorNode ._key .push (times [0] / cycleInterval);
@@ -48361,8 +48720,6 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
48361
48720
  default:
48362
48721
  case "LINEAR":
48363
48722
  {
48364
- const interpolatorNode = scene .createNode ("OrientationInterpolator", false);
48365
-
48366
48723
  interpolatorNode ._key = times .map (t => t / cycleInterval);
48367
48724
 
48368
48725
  for (let i = 0, length = keyValues .length; i < length; i += 4)
@@ -48379,9 +48736,7 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
48379
48736
  }
48380
48737
  case "CUBICSPLINE":
48381
48738
  {
48382
- const
48383
- interpolatorNode = scene .createNode ("OrientationInterpolator", false),
48384
- quaternions = [ ];
48739
+ const quaternions = [ ];
48385
48740
 
48386
48741
  for (let i = 0, length = keyValues .length; i < length; i += 4)
48387
48742
  {
@@ -48411,19 +48766,19 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
48411
48766
  },
48412
48767
  createArrayInterpolator (typeName, interpolation, times, weights, cycleInterval, targets, accessors, key)
48413
48768
  {
48414
- const
48415
- scene = this .getScene (),
48416
- accessor = accessors [key];
48769
+ const accessor = accessors [key];
48417
48770
 
48418
48771
  if (!accessor)
48419
48772
  return null;
48420
48773
 
48774
+ const
48775
+ scene = this .getScene (),
48776
+ interpolatorNode = scene .createNode (typeName, false);
48777
+
48421
48778
  switch (interpolation)
48422
48779
  {
48423
48780
  case "STEP":
48424
48781
  {
48425
- const interpolatorNode = scene .createNode (typeName, false);
48426
-
48427
48782
  // Key
48428
48783
 
48429
48784
  interpolatorNode ._key .push (times [0] / cycleInterval);
@@ -48460,8 +48815,6 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
48460
48815
  default:
48461
48816
  case "LINEAR":
48462
48817
  {
48463
- const interpolatorNode = scene .createNode (typeName, false);
48464
-
48465
48818
  // Key
48466
48819
 
48467
48820
  interpolatorNode ._key = times .map (t => t / cycleInterval);
@@ -48484,8 +48837,6 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
48484
48837
  }
48485
48838
  case "CUBICSPLINE":
48486
48839
  {
48487
- const interpolatorNode = scene .createNode (typeName, false);
48488
-
48489
48840
  // Key
48490
48841
 
48491
48842
  const
@@ -48624,7 +48975,7 @@ const GLTF2Parser_default_ = GLTF2Parser;
48624
48975
 
48625
48976
  /* harmony default export */ const Parser_GLTF2Parser = (x_ite_Namespace .add ("GLTF2Parser", GLTF2Parser_default_));
48626
48977
  ;// ./src/x_ite/Parser/GLB2Parser.js
48627
- /* provided dependency */ var GLB2Parser_$ = __webpack_require__(58);
48978
+ /* provided dependency */ var GLB2Parser_$ = __webpack_require__(394);
48628
48979
  /*******************************************************************************
48629
48980
  *
48630
48981
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -48775,7 +49126,7 @@ const GLB2Parser_default_ = GLB2Parser;
48775
49126
 
48776
49127
  /* harmony default export */ const Parser_GLB2Parser = (x_ite_Namespace .add ("GLB2Parser", GLB2Parser_default_));
48777
49128
  ;// ./src/x_ite/Parser/OBJParser.js
48778
- /* provided dependency */ var OBJParser_$ = __webpack_require__(58);
49129
+ /* provided dependency */ var OBJParser_$ = __webpack_require__(394);
48779
49130
  /*******************************************************************************
48780
49131
  *
48781
49132
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -51340,7 +51691,7 @@ Object .assign (Complex .prototype,
51340
51691
  return this .real === complex .real &&
51341
51692
  this .imag === complex .imag;
51342
51693
  },
51343
- set (real, imag)
51694
+ set (real = 0, imag = 0)
51344
51695
  {
51345
51696
  this .real = real;
51346
51697
  this .imag = imag;
@@ -51504,10 +51855,6 @@ Object .assign (Complex,
51504
51855
  {
51505
51856
  return Object .create (Complex .prototype) .setPolar (magnitude, angle);
51506
51857
  },
51507
- multiply (lhs, rhs)
51508
- {
51509
- return lhs .copy () .multiply (rhs);
51510
- },
51511
51858
  });
51512
51859
 
51513
51860
  const Complex_default_ = Complex;
@@ -52110,6 +52457,16 @@ class MatrixStack extends Array
52110
52457
  this [this .#top] .identity ();
52111
52458
  }
52112
52459
 
52460
+ inverse ()
52461
+ {
52462
+ this [this .#top] .inverse ();
52463
+ }
52464
+
52465
+ multRight (matrix)
52466
+ {
52467
+ this [this .#top] .multRight (matrix);
52468
+ }
52469
+
52113
52470
  multLeft (matrix)
52114
52471
  {
52115
52472
  this [this .#top] .multLeft (matrix);
@@ -52136,8 +52493,8 @@ const MatrixStack_default_ = MatrixStack;
52136
52493
 
52137
52494
  /* harmony default export */ const Utility_MatrixStack = (x_ite_Namespace .add ("MatrixStack", MatrixStack_default_));
52138
52495
  ;// ./src/x_ite/Parser/SVGParser.js
52139
- /* provided dependency */ var SVGParser_$ = __webpack_require__(58);
52140
- /* provided dependency */ var SVGParser_libtess = __webpack_require__(499);
52496
+ /* provided dependency */ var SVGParser_$ = __webpack_require__(394);
52497
+ /* provided dependency */ var SVGParser_libtess = __webpack_require__(787);
52141
52498
  /*******************************************************************************
52142
52499
  *
52143
52500
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -54916,7 +55273,7 @@ const SVGParser_default_ = SVGParser;
54916
55273
 
54917
55274
  /* harmony default export */ const Parser_SVGParser = (x_ite_Namespace .add ("SVGParser", SVGParser_default_));
54918
55275
  ;// ./src/x_ite/Parser/GoldenGate.js
54919
- /* provided dependency */ var GoldenGate_$ = __webpack_require__(58);
55276
+ /* provided dependency */ var GoldenGate_$ = __webpack_require__(394);
54920
55277
  /*******************************************************************************
54921
55278
  *
54922
55279
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -56593,7 +56950,8 @@ function X3DRenderObject (executionContext)
56593
56950
  this .localShadows = [ false ];
56594
56951
  this .localFogs = [ null ];
56595
56952
  this .layouts = [ ];
56596
- this .humanoids = [ null ];
56953
+ this .hAnimNode = [ null ];
56954
+ this .invHumanoidMatrix = new Utility_MatrixStack (Numbers_Matrix4);
56597
56955
  this .generatedCubeMapTextures = [ ];
56598
56956
  this .collisions = [ ];
56599
56957
  this .collisionTime = new Time_StopWatch ();
@@ -56851,9 +57209,13 @@ Object .assign (X3DRenderObject .prototype,
56851
57209
  {
56852
57210
  return this .layouts .at (-1);
56853
57211
  },
56854
- getHumanoids ()
57212
+ getHAnimNode ()
57213
+ {
57214
+ return this .hAnimNode;
57215
+ },
57216
+ getInvHumanoidMatrix ()
56855
57217
  {
56856
- return this .humanoids;
57218
+ return this .invHumanoidMatrix;
56857
57219
  },
56858
57220
  getGeneratedCubeMapTextures ()
56859
57221
  {
@@ -57134,7 +57496,7 @@ Object .assign (X3DRenderObject .prototype,
57134
57496
 
57135
57497
  pointingContext .modelViewMatrix .set (modelViewMatrix);
57136
57498
  pointingContext .scissor = viewVolume .getScissor ();
57137
- pointingContext .humanoidNode = this .humanoids .at (-1);
57499
+ pointingContext .hAnimNode = this .hAnimNode .at (-1);
57138
57500
  pointingContext .shapeNode = shapeNode;
57139
57501
 
57140
57502
  // Clip planes & sensors
@@ -57233,7 +57595,7 @@ Object .assign (X3DRenderObject .prototype,
57233
57595
 
57234
57596
  depthContext .modelViewMatrix .set (modelViewMatrix);
57235
57597
  depthContext .scissor = viewVolume .getScissor ();
57236
- depthContext .humanoidNode = this .humanoids .at (-1);
57598
+ depthContext .hAnimNode = this .hAnimNode .at (-1);
57237
57599
  depthContext .shapeNode = shapeNode;
57238
57600
 
57239
57601
  // Clip planes
@@ -57292,7 +57654,7 @@ Object .assign (X3DRenderObject .prototype,
57292
57654
  renderContext .scissor .assign (viewVolume .getScissor ());
57293
57655
  renderContext .shadows = this .localShadows .at (-1);
57294
57656
  renderContext .fogNode = this .localFogs .at (-1);
57295
- renderContext .humanoidNode = this .humanoids .at (-1);
57657
+ renderContext .hAnimNode = this .hAnimNode .at (-1);
57296
57658
  renderContext .shapeNode = shapeNode;
57297
57659
  renderContext .appearanceNode = shapeNode .getAppearance ();
57298
57660
 
@@ -57352,12 +57714,12 @@ Object .assign (X3DRenderObject .prototype,
57352
57714
  {
57353
57715
  const
57354
57716
  renderContext = shapes [s],
57355
- { scissor, clipPlanes, modelViewMatrix, shapeNode, humanoidNode } = renderContext,
57717
+ { scissor, clipPlanes, modelViewMatrix, shapeNode, hAnimNode } = renderContext,
57356
57718
  appearanceNode = shapeNode .getAppearance (),
57357
57719
  geometryContext = shapeNode .getGeometryContext (),
57358
57720
  depthModeNode = appearanceNode .getDepthMode (),
57359
57721
  stylePropertiesNode = appearanceNode .getStyleProperties (geometryContext .geometryType),
57360
- shaderNode = browser .getPointingShader (clipPlanes .length, shapeNode, humanoidNode),
57722
+ shaderNode = browser .getPointingShader (clipPlanes .length, shapeNode, hAnimNode),
57361
57723
  id = browser .addPointingShape (renderContext);
57362
57724
 
57363
57725
  gl .scissor (scissor .x - x,
@@ -57376,7 +57738,7 @@ Object .assign (X3DRenderObject .prototype,
57376
57738
 
57377
57739
  depthModeNode ?.enable (gl);
57378
57740
  stylePropertiesNode ?.setShaderUniforms (gl, shaderNode);
57379
- humanoidNode ?.setShaderUniforms (gl, shaderNode);
57741
+ hAnimNode ?.setShaderUniforms (gl, shaderNode);
57380
57742
 
57381
57743
  shapeNode .displaySimple (gl, renderContext, shaderNode);
57382
57744
 
@@ -57592,11 +57954,11 @@ Object .assign (X3DRenderObject .prototype,
57592
57954
  {
57593
57955
  const
57594
57956
  renderContext = shapes [s],
57595
- { scissor, clipPlanes, modelViewMatrix, shapeNode, humanoidNode } = renderContext,
57957
+ { scissor, clipPlanes, modelViewMatrix, shapeNode, hAnimNode } = renderContext,
57596
57958
  appearanceNode = shapeNode .getAppearance (),
57597
57959
  geometryContext = shapeNode .getGeometryContext (),
57598
57960
  stylePropertiesNode = appearanceNode .getStyleProperties (geometryContext .geometryType),
57599
- shaderNode = browser .getDepthShader (clipPlanes .length, shapeNode, humanoidNode);
57961
+ shaderNode = browser .getDepthShader (clipPlanes .length, shapeNode, hAnimNode);
57600
57962
 
57601
57963
  gl .scissor (... scissor);
57602
57964
 
@@ -57609,7 +57971,7 @@ Object .assign (X3DRenderObject .prototype,
57609
57971
  gl .uniformMatrix4fv (shaderNode .x3d_ModelViewMatrix, false, modelViewMatrix);
57610
57972
 
57611
57973
  stylePropertiesNode ?.setShaderUniforms (gl, shaderNode);
57612
- humanoidNode ?.setShaderUniforms (gl, shaderNode);
57974
+ hAnimNode ?.setShaderUniforms (gl, shaderNode);
57613
57975
 
57614
57976
  shapeNode .displaySimple (gl, renderContext, shaderNode);
57615
57977
  browser .resetTextureUnits ();
@@ -62930,7 +63292,7 @@ const X3DTexture2DNode_default_ = X3DTexture2DNode;
62930
63292
 
62931
63293
  /* harmony default export */ const Texturing_X3DTexture2DNode = (x_ite_Namespace .add ("X3DTexture2DNode", X3DTexture2DNode_default_));
62932
63294
  ;// ./src/x_ite/Components/Texturing/ImageTexture.js
62933
- /* provided dependency */ var ImageTexture_$ = __webpack_require__(58);
63295
+ /* provided dependency */ var ImageTexture_$ = __webpack_require__(394);
62934
63296
  /*******************************************************************************
62935
63297
  *
62936
63298
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -63070,7 +63432,7 @@ Object .assign (Object .setPrototypeOf (ImageTexture .prototype, Texturing_X3DTe
63070
63432
  setError (event)
63071
63433
  {
63072
63434
  if (this .URL .protocol !== "data:")
63073
- console .warn (`Error loading image '${decodeURI (this .URL .href)}'`, event .type);
63435
+ console .warn (`Error loading image '${decodeURI (this .URL .href)}:'`, event .type);
63074
63436
 
63075
63437
  this .loadNext ();
63076
63438
  },
@@ -65277,15 +65639,57 @@ Object .assign (Object .setPrototypeOf (X3DViewpointNode .prototype, Core_X3DBin
65277
65639
  },
65278
65640
  getUserPosition ()
65279
65641
  {
65280
- return this .userPosition .assign (this .getPosition ()) .add (this ._positionOffset .getValue ());
65642
+ return this .userPosition .assign (this .getPosition ())
65643
+ .add (this ._positionOffset .getValue ());
65644
+ },
65645
+ setUserPosition (userPosition)
65646
+ {
65647
+ this ._positionOffset = this .userPosition .assign (userPosition)
65648
+ .subtract (this .getPosition ());
65281
65649
  },
65282
65650
  getUserOrientation ()
65283
65651
  {
65284
- return this .userOrientation .assign (this .getOrientation ()) .multRight (this ._orientationOffset .getValue ());
65652
+ return this .userOrientation .assign (this .getOrientation ())
65653
+ .multRight (this ._orientationOffset .getValue ());
65654
+ },
65655
+ setUserOrientation (userOrientation)
65656
+ {
65657
+ this ._orientationOffset = this .userOrientation .assign (this .getOrientation ()) .inverse ()
65658
+ .multRight (userOrientation);
65285
65659
  },
65286
65660
  getUserCenterOfRotation ()
65287
65661
  {
65288
- return this .userCenterOfRotation .assign (this .getCenterOfRotation ()) .add (this ._centerOfRotationOffset .getValue ());
65662
+ return this .userCenterOfRotation .assign (this .getCenterOfRotation ())
65663
+ .add (this ._centerOfRotationOffset .getValue ());
65664
+ },
65665
+ setUserCenterOfRotation (userCenterOfRotation)
65666
+ {
65667
+ this ._centerOfRotationOffset = this .userCenterOfRotation .assign (userCenterOfRotation)
65668
+ .subtract (this .getCenterOfRotation ());
65669
+ },
65670
+ getFieldOfViewScale ()
65671
+ {
65672
+ return this ._fieldOfViewScale .getValue ();
65673
+ },
65674
+ setFieldOfViewScale (value)
65675
+ {
65676
+ this ._fieldOfViewScale = value;
65677
+ },
65678
+ getNearDistance ()
65679
+ {
65680
+ return this .nearDistance;
65681
+ },
65682
+ setNearDistance (value)
65683
+ {
65684
+ this .nearDistance = value;
65685
+ },
65686
+ getFarDistance ()
65687
+ {
65688
+ return this .farDistance;
65689
+ },
65690
+ setFarDistance (value)
65691
+ {
65692
+ this .farDistance = value;
65289
65693
  },
65290
65694
  getProjectionMatrix (renderObject)
65291
65695
  {
@@ -66314,7 +66718,7 @@ const X3DWorld_default_ = X3DWorld;
66314
66718
 
66315
66719
  /* harmony default export */ const Execution_X3DWorld = (x_ite_Namespace .add ("X3DWorld", X3DWorld_default_));
66316
66720
  ;// ./src/x_ite/InputOutput/FileLoader.js
66317
- /* provided dependency */ var FileLoader_$ = __webpack_require__(58);
66721
+ /* provided dependency */ var FileLoader_$ = __webpack_require__(394);
66318
66722
  /*******************************************************************************
66319
66723
  *
66320
66724
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -66627,7 +67031,7 @@ Object .assign (Object .setPrototypeOf (FileLoader .prototype, Base_X3DObject .p
66627
67031
  if (this .URL .protocol === "data:")
66628
67032
  console .error (`Couldn't load data URL.`, error);
66629
67033
  else
66630
- console .error (`Couldn't load URL '${decodeURI (this .URL .href)}'.`, error);
67034
+ console .error (`Couldn't load URL '${FileLoader_$.try (() => decodeURI (this .URL)) ?? this .URL}'.`, error);
66631
67035
  },
66632
67036
  });
66633
67037
 
@@ -67278,7 +67682,7 @@ const ProtoDeclarationArray_default_ = ProtoDeclarationArray;
67278
67682
 
67279
67683
  /* harmony default export */ const Prototype_ProtoDeclarationArray = (x_ite_Namespace .add ("ProtoDeclarationArray", ProtoDeclarationArray_default_));
67280
67684
  ;// ./src/x_ite/Routing/X3DRoute.js
67281
- /* provided dependency */ var X3DRoute_$ = __webpack_require__(58);
67685
+ /* provided dependency */ var X3DRoute_$ = __webpack_require__(394);
67282
67686
  /*******************************************************************************
67283
67687
  *
67284
67688
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -77517,7 +77921,7 @@ Object .assign (Object .setPrototypeOf (X3DLineGeometryNode .prototype, Renderin
77517
77921
  if (this [_numLines0] !== numLines)
77518
77922
  return true;
77519
77923
 
77520
- if (this [_numLines2] !== numLines)
77924
+ if (this .hasNormals && this [_numLines2] !== numLines)
77521
77925
  return true;
77522
77926
 
77523
77927
  // Setup vertex attributes.
@@ -77599,7 +78003,7 @@ Object .assign (Object .setPrototypeOf (X3DLineGeometryNode .prototype, Renderin
77599
78003
  if (shapeNode [_numLines0] !== numLines)
77600
78004
  return true;
77601
78005
 
77602
- if (shapeNode [_numLines2] !== numLines)
78006
+ if (this .hasNormals && shapeNode [_numLines2] !== numLines)
77603
78007
  return true;
77604
78008
 
77605
78009
  // Setup vertex attributes.
@@ -77653,11 +78057,11 @@ Object .assign (Object .setPrototypeOf (X3DLineGeometryNode .prototype, Renderin
77653
78057
  return;
77654
78058
 
77655
78059
  const
77656
- browser = this .getBrowser (),
77657
- appearanceNode = renderContext .appearanceNode,
77658
- shaderNode = appearanceNode .getShader (this, renderContext),
77659
- renderModeNodes = appearanceNode .getRenderModes (),
77660
- primitiveMode = browser .getPrimitiveMode (this .getPrimitiveMode ());
78060
+ browser = this .getBrowser (),
78061
+ appearanceNode = renderContext .appearanceNode,
78062
+ shaderNode = appearanceNode .getShader (this, renderContext),
78063
+ renderModeNodes = appearanceNode .getRenderModes (),
78064
+ primitiveMode = browser .getPrimitiveMode (this .getPrimitiveMode ());
77661
78065
 
77662
78066
  for (const node of renderModeNodes)
77663
78067
  node .enable (gl);
@@ -90954,7 +91358,7 @@ mediump samplerCube textureCube;
90954
91358
 
90955
91359
  /* harmony default export */ const MaterialTextures = (x_ite_Namespace .add ("MaterialTextures", MaterialTextures_default_));
90956
91360
  ;// ./src/x_ite/Components/Shaders/X3DProgrammableShaderObject.js
90957
- /* provided dependency */ var X3DProgrammableShaderObject_$ = __webpack_require__(58);
91361
+ /* provided dependency */ var X3DProgrammableShaderObject_$ = __webpack_require__(394);
90958
91362
  /*******************************************************************************
90959
91363
  *
90960
91364
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -91184,6 +91588,7 @@ Object .assign (X3DProgrammableShaderObject .prototype,
91184
91588
  "x3d_TexCoordRamp",
91185
91589
  "x3d_JointsTexture",
91186
91590
  "x3d_DisplacementsTexture",
91591
+ "x3d_DisplacementWeightsTexture",
91187
91592
  "x3d_JointMatricesTexture",
91188
91593
  // Common
91189
91594
  "x3d_Id", // Pointing ID
@@ -91998,7 +92403,7 @@ Object .assign (X3DProgrammableShaderObject .prototype,
91998
92403
 
91999
92404
  return function (gl, renderContext, geometryContext, front = true)
92000
92405
  {
92001
- const { renderObject, fogNode, appearanceNode, humanoidNode, modelViewMatrix } = renderContext;
92406
+ const { renderObject, fogNode, appearanceNode, hAnimNode, modelViewMatrix } = renderContext;
92002
92407
 
92003
92408
  const
92004
92409
  stylePropertiesNode = appearanceNode .getStyleProperties (geometryContext .geometryType),
@@ -92113,7 +92518,7 @@ Object .assign (X3DProgrammableShaderObject .prototype,
92113
92518
 
92114
92519
  // Skinning
92115
92520
 
92116
- humanoidNode ?.setShaderUniforms (gl, this);
92521
+ hAnimNode ?.setShaderUniforms (gl, this);
92117
92522
  };
92118
92523
  })(),
92119
92524
  enable (gl)
@@ -94331,20 +94736,20 @@ NormalInfo info;info.ng=ng;
94331
94736
  #if defined(X3D_NORMAL_TEXTURE)
94332
94737
  #if __VERSION__==100
94333
94738
  #if defined(X3D_NORMAL_TEXTURE_2D)
94334
- info.ntex=texture2D(x3d_NormalTexture.texture2D,UV.st).rgb;
94739
+ vec3 ntex=texture2D(x3d_NormalTexture.texture2D,UV.st).rgb;
94335
94740
  #elif defined(X3D_NORMAL_TEXTURE_CUBE)
94336
- info.ntex=textureCube(x3d_NormalTexture.textureCube,UV).rgb;
94741
+ vec3 ntex=textureCube(x3d_NormalTexture.textureCube,UV).rgb;
94337
94742
  #endif
94338
94743
  #else
94339
94744
  #if defined(X3D_NORMAL_TEXTURE_2D)
94340
- info.ntex=texture(x3d_NormalTexture.texture2D,UV.st).rgb;
94745
+ vec3 ntex=texture(x3d_NormalTexture.texture2D,UV.st).rgb;
94341
94746
  #elif defined(X3D_NORMAL_TEXTURE_3D)
94342
- info.ntex=texture(x3d_NormalTexture.texture3D,UV).rgb;
94747
+ vec3 ntex=texture(x3d_NormalTexture.texture3D,UV).rgb;
94343
94748
  #elif defined(X3D_NORMAL_TEXTURE_CUBE)
94344
- info.ntex=texture(x3d_NormalTexture.textureCube,UV).rgb;
94749
+ vec3 ntex=texture(x3d_NormalTexture.textureCube,UV).rgb;
94345
94750
  #endif
94346
94751
  #endif
94347
- info.ntex=info.ntex*2.0-vec3(1.0);info.ntex*=vec3(vec2(normalScale),1.0);info.ntex=normalize(info.ntex);info.n=normalize(mat3(t,b,ng)*info.ntex);
94752
+ ntex=ntex*2.0-vec3(1.0);ntex*=vec3(vec2(normalScale),1.0);ntex=normalize(ntex);info.ntex=ntex;info.n=normalize(mat3(t,b,ng)*ntex);
94348
94753
  #else
94349
94754
  info.n=ng;
94350
94755
  #endif
@@ -94484,13 +94889,30 @@ vec4 shadowCoord=light.shadowMatrix*vec4(vertex,1.0);shadowCoord.z-=light.shadow
94484
94889
  ;// ./src/assets/shaders/webgl2/common/Skin2.glsl.js
94485
94890
  const Skin2_glsl_default_ = /* glsl */ `
94486
94891
  #if defined(X3D_SKINNING)
94487
- in float x3d_CoordIndex;uniform sampler2D x3d_JointsTexture;uniform sampler2D x3d_DisplacementsTexture;uniform sampler2D x3d_JointMatricesTexture;mat4 getJointMatrix(const in int joint){vec4 a=texelFetch(x3d_JointMatricesTexture,joint*8,0);vec4 b=texelFetch(x3d_JointMatricesTexture,joint*8+1,0);vec4 c=texelFetch(x3d_JointMatricesTexture,joint*8+2,0);vec4 d=texelFetch(x3d_JointMatricesTexture,joint*8+3,0);return mat4(a,b,c,d);}mat3 getDisplacementJointMatrix(const in int joint){mat4 m=getJointMatrix(joint);return mat3(m[0].xyz,m[1].xyz,m[2].xyz);}
94892
+ in float x3d_CoordIndex;
94893
+ #if X3D_NUM_JOINT_SETS>0
94894
+ uniform sampler2D x3d_JointsTexture;
94895
+ #endif
94896
+ #if X3D_NUM_DISPLACEMENTS>0
94897
+ uniform sampler2D x3d_DisplacementsTexture;uniform sampler2D x3d_DisplacementWeightsTexture;
94898
+ #endif
94899
+ #if X3D_NUM_JOINT_SETS>0||X3D_NUM_DISPLACEMENTS>0
94900
+ uniform sampler2D x3d_JointMatricesTexture;
94901
+ #endif
94902
+ #if X3D_NUM_JOINT_SETS>0
94903
+ mat4 getJointMatrix(const in int joint){vec4 a=texelFetch(x3d_JointMatricesTexture,joint*8,0);vec4 b=texelFetch(x3d_JointMatricesTexture,joint*8+1,0);vec4 c=texelFetch(x3d_JointMatricesTexture,joint*8+2,0);vec4 d=texelFetch(x3d_JointMatricesTexture,joint*8+3,0);return mat4(a,b,c,d);}
94904
+ #if defined(X3D_NORMALS)
94905
+ mat3 getJointNormalMatrix(const in int joint){vec4 a=texelFetch(x3d_JointMatricesTexture,joint*8+4,0);vec4 b=texelFetch(x3d_JointMatricesTexture,joint*8+5,0);vec4 c=texelFetch(x3d_JointMatricesTexture,joint*8+6,0);return mat3(a.xyz,vec3(a.w,b.xy),vec3(b.zw,c.x));}
94906
+ #endif
94907
+ #endif
94908
+ #if X3D_NUM_DISPLACEMENTS>0
94909
+ mat3 getDisplacementJointMatrix(const in int joint){vec4 a=texelFetch(x3d_JointMatricesTexture,joint*8,0);vec4 b=texelFetch(x3d_JointMatricesTexture,joint*8+1,0);vec4 c=texelFetch(x3d_JointMatricesTexture,joint*8+2,0);return mat3(a.xyz,b.xyz,c.xyz);}
94910
+ #endif
94488
94911
  #if defined(X3D_NORMALS)
94489
94912
  vec3 skinNormal=vec3(0.0);
94490
94913
  #if defined(X3D_TANGENTS)
94491
94914
  vec3 skinTangent=vec3(0.0);
94492
94915
  #endif
94493
- mat3 getJointNormalMatrix(const in int joint){vec4 a=texelFetch(x3d_JointMatricesTexture,joint*8+4,0);vec4 b=texelFetch(x3d_JointMatricesTexture,joint*8+5,0);vec4 c=texelFetch(x3d_JointMatricesTexture,joint*8+6,0);return mat3(a.xyz,vec3(a.w,b.xy),vec3(b.zw,c.x));}
94494
94916
  #define getSkinNormal(normal)(skinNormal)
94495
94917
  #if defined(X3D_TANGENTS)
94496
94918
  #define getSkinTangent(tangent)(skinTangent)
@@ -94507,16 +94929,19 @@ skinTangent=tangent;
94507
94929
  #endif
94508
94930
  #endif
94509
94931
  #if X3D_NUM_DISPLACEMENTS>0
94510
- {int coordIndexD=coordIndex*X3D_NUM_DISPLACEMENTS;int width=textureSize(x3d_DisplacementsTexture,0).x;int offset=(width*width)/2;for(int i=0;i<X3D_NUM_DISPLACEMENTS;++i){int index=coordIndexD+i;vec4 displacement=texelFetch(x3d_DisplacementsTexture,index,0);float weight=texelFetch(x3d_DisplacementsTexture,index+offset,0).x;skin.xyz+=getDisplacementJointMatrix(int(displacement.w))*displacement.xyz*weight;}}
94932
+ {int coordIndexD=coordIndex*(X3D_NUM_DISPLACEMENTS*2);for(int i=0;i<X3D_NUM_DISPLACEMENTS;++i){int index=coordIndexD+i*2;vec4 displacement=texelFetch(x3d_DisplacementsTexture,index,0);int weightIndex=int(texelFetch(x3d_DisplacementsTexture,index+1,0).x);float weight=texelFetch(x3d_DisplacementWeightsTexture,weightIndex,0).x;skin.xyz+=getDisplacementJointMatrix(int(displacement.w))*(displacement.xyz*weight);}}
94511
94933
  #endif
94512
- int coordIndexJ=coordIndex*(X3D_NUM_JOINT_SETS*2);for(int i=0;i<X3D_NUM_JOINT_SETS;++i){int index=coordIndexJ+i;ivec4 joints=ivec4(texelFetch(x3d_JointsTexture,index,0));vec4 weights=texelFetch(x3d_JointsTexture,index+X3D_NUM_JOINT_SETS,0);for(int i=0;i<4;++i){int joint=joints[i];float weight=weights[i];skin+=(getJointMatrix(joint)*vertex-vertex)*weight;
94934
+ #if X3D_NUM_JOINT_SETS>0
94935
+ {int coordIndexJ=coordIndex*(X3D_NUM_JOINT_SETS*2);for(int i=0;i<X3D_NUM_JOINT_SETS;++i){int index=coordIndexJ+i;ivec4 joints=ivec4(texelFetch(x3d_JointsTexture,index,0));vec4 weights=texelFetch(x3d_JointsTexture,index+X3D_NUM_JOINT_SETS,0);for(int i=0;i<4;++i){int joint=joints[i];float weight=weights[i];skin+=(getJointMatrix(joint)*vertex-vertex)*weight;
94513
94936
  #if defined(X3D_NORMALS)
94514
94937
  mat3 jointNormalMatrix=getJointNormalMatrix(joint);skinNormal+=(jointNormalMatrix*normal-normal)*weight;
94515
94938
  #if defined(X3D_TANGENTS)
94516
94939
  skinTangent+=(jointNormalMatrix*tangent-tangent)*weight;
94517
94940
  #endif
94518
94941
  #endif
94519
- }}return skin;}
94942
+ }}}
94943
+ #endif
94944
+ return skin;}
94520
94945
  #else
94521
94946
  #define getSkinVertex(vertex,normal,tangent)(vertex)
94522
94947
  #define getSkinNormal(normal)(normal)
@@ -95876,7 +96301,7 @@ vec3 getPunctualRadianceClearCoat(const in vec3 clearcoatNormal,const in vec3 v,
95876
96301
  #endif
95877
96302
  #endif
95878
96303
  #if defined(X3D_TRANSMISSION_MATERIAL_EXT)
95879
- vec3 getPunctualRadianceTransmission(const in vec3 n,const in vec3 v,const in vec3 l,const in float alphaRoughness,const in vec3 f0,const in vec3 f90,const in vec3 baseColor,const in float ior){float transmissionRoughness=applyIorToRoughness(alphaRoughness,ior);vec3 l_mirror=normalize(l+2.0*n*dot(-l,n));vec3 h=normalize(l_mirror+v);float D=D_GGX(clamp(dot(n,h),0.0,1.0),transmissionRoughness);vec3 F=F_Schlick(f0,f90,clamp(dot(v,h),0.0,1.0));float Vis=V_GGX(clamp(dot(n,l_mirror),0.0,1.0),clamp(dot(n,v),0.0,1.0),transmissionRoughness);return(1.0-F)*baseColor*D*Vis;}vec3 applyVolumeAttenuation(const in vec3 radiance,const in float transmissionDistance,const in vec3 attenuationColor,const in float attenuationDistance){if(attenuationDistance==0.0){return radiance;}else{vec3 attenuationCoefficient=log(attenuationColor)/attenuationDistance;vec3 transmittance=exp(attenuationCoefficient*transmissionDistance);return transmittance*radiance;}}vec3 getVolumeTransmissionRay(const in vec3 n,const in vec3 v,const in float thickness,const in float ior,const in mat4 modelMatrix){vec3 refractionVector=refract(-v,normalize(n),1.0/ior);vec3 modelScale;modelScale.x=length(vec3(modelMatrix[0].xyz));modelScale.y=length(vec3(modelMatrix[1].xyz));modelScale.z=length(vec3(modelMatrix[2].xyz));return normalize(refractionVector)*thickness*modelScale;}
96304
+ vec3 getPunctualRadianceTransmission(const in vec3 n,const in vec3 v,const in vec3 l,const in float alphaRoughness,const in vec3 f0,const in vec3 f90,const in vec3 baseColor,const in float ior){float transmissionRoughness=applyIorToRoughness(alphaRoughness,ior);vec3 l_mirror=normalize(l+2.0*n*dot(-l,n));vec3 h=normalize(l_mirror+v);float D=D_GGX(clamp(dot(n,h),0.0,1.0),transmissionRoughness);vec3 F=F_Schlick(f0,f90,clamp(dot(v,h),0.0,1.0));float Vis=V_GGX(clamp(dot(n,l_mirror),0.0,1.0),clamp(dot(n,v),0.0,1.0),transmissionRoughness);return(1.0-F)*baseColor*D*Vis;}vec3 applyVolumeAttenuation(const in vec3 radiance,const in float transmissionDistance,const in vec3 attenuationColor,const in float attenuationDistance){if(attenuationDistance==0.0){return radiance;}else{vec3 attenuationCoefficient=log(attenuationColor)/attenuationDistance;vec3 transmittance=exp(attenuationCoefficient*transmissionDistance);return transmittance*radiance;}}vec3 getVolumeTransmissionRay(const in vec3 n,const in vec3 v,const in float thickness,const in float ior,in mat4 modelMatrix){vec3 refractionVector=refract(-v,normalize(n),1.0/ior);vec3 modelScale;modelScale.x=length(modelMatrix[0].xyz);modelScale.y=length(modelMatrix[1].xyz);modelScale.z=length(modelMatrix[2].xyz);return normalize(refractionVector)*thickness*modelScale;}
95880
96305
  #endif
95881
96306
  `
95882
96307
  ;
@@ -96230,7 +96655,7 @@ const ShaderCompiler_default_ = ShaderCompiler;
96230
96655
 
96231
96656
  /* harmony default export */ const Shaders_ShaderCompiler = (x_ite_Namespace .add ("ShaderCompiler", ShaderCompiler_default_));
96232
96657
  ;// ./src/x_ite/Components/Shaders/ShaderPart.js
96233
- /* provided dependency */ var ShaderPart_$ = __webpack_require__(58);
96658
+ /* provided dependency */ var ShaderPart_$ = __webpack_require__(394);
96234
96659
  /*******************************************************************************
96235
96660
  *
96236
96661
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -96828,7 +97253,7 @@ const X3DAppearanceNode_default_ = X3DAppearanceNode;
96828
97253
 
96829
97254
  /* harmony default export */ const Shape_X3DAppearanceNode = (x_ite_Namespace .add ("X3DAppearanceNode", X3DAppearanceNode_default_));
96830
97255
  ;// ./src/x_ite/Components/Shape/Appearance.js
96831
- /* provided dependency */ var Appearance_$ = __webpack_require__(58);
97256
+ /* provided dependency */ var Appearance_$ = __webpack_require__(394);
96832
97257
  /*******************************************************************************
96833
97258
  *
96834
97259
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -97698,7 +98123,7 @@ Object .assign (Object .setPrototypeOf (X3DMaterialNode .prototype, Shape_X3DApp
97698
98123
 
97699
98124
  if (renderContext)
97700
98125
  {
97701
- const { renderObject, shadows, fogNode, shapeNode, appearanceNode, textureNode, humanoidNode, localObjectsKeys } = renderContext;
98126
+ const { renderObject, shadows, fogNode, shapeNode, appearanceNode, textureNode, hAnimNode, localObjectsKeys } = renderContext;
97702
98127
 
97703
98128
  key += shapeNode .getAlphaMode ();
97704
98129
  key += renderObject .getRenderAndGlobalLightsKey ();
@@ -97708,7 +98133,7 @@ Object .assign (Object .setPrototypeOf (X3DMaterialNode .prototype, Shape_X3DApp
97708
98133
  key += appearanceNode .getStyleProperties (geometryContext .geometryType) ?.getStyleKey () ?? 0;
97709
98134
  key += appearanceNode .getTextureTransformMapping () .size || 1;
97710
98135
  key += geometryContext .textureCoordinateMapping .size || 1;
97711
- key += humanoidNode ?.getHumanoidKey () ?? "[]";
98136
+ key += hAnimNode ?.getHAnimKey () ?? "[]";
97712
98137
  key += localObjectsKeys .sort () .join (""); // ClipPlane, X3DLightNode
97713
98138
  key += ".";
97714
98139
  key += textureNode ? 2 : appearanceNode .getTextureBits () .toString (16);
@@ -97778,7 +98203,7 @@ Object .assign (Object .setPrototypeOf (X3DMaterialNode .prototype, Shape_X3DApp
97778
98203
 
97779
98204
  if (renderContext)
97780
98205
  {
97781
- const { renderObject, fogNode, shapeNode, appearanceNode, humanoidNode, localObjectsKeys, textureNode } = renderContext;
98206
+ const { renderObject, fogNode, shapeNode, appearanceNode, hAnimNode, localObjectsKeys, textureNode } = renderContext;
97782
98207
 
97783
98208
  const objectsKeys = localObjectsKeys .concat (renderObject .getGlobalLightsKeys ());
97784
98209
 
@@ -97821,11 +98246,11 @@ Object .assign (Object .setPrototypeOf (X3DMaterialNode .prototype, Shape_X3DApp
97821
98246
  break;
97822
98247
  }
97823
98248
 
97824
- if (humanoidNode)
98249
+ if (hAnimNode)
97825
98250
  {
97826
98251
  options .push ("X3D_SKINNING");
97827
- options .push (`X3D_NUM_JOINT_SETS ${humanoidNode .getNumJoints () / 4}`);
97828
- options .push (`X3D_NUM_DISPLACEMENTS ${humanoidNode .getNumDisplacements ()}`);
98252
+ options .push (`X3D_NUM_JOINT_SETS ${hAnimNode .getNumJoints () / 4}`);
98253
+ options .push (`X3D_NUM_DISPLACEMENTS ${hAnimNode .getNumDisplacements ()}`);
97829
98254
  }
97830
98255
 
97831
98256
  const
@@ -105051,8 +105476,8 @@ const GifMedia_default_ = GifMedia;
105051
105476
 
105052
105477
  /* harmony default export */ const Texturing_GifMedia = (x_ite_Namespace .add ("GifMedia", GifMedia_default_));
105053
105478
  ;// ./src/x_ite/Components/Texturing/MovieTexture.js
105054
- /* provided dependency */ var MovieTexture_$ = __webpack_require__(58);
105055
- /* provided dependency */ var SuperGif = __webpack_require__(85);
105479
+ /* provided dependency */ var MovieTexture_$ = __webpack_require__(394);
105480
+ /* provided dependency */ var SuperGif = __webpack_require__(485);
105056
105481
  /*******************************************************************************
105057
105482
  *
105058
105483
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -105222,7 +105647,7 @@ Object .assign (Object .setPrototypeOf (MovieTexture .prototype, Texturing_X3DTe
105222
105647
  setError (event)
105223
105648
  {
105224
105649
  if (this .URL .protocol !== "data:")
105225
- console .warn (`Error loading movie '${decodeURI (this .URL .href)}'`, event .type);
105650
+ console .warn (`Error loading movie '${decodeURI (this .URL .href)}':`, event .type);
105226
105651
 
105227
105652
  this .loadNext ();
105228
105653
  },
@@ -107520,7 +107945,7 @@ const gettext_default_ = (string) => locale .get (string) || string;
107520
107945
 
107521
107946
  /* harmony default export */ const gettext = (x_ite_Namespace .add ("gettext", gettext_default_));
107522
107947
  ;// ./src/x_ite/Browser/Core/BrowserTimings.js
107523
- /* provided dependency */ var BrowserTimings_$ = __webpack_require__(58);
107948
+ /* provided dependency */ var BrowserTimings_$ = __webpack_require__(394);
107524
107949
  /*******************************************************************************
107525
107950
  *
107526
107951
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -108150,7 +108575,7 @@ const TextCompression_default_ = TextCompression;
108150
108575
 
108151
108576
  /* harmony default export */ const Core_TextCompression = (x_ite_Namespace .add ("TextCompression", TextCompression_default_));
108152
108577
  ;// ./src/x_ite/Browser/Core/BrowserOptions.js
108153
- /* provided dependency */ var BrowserOptions_$ = __webpack_require__(58);
108578
+ /* provided dependency */ var BrowserOptions_$ = __webpack_require__(394);
108154
108579
  /*******************************************************************************
108155
108580
  *
108156
108581
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -108797,7 +109222,7 @@ const RenderingProperties_default_ = RenderingProperties;
108797
109222
 
108798
109223
  /* harmony default export */ const Core_RenderingProperties = (x_ite_Namespace .add ("RenderingProperties", RenderingProperties_default_));
108799
109224
  ;// ./src/x_ite/Browser/Core/Notification.js
108800
- /* provided dependency */ var Notification_$ = __webpack_require__(58);
109225
+ /* provided dependency */ var Notification_$ = __webpack_require__(394);
108801
109226
  /*******************************************************************************
108802
109227
  *
108803
109228
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -108919,8 +109344,8 @@ const Notification_default_ = Notification;
108919
109344
 
108920
109345
  /* harmony default export */ const Core_Notification = (x_ite_Namespace .add ("Notification", Notification_default_));
108921
109346
  ;// ./src/x_ite/Browser/Core/ContextMenu.js
108922
- /* provided dependency */ var jquery_fullscreen = __webpack_require__(690);
108923
- /* provided dependency */ var ContextMenu_$ = __webpack_require__(58);
109347
+ /* provided dependency */ var jquery_fullscreen = __webpack_require__(58);
109348
+ /* provided dependency */ var ContextMenu_$ = __webpack_require__(394);
108924
109349
  /*******************************************************************************
108925
109350
  *
108926
109351
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -111642,7 +112067,7 @@ const DataStorage_default_ = DataStorage;
111642
112067
 
111643
112068
  /* harmony default export */ const Utility_DataStorage = (x_ite_Namespace .add ("DataStorage", DataStorage_default_));
111644
112069
  ;// ./src/x_ite/Browser/Core/X3DCoreContext.js
111645
- /* provided dependency */ var X3DCoreContext_$ = __webpack_require__(58);
112070
+ /* provided dependency */ var X3DCoreContext_$ = __webpack_require__(394);
111646
112071
  /*******************************************************************************
111647
112072
  *
111648
112073
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -114253,8 +114678,8 @@ const X3DViewer_default_ = X3DViewer;
114253
114678
 
114254
114679
  /* harmony default export */ const Navigation_X3DViewer = (x_ite_Namespace .add ("X3DViewer", X3DViewer_default_));
114255
114680
  ;// ./src/x_ite/Browser/Navigation/ExamineViewer.js
114256
- /* provided dependency */ var jquery_mousewheel = __webpack_require__(880);
114257
- /* provided dependency */ var ExamineViewer_$ = __webpack_require__(58);
114681
+ /* provided dependency */ var jquery_mousewheel = __webpack_require__(576);
114682
+ /* provided dependency */ var ExamineViewer_$ = __webpack_require__(394);
114258
114683
  /*******************************************************************************
114259
114684
  *
114260
114685
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -115169,8 +115594,8 @@ const ExamineViewer_default_ = ExamineViewer;
115169
115594
 
115170
115595
  /* harmony default export */ const Navigation_ExamineViewer = (x_ite_Namespace .add ("ExamineViewer", ExamineViewer_default_));
115171
115596
  ;// ./src/x_ite/Browser/Navigation/X3DFlyViewer.js
115172
- /* provided dependency */ var X3DFlyViewer_jquery_mousewheel = __webpack_require__(880);
115173
- /* provided dependency */ var X3DFlyViewer_$ = __webpack_require__(58);
115597
+ /* provided dependency */ var X3DFlyViewer_jquery_mousewheel = __webpack_require__(576);
115598
+ /* provided dependency */ var X3DFlyViewer_$ = __webpack_require__(394);
115174
115599
  /*******************************************************************************
115175
115600
  *
115176
115601
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -116185,8 +116610,8 @@ const FlyViewer_default_ = FlyViewer;
116185
116610
 
116186
116611
  /* harmony default export */ const Navigation_FlyViewer = (x_ite_Namespace .add ("FlyViewer", FlyViewer_default_));
116187
116612
  ;// ./src/x_ite/Browser/Navigation/PlaneViewer.js
116188
- /* provided dependency */ var PlaneViewer_jquery_mousewheel = __webpack_require__(880);
116189
- /* provided dependency */ var PlaneViewer_$ = __webpack_require__(58);
116613
+ /* provided dependency */ var PlaneViewer_jquery_mousewheel = __webpack_require__(576);
116614
+ /* provided dependency */ var PlaneViewer_$ = __webpack_require__(394);
116190
116615
  /*******************************************************************************
116191
116616
  *
116192
116617
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -116515,8 +116940,8 @@ const NoneViewer_default_ = NoneViewer;
116515
116940
 
116516
116941
  /* harmony default export */ const Navigation_NoneViewer = (x_ite_Namespace .add ("NoneViewer", NoneViewer_default_));
116517
116942
  ;// ./src/x_ite/Browser/Navigation/LookAtViewer.js
116518
- /* provided dependency */ var LookAtViewer_jquery_mousewheel = __webpack_require__(880);
116519
- /* provided dependency */ var LookAtViewer_$ = __webpack_require__(58);
116943
+ /* provided dependency */ var LookAtViewer_jquery_mousewheel = __webpack_require__(576);
116944
+ /* provided dependency */ var LookAtViewer_$ = __webpack_require__(394);
116520
116945
  /*******************************************************************************
116521
116946
  *
116522
116947
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -117105,11 +117530,8 @@ const
117105
117530
 
117106
117531
  function X3DNavigationContext ()
117107
117532
  {
117108
- this .addChildObjects (Base_X3DConstants .outputOnly, "activeLayer", new x_ite_Fields .SFNode (),
117109
- Base_X3DConstants .outputOnly, "activeNavigationInfo", new x_ite_Fields .SFNode (),
117110
- Base_X3DConstants .outputOnly, "activeViewpoint", new x_ite_Fields .SFNode (),
117111
- Base_X3DConstants .outputOnly, "availableViewers", new x_ite_Fields .MFString (),
117112
- Base_X3DConstants .outputOnly, "viewer", new x_ite_Fields .SFString ("EXAMINE"));
117533
+ this .addChildObjects (Base_X3DConstants .outputOnly, "availableViewers", new x_ite_Fields .MFString (),
117534
+ Base_X3DConstants .outputOnly, "viewer", new x_ite_Fields .SFString ("EXAMINE"));
117113
117535
 
117114
117536
  this [_activeCollisions] = new Set ();
117115
117537
  this [_viewerNode] = new Navigation_NoneViewer (this .getPrivateScene ());
@@ -117661,8 +118083,8 @@ const X3DPickingContext_default_ = X3DPickingContext;
117661
118083
 
117662
118084
  /* harmony default export */ const Picking_X3DPickingContext = (x_ite_Namespace .add ("X3DPickingContext", X3DPickingContext_default_));
117663
118085
  ;// ./src/x_ite/Browser/PointingDeviceSensor/PointingDevice.js
117664
- /* provided dependency */ var PointingDevice_jquery_mousewheel = __webpack_require__(880);
117665
- /* provided dependency */ var PointingDevice_$ = __webpack_require__(58);
118086
+ /* provided dependency */ var PointingDevice_jquery_mousewheel = __webpack_require__(576);
118087
+ /* provided dependency */ var PointingDevice_$ = __webpack_require__(394);
117666
118088
  /*******************************************************************************
117667
118089
  *
117668
118090
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -118478,14 +118900,14 @@ Object .assign (X3DPointingDeviceSensorContext .prototype,
118478
118900
  for (const sensor of this [_activeSensors])
118479
118901
  sensor .set_motion__ (hit);
118480
118902
  },
118481
- getPointingShader (numClipPlanes, shapeNode, humanoidNode)
118903
+ getPointingShader (numClipPlanes, shapeNode, hAnimNode)
118482
118904
  {
118483
118905
  const { geometryType, hasNormals } = shapeNode .getGeometryContext ();
118484
118906
 
118485
118907
  let key = "";
118486
118908
 
118487
118909
  key += numClipPlanes; // Could be more than 9.
118488
- key += humanoidNode ?.getHumanoidKey () ?? "[]";
118910
+ key += hAnimNode ?.getHAnimKey () ?? "[]";
118489
118911
  key += shapeNode .getShapeKey ();
118490
118912
  key += geometryType;
118491
118913
  key += hasNormals ? 1 : 0;
@@ -118506,9 +118928,9 @@ Object .assign (X3DPointingDeviceSensorContext .prototype,
118506
118928
  }
118507
118929
 
118508
118930
  return this [_pointingShaders] .get (key)
118509
- ?? this .createPointingShader (key, numClipPlanes, shapeNode, humanoidNode);
118931
+ ?? this .createPointingShader (key, numClipPlanes, shapeNode, hAnimNode);
118510
118932
  },
118511
- createPointingShader (key, numClipPlanes, shapeNode, humanoidNode)
118933
+ createPointingShader (key, numClipPlanes, shapeNode, hAnimNode)
118512
118934
  {
118513
118935
  const
118514
118936
  appearanceNode = shapeNode .getAppearance (),
@@ -118548,11 +118970,11 @@ Object .assign (X3DPointingDeviceSensorContext .prototype,
118548
118970
  if (+appearanceNode .getTextureBits ())
118549
118971
  options .push ("X3D_TEXTURE");
118550
118972
 
118551
- if (humanoidNode)
118973
+ if (hAnimNode)
118552
118974
  {
118553
118975
  options .push ("X3D_SKINNING");
118554
- options .push (`X3D_NUM_JOINT_SETS ${humanoidNode .getNumJoints () / 4}`);
118555
- options .push (`X3D_NUM_DISPLACEMENTS ${humanoidNode .getNumDisplacements ()}`);
118976
+ options .push (`X3D_NUM_JOINT_SETS ${hAnimNode .getNumJoints () / 4}`);
118977
+ options .push (`X3D_NUM_DISPLACEMENTS ${hAnimNode .getNumDisplacements ()}`);
118556
118978
  }
118557
118979
 
118558
118980
  const shaderNode = this .createShader ("Pointing", "Pointing", "Pointing", options);
@@ -119109,7 +119531,7 @@ const Lock_default_ = Lock;
119109
119531
 
119110
119532
  /* harmony default export */ const Utility_Lock = (x_ite_Namespace .add ("Lock", Lock_default_));
119111
119533
  ;// ./src/x_ite/Browser/Rendering/X3DRenderingContext.js
119112
- /* provided dependency */ var X3DRenderingContext_$ = __webpack_require__(58);
119534
+ /* provided dependency */ var X3DRenderingContext_$ = __webpack_require__(394);
119113
119535
  /*******************************************************************************
119114
119536
  *
119115
119537
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -119364,14 +119786,14 @@ Object .assign (X3DRenderingContext .prototype,
119364
119786
 
119365
119787
  return this [_composeShader] = this .createShader ("OITCompose", "FullScreen", "OITCompose");
119366
119788
  },
119367
- getDepthShader (numClipPlanes, shapeNode, humanoidNode)
119789
+ getDepthShader (numClipPlanes, shapeNode, hAnimNode)
119368
119790
  {
119369
119791
  const geometryContext = shapeNode .getGeometryContext ();
119370
119792
 
119371
119793
  let key = "";
119372
119794
 
119373
119795
  key += numClipPlanes; // Could be more than 9.
119374
- key += humanoidNode ?.getHumanoidKey () ?? "[]";
119796
+ key += hAnimNode ?.getHAnimKey () ?? "[]";
119375
119797
  key += shapeNode .getShapeKey ();
119376
119798
  key += geometryContext .geometryType;
119377
119799
 
@@ -119391,9 +119813,9 @@ Object .assign (X3DRenderingContext .prototype,
119391
119813
  }
119392
119814
 
119393
119815
  return this [_depthShaders] .get (key)
119394
- ?? this .createDepthShader (key, numClipPlanes, shapeNode, humanoidNode);
119816
+ ?? this .createDepthShader (key, numClipPlanes, shapeNode, hAnimNode);
119395
119817
  },
119396
- createDepthShader (key, numClipPlanes, shapeNode, humanoidNode)
119818
+ createDepthShader (key, numClipPlanes, shapeNode, hAnimNode)
119397
119819
  {
119398
119820
  const
119399
119821
  appearanceNode = shapeNode .getAppearance (),
@@ -119414,11 +119836,11 @@ Object .assign (X3DRenderingContext .prototype,
119414
119836
  if (appearanceNode .getStyleProperties (geometryContext .geometryType))
119415
119837
  options .push ("X3D_STYLE_PROPERTIES");
119416
119838
 
119417
- if (humanoidNode)
119839
+ if (hAnimNode)
119418
119840
  {
119419
119841
  options .push ("X3D_SKINNING");
119420
- options .push (`X3D_NUM_JOINT_SETS ${humanoidNode .getNumJoints () / 4}`);
119421
- options .push (`X3D_NUM_DISPLACEMENTS ${humanoidNode .getNumDisplacements ()}`);
119842
+ options .push (`X3D_NUM_JOINT_SETS ${hAnimNode .getNumJoints () / 4}`);
119843
+ options .push (`X3D_NUM_DISPLACEMENTS ${hAnimNode .getNumDisplacements ()}`);
119422
119844
  }
119423
119845
 
119424
119846
  const shaderNode = this .createShader ("Depth", "Depth", "Depth", options);
@@ -120423,7 +120845,7 @@ const X3DSoundContext_default_ = X3DSoundContext;
120423
120845
 
120424
120846
  /* harmony default export */ const Sound_X3DSoundContext = (x_ite_Namespace .add ("X3DSoundContext", X3DSoundContext_default_));
120425
120847
  ;// ./src/x_ite/Browser/Texturing/KTXDecoder.js
120426
- /* provided dependency */ var KTXDecoder_$ = __webpack_require__(58);
120848
+ /* provided dependency */ var KTXDecoder_$ = __webpack_require__(394);
120427
120849
  const KTXDecoder_default_ = class KTXDecoder
120428
120850
  {
120429
120851
  constructor (gl, externalKtxlib, scriptDir)
@@ -122002,7 +122424,7 @@ const Components_default_ = Components;
122002
122424
 
122003
122425
  /* harmony default export */ const x_ite_Components = (x_ite_Namespace .add ("Components", Components_default_));
122004
122426
  ;// ./src/x_ite/Browser/DOMIntegration.js
122005
- /* provided dependency */ var DOMIntegration_$ = __webpack_require__(58);
122427
+ /* provided dependency */ var DOMIntegration_$ = __webpack_require__(394);
122006
122428
  /*******************************************************************************
122007
122429
  * MIT License
122008
122430
  *
@@ -123268,7 +123690,7 @@ const FieldTypes_default_ = new Configuration_FieldTypesArray (Object .values (x
123268
123690
 
123269
123691
  /* harmony default export */ const FieldTypes = (x_ite_Namespace .add ("FieldTypes", FieldTypes_default_));
123270
123692
  ;// ./src/x_ite/Browser/X3DBrowser.js
123271
- /* provided dependency */ var X3DBrowser_$ = __webpack_require__(58);
123693
+ /* provided dependency */ var X3DBrowser_$ = __webpack_require__(394);
123272
123694
  /*******************************************************************************
123273
123695
  *
123274
123696
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -123339,6 +123761,8 @@ const FieldTypes_default_ = new Configuration_FieldTypesArray (Object .values (x
123339
123761
 
123340
123762
 
123341
123763
 
123764
+
123765
+
123342
123766
 
123343
123767
 
123344
123768
 
@@ -124345,6 +124769,15 @@ Object .defineProperties (X3DBrowser .prototype,
124345
124769
 
124346
124770
  Object .defineProperties (X3DBrowser,
124347
124771
  {
124772
+ fieldDefinitions:
124773
+ {
124774
+ value: new Base_FieldDefinitionArray ([
124775
+ new Base_X3DFieldDefinition (Base_X3DConstants .outputOnly, "activeLayer", new x_ite_Fields .SFNode ()),
124776
+ new Base_X3DFieldDefinition (Base_X3DConstants .outputOnly, "activeNavigationInfo", new x_ite_Fields .SFNode ()),
124777
+ new Base_X3DFieldDefinition (Base_X3DConstants .outputOnly, "activeViewpoint", new x_ite_Fields .SFNode ()),
124778
+ ]),
124779
+ enumerable: true,
124780
+ },
124348
124781
  typeName:
124349
124782
  {
124350
124783
  value: "X3DBrowser",
@@ -124359,7 +124792,7 @@ const X3DBrowser_default_ = X3DBrowser;
124359
124792
 
124360
124793
  /* harmony default export */ const Browser_X3DBrowser = (x_ite_Namespace .add ("X3DBrowser", X3DBrowser_default_));
124361
124794
  ;// ./src/x_ite/X3DCanvasElement.js
124362
- /* provided dependency */ var X3DCanvasElement_$ = __webpack_require__(58);
124795
+ /* provided dependency */ var X3DCanvasElement_$ = __webpack_require__(394);
124363
124796
  /*******************************************************************************
124364
124797
  *
124365
124798
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -124626,8 +125059,8 @@ const QuickSort_default_ = QuickSort;
124626
125059
 
124627
125060
  /* harmony default export */ const Algorithms_QuickSort = (x_ite_Namespace .add ("QuickSort", QuickSort_default_));
124628
125061
  ;// ./src/lib/jquery.js
124629
- /* provided dependency */ var jquery_$ = __webpack_require__(58);
124630
- /* provided dependency */ var pako = __webpack_require__(642);
125062
+ /* provided dependency */ var jquery_$ = __webpack_require__(394);
125063
+ /* provided dependency */ var pako = __webpack_require__(514);
124631
125064
  Object .assign (jquery_$,
124632
125065
  {
124633
125066
  decodeText (input)
@@ -124652,6 +125085,10 @@ Object .assign (jquery_$,
124652
125085
  {
124653
125086
  return string [0] .toLowerCase () + string .slice (1);
124654
125087
  },
125088
+ toUpperCaseFirst (string)
125089
+ {
125090
+ return string [0] .toUpperCase () + string .slice (1);
125091
+ },
124655
125092
  try (callback, logError = false)
124656
125093
  {
124657
125094
  try
@@ -124704,13 +125141,13 @@ const jquery_default_ = jquery_$;
124704
125141
 
124705
125142
  /* harmony default export */ const jquery = (x_ite_Namespace .add ("jquery", jquery_default_));
124706
125143
  ;// ./src/lib/libtess.js
124707
- /* provided dependency */ var libtess_libtess = __webpack_require__(499);
125144
+ /* provided dependency */ var libtess_libtess = __webpack_require__(787);
124708
125145
  const libtess_default_ = libtess_libtess;
124709
125146
  ;
124710
125147
 
124711
125148
  /* harmony default export */ const lib_libtess = (x_ite_Namespace .add ("libtess", libtess_default_));
124712
125149
  ;// ./src/x_ite/X3D.js
124713
- /* provided dependency */ var X3D_$ = __webpack_require__(58);
125150
+ /* provided dependency */ var X3D_$ = __webpack_require__(394);
124714
125151
  /*******************************************************************************
124715
125152
  *
124716
125153
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -125014,7 +125451,7 @@ x_ite_Namespace, x_ite_Namespace .Fields,
125014
125451
 
125015
125452
  // Assign X3D to global namespace.
125016
125453
 
125017
- window [Symbol .for ("X_ITE.X3D-10.5.7")] = x_ite_X3D;
125454
+ window [Symbol .for ("X_ITE.X3D-10.5.9")] = x_ite_X3D;
125018
125455
 
125019
125456
  customElements .define ("x3d-canvas", x_ite_X3DCanvasElement);
125020
125457