@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.
- package/dist/TilesRendererPlugin.d.ts +3 -3
- package/dist/TilesRendererPlugin.d.ts.map +1 -1
- package/dist/index.js +113 -92
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +112 -90
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
- package/src/TilesRendererPlugin.ts +73 -44
package/dist/index.mjs
CHANGED
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @license
|
|
3
|
-
* @threepipe/plugin-3d-tiles-renderer v0.
|
|
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.
|
|
7
7
|
*/
|
|
8
|
-
var _a;
|
|
9
8
|
import * as THREE from "threepipe";
|
|
10
|
-
import { DefaultLoadingManager, Matrix4, GLTFLoader, Vector3, Vector2, MathUtils, PointsMaterial, BufferGeometry, BufferAttribute, Color, Points, Spherical, Sphere, Ray, Euler, InstancedMesh, Quaternion, Group, Box3, Plane, Frustum, Matrix3, estimateBytesUsed as estimateBytesUsed$1, LoadingManager, EventDispatcher, Mesh, PlaneGeometry, ShaderMaterial, Raycaster, Clock, Texture, SRGBColorSpace, MeshBasicMaterial, MeshStandardMaterial, DataTexture, RGFormat, UnsignedByteType, LinearMipMapLinearFilter, LinearFilter, Triangle, Matrix2, Vector4, WebGLRenderer, WebGLRenderTarget, FullScreenQuad, OneFactor, ZeroFactor, CustomBlending, Box2, FileLoader, LineSegments, LineBasicMaterial, EdgesGeometry, BoxGeometry, Box3Helper, AViewerPluginSync, Importer, generateUUID,
|
|
9
|
+
import { DefaultLoadingManager, Matrix4, GLTFLoader, Vector3, Vector2, MathUtils, PointsMaterial, BufferGeometry, BufferAttribute, Color, Points, Spherical, Sphere, Ray, Euler, InstancedMesh, Quaternion, Group, Box3, Plane, Frustum, Matrix3, estimateBytesUsed as estimateBytesUsed$1, LoadingManager, EventDispatcher, Mesh, PlaneGeometry, ShaderMaterial, Raycaster, Clock, Texture, SRGBColorSpace, MeshBasicMaterial, MeshStandardMaterial, DataTexture, RGFormat, UnsignedByteType, LinearMipMapLinearFilter, LinearFilter, Triangle, Matrix2, Vector4, WebGLRenderer, WebGLRenderTarget, FullScreenQuad, OneFactor, ZeroFactor, CustomBlending, Box2, FileLoader, LineSegments, LineBasicMaterial, EdgesGeometry, BoxGeometry, Box3Helper, uiButton, uiFolderContainer, AViewerPluginSync, Importer, generateUUID, DropzonePlugin, Loader, iObjectCommons, Box3B, BaseImporterPlugin, GLTFLoader2, LoaderUtils, ACameraControlsPlugin, uiToggle, serialize, uiInput, uiVector } from "threepipe";
|
|
11
10
|
function getUrlExtension(url) {
|
|
12
11
|
if (!url) {
|
|
13
12
|
return null;
|
|
@@ -881,7 +880,7 @@ class TilesRendererBase {
|
|
|
881
880
|
}
|
|
882
881
|
}
|
|
883
882
|
preprocessNode(tile, tileSetDir, parentTile = null) {
|
|
884
|
-
var
|
|
883
|
+
var _a;
|
|
885
884
|
if (tile.content) {
|
|
886
885
|
if (!("uri" in tile.content) && "url" in tile.content) {
|
|
887
886
|
tile.content.uri = tile.content.url;
|
|
@@ -893,7 +892,7 @@ class TilesRendererBase {
|
|
|
893
892
|
}
|
|
894
893
|
tile.parent = parentTile;
|
|
895
894
|
tile.children = tile.children || [];
|
|
896
|
-
if ((
|
|
895
|
+
if ((_a = tile.content) == null ? void 0 : _a.uri) {
|
|
897
896
|
const extension = getUrlExtension(tile.content.uri);
|
|
898
897
|
tile.__hasContent = true;
|
|
899
898
|
tile.__hasUnrenderableContent = Boolean(extension && /json$/.test(extension));
|
|
@@ -7566,8 +7565,8 @@ class StructuralMetadata {
|
|
|
7566
7565
|
}
|
|
7567
7566
|
const EXT_NAME$1 = "EXT_structural_metadata";
|
|
7568
7567
|
function getRelevantTextures(parser, propertyTextures = []) {
|
|
7569
|
-
var
|
|
7570
|
-
const textureCount = ((
|
|
7568
|
+
var _a;
|
|
7569
|
+
const textureCount = ((_a = parser.json.textures) == null ? void 0 : _a.length) || 0;
|
|
7571
7570
|
const result = new Array(textureCount).fill(null);
|
|
7572
7571
|
propertyTextures.forEach(({ properties }) => {
|
|
7573
7572
|
for (const key in properties) {
|
|
@@ -7580,8 +7579,8 @@ function getRelevantTextures(parser, propertyTextures = []) {
|
|
|
7580
7579
|
return Promise.all(result);
|
|
7581
7580
|
}
|
|
7582
7581
|
function getRelevantBuffers(parser, propertyTables = []) {
|
|
7583
|
-
var
|
|
7584
|
-
const textureCount = ((
|
|
7582
|
+
var _a;
|
|
7583
|
+
const textureCount = ((_a = parser.json.bufferViews) == null ? void 0 : _a.length) || 0;
|
|
7585
7584
|
const result = new Array(textureCount).fill(null);
|
|
7586
7585
|
propertyTables.forEach(({ properties }) => {
|
|
7587
7586
|
for (const key in properties) {
|
|
@@ -7630,10 +7629,10 @@ class GLTFStructuralMetadataExtension {
|
|
|
7630
7629
|
const rootMetadata = new StructuralMetadata(rootExtension, textures, buffers);
|
|
7631
7630
|
scene.userData.structuralMetadata = rootMetadata;
|
|
7632
7631
|
scene.traverse((child) => {
|
|
7633
|
-
var
|
|
7632
|
+
var _a;
|
|
7634
7633
|
if (parser.associations.has(child)) {
|
|
7635
7634
|
const { meshes, primitives } = parser.associations.get(child);
|
|
7636
|
-
const primitive = (
|
|
7635
|
+
const primitive = (_a = parser.json.meshes[meshes]) == null ? void 0 : _a.primitives[primitives];
|
|
7637
7636
|
if (primitive && primitive.extensions && primitive.extensions[EXT_NAME$1]) {
|
|
7638
7637
|
const extension = primitive.extensions[EXT_NAME$1];
|
|
7639
7638
|
child.userData.structuralMetadata = new StructuralMetadata(rootExtension, textures, buffers, extension, child);
|
|
@@ -7768,10 +7767,10 @@ class MeshFeatures {
|
|
|
7768
7767
|
const EXT_NAME = "EXT_mesh_features";
|
|
7769
7768
|
function forEachPrimitiveExtension(scene, parser, callback) {
|
|
7770
7769
|
scene.traverse((c) => {
|
|
7771
|
-
var
|
|
7770
|
+
var _a;
|
|
7772
7771
|
if (parser.associations.has(c)) {
|
|
7773
7772
|
const { meshes, primitives } = parser.associations.get(c);
|
|
7774
|
-
const primitive = (
|
|
7773
|
+
const primitive = (_a = parser.json.meshes[meshes]) == null ? void 0 : _a.primitives[primitives];
|
|
7775
7774
|
if (primitive && primitive.extensions && primitive.extensions[EXT_NAME]) {
|
|
7776
7775
|
callback(c, primitive.extensions[EXT_NAME]);
|
|
7777
7776
|
}
|
|
@@ -7784,12 +7783,12 @@ class GLTFMeshFeaturesExtension {
|
|
|
7784
7783
|
this.name = EXT_NAME;
|
|
7785
7784
|
}
|
|
7786
7785
|
async afterRoot({ scene, parser }) {
|
|
7787
|
-
var
|
|
7786
|
+
var _a;
|
|
7788
7787
|
const extensionsUsed = parser.json.extensionsUsed;
|
|
7789
7788
|
if (!extensionsUsed || !extensionsUsed.includes(EXT_NAME)) {
|
|
7790
7789
|
return;
|
|
7791
7790
|
}
|
|
7792
|
-
const textureCount = ((
|
|
7791
|
+
const textureCount = ((_a = parser.json.textures) == null ? void 0 : _a.length) || 0;
|
|
7793
7792
|
const promises = new Array(textureCount).fill(null);
|
|
7794
7793
|
forEachPrimitiveExtension(scene, parser, (child, { featureIds }) => {
|
|
7795
7794
|
featureIds.forEach((info) => {
|
|
@@ -8664,8 +8663,8 @@ class TilesFadePlugin {
|
|
|
8664
8663
|
}
|
|
8665
8664
|
// initializes the batched mesh if it needs to be, dispose if it it's no longer needed
|
|
8666
8665
|
initBatchedMesh() {
|
|
8667
|
-
var
|
|
8668
|
-
const otherBatchedMesh = (
|
|
8666
|
+
var _a;
|
|
8667
|
+
const otherBatchedMesh = (_a = this.tiles.getPluginByName("BATCHED_TILES_PLUGIN")) == null ? void 0 : _a.batchedMesh;
|
|
8669
8668
|
if (otherBatchedMesh) {
|
|
8670
8669
|
if (this.batchedMesh === null) {
|
|
8671
8670
|
this._onBatchedMeshDispose = () => {
|
|
@@ -9378,7 +9377,7 @@ class DebugTilesPlugin {
|
|
|
9378
9377
|
}
|
|
9379
9378
|
}
|
|
9380
9379
|
dispose() {
|
|
9381
|
-
var
|
|
9380
|
+
var _a, _b, _c;
|
|
9382
9381
|
const tiles = this.tiles;
|
|
9383
9382
|
if (tiles) {
|
|
9384
9383
|
tiles.removeEventListener("load-tile-set", this._onLoadTileSetCB);
|
|
@@ -9392,7 +9391,7 @@ class DebugTilesPlugin {
|
|
|
9392
9391
|
this._onDisposeModel(tile);
|
|
9393
9392
|
});
|
|
9394
9393
|
}
|
|
9395
|
-
(
|
|
9394
|
+
(_a = this.boxGroup) == null ? void 0 : _a.removeFromParent();
|
|
9396
9395
|
(_b = this.sphereGroup) == null ? void 0 : _b.removeFromParent();
|
|
9397
9396
|
(_c = this.regionGroup) == null ? void 0 : _c.removeFromParent();
|
|
9398
9397
|
}
|
|
@@ -10042,7 +10041,7 @@ class ImplicitTilingPlugin {
|
|
|
10042
10041
|
this.tiles = tiles;
|
|
10043
10042
|
}
|
|
10044
10043
|
preprocessNode(tile, tileSetDir, parentTile) {
|
|
10045
|
-
var
|
|
10044
|
+
var _a;
|
|
10046
10045
|
if (tile.implicitTiling) {
|
|
10047
10046
|
tile.__hasUnrenderableContent = true;
|
|
10048
10047
|
tile.__hasRenderableContent = false;
|
|
@@ -10052,7 +10051,7 @@ class ImplicitTilingPlugin {
|
|
|
10052
10051
|
tile.__y = 0;
|
|
10053
10052
|
tile.__z = 0;
|
|
10054
10053
|
tile.__level = 0;
|
|
10055
|
-
} else if (/.subtree$/i.test((
|
|
10054
|
+
} else if (/.subtree$/i.test((_a = tile.content) == null ? void 0 : _a.uri)) {
|
|
10056
10055
|
tile.__hasUnrenderableContent = true;
|
|
10057
10056
|
tile.__hasRenderableContent = false;
|
|
10058
10057
|
}
|
|
@@ -10073,8 +10072,8 @@ class ImplicitTilingPlugin {
|
|
|
10073
10072
|
return url;
|
|
10074
10073
|
}
|
|
10075
10074
|
disposeTile(tile) {
|
|
10076
|
-
var
|
|
10077
|
-
if (/.subtree$/i.test((
|
|
10075
|
+
var _a;
|
|
10076
|
+
if (/.subtree$/i.test((_a = tile.content) == null ? void 0 : _a.uri)) {
|
|
10078
10077
|
tile.children.length = 0;
|
|
10079
10078
|
tile.__childrenProcessed = 0;
|
|
10080
10079
|
}
|
|
@@ -10113,23 +10112,23 @@ const gltfMeshFeaturesExtension = {
|
|
|
10113
10112
|
var __defProp$2 = Object.defineProperty;
|
|
10114
10113
|
var __getOwnPropDesc$2 = Object.getOwnPropertyDescriptor;
|
|
10115
10114
|
var __decorateClass$2 = (decorators, target, key, kind) => {
|
|
10116
|
-
var result = __getOwnPropDesc$2(target, key);
|
|
10115
|
+
var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$2(target, key) : target;
|
|
10117
10116
|
for (var i = decorators.length - 1, decorator; i >= 0; i--)
|
|
10118
10117
|
if (decorator = decorators[i])
|
|
10119
|
-
result = decorator(target, key, result) || result;
|
|
10120
|
-
if (result) __defProp$2(target, key, result);
|
|
10118
|
+
result = (kind ? decorator(target, key, result) : decorator(result)) || result;
|
|
10119
|
+
if (kind && result) __defProp$2(target, key, result);
|
|
10121
10120
|
return result;
|
|
10122
10121
|
};
|
|
10123
|
-
|
|
10122
|
+
let TilesRendererPlugin = class extends AViewerPluginSync {
|
|
10124
10123
|
constructor() {
|
|
10125
10124
|
super();
|
|
10126
10125
|
this.enabled = true;
|
|
10127
10126
|
this.dependencies = [];
|
|
10128
10127
|
this.objects = [];
|
|
10129
|
-
this._importer = new Importer(TilesRendererLoader, [
|
|
10128
|
+
this._importer = new Importer(TilesRendererLoader, [TilesRendererPlugin.DUMMY_EXT, TilesRendererPlugin.DUMMY_EXT + ".json"], [], false);
|
|
10130
10129
|
this._preRender = () => {
|
|
10131
|
-
var
|
|
10132
|
-
const camera = (
|
|
10130
|
+
var _a;
|
|
10131
|
+
const camera = (_a = this._viewer) == null ? void 0 : _a.scene.renderCamera;
|
|
10133
10132
|
if (!this._viewer || !camera) return;
|
|
10134
10133
|
if (this._viewer.renderManager.frameCount > 0) return;
|
|
10135
10134
|
camera.updateProjectionMatrix();
|
|
@@ -10146,39 +10145,41 @@ const _TilesRendererPlugin = (_a = class extends AViewerPluginSync {
|
|
|
10146
10145
|
group.tilesRenderer.setResolutionFromRenderer(this._viewer.scene.mainCamera, this._viewer.renderManager.webglRenderer);
|
|
10147
10146
|
}
|
|
10148
10147
|
};
|
|
10149
|
-
this.
|
|
10150
|
-
|
|
10151
|
-
|
|
10152
|
-
|
|
10153
|
-
|
|
10154
|
-
this._cachedRefs
|
|
10155
|
-
|
|
10156
|
-
|
|
10157
|
-
|
|
10158
|
-
|
|
10159
|
-
|
|
10160
|
-
|
|
10161
|
-
|
|
10162
|
-
|
|
10163
|
-
|
|
10164
|
-
|
|
10165
|
-
|
|
10166
|
-
|
|
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 });
|
|
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;
|
|
10173
10166
|
}
|
|
10174
|
-
|
|
10175
|
-
|
|
10176
|
-
|
|
10177
|
-
|
|
10178
|
-
|
|
10179
|
-
|
|
10180
|
-
|
|
10181
|
-
|
|
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
|
+
}
|
|
10182
10183
|
};
|
|
10183
10184
|
}
|
|
10184
10185
|
async load(url, options) {
|
|
@@ -10186,7 +10187,7 @@ const _TilesRendererPlugin = (_a = class extends AViewerPluginSync {
|
|
|
10186
10187
|
console.warn("TilesRendererPlugin: viewer not set");
|
|
10187
10188
|
return;
|
|
10188
10189
|
}
|
|
10189
|
-
const temp = generateUUID() + "." +
|
|
10190
|
+
const temp = generateUUID() + "." + TilesRendererPlugin.DUMMY_EXT;
|
|
10190
10191
|
const importer = this._viewer.assetManager.importer.registerFile(temp);
|
|
10191
10192
|
if (!importer.isTilesRendererLoader) {
|
|
10192
10193
|
console.warn("TilesRendererPlugin: TilesRendererLoader not registered");
|
|
@@ -10194,12 +10195,15 @@ const _TilesRendererPlugin = (_a = class extends AViewerPluginSync {
|
|
|
10194
10195
|
}
|
|
10195
10196
|
return await this._viewer.load(url, {
|
|
10196
10197
|
...options,
|
|
10197
|
-
fileExtension:
|
|
10198
|
+
fileExtension: TilesRendererPlugin.DUMMY_EXT,
|
|
10198
10199
|
fileHandler: importer
|
|
10200
|
+
}).finally(() => {
|
|
10201
|
+
var _a;
|
|
10202
|
+
(_a = this._viewer) == null ? void 0 : _a.assetManager.importer.unregisterFile(temp);
|
|
10199
10203
|
});
|
|
10200
10204
|
}
|
|
10201
10205
|
async loadCesiumIon(info, options) {
|
|
10202
|
-
const file = generateUUID() + "." +
|
|
10206
|
+
const file = generateUUID() + "." + TilesRendererPlugin.DUMMY_EXT;
|
|
10203
10207
|
return this.load(file, {
|
|
10204
10208
|
...options,
|
|
10205
10209
|
tiles: {
|
|
@@ -10218,7 +10222,7 @@ const _TilesRendererPlugin = (_a = class extends AViewerPluginSync {
|
|
|
10218
10222
|
viewer.assetManager.registerGltfExtension(gltfStructuralMetadataExtension);
|
|
10219
10223
|
viewer.assetManager.registerGltfExtension(gltfMeshFeaturesExtension);
|
|
10220
10224
|
viewer.assetManager.importer.addImporter(this._importer);
|
|
10221
|
-
viewer.
|
|
10225
|
+
viewer.object3dManager.registerObjectExtension(this._objectExt);
|
|
10222
10226
|
viewer.renderManager.addEventListener("preRender", this._preRender);
|
|
10223
10227
|
viewer.renderManager.addEventListener("resize", this._resize);
|
|
10224
10228
|
}
|
|
@@ -10227,22 +10231,27 @@ const _TilesRendererPlugin = (_a = class extends AViewerPluginSync {
|
|
|
10227
10231
|
viewer.assetManager.unregisterGltfExtension(gltfCesiumRTCExtension.name);
|
|
10228
10232
|
viewer.assetManager.unregisterGltfExtension(gltfStructuralMetadataExtension.name);
|
|
10229
10233
|
viewer.assetManager.unregisterGltfExtension(gltfMeshFeaturesExtension.name);
|
|
10230
|
-
viewer.
|
|
10234
|
+
viewer.object3dManager.unregisterObjectExtension(this._objectExt);
|
|
10231
10235
|
viewer.renderManager.removeEventListener("preRender", this._preRender);
|
|
10232
10236
|
viewer.renderManager.removeEventListener("resize", this._resize);
|
|
10233
10237
|
super.onRemove(viewer);
|
|
10234
10238
|
}
|
|
10235
10239
|
async promptForURL() {
|
|
10236
|
-
var
|
|
10237
|
-
const url = await ((
|
|
10240
|
+
var _a, _b;
|
|
10241
|
+
const url = await ((_a = this._viewer) == null ? void 0 : _a.dialog.prompt("TilesRendererPlugin: Enter URL for the root tileset", "", true));
|
|
10238
10242
|
if (!url) return;
|
|
10239
|
-
|
|
10243
|
+
const loader = ((_b = this._viewer) == null ? void 0 : _b.getPlugin(DropzonePlugin)) ?? this._viewer ?? this;
|
|
10244
|
+
return await loader.load(url, { fileExtension: TilesRendererPlugin.DUMMY_EXT });
|
|
10240
10245
|
}
|
|
10241
|
-
}
|
|
10246
|
+
};
|
|
10247
|
+
TilesRendererPlugin.PluginType = "TilesRendererPlugin";
|
|
10248
|
+
TilesRendererPlugin.DUMMY_EXT = "tileset";
|
|
10242
10249
|
__decorateClass$2([
|
|
10243
10250
|
uiButton()
|
|
10244
|
-
],
|
|
10245
|
-
|
|
10251
|
+
], TilesRendererPlugin.prototype, "promptForURL", 1);
|
|
10252
|
+
TilesRendererPlugin = __decorateClass$2([
|
|
10253
|
+
uiFolderContainer("3D Tiles")
|
|
10254
|
+
], TilesRendererPlugin);
|
|
10246
10255
|
class TilesRendererLoader extends Loader {
|
|
10247
10256
|
constructor(manager) {
|
|
10248
10257
|
super(manager);
|
|
@@ -10263,11 +10272,11 @@ class TilesRendererLoader extends Loader {
|
|
|
10263
10272
|
return tiles;
|
|
10264
10273
|
}
|
|
10265
10274
|
load(url, onLoad, _onProgress, _onError) {
|
|
10266
|
-
var
|
|
10275
|
+
var _a;
|
|
10267
10276
|
const tiles = this._createTilesRenderer(url);
|
|
10268
10277
|
const group = iObjectCommons.upgradeObject3D.call(tiles.group);
|
|
10269
10278
|
group.autoUpgradeChildren = false;
|
|
10270
|
-
const opts = ((
|
|
10279
|
+
const opts = ((_a = this.importOptions) == null ? void 0 : _a.tiles) ?? {};
|
|
10271
10280
|
tiles.errorTarget = opts.errorTarget ?? 1;
|
|
10272
10281
|
const plugins = [...this.plugins, ...opts.plugins ?? []];
|
|
10273
10282
|
for (const plugin of plugins) {
|
|
@@ -10300,7 +10309,20 @@ class TilesRendererLoader extends Loader {
|
|
|
10300
10309
|
});
|
|
10301
10310
|
tiles.addEventListener("load-tile-set", (e) => {
|
|
10302
10311
|
const isRoot = e.tileSet === tiles.rootTileSet;
|
|
10303
|
-
if (isRoot && 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
|
+
}
|
|
10304
10326
|
});
|
|
10305
10327
|
const ai = this.ai;
|
|
10306
10328
|
if (ai) {
|
|
@@ -10358,16 +10380,16 @@ class B3DMLoader2 extends GLTFLoader2 {
|
|
|
10358
10380
|
return super.transform(res, options);
|
|
10359
10381
|
}
|
|
10360
10382
|
parse(data, _path, onLoad, onError, _url) {
|
|
10361
|
-
var
|
|
10383
|
+
var _a;
|
|
10362
10384
|
if (!this.ai) {
|
|
10363
10385
|
console.error("[B3DMLoader] load failed, IAssetImporter not set");
|
|
10364
10386
|
}
|
|
10365
10387
|
const tmpFile = generateUUID() + ".gltf";
|
|
10366
|
-
(
|
|
10388
|
+
(_a = this.ai) == null ? void 0 : _a.registerFile(tmpFile);
|
|
10367
10389
|
this.loader.workingPath = _path;
|
|
10368
10390
|
this.loader.parse(data).then(onLoad).catch(onError).finally(() => {
|
|
10369
|
-
var
|
|
10370
|
-
if (tmpFile) (
|
|
10391
|
+
var _a2;
|
|
10392
|
+
if (tmpFile) (_a2 = this.ai) == null ? void 0 : _a2.unregisterFile(tmpFile);
|
|
10371
10393
|
});
|
|
10372
10394
|
}
|
|
10373
10395
|
}
|
|
@@ -10395,16 +10417,16 @@ class I3DMLoader2 extends GLTFLoader2 {
|
|
|
10395
10417
|
return super.transform(res, options);
|
|
10396
10418
|
}
|
|
10397
10419
|
parse(data, _path, onLoad, onError, _url) {
|
|
10398
|
-
var
|
|
10420
|
+
var _a;
|
|
10399
10421
|
if (!this.ai) {
|
|
10400
10422
|
console.error("[I3DMLoader] load failed, IAssetImporter not set");
|
|
10401
10423
|
}
|
|
10402
10424
|
const tmpFile = generateUUID() + ".gltf";
|
|
10403
|
-
(
|
|
10425
|
+
(_a = this.ai) == null ? void 0 : _a.registerFile(tmpFile);
|
|
10404
10426
|
this.loader.workingPath = _path;
|
|
10405
10427
|
this.loader.parse(data).then(onLoad).catch(onError).finally(() => {
|
|
10406
|
-
var
|
|
10407
|
-
if (tmpFile) (
|
|
10428
|
+
var _a2;
|
|
10429
|
+
if (tmpFile) (_a2 = this.ai) == null ? void 0 : _a2.unregisterFile(tmpFile);
|
|
10408
10430
|
});
|
|
10409
10431
|
}
|
|
10410
10432
|
}
|
|
@@ -10468,16 +10490,16 @@ class PNTSLoader2 extends Loader {
|
|
|
10468
10490
|
return res.scene;
|
|
10469
10491
|
}
|
|
10470
10492
|
parse(data, _path, onLoad, onError, _url) {
|
|
10471
|
-
var
|
|
10493
|
+
var _a;
|
|
10472
10494
|
if (!this.ai) {
|
|
10473
10495
|
console.error("[PNTSLoader] load failed, IAssetImporter not set");
|
|
10474
10496
|
}
|
|
10475
10497
|
const tmpFile = generateUUID() + ".drc";
|
|
10476
|
-
(
|
|
10498
|
+
(_a = this.ai) == null ? void 0 : _a.registerFile(tmpFile);
|
|
10477
10499
|
this.loader.workingPath = _path;
|
|
10478
10500
|
this.loader.parse(data).then(onLoad).catch(onError).finally(() => {
|
|
10479
|
-
var
|
|
10480
|
-
if (tmpFile) (
|
|
10501
|
+
var _a2;
|
|
10502
|
+
if (tmpFile) (_a2 = this.ai) == null ? void 0 : _a2.unregisterFile(tmpFile);
|
|
10481
10503
|
});
|
|
10482
10504
|
}
|
|
10483
10505
|
}
|
|
@@ -10541,12 +10563,12 @@ class CMPTLoader2 extends Loader {
|
|
|
10541
10563
|
return res.scene;
|
|
10542
10564
|
}
|
|
10543
10565
|
parse(data, _path, onLoad, onError, _url) {
|
|
10544
|
-
var
|
|
10566
|
+
var _a, _b;
|
|
10545
10567
|
if (!this.ai) {
|
|
10546
10568
|
console.error("[CMPTLoader] load failed, IAssetImporter not set");
|
|
10547
10569
|
}
|
|
10548
10570
|
const tmpFile = generateUUID();
|
|
10549
|
-
(
|
|
10571
|
+
(_a = this.ai) == null ? void 0 : _a.registerFile(tmpFile + ".gltf");
|
|
10550
10572
|
(_b = this.ai) == null ? void 0 : _b.registerFile(tmpFile + ".drc");
|
|
10551
10573
|
this.loader.workingPath = _path;
|
|
10552
10574
|
this.loader.parse(data).then(onLoad).catch(onError).finally(() => {
|