@inweb/viewer-three 26.10.6 → 26.11.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.
- package/dist/plugins/components/AxesHelperComponent.js +23 -1
- package/dist/plugins/components/AxesHelperComponent.js.map +1 -1
- package/dist/plugins/components/AxesHelperComponent.min.js +1 -1
- package/dist/plugins/components/AxesHelperComponent.module.js +24 -2
- package/dist/plugins/components/AxesHelperComponent.module.js.map +1 -1
- package/dist/plugins/components/ExtentsHelperComponent.js +18 -0
- package/dist/plugins/components/ExtentsHelperComponent.js.map +1 -1
- package/dist/plugins/components/ExtentsHelperComponent.min.js +1 -1
- package/dist/plugins/components/ExtentsHelperComponent.module.js +19 -1
- package/dist/plugins/components/ExtentsHelperComponent.module.js.map +1 -1
- package/dist/plugins/loaders/GLTFCloudLoader.js +2 -3
- package/dist/plugins/loaders/GLTFCloudLoader.js.map +1 -1
- package/dist/plugins/loaders/GLTFCloudLoader.min.js +1 -1
- package/dist/plugins/loaders/GLTFCloudLoader.module.js +2 -3
- package/dist/plugins/loaders/GLTFCloudLoader.module.js.map +1 -1
- package/dist/plugins/loaders/GLTFFileLoader.js +2499 -0
- package/dist/plugins/loaders/GLTFFileLoader.js.map +1 -0
- package/dist/plugins/loaders/GLTFFileLoader.min.js +24 -0
- package/dist/plugins/loaders/GLTFFileLoader.module.js +74 -0
- package/dist/plugins/loaders/GLTFFileLoader.module.js.map +1 -0
- package/dist/plugins/loaders/IFCXLoader.js +5 -7
- package/dist/plugins/loaders/IFCXLoader.js.map +1 -1
- package/dist/plugins/loaders/IFCXLoader.min.js +1 -1
- package/dist/plugins/loaders/IFCXLoader.module.js +5 -7
- package/dist/plugins/loaders/IFCXLoader.module.js.map +1 -1
- package/dist/plugins/loaders/PotreeLoader.js +1 -2
- package/dist/plugins/loaders/PotreeLoader.js.map +1 -1
- package/dist/plugins/loaders/PotreeLoader.min.js +1 -1
- package/dist/plugins/loaders/PotreeLoader.module.js +1 -2
- package/dist/plugins/loaders/PotreeLoader.module.js.map +1 -1
- package/dist/viewer-three.js +770 -2777
- package/dist/viewer-three.js.map +1 -1
- package/dist/viewer-three.min.js +3 -3
- package/dist/viewer-three.module.js +609 -206
- package/dist/viewer-three.module.js.map +1 -1
- package/lib/Viewer/Viewer.d.ts +27 -20
- package/lib/Viewer/commands/GetSelected2.d.ts +2 -0
- package/lib/Viewer/commands/SelectModel.d.ts +1 -1
- package/lib/Viewer/commands/SetSelected2.d.ts +2 -0
- package/lib/Viewer/components/index.d.ts +6 -6
- package/lib/Viewer/loaders/DynamicGltfLoader/DynamicModelImpl.d.ts +0 -1
- package/lib/Viewer/loaders/GLTFBinaryExtension.d.ts +5 -0
- package/lib/Viewer/loaders/GLTFCloudDynamicLoader.d.ts +2 -2
- package/lib/Viewer/loaders/{GLTFFileLoader.d.ts → GLTFFileDynamicLoader.d.ts} +7 -1
- package/lib/Viewer/loaders/GLTFLoadingManager.d.ts +4 -3
- package/lib/Viewer/loaders/RangesLoader.d.ts +15 -0
- package/lib/Viewer/loaders/index.d.ts +22 -14
- package/lib/Viewer/models/IModelImpl.d.ts +6 -8
- package/lib/Viewer/models/ModelImpl.d.ts +3 -5
- package/package.json +5 -5
- package/plugins/components/AxesHelperComponent.ts +31 -2
- package/plugins/components/ExtentsHelperComponent.ts +25 -0
- package/plugins/loaders/GLTFCloudLoader.ts +2 -3
- package/{src/Viewer → plugins}/loaders/GLTFFileLoader.ts +21 -12
- package/plugins/loaders/IFCX/IFCXCloudLoader.ts +5 -5
- package/plugins/loaders/IFCX/IFCXFileLoader.ts +3 -4
- package/plugins/loaders/Potree/PotreeFileLoader.ts +3 -4
- package/src/Viewer/Viewer.ts +120 -88
- package/src/Viewer/commands/ClearSelected.ts +3 -1
- package/src/Viewer/commands/GetModels.ts +1 -1
- package/src/Viewer/commands/GetSelected.ts +2 -2
- package/src/Viewer/commands/GetSelected2.ts +34 -0
- package/src/Viewer/commands/HideSelected.ts +3 -1
- package/src/Viewer/commands/SelectModel.ts +5 -5
- package/src/Viewer/commands/SetSelected.ts +9 -10
- package/src/Viewer/commands/SetSelected2.ts +42 -0
- package/src/Viewer/commands/ZoomToObjects.ts +5 -6
- package/src/Viewer/commands/ZoomToSelected.ts +3 -1
- package/src/Viewer/commands/index.ts +4 -0
- package/src/Viewer/components/CameraComponent.ts +6 -1
- package/src/Viewer/components/ExtentsComponent.ts +4 -1
- package/src/Viewer/components/SelectionComponent.ts +2 -0
- package/src/Viewer/components/index.ts +6 -6
- package/src/Viewer/loaders/DynamicGltfLoader/DynamicGltfLoader.js +253 -22
- package/src/Viewer/loaders/DynamicGltfLoader/DynamicModelImpl.ts +20 -10
- package/src/Viewer/loaders/DynamicGltfLoader/GltfStructure.js +3 -1
- package/src/Viewer/loaders/GLTFBinaryExtension.ts +91 -0
- package/src/Viewer/loaders/GLTFCloudDynamicLoader.ts +13 -19
- package/src/Viewer/loaders/GLTFFileDynamicLoader.ts +145 -0
- package/src/Viewer/loaders/GLTFLoadingManager.ts +5 -4
- package/src/Viewer/loaders/RangesLoader.ts +95 -0
- package/src/Viewer/loaders/index.ts +24 -16
- package/src/Viewer/models/IModelImpl.ts +8 -9
- package/src/Viewer/models/ModelImpl.ts +30 -17
|
@@ -22,21 +22,13 @@
|
|
|
22
22
|
///////////////////////////////////////////////////////////////////////////////
|
|
23
23
|
|
|
24
24
|
import { Box3, Object3D, Vector3 } from "three";
|
|
25
|
-
import { ILoader } from "@inweb/viewer-core";
|
|
26
|
-
|
|
27
25
|
import { IModelImpl } from "./IModelImpl";
|
|
28
|
-
import { Viewer } from "../Viewer";
|
|
29
|
-
|
|
30
|
-
// Basic model implementation.
|
|
31
26
|
|
|
32
27
|
export class ModelImpl implements IModelImpl {
|
|
33
|
-
public
|
|
28
|
+
public id: string;
|
|
34
29
|
public scene: Object3D;
|
|
35
|
-
public loader: ILoader;
|
|
36
|
-
public viewer: Viewer;
|
|
37
30
|
|
|
38
31
|
constructor(scene: Object3D) {
|
|
39
|
-
this.handle = "1";
|
|
40
32
|
this.scene = scene;
|
|
41
33
|
}
|
|
42
34
|
|
|
@@ -106,27 +98,49 @@ export class ModelImpl implements IModelImpl {
|
|
|
106
98
|
return false;
|
|
107
99
|
}
|
|
108
100
|
|
|
101
|
+
hasHandle(handle: string): boolean {
|
|
102
|
+
return !handle.includes(":") || handle.split(":", 1)[0] === this.id + "";
|
|
103
|
+
}
|
|
104
|
+
|
|
109
105
|
getOwnObjects(objects: Object3D | Object3D[]): Object3D[] {
|
|
110
106
|
if (!Array.isArray(objects)) objects = [objects];
|
|
111
107
|
return objects.filter((object) => this.hasObject(object));
|
|
112
108
|
}
|
|
113
109
|
|
|
110
|
+
getOwnHandles(handles: string | string[]): string[] {
|
|
111
|
+
if (!Array.isArray(handles)) handles = [handles];
|
|
112
|
+
return handles.filter((handle) => this.hasHandle(handle));
|
|
113
|
+
}
|
|
114
|
+
|
|
114
115
|
getObjectsByHandles(handles: string | string[]): Object3D[] {
|
|
115
|
-
const
|
|
116
|
+
const ownHandles = this.getOwnHandles(handles);
|
|
117
|
+
if (ownHandles.length === 0) return [];
|
|
118
|
+
|
|
119
|
+
const handleSet = new Set(ownHandles.map((handle) => handle.slice(handle.indexOf(":") + 1)));
|
|
120
|
+
|
|
116
121
|
const objects = [];
|
|
117
|
-
this.scene.traverse((object) =>
|
|
122
|
+
this.scene.traverse((object) => {
|
|
123
|
+
const handle = object.userData.handle;
|
|
124
|
+
if (handle && handleSet.has(handle)) objects.push(object);
|
|
125
|
+
});
|
|
126
|
+
|
|
118
127
|
return objects;
|
|
119
128
|
}
|
|
120
129
|
|
|
121
130
|
getHandlesByObjects(objects: Object3D | Object3D[]): string[] {
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
131
|
+
const ownObjects = this.getOwnObjects(objects);
|
|
132
|
+
if (ownObjects.length === 0) return [];
|
|
133
|
+
|
|
134
|
+
const handleSet = new Set<string>();
|
|
135
|
+
ownObjects.forEach((object) => {
|
|
136
|
+
const handle = object.userData.handle;
|
|
137
|
+
if (handle) handleSet.add(`${this.id}:${handle}`);
|
|
138
|
+
});
|
|
139
|
+
|
|
140
|
+
return Array.from(handleSet);
|
|
126
141
|
}
|
|
127
142
|
|
|
128
143
|
hideObjects(objects: Object3D | Object3D[]): this {
|
|
129
|
-
if (!Array.isArray(objects)) objects = [objects];
|
|
130
144
|
this.getOwnObjects(objects).forEach((object) => (object.visible = false));
|
|
131
145
|
return this;
|
|
132
146
|
}
|
|
@@ -144,7 +158,6 @@ export class ModelImpl implements IModelImpl {
|
|
|
144
158
|
}
|
|
145
159
|
|
|
146
160
|
showObjects(objects: Object3D | Object3D[]): this {
|
|
147
|
-
if (!Array.isArray(objects)) objects = [objects];
|
|
148
161
|
this.getOwnObjects(objects).forEach((object) => {
|
|
149
162
|
object.visible = true;
|
|
150
163
|
object.traverseAncestors((parent) => (parent.visible = true));
|