viral-viewer-2 2.6.6 → 2.6.8
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/components/worker/viral-viewer-2.worker.d.ts +2 -1
- package/dist/components/worker/viral-viewer-2.worker.js +14 -15
- package/dist/components/worker/viral-viewer-2.worker.js.map +1 -1
- package/dist/viral-viewer-api.d.ts +0 -2
- package/dist/viral-viewer-api.js +0 -5
- package/dist/viral-viewer-api.js.map +1 -1
- package/package.json +1 -1
|
@@ -9,7 +9,8 @@ export declare class ViralViewerWorker2 {
|
|
|
9
9
|
materials: RenderMaterial[];
|
|
10
10
|
mainModel: Mesh | null;
|
|
11
11
|
threejsMaterials: Dictionary<number, MeshPhongMaterial>;
|
|
12
|
-
private readonly
|
|
12
|
+
private readonly maxPolygonPerObject;
|
|
13
|
+
private readonly maxPolygonForEdge;
|
|
13
14
|
constructor(viralViewerApi: ViralViewerApi, scriptUrl?: string);
|
|
14
15
|
initial(materials: RenderMaterial[]): void;
|
|
15
16
|
loadStructuralGeometry(model: ViralViewerRevitStructuralGeometry, callbackOnSuccess?: () => void): void;
|
|
@@ -13,7 +13,8 @@ class ViralViewerWorker2 {
|
|
|
13
13
|
this.materials = [];
|
|
14
14
|
this.mainModel = null;
|
|
15
15
|
this.threejsMaterials = new dictionary_model_1.Dictionary();
|
|
16
|
-
this.
|
|
16
|
+
this.maxPolygonPerObject = 1000;
|
|
17
|
+
this.maxPolygonForEdge = 1000;
|
|
17
18
|
// Create a new Blob containing the worker code
|
|
18
19
|
const blob = new Blob([`(${load_model_worker_2_script_1.workerCode})()`]);
|
|
19
20
|
const workerPath = URL.createObjectURL(blob);
|
|
@@ -67,17 +68,16 @@ class ViralViewerWorker2 {
|
|
|
67
68
|
// inputData.Transform = model.Instances[0];
|
|
68
69
|
this.workerPool.Enqueue(inputData, (data) => {
|
|
69
70
|
let buffer = data.buffer;
|
|
70
|
-
if (buffer.length > this.maxVertices) {
|
|
71
|
-
}
|
|
72
71
|
let geometry = new three_1.BufferGeometry();
|
|
73
72
|
const dummyGeometry = new three_1.BufferGeometry();
|
|
74
73
|
dummyGeometry.setAttribute("position", new three_1.BufferAttribute(buffer, 3));
|
|
75
|
-
|
|
74
|
+
// In case number of polygon larger than expect, merge them to reduce polygon first, for optimize purpose
|
|
75
|
+
if (dummyGeometry.attributes.position.count > this.maxPolygonPerObject) {
|
|
76
76
|
const modifier = new simplify_modifier_1.SimplifyModifier();
|
|
77
|
-
const ratio = this.
|
|
78
|
-
const count = Math.floor(dummyGeometry.attributes.position.count * ratio); // number of
|
|
77
|
+
const ratio = this.maxPolygonPerObject / dummyGeometry.attributes.position.count;
|
|
78
|
+
const count = Math.floor(dummyGeometry.attributes.position.count * ratio); // number of polygon to remove
|
|
79
79
|
geometry = modifier.modify(dummyGeometry, count);
|
|
80
|
-
console.log(model.Name,
|
|
80
|
+
console.log(model.Name, dummyGeometry.attributes.position.count, geometry.attributes.position.count);
|
|
81
81
|
}
|
|
82
82
|
else {
|
|
83
83
|
geometry = dummyGeometry;
|
|
@@ -116,17 +116,16 @@ class ViralViewerWorker2 {
|
|
|
116
116
|
let matrix4 = new three_1.Matrix4();
|
|
117
117
|
matrix4.fromArray(numbers);
|
|
118
118
|
childMesh.setMatrixAt(index, matrix4);
|
|
119
|
-
//
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
119
|
+
//if number of polygon smaller than expect, generate edges
|
|
120
|
+
if (geometry.attributes.position.count < this.maxPolygonForEdge) {
|
|
121
|
+
const edges = new three_1.EdgesGeometry(geometry, 90);
|
|
122
|
+
const line = new three_1.LineSegments(edges, new three_1.LineBasicMaterial({ color: "#666", linewidth: 0.5 }));
|
|
123
|
+
line.applyMatrix4(matrix4);
|
|
124
|
+
childMesh.add(line);
|
|
125
|
+
}
|
|
126
126
|
}
|
|
127
127
|
if (this.mainModel) {
|
|
128
128
|
this.mainModel.add(childMesh);
|
|
129
|
-
// this.viralViewerApi.viralRenderer.render();
|
|
130
129
|
}
|
|
131
130
|
callbackOnSuccess();
|
|
132
131
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"viral-viewer-2.worker.js","sourceRoot":"","sources":["../../../src/components/worker/viral-viewer-2.worker.ts"],"names":[],"mappings":";;;AACA,uCAA4K;AAC5K,iCAAkL;AAClL,4FAAyE;AACzE,oEAA2D;AAC3D,oDAAsD;AACtD,6EAAyE;AAEzE,MAAa,kBAAkB;
|
|
1
|
+
{"version":3,"file":"viral-viewer-2.worker.js","sourceRoot":"","sources":["../../../src/components/worker/viral-viewer-2.worker.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,7 +14,6 @@ import { ViralSpinner } from "./components/spinner/viral-spinner";
|
|
|
14
14
|
import { LocalStorageService } from "./services/local-storage.service";
|
|
15
15
|
import { ViralKeyboard } from "./components/keyboard/viral-keyboard";
|
|
16
16
|
import { ViralViewerWorker2 } from "./components/worker/viral-viewer-2.worker";
|
|
17
|
-
import { TestWorker } from "./components/worker/test-worker.worker";
|
|
18
17
|
export declare class ViralViewerApi {
|
|
19
18
|
options: ViewerOptions;
|
|
20
19
|
targetElement: HTMLElement;
|
|
@@ -32,7 +31,6 @@ export declare class ViralViewerApi {
|
|
|
32
31
|
compressProcessor: CompressProcessor;
|
|
33
32
|
worker: ViralViewerWorker | null;
|
|
34
33
|
worker2: ViralViewerWorker2 | null;
|
|
35
|
-
worker3: TestWorker | null;
|
|
36
34
|
localStorageService: LocalStorageService;
|
|
37
35
|
constructor(options: ViewerOptions);
|
|
38
36
|
}
|
package/dist/viral-viewer-api.js
CHANGED
|
@@ -16,14 +16,11 @@ const viral_spinner_1 = require("./components/spinner/viral-spinner");
|
|
|
16
16
|
const local_storage_service_1 = require("./services/local-storage.service");
|
|
17
17
|
const viral_keyboard_1 = require("./components/keyboard/viral-keyboard");
|
|
18
18
|
const viral_viewer_2_worker_1 = require("./components/worker/viral-viewer-2.worker");
|
|
19
|
-
const test_worker_worker_1 = require("./components/worker/test-worker.worker");
|
|
20
19
|
class ViralViewerApi {
|
|
21
20
|
constructor(options) {
|
|
22
21
|
this.compressProcessor = new compress_processor_1.CompressProcessor();
|
|
23
22
|
this.worker = null;
|
|
24
23
|
this.worker2 = null;
|
|
25
|
-
this.worker3 = null;
|
|
26
|
-
// worker3: TestWorkerPool | null = null;
|
|
27
24
|
this.localStorageService = new local_storage_service_1.LocalStorageService();
|
|
28
25
|
this.options = options;
|
|
29
26
|
this.targetElement = options.container;
|
|
@@ -40,8 +37,6 @@ class ViralViewerApi {
|
|
|
40
37
|
this.pointCloudLoader = new viral_viewer_point_cloud_loader_1.ViralViewerPointCloudLoader(this);
|
|
41
38
|
this.worker = new viral_viewer_worker_1.ViralViewerWorker(this);
|
|
42
39
|
this.worker2 = new viral_viewer_2_worker_1.ViralViewerWorker2(this);
|
|
43
|
-
this.worker3 = new test_worker_worker_1.TestWorker();
|
|
44
|
-
// this.worker3 = new TestWorkerPool();
|
|
45
40
|
this.viralAnimation.animation();
|
|
46
41
|
}
|
|
47
42
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"viral-viewer-api.js","sourceRoot":"","sources":["../src/viral-viewer-api.ts"],"names":[],"mappings":";;;AACA,6FAAuF;AACvF,iFAA6E;AAC7E,iFAA4E;AAC5E,yGAAkG;AAClG,mEAA+D;AAC/D,gEAA4D;AAC5D,gEAA4D;AAC5D,yEAAqE;AACrE,8FAAyF;AACzF,4EAAwE;AACxE,gEAA4D;AAC5D,sEAAkE;AAClE,4EAAuE;AACvE,yEAAqE;AACrE,qFAA+E;
|
|
1
|
+
{"version":3,"file":"viral-viewer-api.js","sourceRoot":"","sources":["../src/viral-viewer-api.ts"],"names":[],"mappings":";;;AACA,6FAAuF;AACvF,iFAA6E;AAC7E,iFAA4E;AAC5E,yGAAkG;AAClG,mEAA+D;AAC/D,gEAA4D;AAC5D,gEAA4D;AAC5D,yEAAqE;AACrE,8FAAyF;AACzF,4EAAwE;AACxE,gEAA4D;AAC5D,sEAAkE;AAClE,4EAAuE;AACvE,yEAAqE;AACrE,qFAA+E;AAE/E,MAAa,cAAc;IAkBvB,YAAY,OAAsB;QAJlC,sBAAiB,GAAsB,IAAI,sCAAiB,EAAE,CAAC;QAC/D,WAAM,GAA6B,IAAI,CAAC;QACxC,YAAO,GAA8B,IAAI,CAAC;QAC1C,wBAAmB,GAAwB,IAAI,2CAAmB,EAAE,CAAC;QAEjE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,SAAS,CAAC;QACvC,IAAI,CAAC,mBAAmB,GAAG,IAAI,2CAAmB,CAAC,IAAI,CAAC,CAAC;QACzD,IAAI,CAAC,UAAU,GAAG,IAAI,wBAAU,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,CAAC,YAAY,GAAG,IAAI,4BAAY,CAAC,IAAI,CAAC,CAAC;QAC3C,IAAI,CAAC,UAAU,GAAG,IAAI,wBAAU,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,CAAC,aAAa,GAAG,IAAI,8BAAa,CAAC,IAAI,CAAC,CAAC;QAC7C,IAAI,CAAC,WAAW,GAAG,IAAI,0BAAW,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,CAAC,UAAU,GAAG,IAAI,wBAAU,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,CAAC,aAAa,GAAG,IAAI,8BAAa,CAAC,IAAI,CAAC,CAAC;QAC7C,IAAI,CAAC,cAAc,GAAG,IAAI,gCAAc,CAAC,IAAI,CAAC,CAAC;QAC/C,IAAI,CAAC,WAAW,GAAG,IAAI,kDAAsB,CAAC,IAAI,CAAC,CAAC;QACpD,IAAI,CAAC,gBAAgB,GAAG,IAAI,6DAA2B,CAAC,IAAI,CAAC,CAAC;QAC9D,IAAI,CAAC,MAAM,GAAG,IAAI,uCAAiB,CAAC,IAAI,CAAC,CAAC;QAC1C,IAAI,CAAC,OAAO,GAAG,IAAI,0CAAkB,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,CAAC;IAEpC,CAAC;CAGJ;AAvCD,wCAuCC"}
|