@inweb/viewer-three 25.3.19 → 25.3.21
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/viewer-three.js +15 -9
- package/dist/viewer-three.js.map +1 -1
- package/dist/viewer-three.min.js +2 -2
- package/dist/viewer-three.module.js +13 -10
- package/dist/viewer-three.module.js.map +1 -1
- package/package.json +4 -4
- package/src/Viewer/Viewer.ts +6 -5
- package/src/Viewer/components/BackgroundComponent.ts +1 -1
- package/src/Viewer/components/DefaultCameraPositionComponent.ts +1 -1
- package/src/Viewer/components/LightComponent.ts +1 -1
- package/src/Viewer/components/ObjectSelectionComponent.ts +1 -1
- package/src/Viewer/components/RenderLoopComponent.ts +2 -2
- package/src/Viewer/draggers/ClippingPlaneDragger.ts +4 -4
- package/src/Viewer/draggers/OrbitDragger.ts +1 -1
- package/src/Viewer/draggers/WalkDragger.ts +1 -1
- package/src/Viewer/loaders/GLTFLoadingManager.ts +1 -1
package/src/Viewer/Viewer.ts
CHANGED
|
@@ -71,7 +71,7 @@ export class Viewer extends EventEmitter2<ViewerEventMap & OptionsEventMap> impl
|
|
|
71
71
|
|
|
72
72
|
private components: Array<IComponent>;
|
|
73
73
|
|
|
74
|
-
private renderNeeded
|
|
74
|
+
private renderNeeded = false;
|
|
75
75
|
private renderTime: DOMHighResTimeStamp;
|
|
76
76
|
|
|
77
77
|
constructor(client?: Client) {
|
|
@@ -80,7 +80,7 @@ export class Viewer extends EventEmitter2<ViewerEventMap & OptionsEventMap> impl
|
|
|
80
80
|
|
|
81
81
|
this.client = client;
|
|
82
82
|
|
|
83
|
-
this.canvasEvents = CANVAS_EVENTS;
|
|
83
|
+
this.canvasEvents = CANVAS_EVENTS.slice();
|
|
84
84
|
this.canvaseventlistener = (event: Event) => this.emit(event);
|
|
85
85
|
|
|
86
86
|
this.draggerFactory = {
|
|
@@ -178,6 +178,8 @@ export class Viewer extends EventEmitter2<ViewerEventMap & OptionsEventMap> impl
|
|
|
178
178
|
public render(time: DOMHighResTimeStamp): void {
|
|
179
179
|
if (!this.renderNeeded) return;
|
|
180
180
|
if (!this.renderer) return;
|
|
181
|
+
if (!this.scene) return;
|
|
182
|
+
if (!this.camera) return;
|
|
181
183
|
|
|
182
184
|
this.renderer.render(this.scene, this.camera);
|
|
183
185
|
this.renderNeeded = false;
|
|
@@ -210,8 +212,7 @@ export class Viewer extends EventEmitter2<ViewerEventMap & OptionsEventMap> impl
|
|
|
210
212
|
|
|
211
213
|
this.emitEvent({ type: "open", file, model: file });
|
|
212
214
|
|
|
213
|
-
let model: Model;
|
|
214
|
-
|
|
215
|
+
let model: Model | undefined = undefined;
|
|
215
216
|
if (file) {
|
|
216
217
|
const models = (await file.getModels()) || [];
|
|
217
218
|
model = models.find((model: Model) => model.default) || models[0];
|
|
@@ -290,7 +291,7 @@ export class Viewer extends EventEmitter2<ViewerEventMap & OptionsEventMap> impl
|
|
|
290
291
|
|
|
291
292
|
this.emitEvent({ type: "databasechunk" });
|
|
292
293
|
this.emitEvent({ type: "geometryend", data: gltf.scene });
|
|
293
|
-
} catch (error) {
|
|
294
|
+
} catch (error: any) {
|
|
294
295
|
this.emitEvent({ type: "geometryerror", data: error });
|
|
295
296
|
throw error;
|
|
296
297
|
} finally {
|
|
@@ -45,7 +45,7 @@ export class BackgroundComponent implements IComponent {
|
|
|
45
45
|
environment.dispose();
|
|
46
46
|
}
|
|
47
47
|
|
|
48
|
-
dispose() {
|
|
48
|
+
dispose(): void {
|
|
49
49
|
this.viewer.removeEventListener("optionschange", this.syncOptions);
|
|
50
50
|
this.viewer.scene.environment = undefined;
|
|
51
51
|
this.viewer.scene.background = undefined;
|
|
@@ -41,7 +41,7 @@ export class ObjectSelectionComponent implements IComponent {
|
|
|
41
41
|
this.viewer.addEventListener("pointerup", this.onPointerUp);
|
|
42
42
|
}
|
|
43
43
|
|
|
44
|
-
dispose() {
|
|
44
|
+
dispose(): void {
|
|
45
45
|
this.viewer.removeEventListener("pointerdown", this.onPointerDown);
|
|
46
46
|
this.viewer.removeEventListener("pointerup", this.onPointerUp);
|
|
47
47
|
}
|
|
@@ -26,14 +26,14 @@ import type { Viewer } from "../Viewer";
|
|
|
26
26
|
|
|
27
27
|
export class RenderLoopComponent implements IComponent {
|
|
28
28
|
protected viewer: Viewer;
|
|
29
|
-
protected requestID
|
|
29
|
+
protected requestID = 0;
|
|
30
30
|
|
|
31
31
|
constructor(viewer: Viewer) {
|
|
32
32
|
this.viewer = viewer;
|
|
33
33
|
this.animate();
|
|
34
34
|
}
|
|
35
35
|
|
|
36
|
-
dispose() {
|
|
36
|
+
dispose(): void {
|
|
37
37
|
cancelAnimationFrame(this.requestID);
|
|
38
38
|
}
|
|
39
39
|
|
|
@@ -51,7 +51,7 @@ export class ClippingPlaneDragger {
|
|
|
51
51
|
this.viewer.scene.add(this.planeHelper);
|
|
52
52
|
}
|
|
53
53
|
|
|
54
|
-
dispose() {
|
|
54
|
+
dispose(): void {
|
|
55
55
|
this.viewer.removeEventListener("pointerdown", this.onPointerDown);
|
|
56
56
|
this.viewer.removeEventListener("pointerup", this.onPointerUp);
|
|
57
57
|
this.viewer.removeEventListener("pointermove", this.onPointerMove);
|
|
@@ -96,15 +96,15 @@ export class ClippingPlaneDragger {
|
|
|
96
96
|
plane.translate(this.delta);
|
|
97
97
|
};
|
|
98
98
|
|
|
99
|
-
update() {}
|
|
99
|
+
update(): void {}
|
|
100
100
|
|
|
101
|
-
screenToWorld(v: THREE.Vector3) {
|
|
101
|
+
screenToWorld(v: THREE.Vector3): THREE.Vector3 {
|
|
102
102
|
v.x = (2 * v.x) / this.viewer.canvas.clientWidth - 1;
|
|
103
103
|
v.y = 1 - (2 * v.y) / this.viewer.canvas.clientHeight;
|
|
104
104
|
return v.unproject(this.viewer.camera);
|
|
105
105
|
}
|
|
106
106
|
|
|
107
|
-
screenToPlane(v: THREE.Vector3) {
|
|
107
|
+
screenToPlane(v: THREE.Vector3): THREE.Vector3 {
|
|
108
108
|
v = this.screenToWorld(v);
|
|
109
109
|
const direction = v.sub(this.viewer.camera.position).normalize();
|
|
110
110
|
const ray = new THREE.Ray(this.viewer.camera.position, direction);
|
|
@@ -40,7 +40,7 @@ export class OrbitDragger extends OrbitControls {
|
|
|
40
40
|
this.addEventListener("change", this.updateViewer);
|
|
41
41
|
}
|
|
42
42
|
|
|
43
|
-
override dispose() {
|
|
43
|
+
override dispose(): void {
|
|
44
44
|
this.removeEventListener("change", this.updateViewer);
|
|
45
45
|
this.viewer.removeEventListener("geometryend", this.geometryEnd);
|
|
46
46
|
super.dispose();
|