x_ite 10.5.8 → 10.5.10

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 +9 -5
  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 +14 -8
  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 +3 -3
  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 +5 -5
  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 +12 -12
  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 +786 -398
  45. package/dist/x_ite.min.js +2 -2
  46. package/dist/x_ite.min.mjs +2 -2
  47. package/dist/x_ite.mjs +785 -397
  48. package/dist/x_ite.zip +0 -0
  49. package/package.json +3 -3
package/dist/x_ite.mjs CHANGED
@@ -1,10 +1,10 @@
1
- /* X_ITE v10.5.8 */
1
+ /* X_ITE v10.5.10 */
2
2
  var __webpack_modules__ = ({
3
3
 
4
- /***/ 949:
4
+ /***/ 367:
5
5
  /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
6
6
 
7
- /* provided dependency */ var jQuery = __webpack_require__(445);
7
+ /* provided dependency */ var jQuery = __webpack_require__(427);
8
8
  /**
9
9
  * @preserve jquery.fullscreen 1.1.5
10
10
  * https://github.com/code-lts/jquery-fullscreen-plugin
@@ -200,7 +200,7 @@ installFullScreenHandlers();
200
200
 
201
201
  /***/ }),
202
202
 
203
- /***/ 485:
203
+ /***/ 675:
204
204
  /***/ ((module, exports, __webpack_require__) => {
205
205
 
206
206
  var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!
@@ -214,7 +214,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_
214
214
  (function (factory) {
215
215
  if ( true ) {
216
216
  // AMD. Register as an anonymous module.
217
- !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(445)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),
217
+ !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(427)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),
218
218
  __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?
219
219
  (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),
220
220
  __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
@@ -425,7 +425,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_
425
425
 
426
426
  /***/ }),
427
427
 
428
- /***/ 445:
428
+ /***/ 427:
429
429
  /***/ (function(module, exports) {
430
430
 
431
431
  var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!
@@ -11149,7 +11149,7 @@ return jQuery;
11149
11149
 
11150
11150
  /***/ }),
11151
11151
 
11152
- /***/ 294:
11152
+ /***/ 800:
11153
11153
  /***/ ((module) => {
11154
11154
 
11155
11155
  /**
@@ -15928,7 +15928,7 @@ if (true) {
15928
15928
 
15929
15929
  /***/ }),
15930
15930
 
15931
- /***/ 729:
15931
+ /***/ 355:
15932
15932
  /***/ (function(__unused_webpack_module, exports) {
15933
15933
 
15934
15934
 
@@ -19173,7 +19173,7 @@ if (true) {
19173
19173
 
19174
19174
  /***/ }),
19175
19175
 
19176
- /***/ 782:
19176
+ /***/ 388:
19177
19177
  /***/ (function(module, exports) {
19178
19178
 
19179
19179
  var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*
@@ -20297,7 +20297,7 @@ Object .defineProperty (Namespace, "add",
20297
20297
  return module;
20298
20298
  }
20299
20299
 
20300
- const X3D = window [Symbol .for ("X_ITE.X3D-10.5.8")];
20300
+ const X3D = window [Symbol .for ("X_ITE.X3D-10.5.10")];
20301
20301
 
20302
20302
  if (X3D)
20303
20303
  X3D [name] = module;
@@ -21140,11 +21140,9 @@ Object .assign (Generator .prototype,
21140
21140
  },
21141
21141
  ExistsRouteNode (routeNode)
21142
21142
  {
21143
- const
21144
- namesByNode = this .namesByNode .get (this .ExecutionContext ()),
21145
- routeNodes = this .routeNodes .get (this .ExecutionContext ());
21143
+ const routeNodes = this .routeNodes .get (this .ExecutionContext ());
21146
21144
 
21147
- return namesByNode .has (routeNode) || routeNodes .has (routeNode);
21145
+ return routeNodes .has (routeNode);
21148
21146
  },
21149
21147
  IsSharedNode (baseNode)
21150
21148
  {
@@ -23435,7 +23433,7 @@ Object .assign (Color3 .prototype,
23435
23433
  this [_b] = color [_b];
23436
23434
  return this;
23437
23435
  },
23438
- set (r, g, b)
23436
+ set (r = 0, g = 0, b = 0)
23439
23437
  {
23440
23438
  this [_r] = Math .max (r, 0);
23441
23439
  this [_g] = Math .max (g, 0);
@@ -23972,7 +23970,7 @@ Object .assign (Color4 .prototype,
23972
23970
  this [_a] = color [_a];
23973
23971
  return this;
23974
23972
  },
23975
- set (r, g, b, a)
23973
+ set (r = 0, g = 0, b = 0, a = 0)
23976
23974
  {
23977
23975
  this [Color4_r] = Math .max (r, 0);
23978
23976
  this [Color4_g] = Math .max (g, 0);
@@ -24808,6 +24806,18 @@ function SFMatrixPrototypeTemplate (Constructor, TypeName, Matrix, double, prope
24808
24806
  {
24809
24807
  return new (vector .constructor) (this .getValue () .multMatrixDir (vector .getValue () .copy ()));
24810
24808
  },
24809
+ translate (translation)
24810
+ {
24811
+ return new (this .constructor) (this .getValue () .copy () .translate (translation .getValue ()));
24812
+ },
24813
+ rotate (rotation)
24814
+ {
24815
+ return new (this .constructor) (this .getValue () .copy () .rotate (rotation .getValue ()));
24816
+ },
24817
+ scale (scale)
24818
+ {
24819
+ return new (this .constructor) (this .getValue () .copy () .scale (scale .getValue ()));
24820
+ },
24811
24821
  toStream (generator)
24812
24822
  {
24813
24823
  const
@@ -24958,22 +24968,22 @@ Object .assign (Vector2 .prototype,
24958
24968
  copy .y = this .y;
24959
24969
  return copy;
24960
24970
  },
24961
- assign (vector)
24971
+ assign ({ x, y })
24962
24972
  {
24963
- this .x = vector .x;
24964
- this .y = vector .y;
24973
+ this .x = x;
24974
+ this .y = y;
24965
24975
  return this;
24966
24976
  },
24967
- set (x, y)
24977
+ set (x = 0, y = 0)
24968
24978
  {
24969
24979
  this .x = x;
24970
24980
  this .y = y;
24971
24981
  return this;
24972
24982
  },
24973
- equals (vector)
24983
+ equals ({ x, y })
24974
24984
  {
24975
- return this .x === vector .x &&
24976
- this .y === vector .y;
24985
+ return this .x === x &&
24986
+ this .y === y;
24977
24987
  },
24978
24988
  negate ()
24979
24989
  {
@@ -24987,16 +24997,16 @@ Object .assign (Vector2 .prototype,
24987
24997
  this .y = 1 / this .y;
24988
24998
  return this;
24989
24999
  },
24990
- add (vector)
25000
+ add ({ x, y })
24991
25001
  {
24992
- this .x += vector .x;
24993
- this .y += vector .y;
25002
+ this .x += x;
25003
+ this .y += y;
24994
25004
  return this;
24995
25005
  },
24996
- subtract (vector)
25006
+ subtract ({ x, y })
24997
25007
  {
24998
- this .x -= vector .x;
24999
- this .y -= vector .y;
25008
+ this .x -= x;
25009
+ this .y -= y;
25000
25010
  return this;
25001
25011
  },
25002
25012
  multiply (value)
@@ -25005,10 +25015,10 @@ Object .assign (Vector2 .prototype,
25005
25015
  this .y *= value;
25006
25016
  return this;
25007
25017
  },
25008
- multVec (vector)
25018
+ multVec ({ x, y })
25009
25019
  {
25010
- this .x *= vector .x;
25011
- this .y *= vector .y;
25020
+ this .x *= x;
25021
+ this .y *= y;
25012
25022
  return this;
25013
25023
  },
25014
25024
  divide (value)
@@ -25017,10 +25027,10 @@ Object .assign (Vector2 .prototype,
25017
25027
  this .y /= value;
25018
25028
  return this;
25019
25029
  },
25020
- divVec (vector)
25030
+ divVec ({ x, y })
25021
25031
  {
25022
- this .x /= vector .x;
25023
- this .y /= vector .y;
25032
+ this .x /= x;
25033
+ this .y /= y;
25024
25034
  return this;
25025
25035
  },
25026
25036
  normalize ()
@@ -25035,10 +25045,10 @@ Object .assign (Vector2 .prototype,
25035
25045
 
25036
25046
  return this;
25037
25047
  },
25038
- dot (vector)
25048
+ dot ({ x, y })
25039
25049
  {
25040
- return this .x * vector .x +
25041
- this .y * vector .y;
25050
+ return this .x * x +
25051
+ this .y * y;
25042
25052
  },
25043
25053
  norm ()
25044
25054
  {
@@ -25051,33 +25061,35 @@ Object .assign (Vector2 .prototype,
25051
25061
  {
25052
25062
  return Math .hypot (this .x, this .y);
25053
25063
  },
25054
- distance (vector)
25064
+ distance ({ x, y })
25055
25065
  {
25056
- return Math .hypot (this .x - vector .x,
25057
- this .y - vector .y);
25066
+ return Math .hypot (this .x - x,
25067
+ this .y - y);
25058
25068
  },
25059
- lerp (destination, t)
25069
+ lerp ({ x: dX, y: dY }, t)
25060
25070
  {
25061
25071
  const { x, y } = this;
25062
25072
 
25063
- this .x = x + t * (destination .x - x);
25064
- this .y = y + t * (destination .y - y);
25073
+ this .x = x + t * (dX - x);
25074
+ this .y = y + t * (dY - y);
25065
25075
  return this;
25066
25076
  },
25067
25077
  abs ()
25068
25078
  {
25069
- this .x = Math .abs (this .x);
25070
- this .y = Math .abs (this .y);
25079
+ const { x, y } = this;
25080
+
25081
+ this .x = Math .abs (x);
25082
+ this .y = Math .abs (y);
25071
25083
  return this;
25072
25084
  },
25073
25085
  min (vector)
25074
25086
  {
25075
25087
  let { x, y } = this;
25076
25088
 
25077
- for (const vector of arguments)
25089
+ for (const { x: minX, y: minY } of arguments)
25078
25090
  {
25079
- x = Math .min (x, vector .x);
25080
- y = Math .min (y, vector .y);
25091
+ x = Math .min (x, minX);
25092
+ y = Math .min (y, minY);
25081
25093
  }
25082
25094
 
25083
25095
  this .x = x;
@@ -25088,20 +25100,21 @@ Object .assign (Vector2 .prototype,
25088
25100
  {
25089
25101
  let { x, y } = this;
25090
25102
 
25091
- for (const vector of arguments)
25103
+ for (const { x: maxX, y: maxY } of arguments)
25092
25104
  {
25093
- x = Math .max (x, vector .x);
25094
- y = Math .max (y, vector .y);
25105
+ x = Math .max (x, maxX);
25106
+ y = Math .max (y, maxY);
25095
25107
  }
25096
25108
 
25097
25109
  this .x = x;
25098
25110
  this .y = y;
25099
25111
  return this;
25100
25112
  },
25101
- clamp (min, max)
25113
+ clamp ({ x: minX, y: minY }, { x: maxX, y: maxY })
25102
25114
  {
25103
- this .x = Math_Algorithm .clamp (this .x, min .x, max .x);
25104
- this .y = Math_Algorithm .clamp (this .y, min .y, max .y);
25115
+ this .x = Math_Algorithm .clamp (this .x, minX, maxX);
25116
+ this .y = Math_Algorithm .clamp (this .y, minY, maxY);
25117
+ return this;
25105
25118
  },
25106
25119
  toString ()
25107
25120
  {
@@ -25213,25 +25226,25 @@ Object .assign (Vector3 .prototype,
25213
25226
  copy .z = this .z;
25214
25227
  return copy;
25215
25228
  },
25216
- assign (vector)
25229
+ assign ({ x, y, z })
25217
25230
  {
25218
- this .x = vector .x;
25219
- this .y = vector .y;
25220
- this .z = vector .z;
25231
+ this .x = x;
25232
+ this .y = y;
25233
+ this .z = z;
25221
25234
  return this;
25222
25235
  },
25223
- set (x, y, z)
25236
+ set (x = 0, y = 0, z = 0)
25224
25237
  {
25225
25238
  this .x = x;
25226
25239
  this .y = y;
25227
25240
  this .z = z;
25228
25241
  return this;
25229
25242
  },
25230
- equals (vector)
25243
+ equals ({ x, y, z })
25231
25244
  {
25232
- return this .x === vector .x &&
25233
- this .y === vector .y &&
25234
- this .z === vector .z;
25245
+ return this .x === x &&
25246
+ this .y === y &&
25247
+ this .z === z;
25235
25248
  },
25236
25249
  negate ()
25237
25250
  {
@@ -25247,18 +25260,18 @@ Object .assign (Vector3 .prototype,
25247
25260
  this .z = 1 / this .z;
25248
25261
  return this;
25249
25262
  },
25250
- add (vector)
25263
+ add ({ x, y, z })
25251
25264
  {
25252
- this .x += vector .x;
25253
- this .y += vector .y;
25254
- this .z += vector .z;
25265
+ this .x += x;
25266
+ this .y += y;
25267
+ this .z += z;
25255
25268
  return this;
25256
25269
  },
25257
- subtract (vector)
25270
+ subtract ({ x, y, z })
25258
25271
  {
25259
- this .x -= vector .x;
25260
- this .y -= vector .y;
25261
- this .z -= vector .z;
25272
+ this .x -= x;
25273
+ this .y -= y;
25274
+ this .z -= z;
25262
25275
  return this;
25263
25276
  },
25264
25277
  multiply (value)
@@ -25268,11 +25281,11 @@ Object .assign (Vector3 .prototype,
25268
25281
  this .z *= value;
25269
25282
  return this;
25270
25283
  },
25271
- multVec (vector)
25284
+ multVec ({ x, y, z })
25272
25285
  {
25273
- this .x *= vector .x;
25274
- this .y *= vector .y;
25275
- this .z *= vector .z;
25286
+ this .x *= x;
25287
+ this .y *= y;
25288
+ this .z *= z;
25276
25289
  return this;
25277
25290
  },
25278
25291
  divide (value)
@@ -25282,18 +25295,16 @@ Object .assign (Vector3 .prototype,
25282
25295
  this .z /= value;
25283
25296
  return this;
25284
25297
  },
25285
- divVec (vector)
25298
+ divVec ({ x, y, z })
25286
25299
  {
25287
- this .x /= vector .x;
25288
- this .y /= vector .y;
25289
- this .z /= vector .z;
25300
+ this .x /= x;
25301
+ this .y /= y;
25302
+ this .z /= z;
25290
25303
  return this;
25291
25304
  },
25292
- cross (vector)
25305
+ cross ({ x: bx, y: by, z: bz })
25293
25306
  {
25294
- const
25295
- { x: ax, y: ay, z: az } = this,
25296
- { x: bx, y: by, z: bz } = vector;
25307
+ const { x: ax, y: ay, z: az } = this;
25297
25308
 
25298
25309
  this .x = ay * bz - az * by;
25299
25310
  this .y = az * bx - ax * bz;
@@ -25314,11 +25325,11 @@ Object .assign (Vector3 .prototype,
25314
25325
 
25315
25326
  return this;
25316
25327
  },
25317
- dot (vector)
25328
+ dot ({ x, y, z })
25318
25329
  {
25319
- return this .x * vector .x +
25320
- this .y * vector .y +
25321
- this .z * vector .z;
25330
+ return this .x * x +
25331
+ this .y * y +
25332
+ this .z * z;
25322
25333
  },
25323
25334
  norm ()
25324
25335
  {
@@ -25332,19 +25343,19 @@ Object .assign (Vector3 .prototype,
25332
25343
  {
25333
25344
  return Math .hypot (this .x, this .y, this .z);
25334
25345
  },
25335
- distance (vector)
25346
+ distance ({ x, y, z })
25336
25347
  {
25337
- return Math .hypot (this .x - vector .x,
25338
- this .y - vector .y,
25339
- this .z - vector .z);
25348
+ return Math .hypot (this .x - x,
25349
+ this .y - y,
25350
+ this .z - z);
25340
25351
  },
25341
- lerp (destination, t)
25352
+ lerp ({ x: dX, y: dY, z: dZ }, t)
25342
25353
  {
25343
25354
  const { x, y, z } = this;
25344
25355
 
25345
- this .x = x + t * (destination .x - x);
25346
- this .y = y + t * (destination .y - y);
25347
- this .z = z + t * (destination .z - z);
25356
+ this .x = x + t * (dX - x);
25357
+ this .y = y + t * (dY - y);
25358
+ this .z = z + t * (dZ - z);
25348
25359
  return this;
25349
25360
  },
25350
25361
  slerp: (() =>
@@ -25358,20 +25369,22 @@ Object .assign (Vector3 .prototype,
25358
25369
  })(),
25359
25370
  abs ()
25360
25371
  {
25361
- this .x = Math .abs (this .x);
25362
- this .y = Math .abs (this .y);
25363
- this .z = Math .abs (this .z);
25372
+ const { x, y, z } = this;
25373
+
25374
+ this .x = Math .abs (x);
25375
+ this .y = Math .abs (y);
25376
+ this .z = Math .abs (z);
25364
25377
  return this;
25365
25378
  },
25366
25379
  min (vector)
25367
25380
  {
25368
25381
  let { x, y, z } = this;
25369
25382
 
25370
- for (const vector of arguments)
25383
+ for (const { x: minX, y: minY, z: minZ } of arguments)
25371
25384
  {
25372
- x = Math .min (x, vector .x);
25373
- y = Math .min (y, vector .y);
25374
- z = Math .min (z, vector .z);
25385
+ x = Math .min (x, minX);
25386
+ y = Math .min (y, minY);
25387
+ z = Math .min (z, minZ);
25375
25388
  }
25376
25389
 
25377
25390
  this .x = x;
@@ -25383,11 +25396,11 @@ Object .assign (Vector3 .prototype,
25383
25396
  {
25384
25397
  let { x, y, z } = this;
25385
25398
 
25386
- for (const vector of arguments)
25399
+ for (const { x: maxX, y: maxY, z: maxZ } of arguments)
25387
25400
  {
25388
- x = Math .max (x, vector .x);
25389
- y = Math .max (y, vector .y);
25390
- z = Math .max (z, vector .z);
25401
+ x = Math .max (x, maxX);
25402
+ y = Math .max (y, maxY);
25403
+ z = Math .max (z, maxZ);
25391
25404
  }
25392
25405
 
25393
25406
  this .x = x;
@@ -25395,11 +25408,12 @@ Object .assign (Vector3 .prototype,
25395
25408
  this .z = z;
25396
25409
  return this;
25397
25410
  },
25398
- clamp (min, max)
25411
+ clamp ({ x: minX, y: minY, z: minZ }, { x: maxX, y: maxY, z: maxZ })
25399
25412
  {
25400
- this .x = Math_Algorithm .clamp (this .x, min .x, max .x);
25401
- this .y = Math_Algorithm .clamp (this .y, min .y, max .y);
25402
- this .z = Math_Algorithm .clamp (this .z, min .z, max .z);
25413
+ this .x = Math_Algorithm .clamp (this .x, minX, maxX);
25414
+ this .y = Math_Algorithm .clamp (this .y, minY, maxY);
25415
+ this .z = Math_Algorithm .clamp (this .z, minZ, maxZ);
25416
+ return this;
25403
25417
  },
25404
25418
  toString ()
25405
25419
  {
@@ -26686,6 +26700,10 @@ function SFMatrix3Template (TypeName, double)
26686
26700
  args .length = 0;
26687
26701
  };
26688
26702
  })(),
26703
+ rotate (rotation)
26704
+ {
26705
+ return new (this .constructor) (this .getValue () .copy () .rotate (rotation));
26706
+ },
26689
26707
  });
26690
26708
  }
26691
26709
 
@@ -26774,15 +26792,15 @@ Object .assign (Vector4 .prototype,
26774
26792
  copy .w = this .w;
26775
26793
  return copy;
26776
26794
  },
26777
- assign (vector)
26795
+ assign ({ x, y, z, w })
26778
26796
  {
26779
- this .x = vector .x;
26780
- this .y = vector .y;
26781
- this .z = vector .z;
26782
- this .w = vector .w;
26797
+ this .x = x;
26798
+ this .y = y;
26799
+ this .z = z;
26800
+ this .w = w;
26783
26801
  return this;
26784
26802
  },
26785
- set (x, y, z, w)
26803
+ set (x = 0, y = 0, z = 0, w = 0)
26786
26804
  {
26787
26805
  this .x = x;
26788
26806
  this .y = y;
@@ -26790,19 +26808,12 @@ Object .assign (Vector4 .prototype,
26790
26808
  this .w = w;
26791
26809
  return this;
26792
26810
  },
26793
- equals (vector)
26794
- {
26795
- return this .x === vector .x &&
26796
- this .y === vector .y &&
26797
- this .z === vector .z &&
26798
- this .w === vector .w;
26799
- },
26800
- getReal (vector)
26811
+ equals ({ x, y, z, w })
26801
26812
  {
26802
- vector .x = this .x / this .w;
26803
- vector .y = this .y / this .w;
26804
- vector .z = this .z / this .w;
26805
- return vector;
26813
+ return this .x === x &&
26814
+ this .y === y &&
26815
+ this .z === z &&
26816
+ this .w === w;
26806
26817
  },
26807
26818
  negate ()
26808
26819
  {
@@ -26820,20 +26831,20 @@ Object .assign (Vector4 .prototype,
26820
26831
  this .w = 1 / this .w;
26821
26832
  return this;
26822
26833
  },
26823
- add (vector)
26834
+ add ({ x, y, z, w })
26824
26835
  {
26825
- this .x += vector .x;
26826
- this .y += vector .y;
26827
- this .z += vector .z;
26828
- this .w += vector .w;
26836
+ this .x += x;
26837
+ this .y += y;
26838
+ this .z += z;
26839
+ this .w += w;
26829
26840
  return this;
26830
26841
  },
26831
- subtract (vector)
26842
+ subtract ({ x, y, z, w })
26832
26843
  {
26833
- this .x -= vector .x;
26834
- this .y -= vector .y;
26835
- this .z -= vector .z;
26836
- this .w -= vector .w;
26844
+ this .x -= x;
26845
+ this .y -= y;
26846
+ this .z -= z;
26847
+ this .w -= w;
26837
26848
  return this;
26838
26849
  },
26839
26850
  multiply (value)
@@ -26844,12 +26855,12 @@ Object .assign (Vector4 .prototype,
26844
26855
  this .w *= value;
26845
26856
  return this;
26846
26857
  },
26847
- multVec (vector)
26858
+ multVec ({ x, y, z, w })
26848
26859
  {
26849
- this .x *= vector .x;
26850
- this .y *= vector .y;
26851
- this .z *= vector .z;
26852
- this .w *= vector .w;
26860
+ this .x *= x;
26861
+ this .y *= y;
26862
+ this .z *= z;
26863
+ this .w *= w;
26853
26864
  return this;
26854
26865
  },
26855
26866
  divide (value)
@@ -26860,12 +26871,12 @@ Object .assign (Vector4 .prototype,
26860
26871
  this .w /= value;
26861
26872
  return this;
26862
26873
  },
26863
- divVec (vector)
26874
+ divVec ({ x, y, z, w })
26864
26875
  {
26865
- this .x /= vector .x;
26866
- this .y /= vector .y;
26867
- this .z /= vector .z;
26868
- this .w /= vector .w;
26876
+ this .x /= x;
26877
+ this .y /= y;
26878
+ this .z /= z;
26879
+ this .w /= w;
26869
26880
  return this;
26870
26881
  },
26871
26882
  normalize ()
@@ -26882,12 +26893,12 @@ Object .assign (Vector4 .prototype,
26882
26893
 
26883
26894
  return this;
26884
26895
  },
26885
- dot (vector)
26896
+ dot ({ x, y, z, w })
26886
26897
  {
26887
- return this .x * vector .x +
26888
- this .y * vector .y +
26889
- this .z * vector .z +
26890
- this .w * vector .w;
26898
+ return this .x * x +
26899
+ this .y * y +
26900
+ this .z * z +
26901
+ this .w * w;
26891
26902
  },
26892
26903
  norm ()
26893
26904
  {
@@ -26902,41 +26913,43 @@ Object .assign (Vector4 .prototype,
26902
26913
  {
26903
26914
  return Math .hypot (this .x, this .y, this .z, this .w);
26904
26915
  },
26905
- distance (vector)
26916
+ distance ({ x, y, z, w })
26906
26917
  {
26907
- return Math .hypot (this .x - vector .x,
26908
- this .y - vector .y,
26909
- this .z - vector .z,
26910
- this .w - vector .w);
26918
+ return Math .hypot (this .x - x,
26919
+ this .y - y,
26920
+ this .z - z,
26921
+ this .w - w);
26911
26922
  },
26912
- lerp (destination, t)
26923
+ lerp ({ x: dX, y: dY, z: dZ, w: dW }, t)
26913
26924
  {
26914
26925
  const { x, y, z, w } = this;
26915
26926
 
26916
- this .x = x + t * (destination .x - x);
26917
- this .y = y + t * (destination .y - y);
26918
- this .z = z + t * (destination .z - z);
26919
- this .w = w + t * (destination .w - w);
26927
+ this .x = x + t * (dX - x);
26928
+ this .y = y + t * (dY - y);
26929
+ this .z = z + t * (dZ - z);
26930
+ this .w = w + t * (dW - w);
26920
26931
  return this;
26921
26932
  },
26922
26933
  abs ()
26923
26934
  {
26924
- this .x = Math .abs (this .x);
26925
- this .y = Math .abs (this .y);
26926
- this .z = Math .abs (this .z);
26927
- this .w = Math .abs (this .w);
26935
+ const { x, y, z, w } = this;
26936
+
26937
+ this .x = Math .abs (x);
26938
+ this .y = Math .abs (y);
26939
+ this .z = Math .abs (z);
26940
+ this .w = Math .abs (w);
26928
26941
  return this;
26929
26942
  },
26930
26943
  min (vector)
26931
26944
  {
26932
26945
  let { x, y, z, w } = this;
26933
26946
 
26934
- for (const vector of arguments)
26947
+ for (const { x: minX, y: minY, z: minZ, w: minW } of arguments)
26935
26948
  {
26936
- x = Math .min (x, vector .x);
26937
- y = Math .min (y, vector .y);
26938
- z = Math .min (z, vector .z);
26939
- w = Math .min (w, vector .w);
26949
+ x = Math .min (x, minX);
26950
+ y = Math .min (y, minY);
26951
+ z = Math .min (z, minZ);
26952
+ w = Math .min (w, minW);
26940
26953
  }
26941
26954
 
26942
26955
  this .x = x;
@@ -26949,12 +26962,12 @@ Object .assign (Vector4 .prototype,
26949
26962
  {
26950
26963
  let { x, y, z, w } = this;
26951
26964
 
26952
- for (const vector of arguments)
26965
+ for (const { x: maxX, y: maxY, z: maxZ, w: maxW } of arguments)
26953
26966
  {
26954
- x = Math .max (x, vector .x);
26955
- y = Math .max (y, vector .y);
26956
- z = Math .max (z, vector .z);
26957
- w = Math .max (w, vector .w);
26967
+ x = Math .max (x, maxX);
26968
+ y = Math .max (y, maxY);
26969
+ z = Math .max (z, maxZ);
26970
+ w = Math .max (w, maxW);
26958
26971
  }
26959
26972
 
26960
26973
  this .x = x;
@@ -26963,12 +26976,13 @@ Object .assign (Vector4 .prototype,
26963
26976
  this .w = w;
26964
26977
  return this;
26965
26978
  },
26966
- clamp (min, max)
26979
+ clamp ({ x: minX, y: minY, z: minZ, w: minW }, { x: maxX, y: maxY, z: maxZ, w: maxW })
26967
26980
  {
26968
- this .x = Math_Algorithm .clamp (this .x, min .x, max .x);
26969
- this .y = Math_Algorithm .clamp (this .y, min .y, max .y);
26970
- this .z = Math_Algorithm .clamp (this .z, min .z, max .z);
26971
- this .w = Math_Algorithm .clamp (this .w, min .w, max .w);
26981
+ this .x = Math_Algorithm .clamp (this .x, minX, maxX);
26982
+ this .y = Math_Algorithm .clamp (this .y, minY, maxY);
26983
+ this .z = Math_Algorithm .clamp (this .z, minZ, maxZ);
26984
+ this .w = Math_Algorithm .clamp (this .w, minW, maxW);
26985
+ return this;
26972
26986
  },
26973
26987
  toString ()
26974
26988
  {
@@ -27099,15 +27113,15 @@ Object .assign (Quaternion .prototype,
27099
27113
  copy .w = this .w;
27100
27114
  return copy;
27101
27115
  },
27102
- assign (quat)
27116
+ assign ({ x, y, z, w })
27103
27117
  {
27104
- this .x = quat .x;
27105
- this .y = quat .y;
27106
- this .z = quat .z;
27107
- this .w = quat .w;
27118
+ this .x = x;
27119
+ this .y = y;
27120
+ this .z = z;
27121
+ this .w = w;
27108
27122
  return this;
27109
27123
  },
27110
- set (x, y, z, w)
27124
+ set (x = 0, y = 0, z = 0, w = 1)
27111
27125
  {
27112
27126
  this .x = x;
27113
27127
  this .y = y;
@@ -27368,12 +27382,12 @@ Object .assign (Quaternion .prototype,
27368
27382
  {
27369
27383
  return !this .w;
27370
27384
  },
27371
- equals (quat)
27385
+ equals ({ x, y, z, w })
27372
27386
  {
27373
- return this .x === quat .x &&
27374
- this .y === quat .y &&
27375
- this .z === quat .z &&
27376
- this .w === quat .w;
27387
+ return this .x === x &&
27388
+ this .y === y &&
27389
+ this .z === z &&
27390
+ this .w === w;
27377
27391
  },
27378
27392
  negate ()
27379
27393
  {
@@ -27390,20 +27404,20 @@ Object .assign (Quaternion .prototype,
27390
27404
  this .z = -this .z;
27391
27405
  return this;
27392
27406
  },
27393
- add (quat)
27407
+ add ({ x, y, z, w })
27394
27408
  {
27395
- this .x += quat .x;
27396
- this .y += quat .y;
27397
- this .z += quat .z;
27398
- this .w += quat .w;
27409
+ this .x += x;
27410
+ this .y += y;
27411
+ this .z += z;
27412
+ this .w += w;
27399
27413
  return this;
27400
27414
  },
27401
- subtract (quat)
27415
+ subtract ({ x, y, z, w })
27402
27416
  {
27403
- this .x -= quat .x;
27404
- this .y -= quat .y;
27405
- this .z -= quat .z;
27406
- this .w -= quat .w;
27417
+ this .x -= x;
27418
+ this .y -= y;
27419
+ this .z -= z;
27420
+ this .w -= w;
27407
27421
  return this;
27408
27422
  },
27409
27423
  multiply (value)
@@ -29193,13 +29207,9 @@ const SFNodeCache =
29193
29207
 
29194
29208
  function dispose ()
29195
29209
  {
29196
- const value = this .getValue ();
29197
-
29198
- value ?.dispose ();
29210
+ this .getValue () ?.dispose ();
29199
29211
 
29200
29212
  Fields_SFNode .prototype .dispose .call (this);
29201
-
29202
- SFNodeCache .delete (value);
29203
29213
  }
29204
29214
 
29205
29215
  const SFNodeCache_default_ = SFNodeCache;
@@ -29762,6 +29772,10 @@ function SFVecPrototypeTemplate (Constructor, TypeName, Vector, double, properti
29762
29772
  {
29763
29773
  return new (this .constructor) (this .getValue () .copy () .add (vector .getValue ()));
29764
29774
  },
29775
+ clamp (low, high)
29776
+ {
29777
+ return new (this .constructor) (this .getValue () .copy () .clamp (low .getValue (), high .getValue ()));
29778
+ },
29765
29779
  distance (vector)
29766
29780
  {
29767
29781
  return this .getValue () .distance (vector .getValue ());
@@ -34159,7 +34173,7 @@ const X3DBaseNode_default_ = X3DBaseNode;
34159
34173
 
34160
34174
  /* harmony default export */ const Base_X3DBaseNode = (x_ite_Namespace .add ("X3DBaseNode", X3DBaseNode_default_));
34161
34175
  ;// ./src/x_ite/Browser/Legacy.js
34162
- /* provided dependency */ var $ = __webpack_require__(445);
34176
+ /* provided dependency */ var $ = __webpack_require__(427);
34163
34177
  /*******************************************************************************
34164
34178
  *
34165
34179
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -34295,7 +34309,7 @@ const Legacy_default_ = Legacy;
34295
34309
  *
34296
34310
  ******************************************************************************/
34297
34311
 
34298
- const BROWSER_VERSION_default_ = "10.5.8";
34312
+ const BROWSER_VERSION_default_ = "10.5.10";
34299
34313
  ;
34300
34314
 
34301
34315
  /* harmony default export */ const BROWSER_VERSION = (x_ite_Namespace .add ("BROWSER_VERSION", BROWSER_VERSION_default_));
@@ -34352,6 +34366,7 @@ const BROWSER_VERSION_default_ = "10.5.8";
34352
34366
 
34353
34367
 
34354
34368
 
34369
+
34355
34370
  const _metaDataCallbacks = Symbol ();
34356
34371
 
34357
34372
  function X3DNode (executionContext)
@@ -35576,6 +35591,7 @@ Object .assign (Object .setPrototypeOf (X3DNode .prototype, Base_X3DBaseNode .pr
35576
35591
  }
35577
35592
  }
35578
35593
 
35594
+
35579
35595
  // Type name
35580
35596
 
35581
35597
  generator .string += '{';
@@ -36067,6 +36083,8 @@ Object .assign (Object .setPrototypeOf (X3DNode .prototype, Base_X3DBaseNode .pr
36067
36083
  firstParent .setValue (null);
36068
36084
  }
36069
36085
 
36086
+ Fields_SFNodeCache .delete (this);
36087
+
36070
36088
  // Call super.dispose, where fields get disposed.
36071
36089
 
36072
36090
  Base_X3DBaseNode .prototype .dispose .call (this);
@@ -37320,7 +37338,7 @@ const X3DBindableNode_default_ = X3DBindableNode;
37320
37338
 
37321
37339
  /* harmony default export */ const Core_X3DBindableNode = (x_ite_Namespace .add ("X3DBindableNode", X3DBindableNode_default_));
37322
37340
  ;// ./src/standard/Math/Geometry/Triangle3.js
37323
- /* provided dependency */ var libtess = __webpack_require__(294);
37341
+ /* provided dependency */ var libtess = __webpack_require__(800);
37324
37342
  /*******************************************************************************
37325
37343
  *
37326
37344
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -39886,7 +39904,7 @@ const X3DProtoDeclaration_default_ = X3DProtoDeclaration;
39886
39904
 
39887
39905
  /* harmony default export */ const Prototype_X3DProtoDeclaration = (x_ite_Namespace .add ("X3DProtoDeclaration", X3DProtoDeclaration_default_));
39888
39906
  ;// ./src/x_ite/Parser/X3DParser.js
39889
- /* provided dependency */ var X3DParser_$ = __webpack_require__(445);
39907
+ /* provided dependency */ var X3DParser_$ = __webpack_require__(427);
39890
39908
  /*******************************************************************************
39891
39909
  *
39892
39910
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -40141,7 +40159,7 @@ const Expressions_default_ = Expressions;
40141
40159
 
40142
40160
  /* harmony default export */ const Parser_Expressions = (x_ite_Namespace .add ("Expressions", Expressions_default_));
40143
40161
  ;// ./src/x_ite/Parser/VRMLParser.js
40144
- /* provided dependency */ var VRMLParser_$ = __webpack_require__(445);
40162
+ /* provided dependency */ var VRMLParser_$ = __webpack_require__(427);
40145
40163
  /*******************************************************************************
40146
40164
  *
40147
40165
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -42781,7 +42799,7 @@ const VRMLParser_default_ = VRMLParser;
42781
42799
 
42782
42800
  /* harmony default export */ const Parser_VRMLParser = (x_ite_Namespace .add ("VRMLParser", VRMLParser_default_));
42783
42801
  ;// ./src/x_ite/Parser/XMLParser.js
42784
- /* provided dependency */ var XMLParser_$ = __webpack_require__(445);
42802
+ /* provided dependency */ var XMLParser_$ = __webpack_require__(427);
42785
42803
  /*******************************************************************************
42786
42804
  *
42787
42805
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -44959,7 +44977,7 @@ const URLs_default_ = URLs;
44959
44977
 
44960
44978
  /* harmony default export */ const Networking_URLs = (x_ite_Namespace .add ("URLs", URLs_default_));
44961
44979
  ;// ./src/x_ite/Parser/GLTF2Parser.js
44962
- /* provided dependency */ var GLTF2Parser_$ = __webpack_require__(445);
44980
+ /* provided dependency */ var GLTF2Parser_$ = __webpack_require__(427);
44963
44981
  /*******************************************************************************
44964
44982
  *
44965
44983
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -45020,6 +45038,7 @@ const URLs_default_ = URLs;
45020
45038
 
45021
45039
 
45022
45040
 
45041
+
45023
45042
  // https://registry.khronos.org/glTF/specs/2.0/glTF-2.0.html
45024
45043
  // https://github.com/KhronosGroup/glTF-Sample-Assets
45025
45044
 
@@ -45054,6 +45073,8 @@ function GLTF2Parser (scene)
45054
45073
  this .nodes = [ ];
45055
45074
  this .skins = [ ];
45056
45075
  this .joints = new Set ();
45076
+ this .pointerAliases = new Map ();
45077
+ this .animationScripts = [ ];
45057
45078
  }
45058
45079
 
45059
45080
  Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser .prototype),
@@ -45169,20 +45190,21 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
45169
45190
  this .camerasArray (glTF .cameras);
45170
45191
  this .skinsArray (glTF .skins);
45171
45192
  this .nodesArray (glTF .nodes);
45172
- this .scenesArray (glTF .scenes, glTF .scene);
45193
+ this .scenesArray (glTF, glTF .scenes, glTF .scene);
45173
45194
  this .animationsArray (glTF .animations);
45174
45195
 
45175
- this .viewpointsCenterOfRotation (this .getScene ());
45176
- this .optimizeSceneGraph (this .getScene () .getRootNodes ());
45196
+ this .viewpointsCenterOfRotation (scene);
45197
+ this .optimizeSceneGraph (scene .getRootNodes ());
45177
45198
 
45178
45199
  this .exportGroup ("Viewpoints", this .cameras);
45179
45200
  this .exportGroup ("EnvironmentLights", this .envLights);
45180
45201
  this .exportGroup ("Lights", this .lights);
45181
45202
  this .exportGroup ("Animations", glTF .animations);
45182
45203
 
45204
+ this .cleanupAnimationScripts ();
45183
45205
  this .materialVariantsSwitch ();
45184
45206
 
45185
- return this .getScene ();
45207
+ return scene;
45186
45208
  },
45187
45209
  assetObject (asset)
45188
45210
  {
@@ -45238,8 +45260,9 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
45238
45260
  return;
45239
45261
 
45240
45262
  const
45241
- browser = this .getBrowser (),
45242
- scene = this .getScene ();
45263
+ browser = this .getBrowser (),
45264
+ scene = this .getScene (),
45265
+ components = [ ];
45243
45266
 
45244
45267
  for (const extension of extensions)
45245
45268
  {
@@ -45249,11 +45272,7 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
45249
45272
  {
45250
45273
  case "EXT_lights_image_based":
45251
45274
  {
45252
- const component = browser .getComponent ("CubeMapTexturing", 3);
45253
-
45254
- if (!scene .hasComponent (component))
45255
- scene .addComponent (component);
45256
-
45275
+ components .push (browser .getComponent ("CubeMapTexturing", 3));
45257
45276
  break;
45258
45277
  }
45259
45278
  // https://github.com/KhronosGroup/glTF/pull/1956
@@ -45275,24 +45294,28 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
45275
45294
  case "KHR_materials_transmission":
45276
45295
  case "KHR_materials_volume":
45277
45296
  {
45278
- const component = browser .getComponent ("X_ITE", 1);
45279
-
45280
- if (!scene .hasComponent (component))
45281
- scene .addComponent (component);
45282
-
45297
+ components .push (browser .getComponent ("X_ITE", 1));
45283
45298
  break;
45284
45299
  }
45285
45300
  case "KHR_texture_transform":
45286
45301
  {
45287
- const component = browser .getComponent ("Texturing3D", 2);
45288
-
45289
- if (!scene .hasComponent (component))
45290
- scene .addComponent (component);
45291
-
45302
+ components .push (browser .getComponent ("Texturing3D", 2));
45303
+ break;
45304
+ }
45305
+ case "KHR_animation_pointer":
45306
+ {
45307
+ components .push (browser .getComponent ("EventUtilities", 1));
45308
+ components .push (browser .getComponent ("Scripting", 1));
45292
45309
  break;
45293
45310
  }
45294
45311
  }
45295
45312
  }
45313
+
45314
+ for (const component of components)
45315
+ {
45316
+ if (!scene .hasComponent (component))
45317
+ scene .addComponent (component);
45318
+ }
45296
45319
  },
45297
45320
  extensionsObject (extensions)
45298
45321
  {
@@ -45403,6 +45426,8 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
45403
45426
 
45404
45427
  lightNode .setup ();
45405
45428
 
45429
+ light .pointers = [lightNode];
45430
+
45406
45431
  return light .node = lightNode;
45407
45432
  },
45408
45433
  khrLightsPunctualObject (KHR_lights_punctual)
@@ -45449,6 +45474,8 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
45449
45474
  scene .addNamedNode (scene .getUniqueName (name), lightNode);
45450
45475
  scene .addExportedNode (scene .getUniqueExportName (name), lightNode);
45451
45476
 
45477
+ light .pointers = [lightNode];
45478
+
45452
45479
  return light .node = lightNode;
45453
45480
  },
45454
45481
  lightType (light)
@@ -45482,6 +45509,10 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
45482
45509
  lightNode ._beamWidth = this .numberValue (light .innerConeAngle, 0);
45483
45510
  lightNode ._attenuation = new Numbers_Vector3 (0, 0, 1);
45484
45511
 
45512
+ this .addAnimationPointerAlias (lightNode, "range", "radius");
45513
+ this .addAnimationPointerAlias (lightNode, "outerConeAngle", "cutOffAngle");
45514
+ this .addAnimationPointerAlias (lightNode, "innerConeAngle", "beamWidth");
45515
+
45485
45516
  return lightNode;
45486
45517
  },
45487
45518
  pointLight (light)
@@ -45493,6 +45524,8 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
45493
45524
  lightNode ._radius = this .numberValue (light .range, 0) || -1;
45494
45525
  lightNode ._attenuation = new Numbers_Vector3 (0, 0, 1);
45495
45526
 
45527
+ this .addAnimationPointerAlias (lightNode, "range", "radius");
45528
+
45496
45529
  return lightNode;
45497
45530
  },
45498
45531
  khrMaterialsVariantsObjectVariants (KHR_materials_variants)
@@ -45898,11 +45931,12 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
45898
45931
 
45899
45932
  const texCoordIndices = this .getTexCoordIndices ("", material);
45900
45933
 
45901
- this .texCoordIndex = Array .from (texCoordIndices) .reduce ((p, c) => Math .max (p, c), -1);
45902
- this .textureTransformNodes = [ ];
45903
- this .texCoordMappings = new Map ();
45904
- this .texCoordOfNode = new Map ();
45905
- material .texCoordMappings = this .texCoordMappings;
45934
+ this .texCoordIndex = Array .from (texCoordIndices) .reduce ((p, c) => Math .max (p, c), -1);
45935
+ this .textureTransformNodes = [ ];
45936
+ this .texCoordMappings = new Map ();
45937
+ this .texCoordOfNode = new Map ();
45938
+ this .texCoordExtensionOfNode = new Map ();
45939
+ material .texCoordMappings = this .texCoordMappings;
45906
45940
 
45907
45941
  const
45908
45942
  scene = this .getScene (),
@@ -45959,6 +45993,8 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
45959
45993
 
45960
45994
  appearanceNode .setup ();
45961
45995
 
45996
+ material .pointers = [appearanceNode, materialNode];
45997
+
45962
45998
  return material .appearanceNode = appearanceNode;
45963
45999
  },
45964
46000
  getTexCoordIndices (key, object, indices = new Set ())
@@ -46017,6 +46053,8 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
46017
46053
  materialNode ._metallicRoughnessTexture = this .textureInfo (pbrMetallicRoughness .metallicRoughnessTexture);
46018
46054
  materialNode ._metallicRoughnessTextureMapping = this .textureMapping (pbrMetallicRoughness .metallicRoughnessTexture);
46019
46055
 
46056
+ pbrMetallicRoughness .pointers = [materialNode];
46057
+
46020
46058
  return materialNode;
46021
46059
  },
46022
46060
  pbrSpecularGlossinessObject (pbrSpecularGlossiness)
@@ -46052,6 +46090,8 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
46052
46090
  materialNode ._specularGlossinessTexture = this .textureInfo (pbrSpecularGlossiness .specularGlossinessTexture);
46053
46091
  materialNode ._specularGlossinessTextureMapping = this .textureMapping (pbrSpecularGlossiness .specularGlossinessTexture);
46054
46092
 
46093
+ pbrSpecularGlossiness .pointers = [materialNode];
46094
+
46055
46095
  return materialNode;
46056
46096
  },
46057
46097
  occlusionTextureInfo (occlusionTexture, materialNode)
@@ -46150,6 +46190,8 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
46150
46190
 
46151
46191
  extension .setup ();
46152
46192
 
46193
+ KHR_materials_anisotropy .pointers = [extension];
46194
+
46153
46195
  materialNode ._extensions .push (extension);
46154
46196
  },
46155
46197
  khrMaterialsClearcoatObject (KHR_materials_clearcoat, materialNode)
@@ -46172,6 +46214,8 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
46172
46214
 
46173
46215
  extension .setup ();
46174
46216
 
46217
+ KHR_materials_clearcoat .pointers = [extension];
46218
+
46175
46219
  materialNode ._extensions .push (extension);
46176
46220
  },
46177
46221
  khrMaterialsDiffuseTransmissionObject (KHR_materials_diffuse_transmission, materialNode)
@@ -46195,6 +46239,8 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
46195
46239
 
46196
46240
  extension .setup ();
46197
46241
 
46242
+ KHR_materials_diffuse_transmission .pointers = [extension];
46243
+
46198
46244
  materialNode ._extensions .push (extension);
46199
46245
  },
46200
46246
  khrMaterialsDispersionObject (KHR_materials_dispersion, materialNode)
@@ -46208,6 +46254,8 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
46208
46254
 
46209
46255
  extension .setup ();
46210
46256
 
46257
+ KHR_materials_dispersion .pointers = [extension];
46258
+
46211
46259
  materialNode ._extensions .push (extension);
46212
46260
  },
46213
46261
  khrMaterialsEmissiveStrengthObject (KHR_materials_emissive_strength, materialNode)
@@ -46221,6 +46269,8 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
46221
46269
 
46222
46270
  extension .setup ();
46223
46271
 
46272
+ KHR_materials_emissive_strength .pointers = [extension];
46273
+
46224
46274
  materialNode ._extensions .push (extension);
46225
46275
  },
46226
46276
  khrMaterialsIorStrengthObject (KHR_materials_ior, materialNode)
@@ -46231,6 +46281,8 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
46231
46281
 
46232
46282
  extension .setup ();
46233
46283
 
46284
+ KHR_materials_ior .pointers = [extension];
46285
+
46234
46286
  materialNode ._extensions .push (extension);
46235
46287
  },
46236
46288
  khrMaterialsIridescenceObject (KHR_materials_iridescence, materialNode)
@@ -46248,6 +46300,8 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
46248
46300
 
46249
46301
  extension .setup ();
46250
46302
 
46303
+ KHR_materials_iridescence .pointers = [extension];
46304
+
46251
46305
  materialNode ._extensions .push (extension);
46252
46306
  },
46253
46307
  khrMaterialsSheenObject (KHR_materials_sheen, materialNode)
@@ -46271,6 +46325,8 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
46271
46325
 
46272
46326
  extension .setup ();
46273
46327
 
46328
+ KHR_materials_sheen .pointers = [extension];
46329
+
46274
46330
  materialNode ._extensions .push (extension);
46275
46331
  },
46276
46332
  khrMaterialsSpecularObject (KHR_materials_specular, materialNode)
@@ -46294,6 +46350,8 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
46294
46350
 
46295
46351
  extension .setup ();
46296
46352
 
46353
+ KHR_materials_specular .pointers = [extension];
46354
+
46297
46355
  materialNode ._extensions .push (extension);
46298
46356
  },
46299
46357
  khrMaterialsTransmission (KHR_materials_transmission, materialNode)
@@ -46309,6 +46367,8 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
46309
46367
 
46310
46368
  extension .setup ();
46311
46369
 
46370
+ KHR_materials_transmission .pointers = [extension];
46371
+
46312
46372
  materialNode ._extensions .push (extension);
46313
46373
  },
46314
46374
  khrMaterialsVolumeObject (KHR_materials_volume, materialNode)
@@ -46327,6 +46387,8 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
46327
46387
 
46328
46388
  extension .setup ();
46329
46389
 
46390
+ KHR_materials_volume .pointers = [extension];
46391
+
46330
46392
  materialNode ._extensions .push (extension);
46331
46393
  },
46332
46394
  khrMaterialsUnlitObject (KHR_materials_unlit, materialNode)
@@ -46345,6 +46407,7 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
46345
46407
  unlitMaterialNode ._transparency = materialNode ._transparency;
46346
46408
 
46347
46409
  unlitMaterialNode .setup ();
46410
+ this .addAnimationPointerAlias (unlitMaterialNode, "baseColor", "emissiveColor");
46348
46411
 
46349
46412
  materialNode .dispose ();
46350
46413
 
@@ -46383,7 +46446,18 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
46383
46446
  const existing = this .textureTransformNodes .find (node => this .texCoordOfNode .get (node) === texCoord && node ._matrix .getValue () .equals (matrix));
46384
46447
 
46385
46448
  if (existing)
46449
+ {
46450
+ Object .defineProperty (KHR_texture_transform, "pointers",
46451
+ {
46452
+ get: () =>
46453
+ {
46454
+ return this .texCoordExtensionOfNode .get (existing);
46455
+ },
46456
+ configurable: true,
46457
+ });
46458
+
46386
46459
  return existing ._mapping .getValue ();
46460
+ }
46387
46461
 
46388
46462
  // Create new TextureTransformMatrix3D.
46389
46463
 
@@ -46400,6 +46474,54 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
46400
46474
  this .textureTransformNodes .push (textureTransformNode);
46401
46475
  this .texCoordMappings .set (mapping, texCoord);
46402
46476
  this .texCoordOfNode .set (textureTransformNode, texCoord);
46477
+ this .texCoordExtensionOfNode .set (textureTransformNode, KHR_texture_transform);
46478
+
46479
+ Object .defineProperty (KHR_texture_transform, "pointers",
46480
+ {
46481
+ get: () =>
46482
+ {
46483
+ const scriptNode = scene .createNode ("Script", false);
46484
+
46485
+ scriptNode .addUserDefinedField (Base_X3DConstants .inputOutput, "translation", new x_ite_Fields .SFVec2f ());
46486
+ scriptNode .addUserDefinedField (Base_X3DConstants .inputOutput, "rotation", new x_ite_Fields .SFFloat ());
46487
+ scriptNode .addUserDefinedField (Base_X3DConstants .inputOutput, "scale", new x_ite_Fields .SFVec2f (1, 1));
46488
+ scriptNode .addUserDefinedField (Base_X3DConstants .outputOnly, "value_changed", new x_ite_Fields .SFMatrix4f ());
46489
+
46490
+ scriptNode ._url = [/* js */ `ecmascript:
46491
+
46492
+ const
46493
+ flip = new SFMatrix3f (1, 0, 0, 0, -1, 0, 0, 1, 1),
46494
+ matrix = new SFMatrix3f ();
46495
+
46496
+ function eventsProcessed ()
46497
+ {
46498
+ matrix .setTransform (translation, -rotation, scale);
46499
+
46500
+ const m = flip .multLeft (matrix);
46501
+
46502
+ value_changed [0] = m [0];
46503
+ value_changed [1] = m [1];
46504
+ value_changed [4] = m [3];
46505
+ value_changed [5] = m [4];
46506
+ value_changed [12] = m [6];
46507
+ value_changed [13] = m [7];
46508
+ }
46509
+ `];
46510
+
46511
+ scriptNode .setup ();
46512
+
46513
+ scene .addNamedNode (scene .getUniqueName ("CombineTextureMatrixScript"), scriptNode);
46514
+ scene .addRoute (scriptNode, "value_changed", textureTransformNode, "set_matrix");
46515
+
46516
+ this .addAnimationPointerAlias (scriptNode, "offset", "translation");
46517
+ this .animationScripts .push (scriptNode);
46518
+
46519
+ Object .defineProperty (KHR_texture_transform, "pointers", { value: [scriptNode] });
46520
+
46521
+ return [scriptNode];
46522
+ },
46523
+ configurable: true,
46524
+ });
46403
46525
 
46404
46526
  return mapping;
46405
46527
  },
@@ -46804,6 +46926,41 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
46804
46926
 
46805
46927
  viewpointNode .setup ();
46806
46928
 
46929
+ this .addAnimationPointerAlias (viewpointNode, "znear", "nearDistance");
46930
+ this .addAnimationPointerAlias (viewpointNode, "zfar", "farDistance");
46931
+
46932
+ Object .defineProperty (camera, "pointers",
46933
+ {
46934
+ get: () =>
46935
+ {
46936
+ const scriptNode = scene .createNode ("Script", false);
46937
+
46938
+ scriptNode .addUserDefinedField (Base_X3DConstants .inputOutput, "xmag", new x_ite_Fields .SFFloat (1));
46939
+ scriptNode .addUserDefinedField (Base_X3DConstants .inputOutput, "ymag", new x_ite_Fields .SFFloat (1));
46940
+ scriptNode .addUserDefinedField (Base_X3DConstants .outputOnly, "value_changed", new x_ite_Fields .MFFloat ());
46941
+
46942
+ scriptNode ._url = [/* js */ `ecmascript:
46943
+
46944
+ function eventsProcessed ()
46945
+ {
46946
+ value_changed = new MFFloat (-xmag, -ymag, xmag, ymag);
46947
+ }
46948
+ `];
46949
+
46950
+ scriptNode .setup ();
46951
+
46952
+ scene .addNamedNode (scene .getUniqueName ("CombineFieldOfViewScript"), scriptNode);
46953
+ scene .addRoute (scriptNode, "value_changed", viewpointNode, "set_fieldOfView");
46954
+
46955
+ this .animationScripts .push (scriptNode);
46956
+
46957
+ Object .defineProperty (camera, "pointers", { value: [viewpointNode, scriptNode] });
46958
+
46959
+ return [viewpointNode, scriptNode];
46960
+ },
46961
+ configurable: true,
46962
+ });
46963
+
46807
46964
  return viewpointNode;
46808
46965
  },
46809
46966
  perspectiveCamera (camera)
@@ -46816,7 +46973,7 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
46816
46973
  viewpointNode = scene .createNode ("Viewpoint", false);
46817
46974
 
46818
46975
  if (typeof camera .yfov === "number")
46819
- viewpointNode ._fieldOfView = camera .yfov
46976
+ viewpointNode ._fieldOfView = camera .yfov;
46820
46977
 
46821
46978
  if (typeof camera .znear === "number")
46822
46979
  viewpointNode ._nearDistance = camera .znear;
@@ -46826,6 +46983,12 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
46826
46983
 
46827
46984
  viewpointNode .setup ();
46828
46985
 
46986
+ this .addAnimationPointerAlias (viewpointNode, "yfov", "fieldOfView");
46987
+ this .addAnimationPointerAlias (viewpointNode, "znear", "nearDistance");
46988
+ this .addAnimationPointerAlias (viewpointNode, "zfar", "farDistance");
46989
+
46990
+ camera .pointers = [viewpointNode];
46991
+
46829
46992
  return viewpointNode;
46830
46993
  },
46831
46994
  nodesArray (nodes)
@@ -46866,13 +47029,12 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
46866
47029
  {
46867
47030
  // Skins can be cloned.
46868
47031
 
46869
- if (!skin .humanoidNode)
46870
- skin .humanoidNode = scene .createNode ("HAnimHumanoid", false);
46871
-
46872
- node .humanoidNode = skin .humanoidNode;
47032
+ skin .humanoidNode ??= scene .createNode ("HAnimHumanoid", false);
47033
+ node .humanoidNode = skin .humanoidNode;
46873
47034
  }
46874
47035
 
46875
47036
  node .childNode = node .humanoidNode ?? node .transformNode;
47037
+ node .pointers = [node .childNode];
46876
47038
 
46877
47039
  return node;
46878
47040
  },
@@ -47113,7 +47275,7 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
47113
47275
 
47114
47276
  return matrices;
47115
47277
  },
47116
- scenesArray (scenes, sceneNumber = 0)
47278
+ scenesArray (glTF, scenes, sceneNumber = 0)
47117
47279
  {
47118
47280
  if (!(scenes instanceof Array))
47119
47281
  return;
@@ -47154,6 +47316,10 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
47154
47316
 
47155
47317
  switchNode .setup ();
47156
47318
 
47319
+ this .addAnimationPointerAlias (switchNode, "scene", "whichChoice");
47320
+
47321
+ glTF .pointers = [switchNode];
47322
+
47157
47323
  scene .getRootNodes () .push (switchNode);
47158
47324
  return;
47159
47325
  }
@@ -47299,6 +47465,8 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
47299
47465
  if (!(samplers instanceof Array))
47300
47466
  return [ ];
47301
47467
 
47468
+ // Determine cycleInterval.
47469
+
47302
47470
  const cycleInterval = samplers
47303
47471
  .map (sampler => this .accessors [sampler .input])
47304
47472
  .filter (input => input ?.array .length)
@@ -47306,8 +47474,25 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
47306
47474
 
47307
47475
  timeSensorNode ._cycleInterval = cycleInterval;
47308
47476
 
47309
- return channels
47477
+ // Get interpolators.
47478
+
47479
+ channels = channels
47310
47480
  .flatMap (channel => this .animationChannelObject (channel, samplers, timeSensorNode));
47481
+
47482
+ // Insert Script nodes after last interpolator.
47483
+
47484
+ for (const scriptNode of this .animationScripts)
47485
+ {
47486
+ const index = channels .findLastIndex (node => node .getFields ()
47487
+ .some (field => Array .from (field .getOutputRoutes ())
47488
+ .some (route => route .getDestinationNode () === scriptNode)));
47489
+
47490
+ channels .splice (index + 1, 0, scriptNode);
47491
+ }
47492
+
47493
+ this .animationScripts .length = 0;
47494
+
47495
+ return channels;
47311
47496
  },
47312
47497
  animationChannelObject (channel, samplers, timeSensorNode)
47313
47498
  {
@@ -47347,6 +47532,30 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
47347
47532
 
47348
47533
  return this .createInterpolator (timeSensorNode, node, target, sampler .interpolation, input .array, output, timeSensorNode ._cycleInterval .getValue ());
47349
47534
  },
47535
+ cleanupAnimationScripts ()
47536
+ {
47537
+ // It can happen, that some scripts are not used, so let us remove them.
47538
+
47539
+ const
47540
+ scene = this .getScene (),
47541
+ scriptNodes = Array .from (scene .getNamedNodes (), node => node .getValue ())
47542
+ .filter (node => node .getType () .at (-1) === Base_X3DConstants .Script);
47543
+
47544
+ for (const scriptNode of scriptNodes)
47545
+ {
47546
+ if (scriptNode .getFields () .every (field => !field .getInputRoutes () .size))
47547
+ {
47548
+ scriptNode .dispose ();
47549
+ continue;
47550
+ }
47551
+
47552
+ if (scriptNode .getFields () .every (field => !field .getOutputRoutes () .size))
47553
+ {
47554
+ scriptNode .dispose ();
47555
+ continue;
47556
+ }
47557
+ }
47558
+ },
47350
47559
  createShape (primitive, weights, skin, EXT_mesh_gpu_instancing)
47351
47560
  {
47352
47561
  const
@@ -48132,38 +48341,19 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
48132
48341
 
48133
48342
  switch (target .path)
48134
48343
  {
48135
- case "translation":
48344
+ case "pointer":
48136
48345
  {
48137
- const interpolatorNode = this .createPositionInterpolator (interpolation, times, keyValues .array, cycleInterval);
48138
-
48139
- scene .addNamedNode (scene .getUniqueName ("TranslationInterpolator"), interpolatorNode);
48346
+ const [node, field] = this .getAnimationPointer (target .extensions ?.KHR_animation_pointer ?.pointer);
48140
48347
 
48141
- scene .addRoute (timeSensorNode, "fraction_changed", interpolatorNode, "set_fraction");
48142
- scene .addRoute (interpolatorNode, "value_changed", node, "set_translation");
48143
-
48144
- return interpolatorNode;
48348
+ return this .createAnimationPointerInterpolator (timeSensorNode, node, field, interpolation, times, keyValues, cycleInterval);
48145
48349
  }
48350
+ case "translation":
48146
48351
  case "rotation":
48147
- {
48148
- const interpolatorNode = this .createOrientationInterpolator (interpolation, times, keyValues .array, cycleInterval);
48149
-
48150
- scene .addNamedNode (scene .getUniqueName ("RotationInterpolator"), interpolatorNode);
48151
-
48152
- scene .addRoute (timeSensorNode, "fraction_changed", interpolatorNode, "set_fraction");
48153
- scene .addRoute (interpolatorNode, "value_changed", node, "set_rotation");
48154
-
48155
- return interpolatorNode;
48156
- }
48157
48352
  case "scale":
48158
48353
  {
48159
- const interpolatorNode = this .createPositionInterpolator (interpolation, times, keyValues .array, cycleInterval);
48160
-
48161
- scene .addNamedNode (scene .getUniqueName ("ScaleInterpolator"), interpolatorNode);
48354
+ const field = node .getField (target .path);
48162
48355
 
48163
- scene .addRoute (timeSensorNode, "fraction_changed", interpolatorNode, "set_fraction");
48164
- scene .addRoute (interpolatorNode, "value_changed", node, "set_scale");
48165
-
48166
- return interpolatorNode;
48356
+ return this .createAnimationPointerInterpolator (timeSensorNode, node, field, interpolation, times, keyValues, cycleInterval);
48167
48357
  }
48168
48358
  case "weights":
48169
48359
  {
@@ -48190,7 +48380,7 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
48190
48380
  interpolatorNodes .push (coordinateInterpolatorNode);
48191
48381
 
48192
48382
  scene .addRoute (timeSensorNode, "fraction_changed", coordinateInterpolatorNode, "set_fraction");
48193
- scene .addRoute (coordinateInterpolatorNode, "value_changed", geometryNode ._coord, "set_point");
48383
+ scene .addRoute (coordinateInterpolatorNode, "value_changed", geometryNode ._coord, "point");
48194
48384
  }
48195
48385
 
48196
48386
  const normalInterpolatorNode = this .createArrayInterpolator ("NormalInterpolator", interpolation, times, keyValues .array, cycleInterval, targets, attributes, "NORMAL");
@@ -48200,63 +48390,252 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
48200
48390
  interpolatorNodes .push (normalInterpolatorNode);
48201
48391
 
48202
48392
  scene .addRoute (timeSensorNode, "fraction_changed", normalInterpolatorNode, "set_fraction");
48203
- scene .addRoute (normalInterpolatorNode, "value_changed", geometryNode ._normal, "set_vector");
48393
+ scene .addRoute (normalInterpolatorNode, "value_changed", geometryNode ._normal, "vector");
48204
48394
  }
48205
48395
  }
48206
48396
 
48207
48397
  return interpolatorNodes;
48208
48398
  }
48209
- case "pointer":
48399
+ default:
48210
48400
  {
48211
- // const
48212
- // pointer = target .extensions ?.KHR_animation_pointer ?.pointer ?? "",
48213
- // path = pointer .split ("/") .filter (p => p)
48214
- // name = path .pop ();
48215
-
48216
- // let glTF = this .input;
48401
+ return [ ];
48402
+ }
48403
+ }
48404
+ },
48405
+ createAnimationPointerInterpolator: (function ()
48406
+ {
48407
+ const interpolators = new Map ([
48408
+ [Base_X3DConstants .SFBool, { typeName: "BooleanSequencer" }],
48409
+ [Base_X3DConstants .SFInt32, { typeName: "IntegerSequencer" }],
48410
+ [Base_X3DConstants .SFFloat, { typeName: "ScalarInterpolator", components: 1 }],
48411
+ [Base_X3DConstants .SFVec2f, { typeName: "PositionInterpolator2D", components: 2 }],
48412
+ [Base_X3DConstants .SFVec3f, { typeName: "PositionInterpolator", components: 3 }],
48413
+ ]);
48217
48414
 
48218
- // for (const property of path)
48219
- // glTF = glTF [property]
48415
+ return function (timeSensorNode, node, field, interpolation, times, keyValues, cycleInterval)
48416
+ {
48417
+ if (!(node && field))
48418
+ return [ ];
48220
48419
 
48221
- // console .log (glTF)
48420
+ const scene = this .getScene ();
48222
48421
 
48223
- return [ ];
48224
- }
48225
- default:
48422
+ switch (field .getType ())
48226
48423
  {
48227
- return [ ];
48424
+ case Base_X3DConstants .SFColor:
48425
+ {
48426
+ const interpolatorNodes = [ ];
48427
+
48428
+ switch ((keyValues .array .length / times .length) % 3)
48429
+ {
48430
+ case 0: // Color3 pointer
48431
+ {
48432
+ var colors = keyValues .array;
48433
+ break;
48434
+ }
48435
+ default: // Color4 pointer
48436
+ {
48437
+ var
48438
+ colors = keyValues .array .filter ((_, i) => i % 4 < 3),
48439
+ transparencies = keyValues .array .filter ((_, i) => i % 4 === 3);
48440
+
48441
+ transparencies = transparencies .every (value => value >= 1)
48442
+ ? undefined
48443
+ : transparencies .map (value => 1 - value);
48444
+
48445
+ break;
48446
+ }
48447
+ }
48448
+
48449
+ const interpolatorNode = this .createNamedInterpolator ("ColorInterpolator", 3, interpolation, times, colors, cycleInterval);
48450
+
48451
+ scene .addNamedNode (scene .getUniqueName (`${GLTF2Parser_$.toUpperCaseFirst (field .getName ())}Interpolator`), interpolatorNode);
48452
+
48453
+ scene .addRoute (timeSensorNode, "fraction_changed", interpolatorNode, "set_fraction");
48454
+ scene .addRoute (interpolatorNode, "value_changed", node, field .getName ());
48455
+
48456
+ interpolatorNodes .push (interpolatorNode);
48457
+
48458
+ // These are currently the only two affected fields, which are SFColor but pointer is Color4.
48459
+ if (field .getName () .match (/^(?:baseColor|emissiveColor)$/) && transparencies)
48460
+ {
48461
+ const interpolatorNode = this .createNamedInterpolator ("ScalarInterpolator", 1, interpolation, times, transparencies, cycleInterval);
48462
+
48463
+ scene .addNamedNode (scene .getUniqueName ("TransparencyInterpolator"), interpolatorNode);
48464
+
48465
+ scene .addRoute (timeSensorNode, "fraction_changed", interpolatorNode, "set_fraction");
48466
+ scene .addRoute (interpolatorNode, "value_changed", node, "transparency");
48467
+
48468
+ interpolatorNodes .push (interpolatorNode);
48469
+ }
48470
+
48471
+ return interpolatorNodes;
48472
+ }
48473
+ case Base_X3DConstants .SFColorRGBA:
48474
+ {
48475
+ const interpolatorNodes = [ ];
48476
+
48477
+ var
48478
+ colors = keyValues .array .filter ((_, i) => i % 4 < 3),
48479
+ transparencies = keyValues .array .filter ((_, i) => i % 4 === 3);
48480
+
48481
+ transparencies = transparencies .every (value => value >= 1)
48482
+ ? undefined
48483
+ : transparencies .map (value => 1 - value);
48484
+
48485
+ // Script
48486
+
48487
+ const scriptNode = scene .createNode ("Script", false);
48488
+
48489
+ scriptNode .addUserDefinedField (Base_X3DConstants .inputOutput, "color", new x_ite_Fields .SFColor (1, 1, 1));
48490
+ scriptNode .addUserDefinedField (Base_X3DConstants .inputOutput, "alpha" , new x_ite_Fields .SFFloat (1));
48491
+ scriptNode .addUserDefinedField (Base_X3DConstants .outputOnly, "value_changed", new x_ite_Fields .SFColorRGBA ());
48492
+
48493
+ scriptNode ._url = [/* js */ `ecmascript:
48494
+
48495
+ function eventsProcessed ()
48496
+ {
48497
+ value_changed = new SFColorRGBA (... color, alpha);
48498
+ }
48499
+ `];
48500
+
48501
+ scriptNode .setup ();
48502
+
48503
+ scene .addNamedNode (scene .getUniqueName ("CombineColorRGBAScript"), scriptNode);
48504
+ scene .addRoute (scriptNode, "value_changed", node, field .getName ());
48505
+
48506
+ // ColorInterpolator
48507
+
48508
+ const interpolatorNode = this .createNamedInterpolator ("ColorInterpolator", 3, interpolation, times, colors, cycleInterval);
48509
+
48510
+ scene .addNamedNode (scene .getUniqueName (`${GLTF2Parser_$.toUpperCaseFirst (field .getName ())}Interpolator`), interpolatorNode);
48511
+
48512
+ scene .addRoute (timeSensorNode, "fraction_changed", interpolatorNode, "set_fraction");
48513
+ scene .addRoute (interpolatorNode, "value_changed", scriptNode, "color");
48514
+
48515
+ interpolatorNodes .push (interpolatorNode);
48516
+
48517
+ // AlphaInterpolator
48518
+
48519
+ if (transparencies)
48520
+ {
48521
+ const interpolatorNode = this .createNamedInterpolator ("ScalarInterpolator", 1, interpolation, times, transparencies, cycleInterval);
48522
+
48523
+ scene .addNamedNode (scene .getUniqueName ("AlphaInterpolator"), interpolatorNode);
48524
+
48525
+ scene .addRoute (timeSensorNode, "fraction_changed", interpolatorNode, "set_fraction");
48526
+ scene .addRoute (interpolatorNode, "value_changed", scriptNode, "alpha");
48527
+
48528
+ interpolatorNodes .push (interpolatorNode);
48529
+ }
48530
+
48531
+ interpolatorNodes .push (scriptNode);
48532
+
48533
+ return interpolatorNodes;
48534
+ }
48535
+ case Base_X3DConstants .SFRotation:
48536
+ {
48537
+ const interpolatorNode = this .createOrientationInterpolator (interpolation, times, keyValues .array, cycleInterval);
48538
+
48539
+ scene .addNamedNode (scene .getUniqueName (`${GLTF2Parser_$.toUpperCaseFirst (field .getName ())}Interpolator`), interpolatorNode);
48540
+
48541
+ scene .addRoute (timeSensorNode, "fraction_changed", interpolatorNode, "set_fraction");
48542
+ scene .addRoute (interpolatorNode, "value_changed", node, field .getName ());
48543
+
48544
+ return interpolatorNode;
48545
+ }
48546
+ case Base_X3DConstants .SFBool:
48547
+ case Base_X3DConstants .SFInt32:
48548
+ case Base_X3DConstants .SFFloat:
48549
+ case Base_X3DConstants .SFVec2f:
48550
+ case Base_X3DConstants .SFVec3f:
48551
+ {
48552
+ const
48553
+ { typeName, components} = interpolators .get (field .getType ()),
48554
+ suffix = typeName .replace (/^.*?(Sequencer|Interpolator).*?$/, "$1");
48555
+
48556
+ const interpolatorNode = this .createNamedInterpolator (typeName, components, components ? interpolation : "LINEAR", times, keyValues .array, cycleInterval);
48557
+
48558
+ scene .addNamedNode (scene .getUniqueName (GLTF2Parser_$.toUpperCaseFirst (field .getName ()) + suffix), interpolatorNode);
48559
+
48560
+ scene .addRoute (timeSensorNode, "fraction_changed", interpolatorNode, "set_fraction");
48561
+ scene .addRoute (interpolatorNode, "value_changed", node, field .getName ());
48562
+
48563
+ return interpolatorNode;
48564
+ }
48565
+ default:
48566
+ {
48567
+ return [ ];
48568
+ }
48228
48569
  }
48229
- }
48570
+ };
48571
+ })(),
48572
+ getAnimationPointer (pointer = "")
48573
+ {
48574
+ const
48575
+ path = pointer .split ("/") .filter (p => p),
48576
+ field = path .pop () .replace (/(?:Factor$)/, "");
48577
+
48578
+ let glTF = this .input;
48579
+
48580
+ for (const property of path)
48581
+ glTF = glTF ?.[property];
48582
+
48583
+ return glTF ?.pointers
48584
+ ?.map (node => [node, GLTF2Parser_$.try (() => node ?.getField (this .getAnimationPointerAlias (node, field) ?? field))])
48585
+ ?.find (([node, field]) => field)
48586
+ ?? [ ];
48230
48587
  },
48231
- createPositionInterpolator (interpolation, times, keyValues, cycleInterval)
48588
+ addAnimationPointerAlias (node, field, alias)
48232
48589
  {
48233
- const scene = this .getScene ();
48590
+ const key = `${node .getTypeName ()}.${field}`;
48591
+
48592
+ this .pointerAliases .set (key, alias);
48593
+ },
48594
+ getAnimationPointerAlias (node, field)
48595
+ {
48596
+ const key = `${node .getTypeName ()}.${field}`;
48597
+
48598
+ return this .pointerAliases .get (key);
48599
+ },
48600
+ createNamedInterpolator (typeName, components, interpolation, times, keyValues, cycleInterval)
48601
+ {
48602
+ const
48603
+ scene = this .getScene (),
48604
+ interpolatorNode = scene .createNode (typeName, false);
48234
48605
 
48235
48606
  switch (interpolation)
48236
48607
  {
48237
48608
  case "STEP":
48238
48609
  {
48239
- const interpolatorNode = scene .createNode ("PositionInterpolator", false);
48610
+ const
48611
+ key = [ ],
48612
+ keyValue = [ ];
48240
48613
 
48241
48614
  // Key
48242
48615
 
48243
- interpolatorNode ._key .push (times [0] / cycleInterval);
48616
+ key .push (times [0] / cycleInterval);
48244
48617
 
48245
48618
  for (let i = 1, length = times .length; i < length; ++ i)
48246
- interpolatorNode ._key .push (times [i] / cycleInterval, times [i] / cycleInterval);
48619
+ key .push (times [i] / cycleInterval, times [i] / cycleInterval);
48247
48620
 
48248
48621
  // KeyValue
48249
48622
 
48250
- interpolatorNode ._keyValue .push (new Numbers_Vector3 (keyValues [0], keyValues [1], keyValues [2]));
48623
+ const components2 = components * 2;
48251
48624
 
48252
- for (let i = 0, length = keyValues .length - 3; i < length; i += 3)
48625
+ for (let c = 0; c < components; ++ c)
48626
+ keyValue .push (keyValues [c]);
48627
+
48628
+ for (let i = 0, length = keyValues .length - components; i < length; i += components)
48253
48629
  {
48254
- interpolatorNode ._keyValue .push (new Numbers_Vector3 (keyValues [i + 0], keyValues [i + 1], keyValues [i + 2]),
48255
- new Numbers_Vector3 (keyValues [i + 3], keyValues [i + 4], keyValues [i + 5]));
48630
+ for (let c = 0; c < components2; ++ c)
48631
+ keyValue .push (keyValues [i + c]);
48256
48632
  }
48257
48633
 
48258
48634
  // Finish
48259
48635
 
48636
+ interpolatorNode ._key = key;
48637
+ interpolatorNode ._keyValue = keyValue;
48638
+
48260
48639
  interpolatorNode .setup ();
48261
48640
 
48262
48641
  return interpolatorNode;
@@ -48264,8 +48643,6 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
48264
48643
  default:
48265
48644
  case "LINEAR":
48266
48645
  {
48267
- const interpolatorNode = scene .createNode ("PositionInterpolator", false);
48268
-
48269
48646
  interpolatorNode ._key = times .map (t => t / cycleInterval);
48270
48647
  interpolatorNode ._keyValue = keyValues;
48271
48648
 
@@ -48276,14 +48653,14 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
48276
48653
  case "CUBICSPLINE":
48277
48654
  {
48278
48655
  const
48279
- interpolatorNode = scene .createNode ("PositionInterpolator", false),
48280
- vectors = [ ];
48656
+ key = [ ],
48657
+ keyValue = [ ],
48658
+ vectors = [ ],
48659
+ Vector = [Numbers_Vector2, Numbers_Vector2, Numbers_Vector3] [components - 1];
48281
48660
 
48282
- for (let i = 0, length = keyValues .length; i < length; i += 3)
48661
+ for (let i = 0, length = keyValues .length; i < length; i += components)
48283
48662
  {
48284
- vectors .push (new Numbers_Vector3 (keyValues [i + 0],
48285
- keyValues [i + 1],
48286
- keyValues [i + 2]));
48663
+ vectors .push (new Vector (... keyValues .subarray (i, i + components)));
48287
48664
  }
48288
48665
 
48289
48666
  const
@@ -48292,10 +48669,15 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
48292
48669
 
48293
48670
  for (const t of samples)
48294
48671
  {
48295
- interpolatorNode ._key .push (t / cycleInterval);
48296
- interpolatorNode ._keyValue .push (this .cubicSplineVector (t, times, vectors));
48672
+ key .push (t / cycleInterval);
48673
+ keyValue .push (... this .cubicSplineVector (t, times, vectors));
48297
48674
  }
48298
48675
 
48676
+ // Finish
48677
+
48678
+ interpolatorNode ._key = key;
48679
+ interpolatorNode ._keyValue = components === 1 ? keyValue .filter ((_, i) => i % 2 < 1) : keyValue;
48680
+
48299
48681
  interpolatorNode .setup ();
48300
48682
 
48301
48683
  return interpolatorNode;
@@ -48304,14 +48686,14 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
48304
48686
  },
48305
48687
  createOrientationInterpolator (interpolation, times, keyValues, cycleInterval)
48306
48688
  {
48307
- const scene = this .getScene ();
48689
+ const
48690
+ scene = this .getScene (),
48691
+ interpolatorNode = scene .createNode ("OrientationInterpolator", false);
48308
48692
 
48309
48693
  switch (interpolation)
48310
48694
  {
48311
48695
  case "STEP":
48312
48696
  {
48313
- const interpolatorNode = scene .createNode ("OrientationInterpolator", false);
48314
-
48315
48697
  // Key
48316
48698
 
48317
48699
  interpolatorNode ._key .push (times [0] / cycleInterval);
@@ -48347,8 +48729,6 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
48347
48729
  default:
48348
48730
  case "LINEAR":
48349
48731
  {
48350
- const interpolatorNode = scene .createNode ("OrientationInterpolator", false);
48351
-
48352
48732
  interpolatorNode ._key = times .map (t => t / cycleInterval);
48353
48733
 
48354
48734
  for (let i = 0, length = keyValues .length; i < length; i += 4)
@@ -48365,9 +48745,7 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
48365
48745
  }
48366
48746
  case "CUBICSPLINE":
48367
48747
  {
48368
- const
48369
- interpolatorNode = scene .createNode ("OrientationInterpolator", false),
48370
- quaternions = [ ];
48748
+ const quaternions = [ ];
48371
48749
 
48372
48750
  for (let i = 0, length = keyValues .length; i < length; i += 4)
48373
48751
  {
@@ -48397,19 +48775,19 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
48397
48775
  },
48398
48776
  createArrayInterpolator (typeName, interpolation, times, weights, cycleInterval, targets, accessors, key)
48399
48777
  {
48400
- const
48401
- scene = this .getScene (),
48402
- accessor = accessors [key];
48778
+ const accessor = accessors [key];
48403
48779
 
48404
48780
  if (!accessor)
48405
48781
  return null;
48406
48782
 
48783
+ const
48784
+ scene = this .getScene (),
48785
+ interpolatorNode = scene .createNode (typeName, false);
48786
+
48407
48787
  switch (interpolation)
48408
48788
  {
48409
48789
  case "STEP":
48410
48790
  {
48411
- const interpolatorNode = scene .createNode (typeName, false);
48412
-
48413
48791
  // Key
48414
48792
 
48415
48793
  interpolatorNode ._key .push (times [0] / cycleInterval);
@@ -48446,8 +48824,6 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
48446
48824
  default:
48447
48825
  case "LINEAR":
48448
48826
  {
48449
- const interpolatorNode = scene .createNode (typeName, false);
48450
-
48451
48827
  // Key
48452
48828
 
48453
48829
  interpolatorNode ._key = times .map (t => t / cycleInterval);
@@ -48470,8 +48846,6 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
48470
48846
  }
48471
48847
  case "CUBICSPLINE":
48472
48848
  {
48473
- const interpolatorNode = scene .createNode (typeName, false);
48474
-
48475
48849
  // Key
48476
48850
 
48477
48851
  const
@@ -48610,7 +48984,7 @@ const GLTF2Parser_default_ = GLTF2Parser;
48610
48984
 
48611
48985
  /* harmony default export */ const Parser_GLTF2Parser = (x_ite_Namespace .add ("GLTF2Parser", GLTF2Parser_default_));
48612
48986
  ;// ./src/x_ite/Parser/GLB2Parser.js
48613
- /* provided dependency */ var GLB2Parser_$ = __webpack_require__(445);
48987
+ /* provided dependency */ var GLB2Parser_$ = __webpack_require__(427);
48614
48988
  /*******************************************************************************
48615
48989
  *
48616
48990
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -48761,7 +49135,7 @@ const GLB2Parser_default_ = GLB2Parser;
48761
49135
 
48762
49136
  /* harmony default export */ const Parser_GLB2Parser = (x_ite_Namespace .add ("GLB2Parser", GLB2Parser_default_));
48763
49137
  ;// ./src/x_ite/Parser/OBJParser.js
48764
- /* provided dependency */ var OBJParser_$ = __webpack_require__(445);
49138
+ /* provided dependency */ var OBJParser_$ = __webpack_require__(427);
48765
49139
  /*******************************************************************************
48766
49140
  *
48767
49141
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -51326,7 +51700,7 @@ Object .assign (Complex .prototype,
51326
51700
  return this .real === complex .real &&
51327
51701
  this .imag === complex .imag;
51328
51702
  },
51329
- set (real, imag)
51703
+ set (real = 0, imag = 0)
51330
51704
  {
51331
51705
  this .real = real;
51332
51706
  this .imag = imag;
@@ -51490,10 +51864,6 @@ Object .assign (Complex,
51490
51864
  {
51491
51865
  return Object .create (Complex .prototype) .setPolar (magnitude, angle);
51492
51866
  },
51493
- multiply (lhs, rhs)
51494
- {
51495
- return lhs .copy () .multiply (rhs);
51496
- },
51497
51867
  });
51498
51868
 
51499
51869
  const Complex_default_ = Complex;
@@ -52132,8 +52502,8 @@ const MatrixStack_default_ = MatrixStack;
52132
52502
 
52133
52503
  /* harmony default export */ const Utility_MatrixStack = (x_ite_Namespace .add ("MatrixStack", MatrixStack_default_));
52134
52504
  ;// ./src/x_ite/Parser/SVGParser.js
52135
- /* provided dependency */ var SVGParser_$ = __webpack_require__(445);
52136
- /* provided dependency */ var SVGParser_libtess = __webpack_require__(294);
52505
+ /* provided dependency */ var SVGParser_$ = __webpack_require__(427);
52506
+ /* provided dependency */ var SVGParser_libtess = __webpack_require__(800);
52137
52507
  /*******************************************************************************
52138
52508
  *
52139
52509
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -54912,7 +55282,7 @@ const SVGParser_default_ = SVGParser;
54912
55282
 
54913
55283
  /* harmony default export */ const Parser_SVGParser = (x_ite_Namespace .add ("SVGParser", SVGParser_default_));
54914
55284
  ;// ./src/x_ite/Parser/GoldenGate.js
54915
- /* provided dependency */ var GoldenGate_$ = __webpack_require__(445);
55285
+ /* provided dependency */ var GoldenGate_$ = __webpack_require__(427);
54916
55286
  /*******************************************************************************
54917
55287
  *
54918
55288
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -62931,7 +63301,7 @@ const X3DTexture2DNode_default_ = X3DTexture2DNode;
62931
63301
 
62932
63302
  /* harmony default export */ const Texturing_X3DTexture2DNode = (x_ite_Namespace .add ("X3DTexture2DNode", X3DTexture2DNode_default_));
62933
63303
  ;// ./src/x_ite/Components/Texturing/ImageTexture.js
62934
- /* provided dependency */ var ImageTexture_$ = __webpack_require__(445);
63304
+ /* provided dependency */ var ImageTexture_$ = __webpack_require__(427);
62935
63305
  /*******************************************************************************
62936
63306
  *
62937
63307
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -63071,7 +63441,7 @@ Object .assign (Object .setPrototypeOf (ImageTexture .prototype, Texturing_X3DTe
63071
63441
  setError (event)
63072
63442
  {
63073
63443
  if (this .URL .protocol !== "data:")
63074
- console .warn (`Error loading image '${decodeURI (this .URL .href)}'`, event .type);
63444
+ console .warn (`Error loading image '${decodeURI (this .URL .href)}:'`, event .type);
63075
63445
 
63076
63446
  this .loadNext ();
63077
63447
  },
@@ -66357,7 +66727,7 @@ const X3DWorld_default_ = X3DWorld;
66357
66727
 
66358
66728
  /* harmony default export */ const Execution_X3DWorld = (x_ite_Namespace .add ("X3DWorld", X3DWorld_default_));
66359
66729
  ;// ./src/x_ite/InputOutput/FileLoader.js
66360
- /* provided dependency */ var FileLoader_$ = __webpack_require__(445);
66730
+ /* provided dependency */ var FileLoader_$ = __webpack_require__(427);
66361
66731
  /*******************************************************************************
66362
66732
  *
66363
66733
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -67321,7 +67691,7 @@ const ProtoDeclarationArray_default_ = ProtoDeclarationArray;
67321
67691
 
67322
67692
  /* harmony default export */ const Prototype_ProtoDeclarationArray = (x_ite_Namespace .add ("ProtoDeclarationArray", ProtoDeclarationArray_default_));
67323
67693
  ;// ./src/x_ite/Routing/X3DRoute.js
67324
- /* provided dependency */ var X3DRoute_$ = __webpack_require__(445);
67694
+ /* provided dependency */ var X3DRoute_$ = __webpack_require__(427);
67325
67695
  /*******************************************************************************
67326
67696
  *
67327
67697
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -74977,32 +75347,36 @@ Object .assign (Object .setPrototypeOf (Extrusion .prototype, Rendering_X3DGeome
74977
75347
  return function ()
74978
75348
  {
74979
75349
  const
74980
- crossSection = this ._crossSection,
74981
- orientation = this ._orientation,
74982
- scale = this ._scale,
74983
- spine = this ._spine,
74984
- points = [ ];
74985
-
74986
- // calculate SCP rotations
75350
+ crossSection = this ._crossSection,
75351
+ orientation = this ._orientation,
75352
+ scale = this ._scale,
75353
+ spine = this ._spine,
75354
+ numCrossSection = crossSection .length,
75355
+ numOrientations = orientation .length,
75356
+ numScales = scale .length,
75357
+ numSpines = spine .length,
75358
+ points = [ ];
75359
+
75360
+ // Calculate SCP rotations.
74987
75361
 
74988
75362
  const rotations = this .createRotations ();
74989
75363
 
74990
- // calculate vertices.
75364
+ // Calculate vertices.
74991
75365
 
74992
- for (let i = 0, length = spine .length; i < length; ++ i)
75366
+ for (let i = 0; i < numSpines; ++ i)
74993
75367
  {
74994
75368
  const matrix = rotations [i];
74995
75369
 
74996
- if (orientation .length)
74997
- matrix .rotate (orientation [Math .min (i, orientation .length - 1)] .getValue ());
75370
+ if (numOrientations)
75371
+ matrix .rotate (orientation [Math .min (i, numOrientations - 1)] .getValue ());
74998
75372
 
74999
- if (scale .length)
75373
+ if (numScales)
75000
75374
  {
75001
- const s = scale [Math .min (i, scale .length - 1)] .getValue ();
75375
+ const s = scale [Math .min (i, numScales - 1)] .getValue ();
75002
75376
  matrix .scale (scale3 .set (s .x, 1, s .y));
75003
75377
  }
75004
75378
 
75005
- for (let cs = 0, csLength = crossSection .length; cs < csLength; ++ cs)
75379
+ for (let cs = 0; cs < numCrossSection; ++ cs)
75006
75380
  {
75007
75381
  const vector = crossSection [cs] .getValue ();
75008
75382
  points .push (matrix .multVecMatrix (new Numbers_Vector3 (vector .x, 0, vector .y)));
@@ -90997,7 +91371,7 @@ mediump samplerCube textureCube;
90997
91371
 
90998
91372
  /* harmony default export */ const MaterialTextures = (x_ite_Namespace .add ("MaterialTextures", MaterialTextures_default_));
90999
91373
  ;// ./src/x_ite/Components/Shaders/X3DProgrammableShaderObject.js
91000
- /* provided dependency */ var X3DProgrammableShaderObject_$ = __webpack_require__(445);
91374
+ /* provided dependency */ var X3DProgrammableShaderObject_$ = __webpack_require__(427);
91001
91375
  /*******************************************************************************
91002
91376
  *
91003
91377
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -94375,20 +94749,20 @@ NormalInfo info;info.ng=ng;
94375
94749
  #if defined(X3D_NORMAL_TEXTURE)
94376
94750
  #if __VERSION__==100
94377
94751
  #if defined(X3D_NORMAL_TEXTURE_2D)
94378
- info.ntex=texture2D(x3d_NormalTexture.texture2D,UV.st).rgb;
94752
+ vec3 ntex=texture2D(x3d_NormalTexture.texture2D,UV.st).rgb;
94379
94753
  #elif defined(X3D_NORMAL_TEXTURE_CUBE)
94380
- info.ntex=textureCube(x3d_NormalTexture.textureCube,UV).rgb;
94754
+ vec3 ntex=textureCube(x3d_NormalTexture.textureCube,UV).rgb;
94381
94755
  #endif
94382
94756
  #else
94383
94757
  #if defined(X3D_NORMAL_TEXTURE_2D)
94384
- info.ntex=texture(x3d_NormalTexture.texture2D,UV.st).rgb;
94758
+ vec3 ntex=texture(x3d_NormalTexture.texture2D,UV.st).rgb;
94385
94759
  #elif defined(X3D_NORMAL_TEXTURE_3D)
94386
- info.ntex=texture(x3d_NormalTexture.texture3D,UV).rgb;
94760
+ vec3 ntex=texture(x3d_NormalTexture.texture3D,UV).rgb;
94387
94761
  #elif defined(X3D_NORMAL_TEXTURE_CUBE)
94388
- info.ntex=texture(x3d_NormalTexture.textureCube,UV).rgb;
94762
+ vec3 ntex=texture(x3d_NormalTexture.textureCube,UV).rgb;
94389
94763
  #endif
94390
94764
  #endif
94391
- 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);
94765
+ 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);
94392
94766
  #else
94393
94767
  info.n=ng;
94394
94768
  #endif
@@ -95940,7 +96314,7 @@ vec3 getPunctualRadianceClearCoat(const in vec3 clearcoatNormal,const in vec3 v,
95940
96314
  #endif
95941
96315
  #endif
95942
96316
  #if defined(X3D_TRANSMISSION_MATERIAL_EXT)
95943
- 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;}
96317
+ 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;}
95944
96318
  #endif
95945
96319
  `
95946
96320
  ;
@@ -96294,7 +96668,7 @@ const ShaderCompiler_default_ = ShaderCompiler;
96294
96668
 
96295
96669
  /* harmony default export */ const Shaders_ShaderCompiler = (x_ite_Namespace .add ("ShaderCompiler", ShaderCompiler_default_));
96296
96670
  ;// ./src/x_ite/Components/Shaders/ShaderPart.js
96297
- /* provided dependency */ var ShaderPart_$ = __webpack_require__(445);
96671
+ /* provided dependency */ var ShaderPart_$ = __webpack_require__(427);
96298
96672
  /*******************************************************************************
96299
96673
  *
96300
96674
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -96892,7 +97266,7 @@ const X3DAppearanceNode_default_ = X3DAppearanceNode;
96892
97266
 
96893
97267
  /* harmony default export */ const Shape_X3DAppearanceNode = (x_ite_Namespace .add ("X3DAppearanceNode", X3DAppearanceNode_default_));
96894
97268
  ;// ./src/x_ite/Components/Shape/Appearance.js
96895
- /* provided dependency */ var Appearance_$ = __webpack_require__(445);
97269
+ /* provided dependency */ var Appearance_$ = __webpack_require__(427);
96896
97270
  /*******************************************************************************
96897
97271
  *
96898
97272
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -100663,8 +101037,6 @@ Object .assign (Object .setPrototypeOf (X3DSoundSourceNode .prototype, Sound_X3D
100663
101037
  {
100664
101038
  this .audioSource .gain .value = this ._gain .getValue ();
100665
101039
  },
100666
- set_pitch ()
100667
- { },
100668
101040
  set_loop ()
100669
101041
  {
100670
101042
  if (!this .mediaElement)
@@ -101015,6 +101387,8 @@ Object .assign (Object .setPrototypeOf (AudioClip .prototype, Sound_X3DSoundSour
101015
101387
  Sound_X3DSoundSourceNode .prototype .initialize .call (this);
101016
101388
  Networking_X3DUrlObject .prototype .initialize .call (this);
101017
101389
 
101390
+ this ._pitch .addInterest ("set_pitch__", this);
101391
+
101018
101392
  this .requestImmediateLoad () .catch (Function .prototype);
101019
101393
  },
101020
101394
  set_live__ ()
@@ -101022,6 +101396,13 @@ Object .assign (Object .setPrototypeOf (AudioClip .prototype, Sound_X3DSoundSour
101022
101396
  Sound_X3DSoundSourceNode .prototype .set_live__ .call (this);
101023
101397
  Networking_X3DUrlObject .prototype .set_live__ .call (this);
101024
101398
  },
101399
+ set_pitch__ ()
101400
+ {
101401
+ const media = this .getMediaElement ();
101402
+
101403
+ if (media)
101404
+ media .playbackRate = Math .max (this ._pitch .getValue (), 0);
101405
+ },
101025
101406
  unloadData ()
101026
101407
  {
101027
101408
  this .setMediaElement (null);
@@ -101061,6 +101442,8 @@ Object .assign (Object .setPrototypeOf (AudioClip .prototype, Sound_X3DSoundSour
101061
101442
  this ._duration_changed = media .duration;
101062
101443
 
101063
101444
  this .setMediaElement (media);
101445
+
101446
+ this .set_pitch__ ();
101064
101447
  },
101065
101448
  dispose ()
101066
101449
  {
@@ -105115,8 +105498,8 @@ const GifMedia_default_ = GifMedia;
105115
105498
 
105116
105499
  /* harmony default export */ const Texturing_GifMedia = (x_ite_Namespace .add ("GifMedia", GifMedia_default_));
105117
105500
  ;// ./src/x_ite/Components/Texturing/MovieTexture.js
105118
- /* provided dependency */ var MovieTexture_$ = __webpack_require__(445);
105119
- /* provided dependency */ var SuperGif = __webpack_require__(782);
105501
+ /* provided dependency */ var MovieTexture_$ = __webpack_require__(427);
105502
+ /* provided dependency */ var SuperGif = __webpack_require__(388);
105120
105503
  /*******************************************************************************
105121
105504
  *
105122
105505
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -105207,6 +105590,7 @@ Object .assign (Object .setPrototypeOf (MovieTexture .prototype, Texturing_X3DTe
105207
105590
  Networking_X3DUrlObject .prototype .initialize .call (this);
105208
105591
 
105209
105592
  this ._speed .addInterest ("set_speed__", this);
105593
+ this ._pitch .addInterest ("set_speed__", this);
105210
105594
 
105211
105595
  this .video
105212
105596
  .on ("abort error", this .setError .bind (this))
@@ -105286,7 +105670,7 @@ Object .assign (Object .setPrototypeOf (MovieTexture .prototype, Texturing_X3DTe
105286
105670
  setError (event)
105287
105671
  {
105288
105672
  if (this .URL .protocol !== "data:")
105289
- console .warn (`Error loading movie '${decodeURI (this .URL .href)}'`, event .type);
105673
+ console .warn (`Error loading movie '${decodeURI (this .URL .href)}':`, event .type);
105290
105674
 
105291
105675
  this .loadNext ();
105292
105676
  },
@@ -105350,7 +105734,7 @@ Object .assign (Object .setPrototypeOf (MovieTexture .prototype, Texturing_X3DTe
105350
105734
  const media = this .getMediaElement ();
105351
105735
 
105352
105736
  if (media)
105353
- media .playbackRate = this ._speed .getValue ();
105737
+ media .playbackRate = this ._speed .getValue () * Math .max (this ._pitch .getValue (), 0);
105354
105738
  },
105355
105739
  set_time ()
105356
105740
  {
@@ -107584,7 +107968,7 @@ const gettext_default_ = (string) => locale .get (string) || string;
107584
107968
 
107585
107969
  /* harmony default export */ const gettext = (x_ite_Namespace .add ("gettext", gettext_default_));
107586
107970
  ;// ./src/x_ite/Browser/Core/BrowserTimings.js
107587
- /* provided dependency */ var BrowserTimings_$ = __webpack_require__(445);
107971
+ /* provided dependency */ var BrowserTimings_$ = __webpack_require__(427);
107588
107972
  /*******************************************************************************
107589
107973
  *
107590
107974
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -108214,7 +108598,7 @@ const TextCompression_default_ = TextCompression;
108214
108598
 
108215
108599
  /* harmony default export */ const Core_TextCompression = (x_ite_Namespace .add ("TextCompression", TextCompression_default_));
108216
108600
  ;// ./src/x_ite/Browser/Core/BrowserOptions.js
108217
- /* provided dependency */ var BrowserOptions_$ = __webpack_require__(445);
108601
+ /* provided dependency */ var BrowserOptions_$ = __webpack_require__(427);
108218
108602
  /*******************************************************************************
108219
108603
  *
108220
108604
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -108861,7 +109245,7 @@ const RenderingProperties_default_ = RenderingProperties;
108861
109245
 
108862
109246
  /* harmony default export */ const Core_RenderingProperties = (x_ite_Namespace .add ("RenderingProperties", RenderingProperties_default_));
108863
109247
  ;// ./src/x_ite/Browser/Core/Notification.js
108864
- /* provided dependency */ var Notification_$ = __webpack_require__(445);
109248
+ /* provided dependency */ var Notification_$ = __webpack_require__(427);
108865
109249
  /*******************************************************************************
108866
109250
  *
108867
109251
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -108983,8 +109367,8 @@ const Notification_default_ = Notification;
108983
109367
 
108984
109368
  /* harmony default export */ const Core_Notification = (x_ite_Namespace .add ("Notification", Notification_default_));
108985
109369
  ;// ./src/x_ite/Browser/Core/ContextMenu.js
108986
- /* provided dependency */ var jquery_fullscreen = __webpack_require__(949);
108987
- /* provided dependency */ var ContextMenu_$ = __webpack_require__(445);
109370
+ /* provided dependency */ var jquery_fullscreen = __webpack_require__(367);
109371
+ /* provided dependency */ var ContextMenu_$ = __webpack_require__(427);
108988
109372
  /*******************************************************************************
108989
109373
  *
108990
109374
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -111706,7 +112090,7 @@ const DataStorage_default_ = DataStorage;
111706
112090
 
111707
112091
  /* harmony default export */ const Utility_DataStorage = (x_ite_Namespace .add ("DataStorage", DataStorage_default_));
111708
112092
  ;// ./src/x_ite/Browser/Core/X3DCoreContext.js
111709
- /* provided dependency */ var X3DCoreContext_$ = __webpack_require__(445);
112093
+ /* provided dependency */ var X3DCoreContext_$ = __webpack_require__(427);
111710
112094
  /*******************************************************************************
111711
112095
  *
111712
112096
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -114317,8 +114701,8 @@ const X3DViewer_default_ = X3DViewer;
114317
114701
 
114318
114702
  /* harmony default export */ const Navigation_X3DViewer = (x_ite_Namespace .add ("X3DViewer", X3DViewer_default_));
114319
114703
  ;// ./src/x_ite/Browser/Navigation/ExamineViewer.js
114320
- /* provided dependency */ var jquery_mousewheel = __webpack_require__(485);
114321
- /* provided dependency */ var ExamineViewer_$ = __webpack_require__(445);
114704
+ /* provided dependency */ var jquery_mousewheel = __webpack_require__(675);
114705
+ /* provided dependency */ var ExamineViewer_$ = __webpack_require__(427);
114322
114706
  /*******************************************************************************
114323
114707
  *
114324
114708
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -115233,8 +115617,8 @@ const ExamineViewer_default_ = ExamineViewer;
115233
115617
 
115234
115618
  /* harmony default export */ const Navigation_ExamineViewer = (x_ite_Namespace .add ("ExamineViewer", ExamineViewer_default_));
115235
115619
  ;// ./src/x_ite/Browser/Navigation/X3DFlyViewer.js
115236
- /* provided dependency */ var X3DFlyViewer_jquery_mousewheel = __webpack_require__(485);
115237
- /* provided dependency */ var X3DFlyViewer_$ = __webpack_require__(445);
115620
+ /* provided dependency */ var X3DFlyViewer_jquery_mousewheel = __webpack_require__(675);
115621
+ /* provided dependency */ var X3DFlyViewer_$ = __webpack_require__(427);
115238
115622
  /*******************************************************************************
115239
115623
  *
115240
115624
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -116249,8 +116633,8 @@ const FlyViewer_default_ = FlyViewer;
116249
116633
 
116250
116634
  /* harmony default export */ const Navigation_FlyViewer = (x_ite_Namespace .add ("FlyViewer", FlyViewer_default_));
116251
116635
  ;// ./src/x_ite/Browser/Navigation/PlaneViewer.js
116252
- /* provided dependency */ var PlaneViewer_jquery_mousewheel = __webpack_require__(485);
116253
- /* provided dependency */ var PlaneViewer_$ = __webpack_require__(445);
116636
+ /* provided dependency */ var PlaneViewer_jquery_mousewheel = __webpack_require__(675);
116637
+ /* provided dependency */ var PlaneViewer_$ = __webpack_require__(427);
116254
116638
  /*******************************************************************************
116255
116639
  *
116256
116640
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -116579,8 +116963,8 @@ const NoneViewer_default_ = NoneViewer;
116579
116963
 
116580
116964
  /* harmony default export */ const Navigation_NoneViewer = (x_ite_Namespace .add ("NoneViewer", NoneViewer_default_));
116581
116965
  ;// ./src/x_ite/Browser/Navigation/LookAtViewer.js
116582
- /* provided dependency */ var LookAtViewer_jquery_mousewheel = __webpack_require__(485);
116583
- /* provided dependency */ var LookAtViewer_$ = __webpack_require__(445);
116966
+ /* provided dependency */ var LookAtViewer_jquery_mousewheel = __webpack_require__(675);
116967
+ /* provided dependency */ var LookAtViewer_$ = __webpack_require__(427);
116584
116968
  /*******************************************************************************
116585
116969
  *
116586
116970
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -117722,8 +118106,8 @@ const X3DPickingContext_default_ = X3DPickingContext;
117722
118106
 
117723
118107
  /* harmony default export */ const Picking_X3DPickingContext = (x_ite_Namespace .add ("X3DPickingContext", X3DPickingContext_default_));
117724
118108
  ;// ./src/x_ite/Browser/PointingDeviceSensor/PointingDevice.js
117725
- /* provided dependency */ var PointingDevice_jquery_mousewheel = __webpack_require__(485);
117726
- /* provided dependency */ var PointingDevice_$ = __webpack_require__(445);
118109
+ /* provided dependency */ var PointingDevice_jquery_mousewheel = __webpack_require__(675);
118110
+ /* provided dependency */ var PointingDevice_$ = __webpack_require__(427);
117727
118111
  /*******************************************************************************
117728
118112
  *
117729
118113
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -119170,7 +119554,7 @@ const Lock_default_ = Lock;
119170
119554
 
119171
119555
  /* harmony default export */ const Utility_Lock = (x_ite_Namespace .add ("Lock", Lock_default_));
119172
119556
  ;// ./src/x_ite/Browser/Rendering/X3DRenderingContext.js
119173
- /* provided dependency */ var X3DRenderingContext_$ = __webpack_require__(445);
119557
+ /* provided dependency */ var X3DRenderingContext_$ = __webpack_require__(427);
119174
119558
  /*******************************************************************************
119175
119559
  *
119176
119560
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -120484,7 +120868,7 @@ const X3DSoundContext_default_ = X3DSoundContext;
120484
120868
 
120485
120869
  /* harmony default export */ const Sound_X3DSoundContext = (x_ite_Namespace .add ("X3DSoundContext", X3DSoundContext_default_));
120486
120870
  ;// ./src/x_ite/Browser/Texturing/KTXDecoder.js
120487
- /* provided dependency */ var KTXDecoder_$ = __webpack_require__(445);
120871
+ /* provided dependency */ var KTXDecoder_$ = __webpack_require__(427);
120488
120872
  const KTXDecoder_default_ = class KTXDecoder
120489
120873
  {
120490
120874
  constructor (gl, externalKtxlib, scriptDir)
@@ -122063,7 +122447,7 @@ const Components_default_ = Components;
122063
122447
 
122064
122448
  /* harmony default export */ const x_ite_Components = (x_ite_Namespace .add ("Components", Components_default_));
122065
122449
  ;// ./src/x_ite/Browser/DOMIntegration.js
122066
- /* provided dependency */ var DOMIntegration_$ = __webpack_require__(445);
122450
+ /* provided dependency */ var DOMIntegration_$ = __webpack_require__(427);
122067
122451
  /*******************************************************************************
122068
122452
  * MIT License
122069
122453
  *
@@ -123329,7 +123713,7 @@ const FieldTypes_default_ = new Configuration_FieldTypesArray (Object .values (x
123329
123713
 
123330
123714
  /* harmony default export */ const FieldTypes = (x_ite_Namespace .add ("FieldTypes", FieldTypes_default_));
123331
123715
  ;// ./src/x_ite/Browser/X3DBrowser.js
123332
- /* provided dependency */ var X3DBrowser_$ = __webpack_require__(445);
123716
+ /* provided dependency */ var X3DBrowser_$ = __webpack_require__(427);
123333
123717
  /*******************************************************************************
123334
123718
  *
123335
123719
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -124431,7 +124815,7 @@ const X3DBrowser_default_ = X3DBrowser;
124431
124815
 
124432
124816
  /* harmony default export */ const Browser_X3DBrowser = (x_ite_Namespace .add ("X3DBrowser", X3DBrowser_default_));
124433
124817
  ;// ./src/x_ite/X3DCanvasElement.js
124434
- /* provided dependency */ var X3DCanvasElement_$ = __webpack_require__(445);
124818
+ /* provided dependency */ var X3DCanvasElement_$ = __webpack_require__(427);
124435
124819
  /*******************************************************************************
124436
124820
  *
124437
124821
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -124698,8 +125082,8 @@ const QuickSort_default_ = QuickSort;
124698
125082
 
124699
125083
  /* harmony default export */ const Algorithms_QuickSort = (x_ite_Namespace .add ("QuickSort", QuickSort_default_));
124700
125084
  ;// ./src/lib/jquery.js
124701
- /* provided dependency */ var jquery_$ = __webpack_require__(445);
124702
- /* provided dependency */ var pako = __webpack_require__(729);
125085
+ /* provided dependency */ var jquery_$ = __webpack_require__(427);
125086
+ /* provided dependency */ var pako = __webpack_require__(355);
124703
125087
  Object .assign (jquery_$,
124704
125088
  {
124705
125089
  decodeText (input)
@@ -124724,6 +125108,10 @@ Object .assign (jquery_$,
124724
125108
  {
124725
125109
  return string [0] .toLowerCase () + string .slice (1);
124726
125110
  },
125111
+ toUpperCaseFirst (string)
125112
+ {
125113
+ return string [0] .toUpperCase () + string .slice (1);
125114
+ },
124727
125115
  try (callback, logError = false)
124728
125116
  {
124729
125117
  try
@@ -124776,13 +125164,13 @@ const jquery_default_ = jquery_$;
124776
125164
 
124777
125165
  /* harmony default export */ const jquery = (x_ite_Namespace .add ("jquery", jquery_default_));
124778
125166
  ;// ./src/lib/libtess.js
124779
- /* provided dependency */ var libtess_libtess = __webpack_require__(294);
125167
+ /* provided dependency */ var libtess_libtess = __webpack_require__(800);
124780
125168
  const libtess_default_ = libtess_libtess;
124781
125169
  ;
124782
125170
 
124783
125171
  /* harmony default export */ const lib_libtess = (x_ite_Namespace .add ("libtess", libtess_default_));
124784
125172
  ;// ./src/x_ite/X3D.js
124785
- /* provided dependency */ var X3D_$ = __webpack_require__(445);
125173
+ /* provided dependency */ var X3D_$ = __webpack_require__(427);
124786
125174
  /*******************************************************************************
124787
125175
  *
124788
125176
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -125086,7 +125474,7 @@ x_ite_Namespace, x_ite_Namespace .Fields,
125086
125474
 
125087
125475
  // Assign X3D to global namespace.
125088
125476
 
125089
- window [Symbol .for ("X_ITE.X3D-10.5.8")] = x_ite_X3D;
125477
+ window [Symbol .for ("X_ITE.X3D-10.5.10")] = x_ite_X3D;
125090
125478
 
125091
125479
  customElements .define ("x3d-canvas", x_ite_X3DCanvasElement);
125092
125480