@threepipe/plugin-3d-tiles-renderer 0.2.1 → 0.3.1

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.
Files changed (36) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/README.md +12 -0
  3. package/dist/TilesRendererPlugin.d.ts +3 -3
  4. package/dist/TilesRendererPlugin.d.ts.map +1 -1
  5. package/dist/index.js +53 -38
  6. package/dist/index.js.map +1 -1
  7. package/dist/index.mjs +53 -38
  8. package/dist/index.mjs.map +1 -1
  9. package/docs/.nojekyll +1 -0
  10. package/docs/assets/hierarchy.js +1 -0
  11. package/docs/assets/highlight.css +29 -0
  12. package/docs/assets/icons.js +18 -0
  13. package/docs/assets/icons.svg +1 -0
  14. package/docs/assets/main.js +60 -0
  15. package/docs/assets/navigation.js +1 -0
  16. package/docs/assets/search.js +1 -0
  17. package/docs/assets/style.css +1633 -0
  18. package/docs/classes/B3DMLoadPlugin.html +12 -0
  19. package/docs/classes/CMPTLoadPlugin.html +12 -0
  20. package/docs/classes/DeepZoomImageLoadPlugin.html +12 -0
  21. package/docs/classes/EnvironmentControls2.html +20 -0
  22. package/docs/classes/EnvironmentControlsPlugin.html +27 -0
  23. package/docs/classes/GlobeControls2.html +24 -0
  24. package/docs/classes/GlobeControlsPlugin.html +27 -0
  25. package/docs/classes/I3DMLoadPlugin.html +12 -0
  26. package/docs/classes/PNTSLoadPlugin.html +12 -0
  27. package/docs/classes/SlippyMapTilesLoadPlugin.html +13 -0
  28. package/docs/classes/TilesRendererLoader.html +8 -0
  29. package/docs/classes/TilesRendererPlugin.html +33 -0
  30. package/docs/hierarchy.html +1 -0
  31. package/docs/index.html +1 -0
  32. package/docs/interfaces/TilesImportOptions.html +11 -0
  33. package/docs/types/TilesRendererGroup.html +1 -0
  34. package/docs/variables/CesiumIonAuthPlugin.html +1 -0
  35. package/package.json +7 -9
  36. package/src/TilesRendererPlugin.ts +68 -44
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.1
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.
@@ -6188,7 +6188,7 @@ class QuantizedMeshPlugin {
6188
6188
  south,
6189
6189
  east,
6190
6190
  north,
6191
- -1e5,
6191
+ -INITIAL_HEIGHT_RANGE,
6192
6192
  INITIAL_HEIGHT_RANGE
6193
6193
  ]
6194
6194
  },
@@ -6203,7 +6203,7 @@ class QuantizedMeshPlugin {
6203
6203
  south,
6204
6204
  west + step * x + step,
6205
6205
  north,
6206
- -1e5,
6206
+ -INITIAL_HEIGHT_RANGE,
6207
6207
  INITIAL_HEIGHT_RANGE
6208
6208
  ];
6209
6209
  const child = this.expand(0, x, 0, region);
@@ -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) {