@xeokit/xeokit-sdk 2.6.105-XCD-439-transparent-issues-v3 → 2.6.106

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.
package/README.md CHANGED
@@ -2,7 +2,6 @@
2
2
 
3
3
  [![npm version](https://badge.fury.io/js/%40xeokit%2Fxeokit-sdk.svg)](https://badge.fury.io/js/%40xeokit%2Fxeokit-sdk)
4
4
  [![](https://data.jsdelivr.com/v1/package/npm/@xeokit/xeokit-sdk/badge)](https://www.jsdelivr.com/package/npm/@xeokit/xeokit-sdk)
5
- [![@xeokit/xeokit-sdk](https://snyk.io/advisor/npm-package/@xeokit/xeokit-sdk/badge.svg)](/advisor/npm-package/@xeokit/xeokit-sdk)
6
5
  [![CodeSee](https://github.com/xeokit/xeokit-sdk/actions/workflows/codesee-arch-diagram.yml/badge.svg)](https://github.com/xeokit/xeokit-sdk/actions/workflows/codesee-arch-diagram.yml)
7
6
 
8
7
  [xeokit](http://xeokit.io) is a JavaScript software development kit created by [xeolabs](http://xeolabs.com) and supported by [Creoox AG](https://creoox.com) for viewing
@@ -1,11 +1,11 @@
1
1
  /**
2
- * xeokit-sdk v2.6.105-XCD-439-transparent-issues-v3
3
- * Commit: 37cca0a9d4144d4d0a6bd8b69e24bf094e24b113
4
- * Built: 2026-02-06T13:40:32.054Z
2
+ * xeokit-sdk v2.6.106
3
+ * Commit: 198ae9cbd40c72fbcea53b2edf08d98c6fdac33e
4
+ * Built: 2026-02-20T12:48:25.197Z
5
5
  */
6
6
 
7
7
  if (typeof window !== 'undefined') {
8
- window.__XEOKIT__ = { version: '2.6.105-XCD-439-transparent-issues-v3', commit: '37cca0a9d4144d4d0a6bd8b69e24bf094e24b113', built: '2026-02-06T13:40:32.054Z' };
8
+ window.__XEOKIT__ = { version: '2.6.106', commit: '198ae9cbd40c72fbcea53b2edf08d98c6fdac33e', built: '2026-02-20T12:48:25.197Z' };
9
9
  }
10
10
 
11
11
  'use strict';
@@ -11423,7 +11423,7 @@ class CameraPath extends Component {
11423
11423
  }
11424
11424
  }
11425
11425
 
11426
- const tempVec3$9 = math.vec3();
11426
+ const tempVec3$8 = math.vec3();
11427
11427
  const newLook = math.vec3();
11428
11428
  const newEye = math.vec3();
11429
11429
  const newUp = math.vec3();
@@ -11685,7 +11685,7 @@ class CameraFlightAnimation extends Component {
11685
11685
 
11686
11686
  this._look2 = poi || aabbCenter;
11687
11687
 
11688
- const eyeLookVec = math.subVec3(this._eye1, this._look1, tempVec3$9);
11688
+ const eyeLookVec = math.subVec3(this._eye1, this._look1, tempVec3$8);
11689
11689
  const eyeLookVecNorm = math.normalizeVec3(eyeLookVec);
11690
11690
  const diag = poi ? math.getAABB3DiagPoint(aabb, poi) : math.getAABB3Diag(aabb);
11691
11691
  const fitFOV = params.fitFOV || this._fitFOV;
@@ -11844,12 +11844,12 @@ class CameraFlightAnimation extends Component {
11844
11844
  dist = Math.abs((diag) / Math.tan((params.fitFOV || this._fitFOV) * math.DEGTORAD));
11845
11845
 
11846
11846
  } else {
11847
- dist = math.lenVec3(math.subVec3(camera.eye, camera.look, tempVec3$9));
11847
+ dist = math.lenVec3(math.subVec3(camera.eye, camera.look, tempVec3$8));
11848
11848
  }
11849
11849
 
11850
11850
  math.mulVec3Scalar(newLookEyeVec, dist);
11851
11851
 
11852
- camera.eye = math.addVec3(newLook, newLookEyeVec, tempVec3$9);
11852
+ camera.eye = math.addVec3(newLook, newLookEyeVec, tempVec3$8);
11853
11853
  camera.look = newLook;
11854
11854
 
11855
11855
  this.scene.camera.ortho.scale = diag * 1.1;
@@ -21796,7 +21796,6 @@ const PickMeshShaderSource = function(meshHash, programVariables) {
21796
21796
  getHash: () => [ meshHash ],
21797
21797
  programName: "PickMesh",
21798
21798
  isPick: true,
21799
- dontBillboardAnything: true,
21800
21799
  appendFragmentOutputs: (src) => src.push(`${outColor} = ${pickColor};`)
21801
21800
  };
21802
21801
  };
@@ -21809,7 +21808,6 @@ const PickTriangleShaderSource = function(meshHash, programVariables, geometry)
21809
21808
  programName: "PickTriangle",
21810
21809
  isPick: true,
21811
21810
  trianglePick: true,
21812
- dontBillboardAnything: true,
21813
21811
  appendFragmentOutputs: (src) => src.push(`${outColor} = ${vColor};`)
21814
21812
  };
21815
21813
  };
@@ -21842,7 +21840,6 @@ const ShadowShaderSource = function(meshHash, programVariables) {
21842
21840
  programName: "Shadow",
21843
21841
  setsLineWidth: true,
21844
21842
  useShadowView: true,
21845
- dontBillboardAnything: true,
21846
21843
  dontGetLogDepth: true,
21847
21844
  appendFragmentOutputs: (src, getGammaOutputExpression, gl_FragCoord) => src.push(`${outColor} = ${encodeFloat}(${gl_FragCoord}.z);`)
21848
21845
  };
@@ -24239,7 +24236,7 @@ const instantiateMeshRenderer = (mesh, attributes, auxVariables, programSetup, p
24239
24236
  const projMatrix = programVariables.createUniform("mat4", "projMatrix");
24240
24237
 
24241
24238
  const billboard = mesh.billboard;
24242
- const isBillboard = (! programSetup.dontBillboardAnything) && ((billboard === "spherical") || (billboard === "cylindrical"));
24239
+ const isBillboard = (billboard === "spherical") || (billboard === "cylindrical");
24243
24240
  const stationary = mesh.stationary;
24244
24241
  const defineBillboard = isBillboard && ((name, src) => [
24245
24242
  `mat4 ${name}(in mat4 matIn) {`,
@@ -24262,17 +24259,13 @@ const instantiateMeshRenderer = (mesh, attributes, auxVariables, programSetup, p
24262
24259
  })();
24263
24260
 
24264
24261
  const fragmentOutputsSetup = [ ];
24265
- if (programSetup.dontBillboardAnything) {
24266
- fragmentOutputsSetup.push(`mat4 viewMatrix2 = ${viewMatrix};`);
24267
- } else {
24268
- fragmentOutputsSetup.push(`mat4 viewMatrix1 = ${viewMatrix};`);
24269
- if (stationary) {
24270
- fragmentOutputsSetup.push("viewMatrix1[3].xyz = vec3(0.0, 0.0, 0.0);");
24271
- } else if (meshStateBackground) {
24272
- fragmentOutputsSetup.push("viewMatrix1[3] = vec4(0.0, 0.0, 0.0, 1.0);");
24273
- }
24274
- fragmentOutputsSetup.push(`mat4 viewMatrix2 = ${billboardIfApplicableFrag("viewMatrix1")};`);
24262
+ fragmentOutputsSetup.push(`mat4 viewMatrix1 = ${viewMatrix};`);
24263
+ if (stationary) {
24264
+ fragmentOutputsSetup.push("viewMatrix1[3].xyz = vec3(0.0, 0.0, 0.0);");
24265
+ } else if (meshStateBackground) {
24266
+ fragmentOutputsSetup.push("viewMatrix1[3] = vec4(0.0, 0.0, 0.0, 1.0);");
24275
24267
  }
24268
+ fragmentOutputsSetup.push(`mat4 viewMatrix2 = ${billboardIfApplicableFrag("viewMatrix1")};`);
24276
24269
 
24277
24270
  const clipPos = "clipPos";
24278
24271
  const getVertexData = function() {
@@ -24284,20 +24277,16 @@ const instantiateMeshRenderer = (mesh, attributes, auxVariables, programSetup, p
24284
24277
  }
24285
24278
  src.push(`vec4 worldPosition = ${billboardIfApplicable(modelMatrix)} * localPosition;`);
24286
24279
  src.push(`worldPosition.xyz = worldPosition.xyz + ${offset};`);
24287
- if (programSetup.dontBillboardAnything) {
24288
- src.push(`vec4 viewPosition = ${viewMatrix} * worldPosition;`);
24289
- } else {
24290
- src.push(`mat4 viewMatrix1 = ${viewMatrix};`);
24291
- if (stationary) {
24292
- src.push("viewMatrix1[3].xyz = vec3(0.0, 0.0, 0.0);");
24293
- } else if (meshStateBackground) {
24294
- src.push("viewMatrix1[3] = vec4(0.0, 0.0, 0.0, 1.0);");
24295
- }
24296
- src.push(`mat4 viewMatrix2 = ${billboardIfApplicable("viewMatrix1")};`);
24297
- src.push(`vec4 viewPosition = ${(isBillboard
24280
+ src.push(`mat4 viewMatrix1 = ${viewMatrix};`);
24281
+ if (stationary) {
24282
+ src.push("viewMatrix1[3].xyz = vec3(0.0, 0.0, 0.0);");
24283
+ } else if (meshStateBackground) {
24284
+ src.push("viewMatrix1[3] = vec4(0.0, 0.0, 0.0, 1.0);");
24285
+ }
24286
+ src.push(`mat4 viewMatrix2 = ${billboardIfApplicable("viewMatrix1")};`);
24287
+ src.push(`vec4 viewPosition = ${(isBillboard
24298
24288
  ? `${billboardIfApplicable(`viewMatrix1 * ${modelMatrix}`)} * localPosition`
24299
24289
  : "viewMatrix2 * worldPosition")};`);
24300
- }
24301
24290
  decodedUv && decodedUv.needed && src.push(`vec2 ${decodedUv} = ${quantizedGeometry ? `(${uvDecodeMatrix} * vec3(${attributes.uv}, 1.0)).xy` : attributes.uv};`);
24302
24291
  if (worldNormal && worldNormal.needed) {
24303
24292
  const localNormal = quantizedGeometry ? `${programVariables.commonLibrary.octDecode}(${attributes.normal}.xy)` : attributes.normal;
@@ -26516,7 +26505,7 @@ class Texture extends Component {
26516
26505
  }
26517
26506
  }
26518
26507
 
26519
- const tempVec3$8 = math.vec3();
26508
+ const tempVec3$7 = math.vec3();
26520
26509
  const tempVec3b$a = math.vec3();
26521
26510
  math.vec3();
26522
26511
  const zeroVec$1 = math.vec3([0, -1, 0]);
@@ -26940,9 +26929,9 @@ class ImagePlane extends Component {
26940
26929
  const origin = this.scene.center;
26941
26930
  const negDir = [-this._dir[0], -this._dir[1], -this._dir[2]];
26942
26931
 
26943
- math.subVec3(origin, this.position, tempVec3$8);
26932
+ math.subVec3(origin, this.position, tempVec3$7);
26944
26933
 
26945
- const dist = -math.dotVec3(negDir, tempVec3$8);
26934
+ const dist = -math.dotVec3(negDir, tempVec3$7);
26946
26935
 
26947
26936
  math.normalizeVec3(negDir);
26948
26937
  math.mulVec3Scalar(negDir, dist, tempVec3b$a);
@@ -31953,7 +31942,7 @@ const SnapProgram = function(programVariables, geometry, isSnapInit, isPoints) {
31953
31942
  };
31954
31943
 
31955
31944
  const tempVec2 = math.vec2();
31956
- const tempVec3$7 = math.vec3();
31945
+ const tempVec3$6 = math.vec3();
31957
31946
  const tempVec4$1 = math.vec4();
31958
31947
  const tempMat4$2 = math.mat4();
31959
31948
  const vec3zero = math.vec3([0,0,0]);
@@ -32190,7 +32179,7 @@ const getRenderers = (function() {
32190
32179
  const origin = layer.origin;
32191
32180
  const model = layer.model;
32192
32181
  const viewParams = frameCtx.viewParams;
32193
- const rtcOrigin = tempVec3$7;
32182
+ const rtcOrigin = tempVec3$6;
32194
32183
  math.transformPoint3(model.matrix, origin, rtcOrigin);
32195
32184
 
32196
32185
  const viewMatrix = viewParams.viewMatrix;
@@ -32930,7 +32919,7 @@ const INDICES_EDGE_INDICES_ALIGNEMENT_SIZE = 8;
32930
32919
  */
32931
32920
  const MAX_OBJECT_UPDATES_IN_FRAME_WITHOUT_BATCHED_UPDATE = 10;
32932
32921
 
32933
- const tempVec3$6 = math.vec3();
32922
+ const tempVec3$5 = math.vec3();
32934
32923
  const tempVec3a$e = math.vec3();
32935
32924
  const tempVec4a$b = math.vec4();
32936
32925
  math.vec4();
@@ -33501,7 +33490,7 @@ class DTXLayer extends Layer {
33501
33490
  setInputValue(layerTypeInputs.worldMatrix, model.rotationMatrix);
33502
33491
  setInputValue(layerTypeInputs.viewMatrix, viewState.viewMatrix);
33503
33492
  setInputValue(layerTypeInputs.projMatrix, viewState.projMatrix);
33504
- const rtcOrigin = math.transformPoint3(model.matrix, origin, tempVec3$6);
33493
+ const rtcOrigin = math.transformPoint3(model.matrix, origin, tempVec3$5);
33505
33494
  setInputValue(layerTypeInputs.uCameraEyeRtc, math.subVec3(viewState.eye, rtcOrigin, tempVec3a$e));
33506
33495
  setInputValue(layerTypeInputs.perObjPosDecode, texturePerObjectPositionsDecodeMatrix);
33507
33496
  setInputValue(layerTypeInputs.perVertIdCoords, texturePerVertexIdCoordinates);
@@ -38864,7 +38853,6 @@ class SceneModel extends Component {
38864
38853
  this.renderOrder = cfg.renderOrder || 0;
38865
38854
 
38866
38855
  this._dtxEnabled = this.scene.dtxEnabled && (cfg.dtxEnabled !== false);
38867
- this._layerPerMesh = this.scene.layerPerMesh;
38868
38856
 
38869
38857
  this._enableVertexWelding = false; // Not needed for most objects, and very expensive, so disabled
38870
38858
  this._enableIndexBucketing = false; // Until fixed: https://github.com/xeokit/xeokit-sdk/issues/1204
@@ -40736,7 +40724,7 @@ class SceneModel extends Component {
40736
40724
  const positionsDecodeHash = posDecode ? this._createHashStringFromMatrix(posDecode) : "-";
40737
40725
  const textureSetId = cfg.textureSetId || "-";
40738
40726
  const geometryId = instancing ? cfg.geometryId : "-";
40739
- const layerId = (instancing ? "instancing" : "batching") + `.${Math.round(origin[0])}.${Math.round(origin[1])}.${Math.round(origin[2])}.${primitive}.${positionsDecodeHash}.${textureSetId}.${geometryId}.${this._layerPerMesh ? Object.keys(this._vboLayers).length : "-"}`;
40727
+ const layerId = (instancing ? "instancing" : "batching") + `.${Math.round(origin[0])}.${Math.round(origin[1])}.${Math.round(origin[2])}.${primitive}.${positionsDecodeHash}.${textureSetId}.${geometryId}`;
40740
40728
 
40741
40729
  if ((! instancing) && (layerId in this._vboLayers)) {
40742
40730
  const layer = this._vboLayers[layerId];
@@ -47148,7 +47136,6 @@ const vec3_0 = math.vec3([0,0,0]);
47148
47136
  const iota = (n) => { const ret = [ ]; for (let i = 0; i < n; ++i) ret.push(i); return ret; };
47149
47137
 
47150
47138
  const tempPlanes = iota(6).map(() => math.vec4());
47151
- const tempVec3$5 = math.vec3();
47152
47139
  const tempVec4 = math.vec4();
47153
47140
 
47154
47141
  const bitShiftScreenZ = math.vec4([1.0 / (256.0 * 256.0 * 256.0 * 256.0), 1.0 / (256.0 * 256.0 * 256.0), 1.0 / (256.0 * 256.0), 1.0 / 256.0]);
@@ -48141,40 +48128,6 @@ const Renderer$1 = function (scene, options) {
48141
48128
  if (normalFillTransparentBinLen > 0 || normalEdgesTransparentBinLen > 0) {
48142
48129
  gl.blendFunc(gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA);
48143
48130
  }
48144
-
48145
- if (options.sortAllTransparent) {
48146
- const eye = frameCtx.viewParams.eye;
48147
- normalFillTransparentBin.length = normalFillTransparentBinLen; // normalFillTransparentBin reused by renderDrawables calls, so needs to be truncated if necessary
48148
-
48149
- const transparentDrawables = [ ];
48150
- const appendTransparentDrawable = (d, draw) => {
48151
- math.getAABB3Center(d.aabb, tempVec3$5);
48152
- transparentDrawables.push({ draw: draw, distSq: math.distVec3(eye, math.getAABB3Center(d.aabb, tempVec3$5)) });
48153
- };
48154
- iota(normalEdgesTransparentBinLen).forEach(i => {
48155
- const d = normalEdgesTransparentBin[i];
48156
- appendTransparentDrawable(d, () => d.drawEdgesColorTransparent(frameCtx));
48157
- });
48158
-
48159
- iota(normalFillTransparentBinLen).forEach(i => {
48160
- const d = normalFillTransparentBin[i];
48161
- appendTransparentDrawable(d, () => d.drawColorTransparent(frameCtx));
48162
- });
48163
-
48164
- iota(xrayEdgesTransparentBinLen).forEach(i => {
48165
- const d = xrayEdgesTransparentBin[i];
48166
- appendTransparentDrawable(d, () => d.drawEdgesXRayed(frameCtx));
48167
- });
48168
-
48169
- iota(xrayedFillTransparentBinLen).forEach(i => {
48170
- const d = xrayedFillTransparentBin[i];
48171
- appendTransparentDrawable(d, () => d.drawSilhouetteXRayed(frameCtx));
48172
- });
48173
-
48174
- transparentDrawables.sort((a, b) => b.distSq - a.distSq).forEach(d => d.draw());
48175
-
48176
- } else {
48177
-
48178
48131
  if (normalEdgesTransparentBinLen > 0) {
48179
48132
  for (i = 0; i < normalEdgesTransparentBinLen; i++) {
48180
48133
  drawable = normalEdgesTransparentBin[i];
@@ -48209,7 +48162,6 @@ const Renderer$1 = function (scene, options) {
48209
48162
  xrayedFillTransparentBin[i].drawSilhouetteXRayed(frameCtx);
48210
48163
  }
48211
48164
  }
48212
- }
48213
48165
 
48214
48166
  gl.disable(gl.BLEND);
48215
48167
  if (!alphaDepthMask) {
@@ -55048,8 +55000,7 @@ class Scene extends Component {
55048
55000
 
55049
55001
  this._renderer = new Renderer$1(this, {
55050
55002
  transparent: transparent,
55051
- alphaDepthMask: alphaDepthMask,
55052
- sortAllTransparent: cfg.sortAllTransparent
55003
+ alphaDepthMask: alphaDepthMask
55053
55004
  });
55054
55005
 
55055
55006
  this._sectionPlanesState = new (function () {
@@ -55285,7 +55236,6 @@ class Scene extends Component {
55285
55236
  this._colorTextureEnabled = (cfg.colorTextureEnabled !== false);
55286
55237
  this._dtxEnabled = !!cfg.dtxEnabled;
55287
55238
  this._markerZOffset = cfg.markerZOffset;
55288
- this.layerPerMesh = cfg.layerPerMesh;
55289
55239
 
55290
55240
  // Register Scene on xeokit
55291
55241
  // Do this BEFORE we add components below
@@ -102962,7 +102912,6 @@ class Viewer {
102962
102912
  * configures renderer logic for the specified number of SectionPlanes, eliminating the need for setting up logic with each SectionPlane creation and thereby enhancing
102963
102913
  * responsiveness. It is important to consider that each SectionPlane impacts rendering performance, so it is recommended to set this value to a quantity that aligns with
102964
102914
  * your expected usage.
102965
- * @param {Boolean} [cfg.sortAllTransparent=false] Whether to sort all transparent objects by their distance from the camera, before drawing on the scene.
102966
102915
  */
102967
102916
  constructor(cfg) {
102968
102917
 
@@ -103021,10 +102970,8 @@ class Viewer {
103021
102970
  pbrEnabled: (!!cfg.pbrEnabled),
103022
102971
  colorTextureEnabled: (cfg.colorTextureEnabled !== false),
103023
102972
  dtxEnabled: (!!cfg.dtxEnabled),
103024
- layerPerMesh: (!!cfg.layerPerMesh),
103025
102973
  markerZOffset: cfg.markerZOffset,
103026
- numCachedSectionPlanes: cfg.numCachedSectionPlanes,
103027
- sortAllTransparent: cfg.sortAllTransparent
102974
+ numCachedSectionPlanes: cfg.numCachedSectionPlanes
103028
102975
  });
103029
102976
 
103030
102977
  /**
@@ -124109,7 +124056,7 @@ function load$3(viewer, options, inflatedData, sceneModel, metaModel, manifestCt
124109
124056
  if (geometryArrays.geometryPositions.length > 1000) ;
124110
124057
  if (geometryArrays.batchThisMesh) {
124111
124058
  geometryArrays.decompressedPositions = new Float32Array(geometryArrays.geometryPositions.length);
124112
- geometryArrays.transformedAndRecompressedPositions = new Uint16Array(geometryArrays.geometryPositions.length);
124059
+ geometryArrays.transformedAndRecompressedPositionsLength = geometryArrays.geometryPositions.length;
124113
124060
  const geometryPositions = geometryArrays.geometryPositions;
124114
124061
  const decompressedPositions = geometryArrays.decompressedPositions;
124115
124062
  for (let i = 0, len = geometryPositions.length; i < len; i += 3) {
@@ -124128,7 +124075,7 @@ function load$3(viewer, options, inflatedData, sceneModel, metaModel, manifestCt
124128
124075
  if (geometryArrays.batchThisMesh) {
124129
124076
 
124130
124077
  const decompressedPositions = geometryArrays.decompressedPositions;
124131
- const transformedAndRecompressedPositions = geometryArrays.transformedAndRecompressedPositions;
124078
+ const transformedAndRecompressedPositions = new Uint16Array(geometryArrays.transformedAndRecompressedPositionsLength);
124132
124079
 
124133
124080
  for (let i = 0, len = decompressedPositions.length; i < len; i += 3) {
124134
124081
  tempVec4a$3[0] = decompressedPositions[i + 0];
@@ -124728,7 +124675,7 @@ function load$2(viewer, options, inflatedData, sceneModel, metaModel, manifestCt
124728
124675
  if (geometryArrays.geometryPositions.length > 1000) ;
124729
124676
  if (geometryArrays.batchThisMesh) {
124730
124677
  geometryArrays.decompressedPositions = new Float32Array(geometryArrays.geometryPositions.length);
124731
- geometryArrays.transformedAndRecompressedPositions = new Uint16Array(geometryArrays.geometryPositions.length);
124678
+ geometryArrays.transformedAndRecompressedPositionsLength = geometryArrays.geometryPositions.length;
124732
124679
  const geometryPositions = geometryArrays.geometryPositions;
124733
124680
  const decompressedPositions = geometryArrays.decompressedPositions;
124734
124681
  for (let i = 0, len = geometryPositions.length; i < len; i += 3) {
@@ -124747,7 +124694,7 @@ function load$2(viewer, options, inflatedData, sceneModel, metaModel, manifestCt
124747
124694
  if (geometryArrays.batchThisMesh) {
124748
124695
 
124749
124696
  const decompressedPositions = geometryArrays.decompressedPositions;
124750
- const transformedAndRecompressedPositions = geometryArrays.transformedAndRecompressedPositions;
124697
+ const transformedAndRecompressedPositions = new Uint16Array(geometryArrays.transformedAndRecompressedPositionsLength);
124751
124698
 
124752
124699
  for (let i = 0, len = decompressedPositions.length; i < len; i += 3) {
124753
124700
  tempVec4a$2[0] = decompressedPositions[i + 0];
@@ -125376,7 +125323,7 @@ function load$1(viewer, options, inflatedData, sceneModel, metaModel, manifestCt
125376
125323
  if (geometryArrays.geometryPositions.length > 1000) ;
125377
125324
  if (geometryArrays.batchThisMesh) {
125378
125325
  geometryArrays.decompressedPositions = new Float32Array(geometryArrays.geometryPositions.length);
125379
- geometryArrays.transformedAndRecompressedPositions = new Uint16Array(geometryArrays.geometryPositions.length);
125326
+ geometryArrays.transformedAndRecompressedPositionsLength = geometryArrays.geometryPositions.length;
125380
125327
  const geometryPositions = geometryArrays.geometryPositions;
125381
125328
  const decompressedPositions = geometryArrays.decompressedPositions;
125382
125329
  for (let i = 0, len = geometryPositions.length; i < len; i += 3) {
@@ -125395,7 +125342,7 @@ function load$1(viewer, options, inflatedData, sceneModel, metaModel, manifestCt
125395
125342
  if (geometryArrays.batchThisMesh) {
125396
125343
 
125397
125344
  const decompressedPositions = geometryArrays.decompressedPositions;
125398
- const transformedAndRecompressedPositions = geometryArrays.transformedAndRecompressedPositions;
125345
+ const transformedAndRecompressedPositions = new Uint16Array(geometryArrays.transformedAndRecompressedPositionsLength);
125399
125346
 
125400
125347
  for (let i = 0, len = decompressedPositions.length; i < len; i += 3) {
125401
125348
  tempVec4a$1[0] = decompressedPositions[i + 0];
@@ -126129,11 +126076,11 @@ function load(viewer, options, inflatedData, sceneModel, metaModel, manifestCtx)
126129
126076
  if (geometryArrays.geometryPositions && geometryArrays.geometryPositions.length > 1000) ;
126130
126077
  if (geometryArrays.batchThisMesh) {
126131
126078
  if(primitiveType === 7) {
126132
- geometryArrays.transformedAndRecompressedPositions = new Uint16Array(geometryArrays.decompressedPositions.length);
126079
+ geometryArrays.transformedAndRecompressedPositionsLength = geometryArrays.decompressedPositions.length;
126133
126080
  }
126134
126081
  else {
126135
126082
  geometryArrays.decompressedPositions = new Float32Array(geometryArrays.geometryPositions.length);
126136
- geometryArrays.transformedAndRecompressedPositions = new Uint16Array(geometryArrays.geometryPositions.length);
126083
+ geometryArrays.transformedAndRecompressedPositionsLength = geometryArrays.geometryPositions.length;
126137
126084
  const geometryPositions = geometryArrays.geometryPositions;
126138
126085
  const decompressedPositions = geometryArrays.decompressedPositions;
126139
126086
  for (let i = 0, len = geometryPositions.length; i < len; i += 3) {
@@ -126154,7 +126101,7 @@ function load(viewer, options, inflatedData, sceneModel, metaModel, manifestCtx)
126154
126101
  if (geometryArrays.batchThisMesh) {
126155
126102
 
126156
126103
  const decompressedPositions = geometryArrays.decompressedPositions;
126157
- const transformedAndRecompressedPositions = geometryArrays.transformedAndRecompressedPositions;
126104
+ const transformedAndRecompressedPositions = new Uint16Array(geometryArrays.transformedAndRecompressedPositionsLength);
126158
126105
 
126159
126106
  for (let i = 0, len = decompressedPositions.length; i < len; i += 3) {
126160
126107
  tempVec4a[0] = decompressedPositions[i + 0];
@@ -126438,7 +126385,7 @@ parsers[ParserV12.version] = ParserV12;
126438
126385
  * We have several ways to convert your files into XKT. See these tutorials for more info:
126439
126386
  *
126440
126387
  * * [Converting Models to XKT with convert2xkt](https://xeokit.io/blog/converting-models-to-xkt-with-convert2xkt) - how to convert various file formats (glTF, IFC, CityJSON, LAS/LAZ...) to XKT using our nodejs-based converter.
126441
- * * [Converting IFC Models to XKT using 3rd-Party Open Source Tools](https://www.notion.so/xeokit/Converting-IFC-Models-to-XKT-using-3rd-Party-Open-Source-Tools-c373e48bc4094ff5b6e5c5700ff580ee) - how to convert IFC files to XKT using 3rd-party open source CLI tools.
126388
+ * * [Converting IFC Models to XKT using various different methods, including 3rd-Party Open Source Tools](https://xeokit.io/blog/xeokit-loaders-&-converters) - how to convert IFC files to XKT using various different methods, including 3rd-party open source CLI tools.
126442
126389
  *
126443
126390
  * # Scene representation
126444
126391
  *
@@ -135122,7 +135069,6 @@ class Zone extends Component {
135122
135069
  this.plugin.viewer.scene;
135123
135070
 
135124
135071
  this._geometry = cfg.geometry;
135125
- this._isUI = !!cfg.isUI;
135126
135072
 
135127
135073
  cfg.onMouseOver ? (event) => {
135128
135074
  cfg.onMouseOver(event, this);
@@ -135222,7 +135168,6 @@ class Zone extends Component {
135222
135168
  indices: ind,
135223
135169
  normals: math.buildNormals(positions, ind)
135224
135170
  }),
135225
- isUI: this._isUI,
135226
135171
  material: new PhongMaterial(scene, {
135227
135172
  alpha: this._alpha,
135228
135173
  backfaces: true,
@@ -135519,7 +135464,6 @@ class Zone extends Component {
135519
135464
  return {
135520
135465
  id: this.id,
135521
135466
  geometry: this._geometry,
135522
- isUI: this._isUI,
135523
135467
  alpha: this._alpha,
135524
135468
  color: this._color
135525
135469
  };
@@ -135534,7 +135478,6 @@ class Zone extends Component {
135534
135478
  altitude: this._geometry.altitude,
135535
135479
  height: this._geometry.height
135536
135480
  },
135537
- isUI: this._isUI,
135538
135481
  alpha: this._alpha,
135539
135482
  color: this._color
135540
135483
  });
@@ -135772,7 +135715,6 @@ class ZonesPlugin extends Plugin {
135772
135715
 
135773
135716
  this.defaultColor = cfg.defaultColor !== undefined ? cfg.defaultColor : "#00BBFF";
135774
135717
  this.zIndex = cfg.zIndex || 10000;
135775
- this._isUI = cfg.isUI;
135776
135718
 
135777
135719
  this._onMouseOver = (event, zone) => {
135778
135720
  this.fire("mouseOver", {
@@ -135824,7 +135766,6 @@ class ZonesPlugin extends Plugin {
135824
135766
  plugin: this,
135825
135767
  container: this._container,
135826
135768
  geometry: params.geometry,
135827
- isUI: this._isUI,
135828
135769
  alpha: params.alpha,
135829
135770
  color: params.color,
135830
135771
  onMouseOver: this._onMouseOver,