x_ite 10.5.8 → 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 (49) 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 +2 -2
  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.js +719 -368
  45. package/dist/x_ite.min.js +2 -2
  46. package/dist/x_ite.min.mjs +2 -2
  47. package/dist/x_ite.mjs +719 -368
  48. package/dist/x_ite.zip +0 -0
  49. package/package.json +1 -1
package/dist/x_ite.js CHANGED
@@ -1,4 +1,4 @@
1
- /* X_ITE v10.5.8 */
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
- /***/ 949:
15
+ /***/ 58:
16
16
  /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
17
17
 
18
- /* provided dependency */ var jQuery = __webpack_require__(445);
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
- /***/ 485:
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__(445)], __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
- /***/ 445:
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
- /***/ 294:
11163
+ /***/ 787:
11164
11164
  /***/ ((module) => {
11165
11165
 
11166
11166
  /**
@@ -15939,7 +15939,7 @@ if (true) {
15939
15939
 
15940
15940
  /***/ }),
15941
15941
 
15942
- /***/ 729:
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
- /***/ 782:
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.8")];
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__(445);
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.8";
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__(294);
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__(445);
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__(445);
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__(445);
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__(445);
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);
48345
+ const field = node .getField (target .path);
48174
48346
 
48175
- scene .addNamedNode (scene .getUniqueName ("ScaleInterpolator"), interpolatorNode);
48176
-
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;
48615
+
48616
+ for (let c = 0; c < components; ++ c)
48617
+ keyValue .push (keyValues [c]);
48265
48618
 
48266
- for (let i = 0, length = keyValues .length - 3; i < length; i += 3)
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__(445);
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__(445);
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;
@@ -52146,8 +52493,8 @@ const MatrixStack_default_ = MatrixStack;
52146
52493
 
52147
52494
  /* harmony default export */ const Utility_MatrixStack = (x_ite_Namespace .add ("MatrixStack", MatrixStack_default_));
52148
52495
  ;// ./src/x_ite/Parser/SVGParser.js
52149
- /* provided dependency */ var SVGParser_$ = __webpack_require__(445);
52150
- /* provided dependency */ var SVGParser_libtess = __webpack_require__(294);
52496
+ /* provided dependency */ var SVGParser_$ = __webpack_require__(394);
52497
+ /* provided dependency */ var SVGParser_libtess = __webpack_require__(787);
52151
52498
  /*******************************************************************************
52152
52499
  *
52153
52500
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -54926,7 +55273,7 @@ const SVGParser_default_ = SVGParser;
54926
55273
 
54927
55274
  /* harmony default export */ const Parser_SVGParser = (x_ite_Namespace .add ("SVGParser", SVGParser_default_));
54928
55275
  ;// ./src/x_ite/Parser/GoldenGate.js
54929
- /* provided dependency */ var GoldenGate_$ = __webpack_require__(445);
55276
+ /* provided dependency */ var GoldenGate_$ = __webpack_require__(394);
54930
55277
  /*******************************************************************************
54931
55278
  *
54932
55279
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -62945,7 +63292,7 @@ const X3DTexture2DNode_default_ = X3DTexture2DNode;
62945
63292
 
62946
63293
  /* harmony default export */ const Texturing_X3DTexture2DNode = (x_ite_Namespace .add ("X3DTexture2DNode", X3DTexture2DNode_default_));
62947
63294
  ;// ./src/x_ite/Components/Texturing/ImageTexture.js
62948
- /* provided dependency */ var ImageTexture_$ = __webpack_require__(445);
63295
+ /* provided dependency */ var ImageTexture_$ = __webpack_require__(394);
62949
63296
  /*******************************************************************************
62950
63297
  *
62951
63298
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -63085,7 +63432,7 @@ Object .assign (Object .setPrototypeOf (ImageTexture .prototype, Texturing_X3DTe
63085
63432
  setError (event)
63086
63433
  {
63087
63434
  if (this .URL .protocol !== "data:")
63088
- console .warn (`Error loading image '${decodeURI (this .URL .href)}'`, event .type);
63435
+ console .warn (`Error loading image '${decodeURI (this .URL .href)}:'`, event .type);
63089
63436
 
63090
63437
  this .loadNext ();
63091
63438
  },
@@ -66371,7 +66718,7 @@ const X3DWorld_default_ = X3DWorld;
66371
66718
 
66372
66719
  /* harmony default export */ const Execution_X3DWorld = (x_ite_Namespace .add ("X3DWorld", X3DWorld_default_));
66373
66720
  ;// ./src/x_ite/InputOutput/FileLoader.js
66374
- /* provided dependency */ var FileLoader_$ = __webpack_require__(445);
66721
+ /* provided dependency */ var FileLoader_$ = __webpack_require__(394);
66375
66722
  /*******************************************************************************
66376
66723
  *
66377
66724
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -67335,7 +67682,7 @@ const ProtoDeclarationArray_default_ = ProtoDeclarationArray;
67335
67682
 
67336
67683
  /* harmony default export */ const Prototype_ProtoDeclarationArray = (x_ite_Namespace .add ("ProtoDeclarationArray", ProtoDeclarationArray_default_));
67337
67684
  ;// ./src/x_ite/Routing/X3DRoute.js
67338
- /* provided dependency */ var X3DRoute_$ = __webpack_require__(445);
67685
+ /* provided dependency */ var X3DRoute_$ = __webpack_require__(394);
67339
67686
  /*******************************************************************************
67340
67687
  *
67341
67688
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -91011,7 +91358,7 @@ mediump samplerCube textureCube;
91011
91358
 
91012
91359
  /* harmony default export */ const MaterialTextures = (x_ite_Namespace .add ("MaterialTextures", MaterialTextures_default_));
91013
91360
  ;// ./src/x_ite/Components/Shaders/X3DProgrammableShaderObject.js
91014
- /* provided dependency */ var X3DProgrammableShaderObject_$ = __webpack_require__(445);
91361
+ /* provided dependency */ var X3DProgrammableShaderObject_$ = __webpack_require__(394);
91015
91362
  /*******************************************************************************
91016
91363
  *
91017
91364
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -94389,20 +94736,20 @@ NormalInfo info;info.ng=ng;
94389
94736
  #if defined(X3D_NORMAL_TEXTURE)
94390
94737
  #if __VERSION__==100
94391
94738
  #if defined(X3D_NORMAL_TEXTURE_2D)
94392
- info.ntex=texture2D(x3d_NormalTexture.texture2D,UV.st).rgb;
94739
+ vec3 ntex=texture2D(x3d_NormalTexture.texture2D,UV.st).rgb;
94393
94740
  #elif defined(X3D_NORMAL_TEXTURE_CUBE)
94394
- info.ntex=textureCube(x3d_NormalTexture.textureCube,UV).rgb;
94741
+ vec3 ntex=textureCube(x3d_NormalTexture.textureCube,UV).rgb;
94395
94742
  #endif
94396
94743
  #else
94397
94744
  #if defined(X3D_NORMAL_TEXTURE_2D)
94398
- info.ntex=texture(x3d_NormalTexture.texture2D,UV.st).rgb;
94745
+ vec3 ntex=texture(x3d_NormalTexture.texture2D,UV.st).rgb;
94399
94746
  #elif defined(X3D_NORMAL_TEXTURE_3D)
94400
- info.ntex=texture(x3d_NormalTexture.texture3D,UV).rgb;
94747
+ vec3 ntex=texture(x3d_NormalTexture.texture3D,UV).rgb;
94401
94748
  #elif defined(X3D_NORMAL_TEXTURE_CUBE)
94402
- info.ntex=texture(x3d_NormalTexture.textureCube,UV).rgb;
94749
+ vec3 ntex=texture(x3d_NormalTexture.textureCube,UV).rgb;
94403
94750
  #endif
94404
94751
  #endif
94405
- 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);
94406
94753
  #else
94407
94754
  info.n=ng;
94408
94755
  #endif
@@ -95954,7 +96301,7 @@ vec3 getPunctualRadianceClearCoat(const in vec3 clearcoatNormal,const in vec3 v,
95954
96301
  #endif
95955
96302
  #endif
95956
96303
  #if defined(X3D_TRANSMISSION_MATERIAL_EXT)
95957
- 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;}
95958
96305
  #endif
95959
96306
  `
95960
96307
  ;
@@ -96308,7 +96655,7 @@ const ShaderCompiler_default_ = ShaderCompiler;
96308
96655
 
96309
96656
  /* harmony default export */ const Shaders_ShaderCompiler = (x_ite_Namespace .add ("ShaderCompiler", ShaderCompiler_default_));
96310
96657
  ;// ./src/x_ite/Components/Shaders/ShaderPart.js
96311
- /* provided dependency */ var ShaderPart_$ = __webpack_require__(445);
96658
+ /* provided dependency */ var ShaderPart_$ = __webpack_require__(394);
96312
96659
  /*******************************************************************************
96313
96660
  *
96314
96661
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -96906,7 +97253,7 @@ const X3DAppearanceNode_default_ = X3DAppearanceNode;
96906
97253
 
96907
97254
  /* harmony default export */ const Shape_X3DAppearanceNode = (x_ite_Namespace .add ("X3DAppearanceNode", X3DAppearanceNode_default_));
96908
97255
  ;// ./src/x_ite/Components/Shape/Appearance.js
96909
- /* provided dependency */ var Appearance_$ = __webpack_require__(445);
97256
+ /* provided dependency */ var Appearance_$ = __webpack_require__(394);
96910
97257
  /*******************************************************************************
96911
97258
  *
96912
97259
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -105129,8 +105476,8 @@ const GifMedia_default_ = GifMedia;
105129
105476
 
105130
105477
  /* harmony default export */ const Texturing_GifMedia = (x_ite_Namespace .add ("GifMedia", GifMedia_default_));
105131
105478
  ;// ./src/x_ite/Components/Texturing/MovieTexture.js
105132
- /* provided dependency */ var MovieTexture_$ = __webpack_require__(445);
105133
- /* provided dependency */ var SuperGif = __webpack_require__(782);
105479
+ /* provided dependency */ var MovieTexture_$ = __webpack_require__(394);
105480
+ /* provided dependency */ var SuperGif = __webpack_require__(485);
105134
105481
  /*******************************************************************************
105135
105482
  *
105136
105483
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -105300,7 +105647,7 @@ Object .assign (Object .setPrototypeOf (MovieTexture .prototype, Texturing_X3DTe
105300
105647
  setError (event)
105301
105648
  {
105302
105649
  if (this .URL .protocol !== "data:")
105303
- console .warn (`Error loading movie '${decodeURI (this .URL .href)}'`, event .type);
105650
+ console .warn (`Error loading movie '${decodeURI (this .URL .href)}':`, event .type);
105304
105651
 
105305
105652
  this .loadNext ();
105306
105653
  },
@@ -107598,7 +107945,7 @@ const gettext_default_ = (string) => locale .get (string) || string;
107598
107945
 
107599
107946
  /* harmony default export */ const gettext = (x_ite_Namespace .add ("gettext", gettext_default_));
107600
107947
  ;// ./src/x_ite/Browser/Core/BrowserTimings.js
107601
- /* provided dependency */ var BrowserTimings_$ = __webpack_require__(445);
107948
+ /* provided dependency */ var BrowserTimings_$ = __webpack_require__(394);
107602
107949
  /*******************************************************************************
107603
107950
  *
107604
107951
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -108228,7 +108575,7 @@ const TextCompression_default_ = TextCompression;
108228
108575
 
108229
108576
  /* harmony default export */ const Core_TextCompression = (x_ite_Namespace .add ("TextCompression", TextCompression_default_));
108230
108577
  ;// ./src/x_ite/Browser/Core/BrowserOptions.js
108231
- /* provided dependency */ var BrowserOptions_$ = __webpack_require__(445);
108578
+ /* provided dependency */ var BrowserOptions_$ = __webpack_require__(394);
108232
108579
  /*******************************************************************************
108233
108580
  *
108234
108581
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -108875,7 +109222,7 @@ const RenderingProperties_default_ = RenderingProperties;
108875
109222
 
108876
109223
  /* harmony default export */ const Core_RenderingProperties = (x_ite_Namespace .add ("RenderingProperties", RenderingProperties_default_));
108877
109224
  ;// ./src/x_ite/Browser/Core/Notification.js
108878
- /* provided dependency */ var Notification_$ = __webpack_require__(445);
109225
+ /* provided dependency */ var Notification_$ = __webpack_require__(394);
108879
109226
  /*******************************************************************************
108880
109227
  *
108881
109228
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -108997,8 +109344,8 @@ const Notification_default_ = Notification;
108997
109344
 
108998
109345
  /* harmony default export */ const Core_Notification = (x_ite_Namespace .add ("Notification", Notification_default_));
108999
109346
  ;// ./src/x_ite/Browser/Core/ContextMenu.js
109000
- /* provided dependency */ var jquery_fullscreen = __webpack_require__(949);
109001
- /* provided dependency */ var ContextMenu_$ = __webpack_require__(445);
109347
+ /* provided dependency */ var jquery_fullscreen = __webpack_require__(58);
109348
+ /* provided dependency */ var ContextMenu_$ = __webpack_require__(394);
109002
109349
  /*******************************************************************************
109003
109350
  *
109004
109351
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -111720,7 +112067,7 @@ const DataStorage_default_ = DataStorage;
111720
112067
 
111721
112068
  /* harmony default export */ const Utility_DataStorage = (x_ite_Namespace .add ("DataStorage", DataStorage_default_));
111722
112069
  ;// ./src/x_ite/Browser/Core/X3DCoreContext.js
111723
- /* provided dependency */ var X3DCoreContext_$ = __webpack_require__(445);
112070
+ /* provided dependency */ var X3DCoreContext_$ = __webpack_require__(394);
111724
112071
  /*******************************************************************************
111725
112072
  *
111726
112073
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -114331,8 +114678,8 @@ const X3DViewer_default_ = X3DViewer;
114331
114678
 
114332
114679
  /* harmony default export */ const Navigation_X3DViewer = (x_ite_Namespace .add ("X3DViewer", X3DViewer_default_));
114333
114680
  ;// ./src/x_ite/Browser/Navigation/ExamineViewer.js
114334
- /* provided dependency */ var jquery_mousewheel = __webpack_require__(485);
114335
- /* provided dependency */ var ExamineViewer_$ = __webpack_require__(445);
114681
+ /* provided dependency */ var jquery_mousewheel = __webpack_require__(576);
114682
+ /* provided dependency */ var ExamineViewer_$ = __webpack_require__(394);
114336
114683
  /*******************************************************************************
114337
114684
  *
114338
114685
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -115247,8 +115594,8 @@ const ExamineViewer_default_ = ExamineViewer;
115247
115594
 
115248
115595
  /* harmony default export */ const Navigation_ExamineViewer = (x_ite_Namespace .add ("ExamineViewer", ExamineViewer_default_));
115249
115596
  ;// ./src/x_ite/Browser/Navigation/X3DFlyViewer.js
115250
- /* provided dependency */ var X3DFlyViewer_jquery_mousewheel = __webpack_require__(485);
115251
- /* provided dependency */ var X3DFlyViewer_$ = __webpack_require__(445);
115597
+ /* provided dependency */ var X3DFlyViewer_jquery_mousewheel = __webpack_require__(576);
115598
+ /* provided dependency */ var X3DFlyViewer_$ = __webpack_require__(394);
115252
115599
  /*******************************************************************************
115253
115600
  *
115254
115601
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -116263,8 +116610,8 @@ const FlyViewer_default_ = FlyViewer;
116263
116610
 
116264
116611
  /* harmony default export */ const Navigation_FlyViewer = (x_ite_Namespace .add ("FlyViewer", FlyViewer_default_));
116265
116612
  ;// ./src/x_ite/Browser/Navigation/PlaneViewer.js
116266
- /* provided dependency */ var PlaneViewer_jquery_mousewheel = __webpack_require__(485);
116267
- /* provided dependency */ var PlaneViewer_$ = __webpack_require__(445);
116613
+ /* provided dependency */ var PlaneViewer_jquery_mousewheel = __webpack_require__(576);
116614
+ /* provided dependency */ var PlaneViewer_$ = __webpack_require__(394);
116268
116615
  /*******************************************************************************
116269
116616
  *
116270
116617
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -116593,8 +116940,8 @@ const NoneViewer_default_ = NoneViewer;
116593
116940
 
116594
116941
  /* harmony default export */ const Navigation_NoneViewer = (x_ite_Namespace .add ("NoneViewer", NoneViewer_default_));
116595
116942
  ;// ./src/x_ite/Browser/Navigation/LookAtViewer.js
116596
- /* provided dependency */ var LookAtViewer_jquery_mousewheel = __webpack_require__(485);
116597
- /* provided dependency */ var LookAtViewer_$ = __webpack_require__(445);
116943
+ /* provided dependency */ var LookAtViewer_jquery_mousewheel = __webpack_require__(576);
116944
+ /* provided dependency */ var LookAtViewer_$ = __webpack_require__(394);
116598
116945
  /*******************************************************************************
116599
116946
  *
116600
116947
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -117736,8 +118083,8 @@ const X3DPickingContext_default_ = X3DPickingContext;
117736
118083
 
117737
118084
  /* harmony default export */ const Picking_X3DPickingContext = (x_ite_Namespace .add ("X3DPickingContext", X3DPickingContext_default_));
117738
118085
  ;// ./src/x_ite/Browser/PointingDeviceSensor/PointingDevice.js
117739
- /* provided dependency */ var PointingDevice_jquery_mousewheel = __webpack_require__(485);
117740
- /* provided dependency */ var PointingDevice_$ = __webpack_require__(445);
118086
+ /* provided dependency */ var PointingDevice_jquery_mousewheel = __webpack_require__(576);
118087
+ /* provided dependency */ var PointingDevice_$ = __webpack_require__(394);
117741
118088
  /*******************************************************************************
117742
118089
  *
117743
118090
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -119184,7 +119531,7 @@ const Lock_default_ = Lock;
119184
119531
 
119185
119532
  /* harmony default export */ const Utility_Lock = (x_ite_Namespace .add ("Lock", Lock_default_));
119186
119533
  ;// ./src/x_ite/Browser/Rendering/X3DRenderingContext.js
119187
- /* provided dependency */ var X3DRenderingContext_$ = __webpack_require__(445);
119534
+ /* provided dependency */ var X3DRenderingContext_$ = __webpack_require__(394);
119188
119535
  /*******************************************************************************
119189
119536
  *
119190
119537
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -120498,7 +120845,7 @@ const X3DSoundContext_default_ = X3DSoundContext;
120498
120845
 
120499
120846
  /* harmony default export */ const Sound_X3DSoundContext = (x_ite_Namespace .add ("X3DSoundContext", X3DSoundContext_default_));
120500
120847
  ;// ./src/x_ite/Browser/Texturing/KTXDecoder.js
120501
- /* provided dependency */ var KTXDecoder_$ = __webpack_require__(445);
120848
+ /* provided dependency */ var KTXDecoder_$ = __webpack_require__(394);
120502
120849
  const KTXDecoder_default_ = class KTXDecoder
120503
120850
  {
120504
120851
  constructor (gl, externalKtxlib, scriptDir)
@@ -122077,7 +122424,7 @@ const Components_default_ = Components;
122077
122424
 
122078
122425
  /* harmony default export */ const x_ite_Components = (x_ite_Namespace .add ("Components", Components_default_));
122079
122426
  ;// ./src/x_ite/Browser/DOMIntegration.js
122080
- /* provided dependency */ var DOMIntegration_$ = __webpack_require__(445);
122427
+ /* provided dependency */ var DOMIntegration_$ = __webpack_require__(394);
122081
122428
  /*******************************************************************************
122082
122429
  * MIT License
122083
122430
  *
@@ -123343,7 +123690,7 @@ const FieldTypes_default_ = new Configuration_FieldTypesArray (Object .values (x
123343
123690
 
123344
123691
  /* harmony default export */ const FieldTypes = (x_ite_Namespace .add ("FieldTypes", FieldTypes_default_));
123345
123692
  ;// ./src/x_ite/Browser/X3DBrowser.js
123346
- /* provided dependency */ var X3DBrowser_$ = __webpack_require__(445);
123693
+ /* provided dependency */ var X3DBrowser_$ = __webpack_require__(394);
123347
123694
  /*******************************************************************************
123348
123695
  *
123349
123696
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -124445,7 +124792,7 @@ const X3DBrowser_default_ = X3DBrowser;
124445
124792
 
124446
124793
  /* harmony default export */ const Browser_X3DBrowser = (x_ite_Namespace .add ("X3DBrowser", X3DBrowser_default_));
124447
124794
  ;// ./src/x_ite/X3DCanvasElement.js
124448
- /* provided dependency */ var X3DCanvasElement_$ = __webpack_require__(445);
124795
+ /* provided dependency */ var X3DCanvasElement_$ = __webpack_require__(394);
124449
124796
  /*******************************************************************************
124450
124797
  *
124451
124798
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -124712,8 +125059,8 @@ const QuickSort_default_ = QuickSort;
124712
125059
 
124713
125060
  /* harmony default export */ const Algorithms_QuickSort = (x_ite_Namespace .add ("QuickSort", QuickSort_default_));
124714
125061
  ;// ./src/lib/jquery.js
124715
- /* provided dependency */ var jquery_$ = __webpack_require__(445);
124716
- /* provided dependency */ var pako = __webpack_require__(729);
125062
+ /* provided dependency */ var jquery_$ = __webpack_require__(394);
125063
+ /* provided dependency */ var pako = __webpack_require__(514);
124717
125064
  Object .assign (jquery_$,
124718
125065
  {
124719
125066
  decodeText (input)
@@ -124738,6 +125085,10 @@ Object .assign (jquery_$,
124738
125085
  {
124739
125086
  return string [0] .toLowerCase () + string .slice (1);
124740
125087
  },
125088
+ toUpperCaseFirst (string)
125089
+ {
125090
+ return string [0] .toUpperCase () + string .slice (1);
125091
+ },
124741
125092
  try (callback, logError = false)
124742
125093
  {
124743
125094
  try
@@ -124790,13 +125141,13 @@ const jquery_default_ = jquery_$;
124790
125141
 
124791
125142
  /* harmony default export */ const jquery = (x_ite_Namespace .add ("jquery", jquery_default_));
124792
125143
  ;// ./src/lib/libtess.js
124793
- /* provided dependency */ var libtess_libtess = __webpack_require__(294);
125144
+ /* provided dependency */ var libtess_libtess = __webpack_require__(787);
124794
125145
  const libtess_default_ = libtess_libtess;
124795
125146
  ;
124796
125147
 
124797
125148
  /* harmony default export */ const lib_libtess = (x_ite_Namespace .add ("libtess", libtess_default_));
124798
125149
  ;// ./src/x_ite/X3D.js
124799
- /* provided dependency */ var X3D_$ = __webpack_require__(445);
125150
+ /* provided dependency */ var X3D_$ = __webpack_require__(394);
124800
125151
  /*******************************************************************************
124801
125152
  *
124802
125153
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -125100,7 +125451,7 @@ x_ite_Namespace, x_ite_Namespace .Fields,
125100
125451
 
125101
125452
  // Assign X3D to global namespace.
125102
125453
 
125103
- window [Symbol .for ("X_ITE.X3D-10.5.8")] = x_ite_X3D;
125454
+ window [Symbol .for ("X_ITE.X3D-10.5.9")] = x_ite_X3D;
125104
125455
 
125105
125456
  customElements .define ("x3d-canvas", x_ite_X3DCanvasElement);
125106
125457