@xeokit/xeokit-sdk 2.4.0-alpha-100 → 2.4.0-alpha-104

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.
@@ -45983,7 +45983,10 @@ class Bitmap extends Component {
45983
45983
  this._rtcPos = math.vec3();
45984
45984
  this._imageSize = math.vec2();
45985
45985
 
45986
- this._texture = new Texture(this);
45986
+ this._texture = new Texture(this, {
45987
+ flipY: true
45988
+ });
45989
+
45987
45990
  this._image = new Image();
45988
45991
 
45989
45992
  if (this._type !== "jpg" && this._type !== "png") {
@@ -46356,6 +46359,116 @@ class Bitmap extends Component {
46356
46359
  }
46357
46360
  }
46358
46361
 
46362
+ const tempVec3a$v = math.vec3();
46363
+ const tempVec3b$q = math.vec3();
46364
+ const tempMat4a$h = math.mat4();
46365
+
46366
+ /**
46367
+ * @private
46368
+ */
46369
+ class FrustumPlane {
46370
+
46371
+ constructor() {
46372
+ this.normal = math.vec3();
46373
+ this.offset = 0;
46374
+ this.testVertex = math.vec3();
46375
+ }
46376
+
46377
+ set(nx, ny, nz, offset) {
46378
+ const s = 1.0 / Math.sqrt(nx * nx + ny * ny + nz * nz);
46379
+ this.normal[0] = nx * s;
46380
+ this.normal[1] = ny * s;
46381
+ this.normal[2] = nz * s;
46382
+ this.offset = offset * s;
46383
+ this.testVertex[0] = (this.normal[0] >= 0.0) ? 1 : 0;
46384
+ this.testVertex[1] = (this.normal[1] >= 0.0) ? 1 : 0;
46385
+ this.testVertex[2] = (this.normal[2] >= 0.0) ? 1 : 0;
46386
+ }
46387
+ }
46388
+
46389
+ /**
46390
+ * @private
46391
+ */
46392
+ class Frustum {
46393
+ constructor() {
46394
+ this.planes = [
46395
+ new FrustumPlane(), new FrustumPlane(), new FrustumPlane(),
46396
+ new FrustumPlane(), new FrustumPlane(), new FrustumPlane()
46397
+ ];
46398
+ }
46399
+ }
46400
+
46401
+ Frustum.INSIDE = 0;
46402
+ Frustum.INTERSECT = 1;
46403
+ Frustum.OUTSIDE = 2;
46404
+
46405
+ /** @private */
46406
+ function setFrustum(frustum, viewMat, projMat) {
46407
+
46408
+ const m = math.mulMat4(projMat, viewMat, tempMat4a$h);
46409
+
46410
+ const m0 = m[0];
46411
+ const m1 = m[1];
46412
+ const m2 = m[2];
46413
+ const m3 = m[3];
46414
+ const m4 = m[4];
46415
+ const m5 = m[5];
46416
+ const m6 = m[6];
46417
+ const m7 = m[7];
46418
+ const m8 = m[8];
46419
+ const m9 = m[9];
46420
+ const m10 = m[10];
46421
+ const m11 = m[11];
46422
+ const m12 = m[12];
46423
+ const m13 = m[13];
46424
+ const m14 = m[14];
46425
+ const m15 = m[15];
46426
+
46427
+ frustum.planes[0].set(m3 - m0, m7 - m4, m11 - m8, m15 - m12);
46428
+ frustum.planes[1].set(m3 + m0, m7 + m4, m11 + m8, m15 + m12);
46429
+ frustum.planes[2].set(m3 - m1, m7 - m5, m11 - m9, m15 - m13);
46430
+ frustum.planes[3].set(m3 + m1, m7 + m5, m11 + m9, m15 + m13);
46431
+ frustum.planes[4].set(m3 - m2, m7 - m6, m11 - m10, m15 - m14);
46432
+ frustum.planes[5].set(m3 + m2, m7 + m6, m11 + m10, m15 + m14);
46433
+ }
46434
+
46435
+ /** @private */
46436
+ function frustumIntersectsAABB3(frustum, aabb) {
46437
+
46438
+ let ret = Frustum.INSIDE;
46439
+
46440
+ const min = tempVec3a$v;
46441
+ const max = tempVec3b$q;
46442
+
46443
+ min[0] = aabb[0];
46444
+ min[1] = aabb[1];
46445
+ min[2] = aabb[2];
46446
+ max[0] = aabb[3];
46447
+ max[1] = aabb[4];
46448
+ max[2] = aabb[5];
46449
+
46450
+ const bminmax = [min, max];
46451
+
46452
+ for (let i = 0; i < 6; ++i) {
46453
+ const plane = frustum.planes[i];
46454
+ if (((plane.normal[0] * bminmax[plane.testVertex[0]][0]) +
46455
+ (plane.normal[1] * bminmax[plane.testVertex[1]][1]) +
46456
+ (plane.normal[2] * bminmax[plane.testVertex[2]][2]) +
46457
+ (plane.offset)) < 0.0) {
46458
+ return Frustum.OUTSIDE;
46459
+ }
46460
+
46461
+ if (((plane.normal[0] * bminmax[1 - plane.testVertex[0]][0]) +
46462
+ (plane.normal[1] * bminmax[1 - plane.testVertex[1]][1]) +
46463
+ (plane.normal[2] * bminmax[1 - plane.testVertex[2]][2]) +
46464
+ (plane.offset)) < 0.0) {
46465
+ ret = Frustum.INTERSECT;
46466
+ }
46467
+ }
46468
+
46469
+ return ret;
46470
+ }
46471
+
46359
46472
  /**
46360
46473
  * A set of 3D line segments.
46361
46474
  *
@@ -46430,8 +46543,10 @@ class LineSet extends Component {
46430
46543
  super(owner, cfg);
46431
46544
 
46432
46545
  this._positions = cfg.positions || [];
46433
-
46434
- this._origin = math.vec3(cfg.origin || [0, 0, 0]);
46546
+ const rtcPositions = new Float32Array(this._positions.length);
46547
+ const rtcCenter = math.vec3();
46548
+ const cellSize = 100;
46549
+ const rtcNeeded = worldToRTCPositions(this._positions, new Float32Array(this._positions.length), rtcCenter, cellSize);
46435
46550
 
46436
46551
  if (cfg.indices) {
46437
46552
  this._indices = cfg.indices;
@@ -46449,9 +46564,9 @@ class LineSet extends Component {
46449
46564
  collidable: cfg.collidable,
46450
46565
  geometry: new VBOGeometry(this, {
46451
46566
  primitive: "lines",
46452
- positions: this._positions,
46567
+ positions: rtcNeeded ? rtcPositions : this._positions,
46453
46568
  indices: this._indices,
46454
- origin: cfg.origin
46569
+ origin: rtcNeeded ? rtcCenter : null
46455
46570
  }),
46456
46571
  material: new PhongMaterial(this, {
46457
46572
  diffuse: cfg.color || [0, 0, 0],
@@ -46514,8 +46629,8 @@ class LineSet extends Component {
46514
46629
  }
46515
46630
 
46516
46631
  const tempVec3$5 = math.vec3();
46517
- const tempVec3a$v = math.vec3();
46518
- const tempVec3b$q = math.vec3();
46632
+ const tempVec3a$u = math.vec3();
46633
+ const tempVec3b$p = math.vec3();
46519
46634
  const tempVec3c$m = math.vec3();
46520
46635
 
46521
46636
  /**
@@ -47195,8 +47310,8 @@ class BCFViewpointsPlugin extends Plugin {
47195
47310
  bcfViewpoint.bitmaps.forEach(function (e) {
47196
47311
  const bitmap_type = e.bitmap_type || "jpg"; // "jpg" | "png"
47197
47312
  const bitmap_data = e.bitmap_data; // base64
47198
- let location = xyzObjectToArray(e.location, tempVec3a$v);
47199
- let normal = xyzObjectToArray(e.normal, tempVec3b$q);
47313
+ let location = xyzObjectToArray(e.location, tempVec3a$u);
47314
+ let normal = xyzObjectToArray(e.normal, tempVec3b$p);
47200
47315
  let up = xyzObjectToArray(e.up, tempVec3c$m);
47201
47316
  let height = e.height || 1;
47202
47317
  if (!bitmap_type) {
@@ -48711,7 +48826,6 @@ class DistanceMeasurementsMouseControl extends DistanceMeasurementsControl {
48711
48826
  this.pointerLens.visible = false;
48712
48827
  }
48713
48828
  this.reset();
48714
- this.viewer;
48715
48829
  const canvas = this.scene.canvas.canvas;
48716
48830
  canvas.removeEventListener("mousedown", this._onMouseDown);
48717
48831
  canvas.removeEventListener("mouseup", this._onMouseUp);
@@ -50593,7 +50707,7 @@ class SplineCurve extends Curve {
50593
50707
  }
50594
50708
  }
50595
50709
 
50596
- const tempVec3a$u = math.vec3();
50710
+ const tempVec3a$t = math.vec3();
50597
50711
 
50598
50712
  /**
50599
50713
  * @desc Defines a sequence of frames along which a {@link CameraPathAnimation} can animate a {@link Camera}.
@@ -50725,9 +50839,9 @@ class CameraPath extends Component {
50725
50839
  t = t / (this._frames[this._frames.length - 1].t - this._frames[0].t);
50726
50840
  t = t < 0.0 ? 0.0 : (t > 1.0 ? 1.0 : t);
50727
50841
 
50728
- camera.eye = this._eyeCurve.getPoint(t, tempVec3a$u);
50729
- camera.look = this._lookCurve.getPoint(t, tempVec3a$u);
50730
- camera.up = this._upCurve.getPoint(t, tempVec3a$u);
50842
+ camera.eye = this._eyeCurve.getPoint(t, tempVec3a$t);
50843
+ camera.look = this._lookCurve.getPoint(t, tempVec3a$t);
50844
+ camera.up = this._upCurve.getPoint(t, tempVec3a$t);
50731
50845
  }
50732
50846
 
50733
50847
  /**
@@ -51766,7 +51880,7 @@ CameraPathAnimation.PLAYING = 2;
51766
51880
  CameraPathAnimation.PLAYING_TO = 3;
51767
51881
 
51768
51882
  const tempVec3$3 = math.vec3();
51769
- const tempVec3b$p = math.vec3();
51883
+ const tempVec3b$o = math.vec3();
51770
51884
  math.vec3();
51771
51885
  const zeroVec$2 = math.vec3([0, -1, 0]);
51772
51886
  const tempQuat = math.vec4([0, 0, 0, 1]);
@@ -52194,7 +52308,7 @@ class ImagePlane extends Component {
52194
52308
  const dist = -math.dotVec3(negDir, tempVec3$3);
52195
52309
 
52196
52310
  math.normalizeVec3(negDir);
52197
- math.mulVec3Scalar(negDir, dist, tempVec3b$p);
52311
+ math.mulVec3Scalar(negDir, dist, tempVec3b$o);
52198
52312
  math.vec3PairToQuaternion(zeroVec$2, dir, tempQuat);
52199
52313
 
52200
52314
  this._node.quaternion = tempQuat;
@@ -53360,116 +53474,6 @@ class SpriteMarker extends Marker {
53360
53474
  }
53361
53475
  }
53362
53476
 
53363
- const tempVec3a$t = math.vec3();
53364
- const tempVec3b$o = math.vec3();
53365
- const tempMat4a$h = math.mat4();
53366
-
53367
- /**
53368
- * @private
53369
- */
53370
- class FrustumPlane {
53371
-
53372
- constructor() {
53373
- this.normal = math.vec3();
53374
- this.offset = 0;
53375
- this.testVertex = math.vec3();
53376
- }
53377
-
53378
- set(nx, ny, nz, offset) {
53379
- const s = 1.0 / Math.sqrt(nx * nx + ny * ny + nz * nz);
53380
- this.normal[0] = nx * s;
53381
- this.normal[1] = ny * s;
53382
- this.normal[2] = nz * s;
53383
- this.offset = offset * s;
53384
- this.testVertex[0] = (this.normal[0] >= 0.0) ? 1 : 0;
53385
- this.testVertex[1] = (this.normal[1] >= 0.0) ? 1 : 0;
53386
- this.testVertex[2] = (this.normal[2] >= 0.0) ? 1 : 0;
53387
- }
53388
- }
53389
-
53390
- /**
53391
- * @private
53392
- */
53393
- class Frustum {
53394
- constructor() {
53395
- this.planes = [
53396
- new FrustumPlane(), new FrustumPlane(), new FrustumPlane(),
53397
- new FrustumPlane(), new FrustumPlane(), new FrustumPlane()
53398
- ];
53399
- }
53400
- }
53401
-
53402
- Frustum.INSIDE = 0;
53403
- Frustum.INTERSECT = 1;
53404
- Frustum.OUTSIDE = 2;
53405
-
53406
- /** @private */
53407
- function setFrustum(frustum, viewMat, projMat) {
53408
-
53409
- const m = math.mulMat4(projMat, viewMat, tempMat4a$h);
53410
-
53411
- const m0 = m[0];
53412
- const m1 = m[1];
53413
- const m2 = m[2];
53414
- const m3 = m[3];
53415
- const m4 = m[4];
53416
- const m5 = m[5];
53417
- const m6 = m[6];
53418
- const m7 = m[7];
53419
- const m8 = m[8];
53420
- const m9 = m[9];
53421
- const m10 = m[10];
53422
- const m11 = m[11];
53423
- const m12 = m[12];
53424
- const m13 = m[13];
53425
- const m14 = m[14];
53426
- const m15 = m[15];
53427
-
53428
- frustum.planes[0].set(m3 - m0, m7 - m4, m11 - m8, m15 - m12);
53429
- frustum.planes[1].set(m3 + m0, m7 + m4, m11 + m8, m15 + m12);
53430
- frustum.planes[2].set(m3 - m1, m7 - m5, m11 - m9, m15 - m13);
53431
- frustum.planes[3].set(m3 + m1, m7 + m5, m11 + m9, m15 + m13);
53432
- frustum.planes[4].set(m3 - m2, m7 - m6, m11 - m10, m15 - m14);
53433
- frustum.planes[5].set(m3 + m2, m7 + m6, m11 + m10, m15 + m14);
53434
- }
53435
-
53436
- /** @private */
53437
- function frustumIntersectsAABB3(frustum, aabb) {
53438
-
53439
- let ret = Frustum.INSIDE;
53440
-
53441
- const min = tempVec3a$t;
53442
- const max = tempVec3b$o;
53443
-
53444
- min[0] = aabb[0];
53445
- min[1] = aabb[1];
53446
- min[2] = aabb[2];
53447
- max[0] = aabb[3];
53448
- max[1] = aabb[4];
53449
- max[2] = aabb[5];
53450
-
53451
- const bminmax = [min, max];
53452
-
53453
- for (let i = 0; i < 6; ++i) {
53454
- const plane = frustum.planes[i];
53455
- if (((plane.normal[0] * bminmax[plane.testVertex[0]][0]) +
53456
- (plane.normal[1] * bminmax[plane.testVertex[1]][1]) +
53457
- (plane.normal[2] * bminmax[plane.testVertex[2]][2]) +
53458
- (plane.offset)) < 0.0) {
53459
- return Frustum.OUTSIDE;
53460
- }
53461
-
53462
- if (((plane.normal[0] * bminmax[1 - plane.testVertex[0]][0]) +
53463
- (plane.normal[1] * bminmax[1 - plane.testVertex[1]][1]) +
53464
- (plane.normal[2] * bminmax[1 - plane.testVertex[2]][2]) +
53465
- (plane.offset)) < 0.0) {
53466
- ret = Frustum.INTERSECT;
53467
- }
53468
- }
53469
-
53470
- return ret;
53471
- }
53472
-
53473
53477
  /**
53474
53478
  * @desc Saves and restores the state of a {@link Scene}'s {@link Camera}.
53475
53479
  *
@@ -59176,7 +59180,6 @@ class SnapBatchingDepthBufInitRenderer extends VBOSceneModelRenderer {
59176
59180
  src.push("float tmp = clipPos.w;");
59177
59181
  src.push("clipPos.xyzw /= tmp;");
59178
59182
  src.push("clipPos.xy = remapClipPos(clipPos.xy);");
59179
- src.push("clipPos.z += 0.0001;"); // small Z offset
59180
59183
  src.push("clipPos.xyzw *= tmp;");
59181
59184
  {
59182
59185
  src.push("vFragDepth = 1.0 + clipPos.w;");
@@ -59234,7 +59237,10 @@ class SnapBatchingDepthBufInitRenderer extends VBOSceneModelRenderer {
59234
59237
  src.push(" }");
59235
59238
  }
59236
59239
  {
59237
- src.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;");
59240
+ src.push(" float dx = dFdx(vFragDepth);");
59241
+ src.push(" float dy = dFdy(vFragDepth);");
59242
+ src.push(" float diff = sqrt(dx*dx+dy*dy);");
59243
+ src.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth + diff ) * logDepthBufFC * 0.5;");
59238
59244
  }
59239
59245
  src.push("outCoords = ivec4(relativeToOriginPosition.xyz*coordinateScaler.xyz, -layerNumber);");
59240
59246
  src.push("}");
@@ -64262,7 +64268,6 @@ class SnapInstancingDepthBufInitRenderer extends VBOSceneModelRenderer {
64262
64268
  src.push("float tmp = clipPos.w;");
64263
64269
  src.push("clipPos.xyzw /= tmp;");
64264
64270
  src.push("clipPos.xy = remapClipPos(clipPos.xy);");
64265
- src.push("clipPos.z += 0.0001;"); // small Z offset
64266
64271
  src.push("clipPos.xyzw *= tmp;");
64267
64272
  {
64268
64273
  src.push("vFragDepth = 1.0 + clipPos.w;");
@@ -64320,7 +64325,10 @@ class SnapInstancingDepthBufInitRenderer extends VBOSceneModelRenderer {
64320
64325
  src.push("}");
64321
64326
  }
64322
64327
  {
64323
- src.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;");
64328
+ src.push(" float dx = dFdx(vFragDepth);");
64329
+ src.push(" float dy = dFdy(vFragDepth);");
64330
+ src.push(" float diff = sqrt(dx*dx+dy*dy);");
64331
+ src.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth + diff ) * logDepthBufFC * 0.5;");
64324
64332
  }
64325
64333
  src.push("outCoords = ivec4(relativeToOriginPosition.xyz*coordinateScaler.xyz, -layerNumber);");
64326
64334
  src.push("}");
@@ -73268,9 +73276,9 @@ class TrianglesDataTextureColorRenderer {
73268
73276
 
73269
73277
  src.push("uniform int renderPass;");
73270
73278
 
73271
- if (scene.entityOffsetsEnabled) {
73272
- src.push("in vec3 offset;");
73273
- }
73279
+ // if (scene.entityOffsetsEnabled) {
73280
+ // src.push("in vec3 offset;");
73281
+ // }
73274
73282
 
73275
73283
  src.push("uniform mat4 sceneModelWorldMatrix;");
73276
73284
  src.push("uniform mat4 viewMatrix;");
@@ -74036,7 +74044,6 @@ const defaultColor = new Float32Array([0, 0, 0, 1]);
74036
74044
 
74037
74045
  const tempVec3a$i = math.vec3();
74038
74046
  const tempVec3b$e = math.vec3();
74039
- math.vec3();
74040
74047
  const tempVec3d$8 = math.vec3();
74041
74048
  const tempMat4a$9 = math.mat4();
74042
74049
 
@@ -74099,8 +74106,7 @@ class TrianglesDataTextureEdgesRenderer {
74099
74106
  if (gotOrigin || gotPosition) {
74100
74107
  const rtcOrigin = tempVec3a$i;
74101
74108
  if (gotOrigin) {
74102
- const rotatedOrigin = tempVec3b$e;
74103
- math.transformPoint3(rotationMatrix, origin, rotatedOrigin);
74109
+ const rotatedOrigin = math.transformPoint3(rotationMatrix, origin, tempVec3b$e);
74104
74110
  rtcOrigin[0] = rotatedOrigin[0];
74105
74111
  rtcOrigin[1] = rotatedOrigin[1];
74106
74112
  rtcOrigin[2] = rotatedOrigin[2];
@@ -74282,9 +74288,9 @@ class TrianglesDataTextureEdgesRenderer {
74282
74288
 
74283
74289
  src.push("uniform int renderPass;");
74284
74290
 
74285
- if (scene.entityOffsetsEnabled) {
74286
- src.push("in vec3 offset;");
74287
- }
74291
+ // if (scene.entityOffsetsEnabled) {
74292
+ // src.push("in vec3 offset;");
74293
+ // }
74288
74294
 
74289
74295
  src.push("uniform mat4 sceneModelWorldMatrix;");
74290
74296
  src.push("uniform mat4 viewMatrix;");
@@ -74369,7 +74375,7 @@ class TrianglesDataTextureEdgesRenderer {
74369
74375
  // get XYZ offset
74370
74376
  src.push("vec4 offset = vec4(texelFetch (uTexturePerObjectIdOffsets, objectIndexCoords, 0).rgb, 0.0);");
74371
74377
 
74372
- src.push("worldPosition.xyz = worldPosition.xyz + offset.xyz;");
74378
+ src.push("worldPosition.xyz = worldPosition.xyz + offset.xyz + vec3(110.0,50.0, 10.0);");
74373
74379
 
74374
74380
  src.push(" vec4 viewPosition = viewMatrix * worldPosition; ");
74375
74381
 
@@ -74519,8 +74525,7 @@ class TrianglesDataTextureEdgesColorRenderer {
74519
74525
  if (gotOrigin || gotPosition) {
74520
74526
  const rtcOrigin = tempVec3a$h;
74521
74527
  if (gotOrigin) {
74522
- const rotatedOrigin = tempVec3b$d;
74523
- math.transformPoint3(rotationMatrix, origin, rotatedOrigin);
74528
+ const rotatedOrigin = math.transformPoint3(rotationMatrix, origin, tempVec3b$d);
74524
74529
  rtcOrigin[0] = rotatedOrigin[0];
74525
74530
  rtcOrigin[1] = rotatedOrigin[1];
74526
74531
  rtcOrigin[2] = rotatedOrigin[2];
@@ -74787,7 +74792,7 @@ class TrianglesDataTextureEdgesColorRenderer {
74787
74792
  // get XYZ offset
74788
74793
  src.push("vec4 offset = vec4(texelFetch (uTexturePerObjectIdOffsets, objectIndexCoords, 0).rgb, 0.0);");
74789
74794
 
74790
- // src.push("worldPosition.xyz = worldPosition.xyz + offset.xyz;");
74795
+ src.push("worldPosition.xyz = worldPosition.xyz + offset.xyz;");
74791
74796
 
74792
74797
  src.push(" vec4 viewPosition = viewMatrix * worldPosition; ");
74793
74798
 
@@ -76555,7 +76560,6 @@ class TrianglesDataTextureSnapDepthBufInitRenderer {
76555
76560
  src.push("float tmp = clipPos.w;");
76556
76561
  src.push("clipPos.xyzw /= tmp;");
76557
76562
  src.push("clipPos.xy = remapClipPos(clipPos.xy);");
76558
- src.push("clipPos.z += 0.0001;"); // small Z offset
76559
76563
  src.push("clipPos.xyzw *= tmp;");
76560
76564
  {
76561
76565
  src.push("vFragDepth = 1.0 + clipPos.w;");
@@ -76613,7 +76617,10 @@ class TrianglesDataTextureSnapDepthBufInitRenderer {
76613
76617
  src.push(" }");
76614
76618
  }
76615
76619
  {
76616
- src.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth ) * logDepthBufFC * 0.5;");
76620
+ src.push(" float dx = dFdx(vFragDepth);");
76621
+ src.push(" float dy = dFdy(vFragDepth);");
76622
+ src.push(" float diff = sqrt(dx*dx+dy*dy);");
76623
+ src.push(" gl_FragDepth = isPerspective == 0.0 ? gl_FragCoord.z : log2( vFragDepth + diff ) * logDepthBufFC * 0.5;");
76617
76624
  }
76618
76625
  src.push("outCoords = ivec4(relativeToOriginPosition.xyz * uCoordinateScaler.xyz, - uLayerNumber);");
76619
76626
  src.push("}");
@@ -82912,7 +82919,7 @@ class SceneModel extends Component {
82912
82919
  cfg.primitive = "triangles";
82913
82920
  }
82914
82921
  if (cfg.primitive !== "points" && cfg.primitive !== "lines" && cfg.primitive !== "triangles" && cfg.primitive !== "solid" && cfg.primitive !== "surface") {
82915
- this.error(`[createGeometry] Unsupported value for 'primitive': '${primitive}' - supported values are 'points', 'lines', 'triangles', 'solid' and 'surface'. Defaulting to 'triangles'.`);
82922
+ this.error(`[createGeometry] Unsupported value for 'primitive': '${cfg.primitive}' - supported values are 'points', 'lines', 'triangles', 'solid' and 'surface'. Defaulting to 'triangles'.`);
82916
82923
  return;
82917
82924
  }
82918
82925
  if (!cfg.positions && !cfg.positionsCompressed && !cfg.buckets) {
@@ -85862,12 +85869,13 @@ class MousePickHandler {
85862
85869
  }
85863
85870
 
85864
85871
  const hoverSubs = cameraControl.hasSubs("hover");
85872
+ const hoverEnterSubs = cameraControl.hasSubs("hoverEnter");
85865
85873
  const hoverOutSubs = cameraControl.hasSubs("hoverOut");
85866
85874
  const hoverOffSubs = cameraControl.hasSubs("hoverOff");
85867
85875
  const hoverSurfaceSubs = cameraControl.hasSubs("hoverSurface");
85868
85876
  const hoverSnapOrSurfaceSubs = cameraControl.hasSubs("hoverSnapOrSurface");
85869
85877
 
85870
- if (hoverSubs || hoverOutSubs || hoverOffSubs || hoverSurfaceSubs || hoverSnapOrSurfaceSubs) {
85878
+ if (hoverSubs || hoverEnterSubs || hoverOutSubs || hoverOffSubs || hoverSurfaceSubs || hoverSnapOrSurfaceSubs) {
85871
85879
 
85872
85880
  pickController.pickCursorPos = states.pointerCanvasPos;
85873
85881
  pickController.schedulePickEntity = true;
@@ -106894,8 +106902,8 @@ function CubeTextureCanvas(viewer, navCubeScene, cfg = {}) {
106894
106902
  const facesZUp = [
106895
106903
  {boundary: [6, 6, 6, 6], color: cfg.frontColor || cfg.color || "#55FF55"},
106896
106904
  {boundary: [18, 6, 6, 6], color: cfg.backColor || cfg.color || "#55FF55"},
106897
- {boundary: [12, 6, 6, 6], color: cfg.leftColor || cfg.color || "#FF5555"},
106898
- {boundary: [0, 6, 6, 6], color: cfg.rightColor || cfg.color || "#FF5555"},
106905
+ {boundary: [12, 6, 6, 6], color: cfg.rightColor || cfg.color || "#FF5555"},
106906
+ {boundary: [0, 6, 6, 6], color: cfg.leftColor || cfg.color || "#FF5555"},
106899
106907
  {boundary: [6, 0, 6, 6], color: cfg.topColor || cfg.color || "#7777FF"},
106900
106908
  {boundary: [6, 12, 6, 6], color: cfg.bottomColor || cfg.color || "#7777FF"}
106901
106909
  ];
@@ -106932,8 +106940,8 @@ function CubeTextureCanvas(viewer, navCubeScene, cfg = {}) {
106932
106940
  [
106933
106941
  {boundary: [6, 6, 6, 6], color: cfg.frontColor || cfg.color || "#55FF55"},
106934
106942
  {boundary: [18, 6, 6, 6], color: cfg.backColor || cfg.color || "#55FF55"},
106935
- {boundary: [12, 6, 6, 6], color: cfg.leftColor || cfg.color || "#FF5555"},
106936
- {boundary: [0, 6, 6, 6], color: cfg.rightColor || cfg.color || "#FF5555"},
106943
+ {boundary: [12, 6, 6, 6], color: cfg.rightColor || cfg.color || "#FF5555"},
106944
+ {boundary: [0, 6, 6, 6], color: cfg.leftColor || cfg.color || "#FF5555"},
106937
106945
  {boundary: [6, 0, 6, 6], color: cfg.topColor || cfg.color || "#7777FF"},
106938
106946
  {boundary: [6, 12, 6, 6], color: cfg.bottomColor || cfg.color || "#7777FF"}
106939
106947
  ];