@inweb/viewer-three 26.12.7 → 27.1.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/viewer-three.js +9 -15
- package/dist/viewer-three.js.map +1 -1
- package/dist/viewer-three.min.js +3 -3
- package/dist/viewer-three.module.js +9 -15
- package/dist/viewer-three.module.js.map +1 -1
- package/lib/Viewer/Viewer.d.ts +2 -1
- package/package.json +5 -5
- package/src/Viewer/Viewer.ts +10 -4
- package/src/Viewer/loaders/DynamicGltfLoader/DynamicGltfLoader.js +2 -12
package/lib/Viewer/Viewer.d.ts
CHANGED
|
@@ -39,6 +39,7 @@ export declare class Viewer extends EventEmitter2<ViewerEventMap & CanvasEventMa
|
|
|
39
39
|
target: Vector3;
|
|
40
40
|
private _activeDragger;
|
|
41
41
|
private _components;
|
|
42
|
+
private _updateDelay;
|
|
42
43
|
private _renderNeeded;
|
|
43
44
|
private _renderTime;
|
|
44
45
|
private _markup;
|
|
@@ -61,7 +62,7 @@ export declare class Viewer extends EventEmitter2<ViewerEventMap & CanvasEventMa
|
|
|
61
62
|
isInitialized(): boolean;
|
|
62
63
|
setSize(width: number, height: number, updateStyle?: boolean): void;
|
|
63
64
|
update(force?: boolean): void;
|
|
64
|
-
render(time?: DOMHighResTimeStamp
|
|
65
|
+
render(time?: DOMHighResTimeStamp): void;
|
|
65
66
|
loadReferences(model: Model | File | Assembly): Promise<this>;
|
|
66
67
|
/**
|
|
67
68
|
* Loads a file into the viewer.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@inweb/viewer-three",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "27.1.0",
|
|
4
4
|
"description": "JavaScript library for rendering CAD and BIM files in a browser using Three.js",
|
|
5
5
|
"homepage": "https://cloud.opendesign.com/docs/index.html",
|
|
6
6
|
"license": "SEE LICENSE IN LICENSE",
|
|
@@ -35,10 +35,10 @@
|
|
|
35
35
|
"docs": "typedoc"
|
|
36
36
|
},
|
|
37
37
|
"dependencies": {
|
|
38
|
-
"@inweb/client": "~
|
|
39
|
-
"@inweb/eventemitter2": "~
|
|
40
|
-
"@inweb/markup": "~
|
|
41
|
-
"@inweb/viewer-core": "~
|
|
38
|
+
"@inweb/client": "~27.1.0",
|
|
39
|
+
"@inweb/eventemitter2": "~27.1.0",
|
|
40
|
+
"@inweb/markup": "~27.1.0",
|
|
41
|
+
"@inweb/viewer-core": "~27.1.0"
|
|
42
42
|
},
|
|
43
43
|
"devDependencies": {
|
|
44
44
|
"@types/three": "^0.180.0",
|
package/src/Viewer/Viewer.ts
CHANGED
|
@@ -109,6 +109,7 @@ export class Viewer
|
|
|
109
109
|
private _activeDragger: IDragger | null;
|
|
110
110
|
private _components: IComponent[];
|
|
111
111
|
|
|
112
|
+
private _updateDelay: number;
|
|
112
113
|
private _renderNeeded: boolean;
|
|
113
114
|
private _renderTime: DOMHighResTimeStamp;
|
|
114
115
|
|
|
@@ -137,6 +138,7 @@ export class Viewer
|
|
|
137
138
|
this._activeDragger = null;
|
|
138
139
|
this._components = [];
|
|
139
140
|
|
|
141
|
+
this._updateDelay = 1000;
|
|
140
142
|
this._renderNeeded = false;
|
|
141
143
|
this._renderTime = 0;
|
|
142
144
|
|
|
@@ -313,16 +315,20 @@ export class Viewer
|
|
|
313
315
|
}
|
|
314
316
|
|
|
315
317
|
update(force = false): void {
|
|
318
|
+
const time = performance.now();
|
|
319
|
+
force = force || time - this._renderTime >= this._updateDelay;
|
|
320
|
+
|
|
316
321
|
this._renderNeeded = true;
|
|
317
|
-
if (force) this.render();
|
|
318
|
-
|
|
322
|
+
if (force) this.render(time);
|
|
323
|
+
|
|
324
|
+
this.emitEvent({ type: "update", force });
|
|
319
325
|
}
|
|
320
326
|
|
|
321
327
|
// Internal render routines
|
|
322
328
|
|
|
323
|
-
render(time?: DOMHighResTimeStamp
|
|
329
|
+
render(time?: DOMHighResTimeStamp): void {
|
|
324
330
|
if (!this.renderer) return;
|
|
325
|
-
if (!this._renderNeeded
|
|
331
|
+
if (!this._renderNeeded) return;
|
|
326
332
|
|
|
327
333
|
if (!time) time = performance.now();
|
|
328
334
|
const deltaTime = (time - this._renderTime) / 1000;
|
|
@@ -77,9 +77,6 @@ export class DynamicGltfLoader {
|
|
|
77
77
|
this.graphicsObjectLimit = 10000;
|
|
78
78
|
this.totalLoadedObjects = 0;
|
|
79
79
|
|
|
80
|
-
this.lastUpdateTime = 0;
|
|
81
|
-
this.updateInterval = 1000;
|
|
82
|
-
|
|
83
80
|
this.handleToObjects = new Map();
|
|
84
81
|
|
|
85
82
|
this.originalObjects = new Set();
|
|
@@ -887,11 +884,7 @@ export class DynamicGltfLoader {
|
|
|
887
884
|
total: totalNodes,
|
|
888
885
|
});
|
|
889
886
|
|
|
890
|
-
|
|
891
|
-
if (currentTime - this.lastUpdateTime >= this.updateInterval) {
|
|
892
|
-
this.dispatchEvent("update");
|
|
893
|
-
this.lastUpdateTime = currentTime;
|
|
894
|
-
}
|
|
887
|
+
this.dispatchEvent("update");
|
|
895
888
|
|
|
896
889
|
await new Promise((resolve) => {
|
|
897
890
|
setTimeout(resolve, 0);
|
|
@@ -1284,7 +1277,6 @@ export class DynamicGltfLoader {
|
|
|
1284
1277
|
this.transformedGeometries.clear();
|
|
1285
1278
|
|
|
1286
1279
|
this.totalLoadedObjects = 0;
|
|
1287
|
-
this.lastUpdateTime = 0;
|
|
1288
1280
|
this.currentMemoryUsage = 0;
|
|
1289
1281
|
this.loadedGeometrySize = 0;
|
|
1290
1282
|
|
|
@@ -1414,9 +1406,7 @@ export class DynamicGltfLoader {
|
|
|
1414
1406
|
|
|
1415
1407
|
yieldToUI() {
|
|
1416
1408
|
return new Promise((resolve) => {
|
|
1417
|
-
|
|
1418
|
-
setTimeout(resolve, 0);
|
|
1419
|
-
});
|
|
1409
|
+
setTimeout(resolve, 0);
|
|
1420
1410
|
});
|
|
1421
1411
|
}
|
|
1422
1412
|
|