@threepipe/plugin-3d-tiles-renderer 0.2.0 → 0.3.0

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.
@@ -1,4 +1,4 @@
1
- import { AViewerPluginEventMap, AViewerPluginSync, IAssetImporter, ILoader, Importer, IObject3D, Loader, ImportAddOptions, LoadingManager, ThreeViewer } from 'threepipe';
1
+ import { AViewerPluginEventMap, AViewerPluginSync, IAssetImporter, ILoader, ImportAddOptions, Importer, IObject3D, Loader, LoadingManager, ThreeViewer } from 'threepipe';
2
2
  import { TilesGroup, TilesRenderer } from '3d-tiles-renderer';
3
3
  export type TilesRendererGroup = TilesGroup & IObject3D;
4
4
  export interface TilesRendererPluginEventMap extends AViewerPluginEventMap {
@@ -29,8 +29,8 @@ export declare class TilesRendererPlugin extends AViewerPluginSync<TilesRenderer
29
29
  private _preRender;
30
30
  private _resize;
31
31
  private _cachedRefs?;
32
- private _addSceneObject;
33
- promptForURL(): Promise<TilesRendererGroup | undefined>;
32
+ private _objectExt;
33
+ promptForURL(): Promise<(IObject3D<import('threepipe').IObject3DEventMap> & import('threepipe').ImportResultExtras) | (import('threepipe').ITexture<import('threepipe').TextureEventMap> & import('threepipe').ImportResultExtras) | (import('threepipe').ICamera<import('threepipe').ICameraEventMap> & import('threepipe').ImportResultExtras) | (import('threepipe').ISerializedConfig & import('threepipe').ImportResultExtras) | (import('threepipe').RootSceneImportResult & import('threepipe').ImportResultExtras) | (import('threepipe').IMaterial<import('threepipe').IMaterialEventMap> & import('threepipe').ImportResultExtras) | import('threepipe').ImportResult[] | TilesRendererGroup | undefined>;
34
34
  }
35
35
  export declare class TilesRendererLoader extends Loader implements ILoader<TilesRendererGroup> {
36
36
  isTilesRendererLoader: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"TilesRendererPlugin.d.ts","sourceRoot":"","sources":["../src/TilesRendererPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,qBAAqB,EACrB,iBAAiB,EAIjB,cAAc,EACd,OAAO,EACP,QAAQ,EACR,SAAS,EAMT,MAAM,EACN,gBAAgB,EAChB,cAAc,EACd,WAAW,EACd,MAAM,WAAW,CAAA;AAClB,OAAO,EAAC,UAAU,EAAE,aAAa,EAAC,MAAM,mBAAmB,CAAA;AAK3D,MAAM,MAAM,kBAAkB,GAAG,UAAU,GAAG,SAAS,CAAA;AAEvD,MAAM,WAAW,2BAA4B,SAAQ,qBAAqB;IACtE,OAAO,EAAE;QAAC,KAAK,EAAE,kBAAkB,CAAA;KAAC,CAAA;IACpC,UAAU,EAAE;QAAC,KAAK,EAAE,kBAAkB,CAAA;KAAC,CAAA;CAC1C;AAED;;;;GAIG;AACH,qBAAa,mBAAoB,SAAQ,iBAAiB,CAAC,2BAA2B,CAAC;IACnF,gBAAuB,UAAU,EAAE,MAAM,CAAwB;IACjE,OAAO,UAAO;IACd,YAAY,UAAK;IAEjB,MAAM,CAAC,QAAQ,CAAC,SAAS,aAAY;IAErC,OAAO,EAAE,kBAAkB,EAAE,CAAK;IAElC,SAAS,CAAC,SAAS,gCAAyH;;IAMtI,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,gBAAgB;IAkB5C,aAAa,CAAC,IAAI,EAAE,kBAAkB,CAAC,qBAAqB,CAAC,EAAE,OAAO,CAAC,EAAE,gBAAgB;IAW/F,OAAO,CAAC,MAAM,EAAE,WAAW;IAiB3B,QAAQ,CAAC,MAAM,EAAE,WAAW;IAc5B,OAAO,CAAC,UAAU,CAcjB;IAsBD,OAAO,CAAC,OAAO,CAKd;IAED,OAAO,CAAC,WAAW,CAAC,CAA2F;IAE/G,OAAO,CAAC,eAAe,CAwCtB;IAGK,YAAY;CAKrB;AAED,qBAAa,mBAAoB,SAAQ,MAAO,YAAW,OAAO,CAAC,kBAAkB,CAAC;IAClF,qBAAqB,UAAO;IAC5B,EAAE,CAAC,EAAE,cAAc,CAAA;IACnB,aAAa,CAAC,EAAE,gBAAgB,CAAA;IAEhC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,kBAAkB,EAAE,KAAK,EAAE,kBAAkB,KAAG,MAAM,GAAC,SAAS,CAAC,EAAE,CAKhF;gBAEW,OAAO,EAAE,cAAc;IAInC,SAAS,CAAC,oBAAoB,CAAC,GAAG,EAAE,MAAM;IAW1C,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,EAAE,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI;CA8FrI;AAED,MAAM,WAAW,kBAAkB;IAC/B;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,oBAAoB,CAAC,EAAE,OAAO,CAAA;IAC9B,eAAe,CAAC,EAAE,OAAO,GAAG;QACxB,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,aAAa,CAAC,EAAE,OAAO,CAAC;QACxB,YAAY,CAAC,EAAE,MAAM,CAAC;KACzB,CAAA;IACD,mBAAmB,CAAC,EAAE,OAAO,GAAG;QAC5B,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACxB,gBAAgB,CAAC,EAAE,OAAO,CAAA;KAC7B,CAAA;IACD,OAAO,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,kBAAkB,EAAE,KAAK,EAAE,kBAAkB,KAAG,MAAM,GAAC,SAAS,CAAC,EAAE,CAAA;CACxF;AAED,OAAO,QAAQ,WAAW,CAAA;IACtB,UAAU,gBAAgB;QACtB,KAAK,CAAC,EAAE,kBAAkB,CAAA;KAC7B;CACJ"}
1
+ {"version":3,"file":"TilesRendererPlugin.d.ts","sourceRoot":"","sources":["../src/TilesRendererPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,qBAAqB,EACrB,iBAAiB,EAKjB,cAAc,EACd,OAAO,EACP,gBAAgB,EAChB,QAAQ,EACR,SAAS,EAIT,MAAM,EACN,cAAc,EAGd,WAAW,EAId,MAAM,WAAW,CAAA;AAClB,OAAO,EAAC,UAAU,EAAE,aAAa,EAAC,MAAM,mBAAmB,CAAA;AAU3D,MAAM,MAAM,kBAAkB,GAAG,UAAU,GAAG,SAAS,CAAA;AAEvD,MAAM,WAAW,2BAA4B,SAAQ,qBAAqB;IACtE,OAAO,EAAE;QAAC,KAAK,EAAE,kBAAkB,CAAA;KAAC,CAAA;IACpC,UAAU,EAAE;QAAC,KAAK,EAAE,kBAAkB,CAAA;KAAC,CAAA;CAC1C;AAED;;;;GAIG;AACH,qBACa,mBAAoB,SAAQ,iBAAiB,CAAC,2BAA2B,CAAC;IACnF,gBAAuB,UAAU,EAAE,MAAM,CAAwB;IACjE,OAAO,UAAO;IACd,YAAY,UAAK;IAEjB,MAAM,CAAC,QAAQ,CAAC,SAAS,aAAY;IAErC,OAAO,EAAE,kBAAkB,EAAE,CAAK;IAElC,SAAS,CAAC,SAAS,gCAAyH;;IAMtI,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,gBAAgB;IAoB5C,aAAa,CAAC,IAAI,EAAE,kBAAkB,CAAC,qBAAqB,CAAC,EAAE,OAAO,CAAC,EAAE,gBAAgB;IAW/F,OAAO,CAAC,MAAM,EAAE,WAAW;IAkB3B,QAAQ,CAAC,MAAM,EAAE,WAAW;IAe5B,OAAO,CAAC,UAAU,CAcjB;IAsBD,OAAO,CAAC,OAAO,CAKd;IAED,OAAO,CAAC,WAAW,CAAC,CAA2F;IAE/G,OAAO,CAAC,UAAU,CAyCjB;IAGK,YAAY;CAMrB;AAED,qBAAa,mBAAoB,SAAQ,MAAO,YAAW,OAAO,CAAC,kBAAkB,CAAC;IAClF,qBAAqB,UAAO;IAC5B,EAAE,CAAC,EAAE,cAAc,CAAA;IACnB,aAAa,CAAC,EAAE,gBAAgB,CAAA;IAEhC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,kBAAkB,EAAE,KAAK,EAAE,kBAAkB,KAAG,MAAM,GAAC,SAAS,CAAC,EAAE,CAKhF;gBAEW,OAAO,EAAE,cAAc;IAInC,SAAS,CAAC,oBAAoB,CAAC,GAAG,EAAE,MAAM;IAW1C,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,EAAE,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,EAAE,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI;CA2GrI;AAED,MAAM,WAAW,kBAAkB;IAC/B;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,oBAAoB,CAAC,EAAE,OAAO,CAAA;IAC9B,eAAe,CAAC,EAAE,OAAO,GAAG;QACxB,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,aAAa,CAAC,EAAE,OAAO,CAAC;QACxB,YAAY,CAAC,EAAE,MAAM,CAAC;KACzB,CAAA;IACD,mBAAmB,CAAC,EAAE,OAAO,GAAG;QAC5B,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACxB,gBAAgB,CAAC,EAAE,OAAO,CAAA;KAC7B,CAAA;IACD,OAAO,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,kBAAkB,EAAE,KAAK,EAAE,kBAAkB,KAAG,MAAM,GAAC,SAAS,CAAC,EAAE,CAAA;CACxF;AAED,OAAO,QAAQ,WAAW,CAAA;IACtB,UAAU,gBAAgB;QACtB,KAAK,CAAC,EAAE,kBAAkB,CAAA;KAC7B;CACJ"}
package/dist/index.js CHANGED
@@ -3,13 +3,12 @@
3
3
  })(this, function(exports2, THREE) {
4
4
  "use strict";/**
5
5
  * @license
6
- * @threepipe/plugin-3d-tiles-renderer v0.2.0
6
+ * @threepipe/plugin-3d-tiles-renderer v0.3.0
7
7
  * Copyright 2022-2025 repalash <palash@shaders.app>
8
8
  * Apache-2.0 License
9
9
  * See ./dependencies.txt for any bundled third-party dependencies and licenses.
10
10
  */
11
11
 
12
- var _a;
13
12
  function _interopNamespaceDefault(e) {
14
13
  const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
15
14
  if (e) {
@@ -900,7 +899,7 @@
900
899
  }
901
900
  }
902
901
  preprocessNode(tile, tileSetDir, parentTile = null) {
903
- var _a2;
902
+ var _a;
904
903
  if (tile.content) {
905
904
  if (!("uri" in tile.content) && "url" in tile.content) {
906
905
  tile.content.uri = tile.content.url;
@@ -912,7 +911,7 @@
912
911
  }
913
912
  tile.parent = parentTile;
914
913
  tile.children = tile.children || [];
915
- if ((_a2 = tile.content) == null ? void 0 : _a2.uri) {
914
+ if ((_a = tile.content) == null ? void 0 : _a.uri) {
916
915
  const extension = getUrlExtension(tile.content.uri);
917
916
  tile.__hasContent = true;
918
917
  tile.__hasUnrenderableContent = Boolean(extension && /json$/.test(extension));
@@ -7585,8 +7584,8 @@
7585
7584
  }
7586
7585
  const EXT_NAME$1 = "EXT_structural_metadata";
7587
7586
  function getRelevantTextures(parser, propertyTextures = []) {
7588
- var _a2;
7589
- const textureCount = ((_a2 = parser.json.textures) == null ? void 0 : _a2.length) || 0;
7587
+ var _a;
7588
+ const textureCount = ((_a = parser.json.textures) == null ? void 0 : _a.length) || 0;
7590
7589
  const result = new Array(textureCount).fill(null);
7591
7590
  propertyTextures.forEach(({ properties }) => {
7592
7591
  for (const key in properties) {
@@ -7599,8 +7598,8 @@
7599
7598
  return Promise.all(result);
7600
7599
  }
7601
7600
  function getRelevantBuffers(parser, propertyTables = []) {
7602
- var _a2;
7603
- const textureCount = ((_a2 = parser.json.bufferViews) == null ? void 0 : _a2.length) || 0;
7601
+ var _a;
7602
+ const textureCount = ((_a = parser.json.bufferViews) == null ? void 0 : _a.length) || 0;
7604
7603
  const result = new Array(textureCount).fill(null);
7605
7604
  propertyTables.forEach(({ properties }) => {
7606
7605
  for (const key in properties) {
@@ -7649,10 +7648,10 @@
7649
7648
  const rootMetadata = new StructuralMetadata(rootExtension, textures, buffers);
7650
7649
  scene.userData.structuralMetadata = rootMetadata;
7651
7650
  scene.traverse((child) => {
7652
- var _a2;
7651
+ var _a;
7653
7652
  if (parser.associations.has(child)) {
7654
7653
  const { meshes, primitives } = parser.associations.get(child);
7655
- const primitive = (_a2 = parser.json.meshes[meshes]) == null ? void 0 : _a2.primitives[primitives];
7654
+ const primitive = (_a = parser.json.meshes[meshes]) == null ? void 0 : _a.primitives[primitives];
7656
7655
  if (primitive && primitive.extensions && primitive.extensions[EXT_NAME$1]) {
7657
7656
  const extension = primitive.extensions[EXT_NAME$1];
7658
7657
  child.userData.structuralMetadata = new StructuralMetadata(rootExtension, textures, buffers, extension, child);
@@ -7787,10 +7786,10 @@
7787
7786
  const EXT_NAME = "EXT_mesh_features";
7788
7787
  function forEachPrimitiveExtension(scene, parser, callback) {
7789
7788
  scene.traverse((c) => {
7790
- var _a2;
7789
+ var _a;
7791
7790
  if (parser.associations.has(c)) {
7792
7791
  const { meshes, primitives } = parser.associations.get(c);
7793
- const primitive = (_a2 = parser.json.meshes[meshes]) == null ? void 0 : _a2.primitives[primitives];
7792
+ const primitive = (_a = parser.json.meshes[meshes]) == null ? void 0 : _a.primitives[primitives];
7794
7793
  if (primitive && primitive.extensions && primitive.extensions[EXT_NAME]) {
7795
7794
  callback(c, primitive.extensions[EXT_NAME]);
7796
7795
  }
@@ -7803,12 +7802,12 @@
7803
7802
  this.name = EXT_NAME;
7804
7803
  }
7805
7804
  async afterRoot({ scene, parser }) {
7806
- var _a2;
7805
+ var _a;
7807
7806
  const extensionsUsed = parser.json.extensionsUsed;
7808
7807
  if (!extensionsUsed || !extensionsUsed.includes(EXT_NAME)) {
7809
7808
  return;
7810
7809
  }
7811
- const textureCount = ((_a2 = parser.json.textures) == null ? void 0 : _a2.length) || 0;
7810
+ const textureCount = ((_a = parser.json.textures) == null ? void 0 : _a.length) || 0;
7812
7811
  const promises = new Array(textureCount).fill(null);
7813
7812
  forEachPrimitiveExtension(scene, parser, (child, { featureIds }) => {
7814
7813
  featureIds.forEach((info) => {
@@ -8683,8 +8682,8 @@
8683
8682
  }
8684
8683
  // initializes the batched mesh if it needs to be, dispose if it it's no longer needed
8685
8684
  initBatchedMesh() {
8686
- var _a2;
8687
- const otherBatchedMesh = (_a2 = this.tiles.getPluginByName("BATCHED_TILES_PLUGIN")) == null ? void 0 : _a2.batchedMesh;
8685
+ var _a;
8686
+ const otherBatchedMesh = (_a = this.tiles.getPluginByName("BATCHED_TILES_PLUGIN")) == null ? void 0 : _a.batchedMesh;
8688
8687
  if (otherBatchedMesh) {
8689
8688
  if (this.batchedMesh === null) {
8690
8689
  this._onBatchedMeshDispose = () => {
@@ -9397,7 +9396,7 @@
9397
9396
  }
9398
9397
  }
9399
9398
  dispose() {
9400
- var _a2, _b, _c;
9399
+ var _a, _b, _c;
9401
9400
  const tiles = this.tiles;
9402
9401
  if (tiles) {
9403
9402
  tiles.removeEventListener("load-tile-set", this._onLoadTileSetCB);
@@ -9411,7 +9410,7 @@
9411
9410
  this._onDisposeModel(tile);
9412
9411
  });
9413
9412
  }
9414
- (_a2 = this.boxGroup) == null ? void 0 : _a2.removeFromParent();
9413
+ (_a = this.boxGroup) == null ? void 0 : _a.removeFromParent();
9415
9414
  (_b = this.sphereGroup) == null ? void 0 : _b.removeFromParent();
9416
9415
  (_c = this.regionGroup) == null ? void 0 : _c.removeFromParent();
9417
9416
  }
@@ -10061,7 +10060,7 @@
10061
10060
  this.tiles = tiles;
10062
10061
  }
10063
10062
  preprocessNode(tile, tileSetDir, parentTile) {
10064
- var _a2;
10063
+ var _a;
10065
10064
  if (tile.implicitTiling) {
10066
10065
  tile.__hasUnrenderableContent = true;
10067
10066
  tile.__hasRenderableContent = false;
@@ -10071,7 +10070,7 @@
10071
10070
  tile.__y = 0;
10072
10071
  tile.__z = 0;
10073
10072
  tile.__level = 0;
10074
- } else if (/.subtree$/i.test((_a2 = tile.content) == null ? void 0 : _a2.uri)) {
10073
+ } else if (/.subtree$/i.test((_a = tile.content) == null ? void 0 : _a.uri)) {
10075
10074
  tile.__hasUnrenderableContent = true;
10076
10075
  tile.__hasRenderableContent = false;
10077
10076
  }
@@ -10092,8 +10091,8 @@
10092
10091
  return url;
10093
10092
  }
10094
10093
  disposeTile(tile) {
10095
- var _a2;
10096
- if (/.subtree$/i.test((_a2 = tile.content) == null ? void 0 : _a2.uri)) {
10094
+ var _a;
10095
+ if (/.subtree$/i.test((_a = tile.content) == null ? void 0 : _a.uri)) {
10097
10096
  tile.children.length = 0;
10098
10097
  tile.__childrenProcessed = 0;
10099
10098
  }
@@ -10132,23 +10131,23 @@
10132
10131
  var __defProp$2 = Object.defineProperty;
10133
10132
  var __getOwnPropDesc$2 = Object.getOwnPropertyDescriptor;
10134
10133
  var __decorateClass$2 = (decorators, target, key, kind) => {
10135
- var result = __getOwnPropDesc$2(target, key);
10134
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$2(target, key) : target;
10136
10135
  for (var i = decorators.length - 1, decorator; i >= 0; i--)
10137
10136
  if (decorator = decorators[i])
10138
- result = decorator(target, key, result) || result;
10139
- if (result) __defProp$2(target, key, result);
10137
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
10138
+ if (kind && result) __defProp$2(target, key, result);
10140
10139
  return result;
10141
10140
  };
10142
- const _TilesRendererPlugin = (_a = class extends THREE.AViewerPluginSync {
10141
+ exports2.TilesRendererPlugin = class TilesRendererPlugin extends THREE.AViewerPluginSync {
10143
10142
  constructor() {
10144
10143
  super();
10145
10144
  this.enabled = true;
10146
10145
  this.dependencies = [];
10147
10146
  this.objects = [];
10148
- this._importer = new THREE.Importer(TilesRendererLoader, [_a.DUMMY_EXT, _a.DUMMY_EXT + ".json"], [], false);
10147
+ this._importer = new THREE.Importer(TilesRendererLoader, [exports2.TilesRendererPlugin.DUMMY_EXT, exports2.TilesRendererPlugin.DUMMY_EXT + ".json"], [], false);
10149
10148
  this._preRender = () => {
10150
- var _a2;
10151
- const camera = (_a2 = this._viewer) == null ? void 0 : _a2.scene.renderCamera;
10149
+ var _a;
10150
+ const camera = (_a = this._viewer) == null ? void 0 : _a.scene.renderCamera;
10152
10151
  if (!this._viewer || !camera) return;
10153
10152
  if (this._viewer.renderManager.frameCount > 0) return;
10154
10153
  camera.updateProjectionMatrix();
@@ -10165,39 +10164,41 @@
10165
10164
  group.tilesRenderer.setResolutionFromRenderer(this._viewer.scene.mainCamera, this._viewer.renderManager.webglRenderer);
10166
10165
  }
10167
10166
  };
10168
- this._addSceneObject = (e) => {
10169
- const object = e.object;
10170
- const group = object;
10171
- if (!group || !group.tilesRenderer || !this._viewer) return;
10172
- if (!this._cachedRefs) {
10173
- this._cachedRefs = {
10174
- lruCache: group.tilesRenderer.lruCache,
10175
- downloadQueue: group.tilesRenderer.downloadQueue,
10176
- parseQueue: group.tilesRenderer.parseQueue,
10177
- // @ts-expect-error not in ts
10178
- processNodeQueue: group.tilesRenderer.processNodeQueue
10179
- };
10180
- } else {
10181
- group.tilesRenderer.lruCache = this._cachedRefs.lruCache;
10182
- group.tilesRenderer.downloadQueue = this._cachedRefs.downloadQueue;
10183
- group.tilesRenderer.parseQueue = this._cachedRefs.parseQueue;
10184
- group.tilesRenderer.processNodeQueue = this._cachedRefs.processNodeQueue;
10185
- }
10186
- this.objects.push(group);
10187
- group.tilesRenderer.registerPlugin({
10188
- dispose: () => {
10189
- const index = this.objects.indexOf(group);
10190
- if (index !== -1) this.objects.splice(index, 1);
10191
- this.dispatchEvent({ type: "removeTile", group });
10167
+ this._objectExt = {
10168
+ uuid: "TilesRendererPluginObjectExt",
10169
+ isCompatible: (o) => !!o.tilesRenderer,
10170
+ onRegister: (group) => {
10171
+ if (!group || !group.tilesRenderer || !this._viewer) return;
10172
+ if (!this._cachedRefs) {
10173
+ this._cachedRefs = {
10174
+ lruCache: group.tilesRenderer.lruCache,
10175
+ downloadQueue: group.tilesRenderer.downloadQueue,
10176
+ parseQueue: group.tilesRenderer.parseQueue,
10177
+ // @ts-expect-error not in ts
10178
+ processNodeQueue: group.tilesRenderer.processNodeQueue
10179
+ };
10180
+ } else {
10181
+ group.tilesRenderer.lruCache = this._cachedRefs.lruCache;
10182
+ group.tilesRenderer.downloadQueue = this._cachedRefs.downloadQueue;
10183
+ group.tilesRenderer.parseQueue = this._cachedRefs.parseQueue;
10184
+ group.tilesRenderer.processNodeQueue = this._cachedRefs.processNodeQueue;
10192
10185
  }
10193
- });
10194
- group.tilesRenderer.setCamera(this._viewer.scene.mainCamera);
10195
- group.tilesRenderer.setResolutionFromRenderer(this._viewer.scene.mainCamera, this._viewer.renderManager.webglRenderer);
10196
- group.tilesRenderer.update();
10197
- group.addEventListener("dispose", () => {
10198
- group.tilesRenderer.dispose();
10199
- });
10200
- this.dispatchEvent({ type: "addTile", group });
10186
+ this.objects.push(group);
10187
+ group.tilesRenderer.registerPlugin({
10188
+ dispose: () => {
10189
+ const index = this.objects.indexOf(group);
10190
+ if (index !== -1) this.objects.splice(index, 1);
10191
+ this.dispatchEvent({ type: "removeTile", group });
10192
+ }
10193
+ });
10194
+ group.tilesRenderer.setCamera(this._viewer.scene.mainCamera);
10195
+ group.tilesRenderer.setResolutionFromRenderer(this._viewer.scene.mainCamera, this._viewer.renderManager.webglRenderer);
10196
+ group.tilesRenderer.update();
10197
+ group.addEventListener("dispose", () => {
10198
+ group.tilesRenderer.dispose();
10199
+ });
10200
+ this.dispatchEvent({ type: "addTile", group });
10201
+ }
10201
10202
  };
10202
10203
  }
10203
10204
  async load(url, options) {
@@ -10205,7 +10206,7 @@
10205
10206
  console.warn("TilesRendererPlugin: viewer not set");
10206
10207
  return;
10207
10208
  }
10208
- const temp = THREE.generateUUID() + "." + _a.DUMMY_EXT;
10209
+ const temp = THREE.generateUUID() + "." + exports2.TilesRendererPlugin.DUMMY_EXT;
10209
10210
  const importer = this._viewer.assetManager.importer.registerFile(temp);
10210
10211
  if (!importer.isTilesRendererLoader) {
10211
10212
  console.warn("TilesRendererPlugin: TilesRendererLoader not registered");
@@ -10213,12 +10214,15 @@
10213
10214
  }
10214
10215
  return await this._viewer.load(url, {
10215
10216
  ...options,
10216
- fileExtension: _a.DUMMY_EXT,
10217
+ fileExtension: exports2.TilesRendererPlugin.DUMMY_EXT,
10217
10218
  fileHandler: importer
10219
+ }).finally(() => {
10220
+ var _a;
10221
+ (_a = this._viewer) == null ? void 0 : _a.assetManager.importer.unregisterFile(temp);
10218
10222
  });
10219
10223
  }
10220
10224
  async loadCesiumIon(info, options) {
10221
- const file = THREE.generateUUID() + "." + _a.DUMMY_EXT;
10225
+ const file = THREE.generateUUID() + "." + exports2.TilesRendererPlugin.DUMMY_EXT;
10222
10226
  return this.load(file, {
10223
10227
  ...options,
10224
10228
  tiles: {
@@ -10237,7 +10241,7 @@
10237
10241
  viewer.assetManager.registerGltfExtension(gltfStructuralMetadataExtension);
10238
10242
  viewer.assetManager.registerGltfExtension(gltfMeshFeaturesExtension);
10239
10243
  viewer.assetManager.importer.addImporter(this._importer);
10240
- viewer.scene.addEventListener("addSceneObject", this._addSceneObject);
10244
+ viewer.object3dManager.registerObjectExtension(this._objectExt);
10241
10245
  viewer.renderManager.addEventListener("preRender", this._preRender);
10242
10246
  viewer.renderManager.addEventListener("resize", this._resize);
10243
10247
  }
@@ -10246,22 +10250,27 @@
10246
10250
  viewer.assetManager.unregisterGltfExtension(gltfCesiumRTCExtension.name);
10247
10251
  viewer.assetManager.unregisterGltfExtension(gltfStructuralMetadataExtension.name);
10248
10252
  viewer.assetManager.unregisterGltfExtension(gltfMeshFeaturesExtension.name);
10249
- viewer.scene.removeEventListener("addSceneObject", this._addSceneObject);
10253
+ viewer.object3dManager.unregisterObjectExtension(this._objectExt);
10250
10254
  viewer.renderManager.removeEventListener("preRender", this._preRender);
10251
10255
  viewer.renderManager.removeEventListener("resize", this._resize);
10252
10256
  super.onRemove(viewer);
10253
10257
  }
10254
10258
  async promptForURL() {
10255
- var _a2;
10256
- const url = await ((_a2 = this._viewer) == null ? void 0 : _a2.dialog.prompt("TilesRendererPlugin: Enter URL for the root tileset", "", true));
10259
+ var _a, _b;
10260
+ const url = await ((_a = this._viewer) == null ? void 0 : _a.dialog.prompt("TilesRendererPlugin: Enter URL for the root tileset", "", true));
10257
10261
  if (!url) return;
10258
- return this.load(url);
10262
+ const loader = ((_b = this._viewer) == null ? void 0 : _b.getPlugin(THREE.DropzonePlugin)) ?? this._viewer ?? this;
10263
+ return await loader.load(url, { fileExtension: exports2.TilesRendererPlugin.DUMMY_EXT });
10259
10264
  }
10260
- }, _a.PluginType = "TilesRendererPlugin", _a.DUMMY_EXT = "tileset", _a);
10265
+ };
10266
+ exports2.TilesRendererPlugin.PluginType = "TilesRendererPlugin";
10267
+ exports2.TilesRendererPlugin.DUMMY_EXT = "tileset";
10261
10268
  __decorateClass$2([
10262
10269
  THREE.uiButton()
10263
- ], _TilesRendererPlugin.prototype, "promptForURL");
10264
- let TilesRendererPlugin = _TilesRendererPlugin;
10270
+ ], exports2.TilesRendererPlugin.prototype, "promptForURL", 1);
10271
+ exports2.TilesRendererPlugin = __decorateClass$2([
10272
+ THREE.uiFolderContainer("3D Tiles")
10273
+ ], exports2.TilesRendererPlugin);
10265
10274
  class TilesRendererLoader extends THREE.Loader {
10266
10275
  constructor(manager) {
10267
10276
  super(manager);
@@ -10282,11 +10291,11 @@
10282
10291
  return tiles;
10283
10292
  }
10284
10293
  load(url, onLoad, _onProgress, _onError) {
10285
- var _a2;
10294
+ var _a;
10286
10295
  const tiles = this._createTilesRenderer(url);
10287
10296
  const group = THREE.iObjectCommons.upgradeObject3D.call(tiles.group);
10288
10297
  group.autoUpgradeChildren = false;
10289
- const opts = ((_a2 = this.importOptions) == null ? void 0 : _a2.tiles) ?? {};
10298
+ const opts = ((_a = this.importOptions) == null ? void 0 : _a.tiles) ?? {};
10290
10299
  tiles.errorTarget = opts.errorTarget ?? 1;
10291
10300
  const plugins = [...this.plugins, ...opts.plugins ?? []];
10292
10301
  for (const plugin of plugins) {
@@ -10319,7 +10328,20 @@
10319
10328
  });
10320
10329
  tiles.addEventListener("load-tile-set", (e) => {
10321
10330
  const isRoot = e.tileSet === tiles.rootTileSet;
10322
- if (isRoot && resolve) resolve();
10331
+ if (isRoot && resolve) {
10332
+ resolve();
10333
+ }
10334
+ });
10335
+ group.userData.rootPathRefresh = true;
10336
+ group._rootPathRefreshed = true;
10337
+ group._sChildren = [];
10338
+ tiles.registerPlugin({
10339
+ processTileModel: (model, tile) => {
10340
+ var _a2;
10341
+ if (tile === ((_a2 = tiles.rootTileSet) == null ? void 0 : _a2.root)) {
10342
+ group._sChildren = [model];
10343
+ }
10344
+ }
10323
10345
  });
10324
10346
  const ai = this.ai;
10325
10347
  if (ai) {
@@ -10377,16 +10399,16 @@
10377
10399
  return super.transform(res, options);
10378
10400
  }
10379
10401
  parse(data, _path, onLoad, onError, _url) {
10380
- var _a2;
10402
+ var _a;
10381
10403
  if (!this.ai) {
10382
10404
  console.error("[B3DMLoader] load failed, IAssetImporter not set");
10383
10405
  }
10384
10406
  const tmpFile = THREE.generateUUID() + ".gltf";
10385
- (_a2 = this.ai) == null ? void 0 : _a2.registerFile(tmpFile);
10407
+ (_a = this.ai) == null ? void 0 : _a.registerFile(tmpFile);
10386
10408
  this.loader.workingPath = _path;
10387
10409
  this.loader.parse(data).then(onLoad).catch(onError).finally(() => {
10388
- var _a3;
10389
- if (tmpFile) (_a3 = this.ai) == null ? void 0 : _a3.unregisterFile(tmpFile);
10410
+ var _a2;
10411
+ if (tmpFile) (_a2 = this.ai) == null ? void 0 : _a2.unregisterFile(tmpFile);
10390
10412
  });
10391
10413
  }
10392
10414
  }
@@ -10414,16 +10436,16 @@
10414
10436
  return super.transform(res, options);
10415
10437
  }
10416
10438
  parse(data, _path, onLoad, onError, _url) {
10417
- var _a2;
10439
+ var _a;
10418
10440
  if (!this.ai) {
10419
10441
  console.error("[I3DMLoader] load failed, IAssetImporter not set");
10420
10442
  }
10421
10443
  const tmpFile = THREE.generateUUID() + ".gltf";
10422
- (_a2 = this.ai) == null ? void 0 : _a2.registerFile(tmpFile);
10444
+ (_a = this.ai) == null ? void 0 : _a.registerFile(tmpFile);
10423
10445
  this.loader.workingPath = _path;
10424
10446
  this.loader.parse(data).then(onLoad).catch(onError).finally(() => {
10425
- var _a3;
10426
- if (tmpFile) (_a3 = this.ai) == null ? void 0 : _a3.unregisterFile(tmpFile);
10447
+ var _a2;
10448
+ if (tmpFile) (_a2 = this.ai) == null ? void 0 : _a2.unregisterFile(tmpFile);
10427
10449
  });
10428
10450
  }
10429
10451
  }
@@ -10487,16 +10509,16 @@
10487
10509
  return res.scene;
10488
10510
  }
10489
10511
  parse(data, _path, onLoad, onError, _url) {
10490
- var _a2;
10512
+ var _a;
10491
10513
  if (!this.ai) {
10492
10514
  console.error("[PNTSLoader] load failed, IAssetImporter not set");
10493
10515
  }
10494
10516
  const tmpFile = THREE.generateUUID() + ".drc";
10495
- (_a2 = this.ai) == null ? void 0 : _a2.registerFile(tmpFile);
10517
+ (_a = this.ai) == null ? void 0 : _a.registerFile(tmpFile);
10496
10518
  this.loader.workingPath = _path;
10497
10519
  this.loader.parse(data).then(onLoad).catch(onError).finally(() => {
10498
- var _a3;
10499
- if (tmpFile) (_a3 = this.ai) == null ? void 0 : _a3.unregisterFile(tmpFile);
10520
+ var _a2;
10521
+ if (tmpFile) (_a2 = this.ai) == null ? void 0 : _a2.unregisterFile(tmpFile);
10500
10522
  });
10501
10523
  }
10502
10524
  }
@@ -10560,12 +10582,12 @@
10560
10582
  return res.scene;
10561
10583
  }
10562
10584
  parse(data, _path, onLoad, onError, _url) {
10563
- var _a2, _b;
10585
+ var _a, _b;
10564
10586
  if (!this.ai) {
10565
10587
  console.error("[CMPTLoader] load failed, IAssetImporter not set");
10566
10588
  }
10567
10589
  const tmpFile = THREE.generateUUID();
10568
- (_a2 = this.ai) == null ? void 0 : _a2.registerFile(tmpFile + ".gltf");
10590
+ (_a = this.ai) == null ? void 0 : _a.registerFile(tmpFile + ".gltf");
10569
10591
  (_b = this.ai) == null ? void 0 : _b.registerFile(tmpFile + ".drc");
10570
10592
  this.loader.workingPath = _path;
10571
10593
  this.loader.parse(data).then(onLoad).catch(onError).finally(() => {
@@ -10580,7 +10602,7 @@
10580
10602
  constructor() {
10581
10603
  super(...arguments);
10582
10604
  this._importer = new THREE.Importer(DeepZoomImageLoader, ["dzi"], ["image/dzi"], false);
10583
- this.dependencies = [TilesRendererPlugin];
10605
+ this.dependencies = [exports2.TilesRendererPlugin];
10584
10606
  }
10585
10607
  onAdded(viewer) {
10586
10608
  super.onAdded(viewer);
@@ -10611,7 +10633,7 @@
10611
10633
  constructor() {
10612
10634
  super(...arguments);
10613
10635
  this._importer = new THREE.Importer(SlippyMapTilesLoader, [_SlippyMapTilesLoadPlugin.DUMMY_EXT], [], false);
10614
- this.dependencies = [TilesRendererPlugin];
10636
+ this.dependencies = [exports2.TilesRendererPlugin];
10615
10637
  }
10616
10638
  onAdded(viewer) {
10617
10639
  super.onAdded(viewer);
@@ -10866,7 +10888,6 @@
10866
10888
  exports2.SlippyMapTilesLoadPlugin = SlippyMapTilesLoadPlugin;
10867
10889
  exports2.TileCompressionPlugin = TileCompressionPlugin;
10868
10890
  exports2.TilesRendererLoader = TilesRendererLoader;
10869
- exports2.TilesRendererPlugin = TilesRendererPlugin;
10870
10891
  exports2.UnloadTilesPlugin = UnloadTilesPlugin;
10871
10892
  Object.defineProperty(exports2, Symbol.toStringTag, { value: "Module" });
10872
10893
  });