@threepipe/plugin-3d-tiles-renderer 0.2.1 → 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.
package/dist/index.mjs CHANGED
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * @license
3
- * @threepipe/plugin-3d-tiles-renderer v0.2.1
3
+ * @threepipe/plugin-3d-tiles-renderer v0.3.0
4
4
  * Copyright 2022-2025 repalash <palash@shaders.app>
5
5
  * Apache-2.0 License
6
6
  * See ./dependencies.txt for any bundled third-party dependencies and licenses.
@@ -10145,39 +10145,41 @@ let TilesRendererPlugin = class extends AViewerPluginSync {
10145
10145
  group.tilesRenderer.setResolutionFromRenderer(this._viewer.scene.mainCamera, this._viewer.renderManager.webglRenderer);
10146
10146
  }
10147
10147
  };
10148
- this._addSceneObject = (e) => {
10149
- const object = e.object;
10150
- const group = object;
10151
- if (!group || !group.tilesRenderer || !this._viewer) return;
10152
- if (!this._cachedRefs) {
10153
- this._cachedRefs = {
10154
- lruCache: group.tilesRenderer.lruCache,
10155
- downloadQueue: group.tilesRenderer.downloadQueue,
10156
- parseQueue: group.tilesRenderer.parseQueue,
10157
- // @ts-expect-error not in ts
10158
- processNodeQueue: group.tilesRenderer.processNodeQueue
10159
- };
10160
- } else {
10161
- group.tilesRenderer.lruCache = this._cachedRefs.lruCache;
10162
- group.tilesRenderer.downloadQueue = this._cachedRefs.downloadQueue;
10163
- group.tilesRenderer.parseQueue = this._cachedRefs.parseQueue;
10164
- group.tilesRenderer.processNodeQueue = this._cachedRefs.processNodeQueue;
10165
- }
10166
- this.objects.push(group);
10167
- group.tilesRenderer.registerPlugin({
10168
- dispose: () => {
10169
- const index = this.objects.indexOf(group);
10170
- if (index !== -1) this.objects.splice(index, 1);
10171
- this.dispatchEvent({ type: "removeTile", group });
10148
+ this._objectExt = {
10149
+ uuid: "TilesRendererPluginObjectExt",
10150
+ isCompatible: (o) => !!o.tilesRenderer,
10151
+ onRegister: (group) => {
10152
+ if (!group || !group.tilesRenderer || !this._viewer) return;
10153
+ if (!this._cachedRefs) {
10154
+ this._cachedRefs = {
10155
+ lruCache: group.tilesRenderer.lruCache,
10156
+ downloadQueue: group.tilesRenderer.downloadQueue,
10157
+ parseQueue: group.tilesRenderer.parseQueue,
10158
+ // @ts-expect-error not in ts
10159
+ processNodeQueue: group.tilesRenderer.processNodeQueue
10160
+ };
10161
+ } else {
10162
+ group.tilesRenderer.lruCache = this._cachedRefs.lruCache;
10163
+ group.tilesRenderer.downloadQueue = this._cachedRefs.downloadQueue;
10164
+ group.tilesRenderer.parseQueue = this._cachedRefs.parseQueue;
10165
+ group.tilesRenderer.processNodeQueue = this._cachedRefs.processNodeQueue;
10172
10166
  }
10173
- });
10174
- group.tilesRenderer.setCamera(this._viewer.scene.mainCamera);
10175
- group.tilesRenderer.setResolutionFromRenderer(this._viewer.scene.mainCamera, this._viewer.renderManager.webglRenderer);
10176
- group.tilesRenderer.update();
10177
- group.addEventListener("dispose", () => {
10178
- group.tilesRenderer.dispose();
10179
- });
10180
- this.dispatchEvent({ type: "addTile", group });
10167
+ this.objects.push(group);
10168
+ group.tilesRenderer.registerPlugin({
10169
+ dispose: () => {
10170
+ const index = this.objects.indexOf(group);
10171
+ if (index !== -1) this.objects.splice(index, 1);
10172
+ this.dispatchEvent({ type: "removeTile", group });
10173
+ }
10174
+ });
10175
+ group.tilesRenderer.setCamera(this._viewer.scene.mainCamera);
10176
+ group.tilesRenderer.setResolutionFromRenderer(this._viewer.scene.mainCamera, this._viewer.renderManager.webglRenderer);
10177
+ group.tilesRenderer.update();
10178
+ group.addEventListener("dispose", () => {
10179
+ group.tilesRenderer.dispose();
10180
+ });
10181
+ this.dispatchEvent({ type: "addTile", group });
10182
+ }
10181
10183
  };
10182
10184
  }
10183
10185
  async load(url, options) {
@@ -10220,7 +10222,7 @@ let TilesRendererPlugin = class extends AViewerPluginSync {
10220
10222
  viewer.assetManager.registerGltfExtension(gltfStructuralMetadataExtension);
10221
10223
  viewer.assetManager.registerGltfExtension(gltfMeshFeaturesExtension);
10222
10224
  viewer.assetManager.importer.addImporter(this._importer);
10223
- viewer.scene.addEventListener("addSceneObject", this._addSceneObject);
10225
+ viewer.object3dManager.registerObjectExtension(this._objectExt);
10224
10226
  viewer.renderManager.addEventListener("preRender", this._preRender);
10225
10227
  viewer.renderManager.addEventListener("resize", this._resize);
10226
10228
  }
@@ -10229,7 +10231,7 @@ let TilesRendererPlugin = class extends AViewerPluginSync {
10229
10231
  viewer.assetManager.unregisterGltfExtension(gltfCesiumRTCExtension.name);
10230
10232
  viewer.assetManager.unregisterGltfExtension(gltfStructuralMetadataExtension.name);
10231
10233
  viewer.assetManager.unregisterGltfExtension(gltfMeshFeaturesExtension.name);
10232
- viewer.scene.removeEventListener("addSceneObject", this._addSceneObject);
10234
+ viewer.object3dManager.unregisterObjectExtension(this._objectExt);
10233
10235
  viewer.renderManager.removeEventListener("preRender", this._preRender);
10234
10236
  viewer.renderManager.removeEventListener("resize", this._resize);
10235
10237
  super.onRemove(viewer);
@@ -10307,7 +10309,20 @@ class TilesRendererLoader extends Loader {
10307
10309
  });
10308
10310
  tiles.addEventListener("load-tile-set", (e) => {
10309
10311
  const isRoot = e.tileSet === tiles.rootTileSet;
10310
- if (isRoot && resolve) resolve();
10312
+ if (isRoot && resolve) {
10313
+ resolve();
10314
+ }
10315
+ });
10316
+ group.userData.rootPathRefresh = true;
10317
+ group._rootPathRefreshed = true;
10318
+ group._sChildren = [];
10319
+ tiles.registerPlugin({
10320
+ processTileModel: (model, tile) => {
10321
+ var _a2;
10322
+ if (tile === ((_a2 = tiles.rootTileSet) == null ? void 0 : _a2.root)) {
10323
+ group._sChildren = [model];
10324
+ }
10325
+ }
10311
10326
  });
10312
10327
  const ai = this.ai;
10313
10328
  if (ai) {