@xeokit/xeokit-sdk 2.6.0-beta-13 → 2.6.0-beta-15

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.
@@ -12399,13 +12399,16 @@ class AngleMeasurementsMouseControl extends AngleMeasurementsControl {
12399
12399
  this._currentAngleMeasurement = this.angleMeasurementsPlugin.createMeasurement({
12400
12400
  id: math.createUUID(),
12401
12401
  origin: {
12402
- worldPos: mouseWorldPos
12402
+ worldPos: mouseWorldPos,
12403
+ entity: hoveredEntity
12403
12404
  },
12404
12405
  corner: {
12405
- worldPos: mouseWorldPos
12406
+ worldPos: mouseWorldPos,
12407
+ entity: hoveredEntity
12406
12408
  },
12407
12409
  target: {
12408
- worldPos: mouseWorldPos
12410
+ worldPos: mouseWorldPos,
12411
+ entity: hoveredEntity
12409
12412
  },
12410
12413
  approximate: true
12411
12414
  });
@@ -12766,7 +12769,7 @@ class AngleMeasurementsMouseControl extends AngleMeasurementsControl {
12766
12769
  * start, corner or end point will cause the point to snap to the nearest vertex or edge. A quick
12767
12770
  * touch-release will immediately set the point at the tapped position on the object surface.
12768
12771
  *
12769
- * [[Run example](/examples/measurement/#angle_createWithTouch_snapping)]
12772
+ * [[Run example](https://xeokit.github.io/xeokit-sdk/examples/measurement/#angle_createWithTouch_snapping)]
12770
12773
  *
12771
12774
  * ````javascript
12772
12775
  * import {Viewer, XKTLoaderPlugin, AngleMeasurementsPlugin, AngleMeasurementsTouchControl} from "xeokit-sdk.es.js";
@@ -13241,13 +13244,16 @@ class AngleMeasurementsTouchControl extends AngleMeasurementsControl {
13241
13244
  this._currentAngleMeasurement = plugin.createMeasurement({
13242
13245
  id: math.createUUID(),
13243
13246
  origin: {
13244
- worldPos: snapPickResult.worldPos
13247
+ worldPos: snapPickResult.worldPos,
13248
+ entity: snapPickResult.entity
13245
13249
  },
13246
13250
  corner: {
13247
- worldPos: snapPickResult.worldPos
13251
+ worldPos: snapPickResult.worldPos,
13252
+ entity: snapPickResult.entity
13248
13253
  },
13249
13254
  target: {
13250
- worldPos: snapPickResult.worldPos
13255
+ worldPos: snapPickResult.worldPos,
13256
+ entity: snapPickResult.entity
13251
13257
  }
13252
13258
  });
13253
13259
  this._currentAngleMeasurement.clickable = false;
@@ -13316,6 +13322,7 @@ class AngleMeasurementsTouchControl extends AngleMeasurementsControl {
13316
13322
  this.pointerCircle.start(snapPickResult.snappedCanvasPos);
13317
13323
  pointerWorldPos.set(snapPickResult.worldPos);
13318
13324
  this._currentAngleMeasurement.corner.worldPos = snapPickResult.worldPos;
13325
+ this._currentAngleMeasurement.corner.entity = snapPickResult.entity;
13319
13326
  this._currentAngleMeasurement.originVisible = true;
13320
13327
  this._currentAngleMeasurement.originWireVisible = true;
13321
13328
  this._currentAngleMeasurement.cornerVisible = true;
@@ -13337,6 +13344,7 @@ class AngleMeasurementsTouchControl extends AngleMeasurementsControl {
13337
13344
  this.pointerCircle.start(pickResult.canvasPos);
13338
13345
  pointerWorldPos.set(pickResult.worldPos);
13339
13346
  this._currentAngleMeasurement.corner.worldPos = pickResult.worldPos;
13347
+ this._currentAngleMeasurement.corner.entity = pickResult.entity;
13340
13348
  this._currentAngleMeasurement.originVisible = true;
13341
13349
  this._currentAngleMeasurement.originWireVisible = true;
13342
13350
  this._currentAngleMeasurement.cornerVisible = true;
@@ -13407,6 +13415,7 @@ class AngleMeasurementsTouchControl extends AngleMeasurementsControl {
13407
13415
  this.pointerCircle.start(snapPickResult.snappedCanvasPos);
13408
13416
  pointerWorldPos.set(snapPickResult.worldPos);
13409
13417
  this._currentAngleMeasurement.target.worldPos = snapPickResult.worldPos;
13418
+ this._currentAngleMeasurement.target.entity = snapPickResult.entity;
13410
13419
  this._currentAngleMeasurement.originVisible = true;
13411
13420
  this._currentAngleMeasurement.originWireVisible = true;
13412
13421
  this._currentAngleMeasurement.cornerVisible = true;
@@ -13428,6 +13437,7 @@ class AngleMeasurementsTouchControl extends AngleMeasurementsControl {
13428
13437
  this.pointerCircle.start(pickResult.canvasPos);
13429
13438
  pointerWorldPos.set(pickResult.worldPos);
13430
13439
  this._currentAngleMeasurement.target.worldPos = pickResult.worldPos;
13440
+ this._currentAngleMeasurement.target.entity = pickResult.entity;
13431
13441
  this._currentAngleMeasurement.originVisible = true;
13432
13442
  this._currentAngleMeasurement.originWireVisible = true;
13433
13443
  this._currentAngleMeasurement.cornerVisible = true;
@@ -83345,7 +83355,7 @@ class SceneModel extends Component {
83345
83355
  return;
83346
83356
  }
83347
83357
  let parentTransform;
83348
- if (this.parentTransformId) {
83358
+ if (cfg.parentTransformId) {
83349
83359
  parentTransform = this._transforms[cfg.parentTransformId];
83350
83360
  if (!parentTransform) {
83351
83361
  this.error("[createTransform] SceneModel.createTransform() config missing: id");
@@ -87188,10 +87198,12 @@ class DistanceMeasurementsMouseControl extends DistanceMeasurementsControl {
87188
87198
  this._currentDistanceMeasurement = distanceMeasurementsPlugin.createMeasurement({
87189
87199
  id: math.createUUID(),
87190
87200
  origin: {
87191
- worldPos: pointerWorldPos.slice()
87201
+ worldPos: pointerWorldPos.slice(),
87202
+ entity: hoveredEntity
87192
87203
  },
87193
87204
  target: {
87194
- worldPos: pointerWorldPos.slice()
87205
+ worldPos: pointerWorldPos.slice(),
87206
+ entity: hoveredEntity
87195
87207
  },
87196
87208
  approximate: true
87197
87209
  });
@@ -87204,7 +87216,7 @@ class DistanceMeasurementsMouseControl extends DistanceMeasurementsControl {
87204
87216
  this._currentDistanceMeasurement.clickable = false;
87205
87217
  this._currentDistanceMeasurement.origin.entity = hoveredEntity;
87206
87218
  hoveredEntity = null;
87207
- this.fire("measurementStart", this._currentDistanceMeasurement);
87219
+ this.distanceMeasurementsPlugin.fire("measurementStart", this._currentDistanceMeasurement);
87208
87220
  }
87209
87221
  }
87210
87222
  });
@@ -87525,7 +87537,7 @@ class DistanceMeasurementsMouseControl extends DistanceMeasurementsControl {
87525
87537
  * start or end point will cause the point to snap to the nearest vertex or edge. A quick
87526
87538
  * touch-release will immediately set the point at the tapped position on the object surface.
87527
87539
  *
87528
- * [[Run example](/examples/measurement/#distance_createWithTouch_snapping)]
87540
+ * [[Run example](https://xeokit.github.io/xeokit-sdk/examples/measurement/#distance_createWithTouch_snapping)]
87529
87541
  *
87530
87542
  * ````javascript
87531
87543
  * import {Viewer, XKTLoaderPlugin, DistanceMeasurementsPlugin, DistanceMeasurementsTouchControl} from "xeokit-sdk.es.js";
@@ -88089,10 +88101,12 @@ class DistanceMeasurementsTouchControl extends DistanceMeasurementsControl {
88089
88101
  this._currentDistanceMeasurement = plugin.createMeasurement({
88090
88102
  id: math.createUUID(),
88091
88103
  origin: {
88092
- worldPos: pointerWorldPos
88104
+ worldPos: pointerWorldPos,
88105
+ entity: snapPickResult.entity
88093
88106
  },
88094
88107
  target: {
88095
- worldPos: pointerWorldPos
88108
+ worldPos: pointerWorldPos,
88109
+ entity: snapPickResult.entity
88096
88110
  }
88097
88111
  });
88098
88112
  this._currentDistanceMeasurement.labelsVisible = false;
@@ -88162,6 +88176,7 @@ class DistanceMeasurementsTouchControl extends DistanceMeasurementsControl {
88162
88176
  this.pointerCircle.start(snapPickResult.snappedCanvasPos);
88163
88177
  pointerWorldPos.set(snapPickResult.worldPos);
88164
88178
  this._currentDistanceMeasurement.target.worldPos = snapPickResult.worldPos;
88179
+ this._currentDistanceMeasurement.target.entity = snapPickResult.entity;
88165
88180
  this._currentDistanceMeasurement.targetVisible = true;
88166
88181
  this._currentDistanceMeasurement.wireVisible = true;
88167
88182
  this._currentDistanceMeasurement.labelsVisible = true;
@@ -88179,6 +88194,7 @@ class DistanceMeasurementsTouchControl extends DistanceMeasurementsControl {
88179
88194
  this.pointerCircle.start(pickResult.canvasPos);
88180
88195
  pointerWorldPos.set(pickResult.worldPos);
88181
88196
  this._currentDistanceMeasurement.target.worldPos = pickResult.worldPos;
88197
+ this._currentDistanceMeasurement.target.entity = pickResult.entity;
88182
88198
  this._currentDistanceMeasurement.targetVisible = true;
88183
88199
  this._currentDistanceMeasurement.wireVisible = true;
88184
88200
  this._currentDistanceMeasurement.labelsVisible = true;
@@ -88269,10 +88285,12 @@ class DistanceMeasurementsTouchControl extends DistanceMeasurementsControl {
88269
88285
  this._currentDistanceMeasurement = plugin.createMeasurement({
88270
88286
  id: math.createUUID(),
88271
88287
  origin: {
88272
- worldPos: snapPickResult.worldPos
88288
+ worldPos: snapPickResult.worldPos,
88289
+ entity: snapPickResult.entity
88273
88290
  },
88274
88291
  target: {
88275
- worldPos: snapPickResult.worldPos
88292
+ worldPos: snapPickResult.worldPos,
88293
+ entity: snapPickResult.entity
88276
88294
  }
88277
88295
  });
88278
88296
  this._currentDistanceMeasurement.labelsVisible = false;
@@ -88303,10 +88321,12 @@ class DistanceMeasurementsTouchControl extends DistanceMeasurementsControl {
88303
88321
  this._currentDistanceMeasurement = plugin.createMeasurement({
88304
88322
  id: math.createUUID(),
88305
88323
  origin: {
88306
- worldPos: pickResult.worldPos
88324
+ worldPos: pickResult.worldPos,
88325
+ entity: pickResult.entity
88307
88326
  },
88308
88327
  target: {
88309
- worldPos: pickResult.worldPos
88328
+ worldPos: pickResult.worldPos,
88329
+ entity: pickResult.entity
88310
88330
  }
88311
88331
  });
88312
88332
  this._currentDistanceMeasurement.labelsVisible = false;
@@ -88363,6 +88383,7 @@ class DistanceMeasurementsTouchControl extends DistanceMeasurementsControl {
88363
88383
  this.pointerLens.snapped = true;
88364
88384
  }
88365
88385
  this._currentDistanceMeasurement.target.worldPos = snapPickResult.worldPos;
88386
+ this._currentDistanceMeasurement.target.entity = snapPickResult.entity;
88366
88387
  this._currentDistanceMeasurement.targetVisible = true;
88367
88388
  this._currentDistanceMeasurement.wireVisible = true;
88368
88389
  this._currentDistanceMeasurement.labelsVisible = true;
@@ -88377,6 +88398,7 @@ class DistanceMeasurementsTouchControl extends DistanceMeasurementsControl {
88377
88398
  this.pointerLens.snapped = false;
88378
88399
  }
88379
88400
  this._currentDistanceMeasurement.target.worldPos = pickResult.worldPos;
88401
+ this._currentDistanceMeasurement.target.entity = pickResult.entity;
88380
88402
  this._currentDistanceMeasurement.targetVisible = true;
88381
88403
  this._currentDistanceMeasurement.wireVisible = true;
88382
88404
  this._currentDistanceMeasurement.labelsVisible = true;
@@ -88432,10 +88454,12 @@ class DistanceMeasurementsTouchControl extends DistanceMeasurementsControl {
88432
88454
  this._currentDistanceMeasurement = plugin.createMeasurement({
88433
88455
  id: math.createUUID(),
88434
88456
  origin: {
88435
- worldPos: pickResult.worldPos
88457
+ worldPos: pickResult.worldPos,
88458
+ entity: pickResult.entity
88436
88459
  },
88437
88460
  target: {
88438
- worldPos: pickResult.worldPos
88461
+ worldPos: pickResult.worldPos,
88462
+ entity: pickResult.entity
88439
88463
  }
88440
88464
  });
88441
88465
  this._currentDistanceMeasurement.labelsVisible = false;
@@ -88447,6 +88471,7 @@ class DistanceMeasurementsTouchControl extends DistanceMeasurementsControl {
88447
88471
  this._currentDistanceMeasurement.targetVisible = false;
88448
88472
  this._currentDistanceMeasurement.clickable = false;
88449
88473
  this._touchState = WAITING_FOR_TARGET_TOUCH_START;
88474
+ this.distanceMeasurementsPlugin.fire("measurementStart", this._currentDistanceMeasurement);
88450
88475
  // console.log("touchend: this._touchState= WAITING_FOR_ORIGIN_QUICK_TOUCH_END -> WAITING_FOR_ORIGIN_TOUCH_START")
88451
88476
  } else {
88452
88477
  if (this._currentDistanceMeasurement) {
@@ -88492,6 +88517,7 @@ class DistanceMeasurementsTouchControl extends DistanceMeasurementsControl {
88492
88517
  });
88493
88518
  if (pickResult && pickResult.worldPos) {
88494
88519
  this._currentDistanceMeasurement.target.worldPos = pickResult.worldPos;
88520
+ this._currentDistanceMeasurement.target.entity = pickResult.entity;
88495
88521
  this._currentDistanceMeasurement.targetVisible = true;
88496
88522
  this._currentDistanceMeasurement.wireVisible = true;
88497
88523
  this._currentDistanceMeasurement.labelsVisible = true;
@@ -94869,6 +94895,7 @@ class PickController {
94869
94895
  if (this.snappedOrPicked) {
94870
94896
  if (this.snapPickResult) {
94871
94897
  const pickResult = new PickResult();
94898
+ pickResult.entity = this.snapPickResult.entity;
94872
94899
  pickResult.snappedToVertex = this.snapPickResult.snappedToVertex;
94873
94900
  pickResult.snappedToEdge = this.snapPickResult.snappedToEdge;
94874
94901
  pickResult.worldPos = this.snapPickResult.worldPos;
@@ -95077,7 +95104,7 @@ class MousePanRotateDollyHandler {
95077
95104
  }
95078
95105
  });
95079
95106
 
95080
- document.addEventListener("mousemove", this._documentMouseMoveHandler = () => {
95107
+ document.addEventListener("mousemove", this._documentMouseMoveHandler = (e) => {
95081
95108
 
95082
95109
  if (!(configs.active && configs.pointerEnabled)) {
95083
95110
  return;
@@ -95098,10 +95125,10 @@ class MousePanRotateDollyHandler {
95098
95125
 
95099
95126
  const panning = keyDown[scene.input.KEY_SHIFT] || configs.planView || (!configs.panRightClick && mouseDownMiddle) || (configs.panRightClick && mouseDownRight);
95100
95127
 
95101
- if (panning) {
95128
+ const xDelta = document.pointerLockElement ? e.movementX : (x - lastX);
95129
+ const yDelta = document.pointerLockElement ? e.movementY : (y - lastY);
95102
95130
 
95103
- const xPanDelta = (x - lastX);
95104
- const yPanDelta = (y - lastY);
95131
+ if (panning) {
95105
95132
 
95106
95133
  const camera = scene.camera;
95107
95134
 
@@ -95112,13 +95139,13 @@ class MousePanRotateDollyHandler {
95112
95139
  const depth = Math.abs(mouseDownPicked ? math.lenVec3(math.subVec3(pickedWorldPos, scene.camera.eye, [])) : scene.camera.eyeLookDist);
95113
95140
  const targetDistance = depth * Math.tan((camera.perspective.fov / 2) * Math.PI / 180.0);
95114
95141
 
95115
- updates.panDeltaX += (1.5 * xPanDelta * targetDistance / canvasHeight);
95116
- updates.panDeltaY += (1.5 * yPanDelta * targetDistance / canvasHeight);
95142
+ updates.panDeltaX += (1.5 * xDelta * targetDistance / canvasHeight);
95143
+ updates.panDeltaY += (1.5 * yDelta * targetDistance / canvasHeight);
95117
95144
 
95118
95145
  } else {
95119
95146
 
95120
- updates.panDeltaX += 0.5 * camera.ortho.scale * (xPanDelta / canvasHeight);
95121
- updates.panDeltaY += 0.5 * camera.ortho.scale * (yPanDelta / canvasHeight);
95147
+ updates.panDeltaX += 0.5 * camera.ortho.scale * (xDelta / canvasHeight);
95148
+ updates.panDeltaY += 0.5 * camera.ortho.scale * (yDelta / canvasHeight);
95122
95149
  }
95123
95150
 
95124
95151
  } else if (mouseDownLeft && !mouseDownMiddle && !mouseDownRight) {
@@ -95126,12 +95153,12 @@ class MousePanRotateDollyHandler {
95126
95153
  if (!configs.planView) { // No rotating in plan-view mode
95127
95154
 
95128
95155
  if (configs.firstPerson) {
95129
- updates.rotateDeltaY -= ((x - lastX) / canvasWidth) * configs.dragRotationRate / 2;
95130
- updates.rotateDeltaX += ((y - lastY) / canvasHeight) * (configs.dragRotationRate / 4);
95156
+ updates.rotateDeltaY -= (xDelta / canvasWidth) * configs.dragRotationRate / 2;
95157
+ updates.rotateDeltaX += (yDelta / canvasHeight) * (configs.dragRotationRate / 4);
95131
95158
 
95132
95159
  } else {
95133
- updates.rotateDeltaY -= ((x - lastX) / canvasWidth) * (configs.dragRotationRate * 1.5);
95134
- updates.rotateDeltaX += ((y - lastY) / canvasHeight) * (configs.dragRotationRate * 1.5);
95160
+ updates.rotateDeltaY -= (xDelta / canvasWidth) * (configs.dragRotationRate * 1.5);
95161
+ updates.rotateDeltaX += (yDelta / canvasHeight) * (configs.dragRotationRate * 1.5);
95135
95162
  }
95136
95163
  }
95137
95164
  }
@@ -115499,6 +115526,7 @@ function parseGLTF(plugin, src, gltf, metaModelJSON, options, sceneModel, ok) {
115499
115526
  loadBuffer: options.loadBuffer,
115500
115527
  basePath: options.basePath,
115501
115528
  handlenode: options.handlenode,
115529
+ backfaces: !!options.backfaces,
115502
115530
  gltfData: gltfData,
115503
115531
  scene: sceneModel.scene,
115504
115532
  plugin: plugin,
@@ -115704,7 +115732,8 @@ function loadMaterialAttributes(ctx, material) { // Substitute RGBA for material
115704
115732
  color: new Float32Array([1, 1, 1, 1]),
115705
115733
  opacity: 1,
115706
115734
  metallic: 0,
115707
- roughness: 1
115735
+ roughness: 1,
115736
+ doubleSided : true
115708
115737
  };
115709
115738
  if (extensions) {
115710
115739
  const specularPBR = extensions["KHR_materials_pbrSpecularGlossiness"];
@@ -115755,6 +115784,7 @@ function loadMaterialAttributes(ctx, material) { // Substitute RGBA for material
115755
115784
  materialAttributes.roughness = roughnessFactor;
115756
115785
  }
115757
115786
  }
115787
+ materialAttributes.doubleSided = (material.doubleSided !== false);
115758
115788
  return materialAttributes;
115759
115789
  }
115760
115790
 
@@ -115865,6 +115895,20 @@ function loadNode(ctx, node, depth, matrix) {
115865
115895
  id: sceneModel.id + "." + ctx.numObjects++
115866
115896
  };
115867
115897
 
115898
+ const material = primitive.material;
115899
+ if (material) {
115900
+ meshCfg.textureSetId = material._textureSetId;
115901
+ meshCfg.color = material._attributes.color;
115902
+ meshCfg.opacity = material._attributes.opacity;
115903
+ meshCfg.metallic = material._attributes.metallic;
115904
+ meshCfg.roughness = material._attributes.roughness;
115905
+ } else {
115906
+ meshCfg.color = new Float32Array([1.0, 1.0, 1.0]);
115907
+ meshCfg.opacity = 1.0;
115908
+ }
115909
+
115910
+ const backfaces = ((ctx.backfaces !== false) || (material.doubleSided !== false));
115911
+
115868
115912
  switch (primitive.mode) {
115869
115913
  case 0: // POINTS
115870
115914
  meshCfg.primitive = "points";
@@ -115879,16 +115923,16 @@ function loadNode(ctx, node, depth, matrix) {
115879
115923
  meshCfg.primitive = "lines";
115880
115924
  break;
115881
115925
  case 4: // TRIANGLES
115882
- meshCfg.primitive = "triangles";
115926
+ meshCfg.primitive = backfaces ? "triangles" : "solid";
115883
115927
  break;
115884
115928
  case 5: // TRIANGLE_STRIP
115885
- meshCfg.primitive = "triangles";
115929
+ meshCfg.primitive = backfaces ? "triangles" : "solid";
115886
115930
  break;
115887
115931
  case 6: // TRIANGLE_FAN
115888
- meshCfg.primitive = "triangles";
115932
+ meshCfg.primitive = backfaces ? "triangles" : "solid";
115889
115933
  break;
115890
115934
  default:
115891
- meshCfg.primitive = "triangles";
115935
+ meshCfg.primitive = backfaces ? "triangles" : "solid";
115892
115936
  }
115893
115937
 
115894
115938
  const POSITION = primitive.attributes.POSITION;
@@ -115917,17 +115961,6 @@ function loadNode(ctx, node, depth, matrix) {
115917
115961
  meshCfg.origin = origin;
115918
115962
  }
115919
115963
 
115920
- const material = primitive.material;
115921
- if (material) {
115922
- meshCfg.textureSetId = material._textureSetId;
115923
- meshCfg.color = material._attributes.color;
115924
- meshCfg.opacity = material._attributes.opacity;
115925
- meshCfg.metallic = material._attributes.metallic;
115926
- meshCfg.roughness = material._attributes.roughness;
115927
- } else {
115928
- meshCfg.color = new Float32Array([1.0, 1.0, 1.0]);
115929
- meshCfg.opacity = 1.0;
115930
- }
115931
115964
  // if (createEntity) {
115932
115965
  // if (createEntity.colorize) {
115933
115966
  // meshCfg.color = createEntity.colorize;
@@ -116270,7 +116303,7 @@ class GLTFLoaderPlugin extends Plugin {
116270
116303
  * @param {Boolean} [params.saoEnabled=true] Indicates if Scalable Ambient Obscurance (SAO) is enabled for the model. SAO is configured by the Scene's {@link SAO} component. Only works when {@link SAO#enabled} is also ````true````
116271
116304
  * @param {Boolean} [params.pbrEnabled=true] Indicates if physically-based rendering (PBR) is enabled for the model. Overrides ````colorTextureEnabled````. Only works when {@link Scene#pbrEnabled} is also ````true````.
116272
116305
  * @param {Boolean} [params.colorTextureEnabled=true] Indicates if base color texture rendering is enabled for the model. Overridden by ````pbrEnabled````. Only works when {@link Scene#colorTextureEnabled} is also ````true````.
116273
- * @param {Boolean} [params.backfaces=false] When true, allows visible backfaces, wherever specified in the glTF. When false, ignores backfaces.
116306
+ * @param {Boolean} [params.backfaces=true] When true, always show backfaces, even on objects for which the glTF material is single-sided. When false, only show backfaces on geometries whenever the glTF material is double-sided.
116274
116307
  * @param {Number} [params.edgeThreshold=10] When xraying, highlighting, selecting or edging, this is the threshold angle between normals of adjacent triangles, below which their shared wireframe edge is not drawn.
116275
116308
  * @param {Boolean} [params.dtxEnabled=true] When ````true```` (default) use data textures (DTX), where appropriate, to
116276
116309
  * represent the returned model. Set false to always use vertex buffer objects (VBOs). Note that DTX is only applicable
@@ -118532,7 +118565,8 @@ class Control {
118532
118565
 
118533
118566
  this._rootNode = new Node$2(scene, {
118534
118567
  position: [0, 0, 0],
118535
- scale: [5, 5, 5]
118568
+ scale: [5, 5, 5],
118569
+ isObject: false
118536
118570
  });
118537
118571
 
118538
118572
  const rootNode = this._rootNode;
@@ -118723,7 +118757,8 @@ class Control {
118723
118757
  collidable: true,
118724
118758
  clippable: false,
118725
118759
  visible: false,
118726
- scale: [2.4, 2.4, 1]
118760
+ scale: [2.4, 2.4, 1],
118761
+ isObject: false
118727
118762
  }), NO_STATE_INHERIT),
118728
118763
 
118729
118764
  planeFrame: rootNode.addChild(new Mesh(rootNode, { // Visible frame
@@ -118754,7 +118789,8 @@ class Control {
118754
118789
  clippable: false,
118755
118790
  visible: false,
118756
118791
  scale: [1, 1, .1],
118757
- rotation: [0, 0, 45]
118792
+ rotation: [0, 0, 45],
118793
+ isObject: false
118758
118794
  }), NO_STATE_INHERIT),
118759
118795
 
118760
118796
  //----------------------------------------------------------------------------------------------------------
@@ -118773,7 +118809,8 @@ class Control {
118773
118809
  collidable: true,
118774
118810
  clippable: false,
118775
118811
  backfaces: true,
118776
- visible: false
118812
+ visible: false,
118813
+ isObject: false
118777
118814
  }), NO_STATE_INHERIT),
118778
118815
 
118779
118816
  xCurveHandle: rootNode.addChild(new Mesh(rootNode, { // Red hoop about Y-axis
@@ -118788,7 +118825,8 @@ class Control {
118788
118825
  collidable: true,
118789
118826
  clippable: false,
118790
118827
  backfaces: true,
118791
- visible: false
118828
+ visible: false,
118829
+ isObject: false
118792
118830
  }), NO_STATE_INHERIT),
118793
118831
 
118794
118832
  xCurveArrow1: rootNode.addChild(new Mesh(rootNode, {
@@ -118803,7 +118841,8 @@ class Control {
118803
118841
  pickable: true,
118804
118842
  collidable: true,
118805
118843
  clippable: false,
118806
- visible: false
118844
+ visible: false,
118845
+ isObject: false
118807
118846
  }), NO_STATE_INHERIT),
118808
118847
 
118809
118848
  xCurveArrow2: rootNode.addChild(new Mesh(rootNode, {
@@ -118818,7 +118857,8 @@ class Control {
118818
118857
  pickable: true,
118819
118858
  collidable: true,
118820
118859
  clippable: false,
118821
- visible: false
118860
+ visible: false,
118861
+ isObject: false
118822
118862
  }), NO_STATE_INHERIT),
118823
118863
 
118824
118864
  //----------------------------------------------------------------------------------------------------------
@@ -118833,7 +118873,8 @@ class Control {
118833
118873
  collidable: true,
118834
118874
  clippable: false,
118835
118875
  backfaces: true,
118836
- visible: false
118876
+ visible: false,
118877
+ isObject: false
118837
118878
  }), NO_STATE_INHERIT),
118838
118879
 
118839
118880
  yCurveHandle: rootNode.addChild(new Mesh(rootNode, {
@@ -118844,7 +118885,8 @@ class Control {
118844
118885
  collidable: true,
118845
118886
  clippable: false,
118846
118887
  backfaces: true,
118847
- visible: false
118888
+ visible: false,
118889
+ isObject: false
118848
118890
  }), NO_STATE_INHERIT),
118849
118891
 
118850
118892
  yCurveArrow1: rootNode.addChild(new Mesh(rootNode, {
@@ -118859,7 +118901,8 @@ class Control {
118859
118901
  pickable: true,
118860
118902
  collidable: true,
118861
118903
  clippable: false,
118862
- visible: false
118904
+ visible: false,
118905
+ isObject: false
118863
118906
  }), NO_STATE_INHERIT),
118864
118907
 
118865
118908
  yCurveArrow2: rootNode.addChild(new Mesh(rootNode, {
@@ -118874,7 +118917,8 @@ class Control {
118874
118917
  pickable: true,
118875
118918
  collidable: true,
118876
118919
  clippable: false,
118877
- visible: false
118920
+ visible: false,
118921
+ isObject: false
118878
118922
  }), NO_STATE_INHERIT),
118879
118923
 
118880
118924
  //----------------------------------------------------------------------------------------------------------
@@ -118888,7 +118932,8 @@ class Control {
118888
118932
  pickable: false,
118889
118933
  collidable: true,
118890
118934
  clippable: false,
118891
- visible: false
118935
+ visible: false,
118936
+ isObject: false
118892
118937
  }), NO_STATE_INHERIT),
118893
118938
 
118894
118939
  zCurveHandle: rootNode.addChild(new Mesh(rootNode, {
@@ -118898,7 +118943,8 @@ class Control {
118898
118943
  pickable: true,
118899
118944
  collidable: true,
118900
118945
  clippable: false,
118901
- visible: false
118946
+ visible: false,
118947
+ isObject: false
118902
118948
  }), NO_STATE_INHERIT),
118903
118949
 
118904
118950
  zCurveCurveArrow1: rootNode.addChild(new Mesh(rootNode, {
@@ -118912,7 +118958,8 @@ class Control {
118912
118958
  pickable: true,
118913
118959
  collidable: true,
118914
118960
  clippable: false,
118915
- visible: false
118961
+ visible: false,
118962
+ isObject: false
118916
118963
  }), NO_STATE_INHERIT),
118917
118964
 
118918
118965
  zCurveArrow2: rootNode.addChild(new Mesh(rootNode, {
@@ -118927,7 +118974,8 @@ class Control {
118927
118974
  pickable: true,
118928
118975
  collidable: true,
118929
118976
  clippable: false,
118930
- visible: false
118977
+ visible: false,
118978
+ isObject: false
118931
118979
  }), NO_STATE_INHERIT),
118932
118980
 
118933
118981
  //----------------------------------------------------------------------------------------------------------
@@ -118942,7 +118990,8 @@ class Control {
118942
118990
  pickable: false,
118943
118991
  collidable: true,
118944
118992
  clippable: false,
118945
- visible: false
118993
+ visible: false,
118994
+ isObject: false
118946
118995
  }), NO_STATE_INHERIT),
118947
118996
 
118948
118997
  //----------------------------------------------------------------------------------------------------------
@@ -118960,7 +119009,8 @@ class Control {
118960
119009
  pickable: false,
118961
119010
  collidable: true,
118962
119011
  clippable: false,
118963
- visible: false
119012
+ visible: false,
119013
+ isObject: false
118964
119014
  }), NO_STATE_INHERIT),
118965
119015
 
118966
119016
  xAxisArrowHandle: rootNode.addChild(new Mesh(rootNode, {
@@ -118974,7 +119024,8 @@ class Control {
118974
119024
  pickable: true,
118975
119025
  collidable: true,
118976
119026
  clippable: false,
118977
- visible: false
119027
+ visible: false,
119028
+ isObject: false
118978
119029
  }), NO_STATE_INHERIT),
118979
119030
 
118980
119031
  xAxis: rootNode.addChild(new Mesh(rootNode, {
@@ -118988,7 +119039,8 @@ class Control {
118988
119039
  pickable: false,
118989
119040
  collidable: true,
118990
119041
  clippable: false,
118991
- visible: false
119042
+ visible: false,
119043
+ isObject: false
118992
119044
  }), NO_STATE_INHERIT),
118993
119045
 
118994
119046
  xAxisHandle: rootNode.addChild(new Mesh(rootNode, {
@@ -119002,7 +119054,8 @@ class Control {
119002
119054
  pickable: true,
119003
119055
  collidable: true,
119004
119056
  clippable: false,
119005
- visible: false
119057
+ visible: false,
119058
+ isObject: false
119006
119059
  }), NO_STATE_INHERIT),
119007
119060
 
119008
119061
  //----------------------------------------------------------------------------------------------------------
@@ -119020,7 +119073,8 @@ class Control {
119020
119073
  pickable: false,
119021
119074
  collidable: true,
119022
119075
  clippable: false,
119023
- visible: false
119076
+ visible: false,
119077
+ isObject: false
119024
119078
  }), NO_STATE_INHERIT),
119025
119079
 
119026
119080
  yAxisArrowHandle: rootNode.addChild(new Mesh(rootNode, {
@@ -119035,7 +119089,8 @@ class Control {
119035
119089
  collidable: true,
119036
119090
  clippable: false,
119037
119091
  visible: false,
119038
- opacity: 0.2
119092
+ opacity: 0.2,
119093
+ isObject: false
119039
119094
  }), NO_STATE_INHERIT),
119040
119095
 
119041
119096
  yShaft: rootNode.addChild(new Mesh(rootNode, {
@@ -119045,7 +119100,8 @@ class Control {
119045
119100
  pickable: false,
119046
119101
  collidable: true,
119047
119102
  clippable: false,
119048
- visible: false
119103
+ visible: false,
119104
+ isObject: false
119049
119105
  }), NO_STATE_INHERIT),
119050
119106
 
119051
119107
  yShaftHandle: rootNode.addChild(new Mesh(rootNode, {
@@ -119055,7 +119111,8 @@ class Control {
119055
119111
  pickable: true,
119056
119112
  collidable: true,
119057
119113
  clippable: false,
119058
- visible: false
119114
+ visible: false,
119115
+ isObject: false
119059
119116
  }), NO_STATE_INHERIT),
119060
119117
 
119061
119118
  //----------------------------------------------------------------------------------------------------------
@@ -119073,7 +119130,8 @@ class Control {
119073
119130
  pickable: false,
119074
119131
  collidable: true,
119075
119132
  clippable: false,
119076
- visible: false
119133
+ visible: false,
119134
+ isObject: false
119077
119135
  }), NO_STATE_INHERIT),
119078
119136
 
119079
119137
  zAxisArrowHandle: rootNode.addChild(new Mesh(rootNode, {
@@ -119087,7 +119145,8 @@ class Control {
119087
119145
  pickable: true,
119088
119146
  collidable: true,
119089
119147
  clippable: false,
119090
- visible: false
119148
+ visible: false,
119149
+ isObject: false
119091
119150
  }), NO_STATE_INHERIT),
119092
119151
 
119093
119152
 
@@ -119102,7 +119161,8 @@ class Control {
119102
119161
  clippable: false,
119103
119162
  pickable: false,
119104
119163
  collidable: true,
119105
- visible: false
119164
+ visible: false,
119165
+ isObject: false
119106
119166
  }), NO_STATE_INHERIT),
119107
119167
 
119108
119168
  zAxisHandle: rootNode.addChild(new Mesh(rootNode, {
@@ -119116,7 +119176,8 @@ class Control {
119116
119176
  clippable: false,
119117
119177
  pickable: true,
119118
119178
  collidable: true,
119119
- visible: false
119179
+ visible: false,
119180
+ isObject: false
119120
119181
  }), NO_STATE_INHERIT)
119121
119182
  };
119122
119183
 
@@ -119148,7 +119209,8 @@ class Control {
119148
119209
  clippable: false,
119149
119210
  visible: false,
119150
119211
  scale: [1, 1, 1],
119151
- rotation: [0, 0, 45]
119212
+ rotation: [0, 0, 45],
119213
+ isObject: false
119152
119214
  }), NO_STATE_INHERIT),
119153
119215
 
119154
119216
  xHoop: rootNode.addChild(new Mesh(rootNode, { // Full
@@ -119164,7 +119226,8 @@ class Control {
119164
119226
  pickable: false,
119165
119227
  collidable: true,
119166
119228
  clippable: false,
119167
- visible: false
119229
+ visible: false,
119230
+ isObject: false
119168
119231
  }), NO_STATE_INHERIT),
119169
119232
 
119170
119233
  yHoop: rootNode.addChild(new Mesh(rootNode, {
@@ -119176,7 +119239,8 @@ class Control {
119176
119239
  pickable: false,
119177
119240
  collidable: true,
119178
119241
  clippable: false,
119179
- visible: false
119242
+ visible: false,
119243
+ isObject: false
119180
119244
  }), NO_STATE_INHERIT),
119181
119245
 
119182
119246
  zHoop: rootNode.addChild(new Mesh(rootNode, { // Blue hoop about Z-axis
@@ -119189,7 +119253,8 @@ class Control {
119189
119253
  collidable: true,
119190
119254
  clippable: false,
119191
119255
  backfaces: true,
119192
- visible: false
119256
+ visible: false,
119257
+ isObject: false
119193
119258
  }), NO_STATE_INHERIT),
119194
119259
 
119195
119260
  xAxisArrow: rootNode.addChild(new Mesh(rootNode, {
@@ -119203,7 +119268,8 @@ class Control {
119203
119268
  pickable: false,
119204
119269
  collidable: true,
119205
119270
  clippable: false,
119206
- visible: false
119271
+ visible: false,
119272
+ isObject: false
119207
119273
  }), NO_STATE_INHERIT),
119208
119274
 
119209
119275
  yAxisArrow: rootNode.addChild(new Mesh(rootNode, {
@@ -119217,7 +119283,8 @@ class Control {
119217
119283
  pickable: false,
119218
119284
  collidable: true,
119219
119285
  clippable: false,
119220
- visible: false
119286
+ visible: false,
119287
+ isObject: false
119221
119288
  }), NO_STATE_INHERIT),
119222
119289
 
119223
119290
  zAxisArrow: rootNode.addChild(new Mesh(rootNode, {
@@ -119231,7 +119298,8 @@ class Control {
119231
119298
  pickable: false,
119232
119299
  collidable: true,
119233
119300
  clippable: false,
119234
- visible: false
119301
+ visible: false,
119302
+ isObject: false
119235
119303
  }), NO_STATE_INHERIT)
119236
119304
  };
119237
119305
  }