viral-viewer-2 3.0.3 → 3.0.5
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.
|
@@ -85,9 +85,9 @@ class ViralViewerWorker3 {
|
|
|
85
85
|
// matrix4.fromArray(numbers);
|
|
86
86
|
// instancedMesh.setMatrixAt(index, matrix4);
|
|
87
87
|
// }
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
88
|
+
if (this.mainModel)
|
|
89
|
+
this.mainModel.add(mesh);
|
|
90
|
+
this.viralViewerApi.viralRenderer.render();
|
|
91
91
|
callbackOnSuccess();
|
|
92
92
|
});
|
|
93
93
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"viral-viewer-3.worker.js","sourceRoot":"","sources":["../../../src/components/worker/viral-viewer-3.worker.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"viral-viewer-3.worker.js","sourceRoot":"","sources":["../../../src/components/worker/viral-viewer-3.worker.ts"],"names":[],"mappings":"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"}
|
|
@@ -34041,7 +34041,7 @@ function workerFunction() {
|
|
|
34041
34041
|
//////////////////
|
|
34042
34042
|
const maxPolygonPerObject = 1000;
|
|
34043
34043
|
const maxPolygonForEdge = 1000;
|
|
34044
|
-
function addMesh(indices, vertices, transform = null
|
|
34044
|
+
function addMesh(indices, vertices, transform = null) {
|
|
34045
34045
|
let verticePoints = [];
|
|
34046
34046
|
if (transform == null) {
|
|
34047
34047
|
for (let i = 0; i < indices.length; i++) {
|
|
@@ -34052,8 +34052,7 @@ function workerFunction() {
|
|
|
34052
34052
|
verticePoints.push(point.Y);
|
|
34053
34053
|
}
|
|
34054
34054
|
const buffer = new Float32Array(verticePoints);
|
|
34055
|
-
|
|
34056
|
-
return;
|
|
34055
|
+
return buffer;
|
|
34057
34056
|
}
|
|
34058
34057
|
let numbers = [
|
|
34059
34058
|
transform.BasisX.X,
|
|
@@ -34091,110 +34090,107 @@ function workerFunction() {
|
|
|
34091
34090
|
verticePoints.push(point.z);
|
|
34092
34091
|
}
|
|
34093
34092
|
const buffer = new Float32Array(verticePoints);
|
|
34094
|
-
|
|
34093
|
+
return buffer;
|
|
34095
34094
|
}
|
|
34096
|
-
function progressGeometries(json
|
|
34097
|
-
addMesh(json.Indices, json.Vertices, json.Transform
|
|
34098
|
-
|
|
34099
|
-
});
|
|
34095
|
+
function progressGeometries(json) {
|
|
34096
|
+
let buffer = addMesh(json.Indices, json.Vertices, json.Transform);
|
|
34097
|
+
return buffer;
|
|
34100
34098
|
}
|
|
34101
34099
|
self.addEventListener("message", (event) => {
|
|
34102
|
-
let
|
|
34103
|
-
|
|
34104
|
-
|
|
34105
|
-
|
|
34106
|
-
|
|
34107
|
-
|
|
34108
|
-
|
|
34109
|
-
|
|
34110
|
-
|
|
34111
|
-
|
|
34112
|
-
|
|
34113
|
-
|
|
34114
|
-
|
|
34115
|
-
console.log(dummyGeometry.attributes.position.count, geometry.attributes.position.count);
|
|
34116
|
-
}
|
|
34117
|
-
else {
|
|
34118
|
-
geometry = dummyGeometry;
|
|
34119
|
-
}
|
|
34120
|
-
const childMesh = new InstancedMesh(geometry, null, data.Instances.length);
|
|
34121
|
-
childMesh.castShadow = true;
|
|
34122
|
-
childMesh.receiveShadow = true;
|
|
34123
|
-
for (let index = 0; index < data.Instances.length; index++) {
|
|
34124
|
-
const transform = data.Instances[index];
|
|
34125
|
-
let numbers = [
|
|
34126
|
-
transform.BasisX.X,
|
|
34127
|
-
-transform.BasisX.Z,
|
|
34128
|
-
-transform.BasisX.Y,
|
|
34129
|
-
0,
|
|
34130
|
-
-transform.BasisZ.X,
|
|
34131
|
-
transform.BasisZ.Z,
|
|
34132
|
-
transform.BasisZ.Y,
|
|
34133
|
-
0,
|
|
34134
|
-
-transform.BasisY.X,
|
|
34135
|
-
transform.BasisY.Z,
|
|
34136
|
-
transform.BasisY.Y,
|
|
34137
|
-
0,
|
|
34138
|
-
-transform.Offset.X,
|
|
34139
|
-
transform.Offset.Z,
|
|
34140
|
-
transform.Offset.Y,
|
|
34141
|
-
1,
|
|
34142
|
-
];
|
|
34143
|
-
//transform first
|
|
34144
|
-
let matrix4 = new Matrix4();
|
|
34145
|
-
matrix4.fromArray(numbers);
|
|
34146
|
-
childMesh.setMatrixAt(index, matrix4);
|
|
34147
|
-
//if number of polygon smaller than expect, generate edges
|
|
34148
|
-
if (geometry.attributes.position.count < maxPolygonForEdge) {
|
|
34149
|
-
const edges = new EdgesGeometry(geometry, 90);
|
|
34150
|
-
const positions = edges.attributes.position.array;
|
|
34151
|
-
const indices = [];
|
|
34152
|
-
for (let i = 0; i < positions.length / 3; i += 2) {
|
|
34153
|
-
indices.push(i, i + 1);
|
|
34154
|
-
}
|
|
34155
|
-
const bufferGeometry = new BufferGeometry();
|
|
34156
|
-
// Set the position attribute
|
|
34157
|
-
bufferGeometry.setAttribute("position", new BufferAttribute(new Float32Array(positions), 3));
|
|
34158
|
-
// Set the index attribute
|
|
34159
|
-
bufferGeometry.setIndex(indices);
|
|
34160
|
-
const line = new LineSegments(bufferGeometry, new LineBasicMaterial({ color: "#666", linewidth: 0.5 }));
|
|
34161
|
-
line.applyMatrix4(matrix4);
|
|
34162
|
-
line.updateMatrix();
|
|
34163
|
-
childMesh.add(line);
|
|
34164
|
-
}
|
|
34165
|
-
}
|
|
34166
|
-
childMesh.instanceMatrix.needsUpdate = true;
|
|
34167
|
-
childMesh.updateMatrix();
|
|
34168
|
-
let jsonData = childMesh.toJSON();
|
|
34169
|
-
jsonData.object.type = "InstancedMesh";
|
|
34170
|
-
jsonData.object.count = childMesh.count;
|
|
34171
|
-
jsonData.object.instanceMatrix = childMesh.instanceMatrix.toJSON();
|
|
34172
|
-
if (this.instanceColor !== null)
|
|
34173
|
-
jsonData.object.instanceColor = childMesh.instanceColor.toJSON();
|
|
34174
|
-
console.log(jsonData);
|
|
34175
|
-
self.postMessage(jsonData);
|
|
34100
|
+
let buffer = progressGeometries(event.data);
|
|
34101
|
+
const dummyGeometry = new BufferGeometry();
|
|
34102
|
+
dummyGeometry.setAttribute("position", new BufferAttribute(buffer, 3));
|
|
34103
|
+
dummyGeometry.computeVertexNormals();
|
|
34104
|
+
if (event.data.Instances > 0) {
|
|
34105
|
+
let geometry = new BufferGeometry();
|
|
34106
|
+
// In case number of polygon larger than expect, merge them to reduce polygon first, for optimize purpose
|
|
34107
|
+
if (dummyGeometry.attributes.position.count > maxPolygonPerObject) {
|
|
34108
|
+
const modifier = new SimplifyModifier();
|
|
34109
|
+
const ratio = maxPolygonPerObject / dummyGeometry.attributes.position.count;
|
|
34110
|
+
const count = Math.floor(dummyGeometry.attributes.position.count * ratio); // number of polygon to remove
|
|
34111
|
+
geometry = modifier.modify(dummyGeometry, count);
|
|
34112
|
+
console.log(dummyGeometry.attributes.position.count, geometry.attributes.position.count);
|
|
34176
34113
|
}
|
|
34177
34114
|
else {
|
|
34178
|
-
|
|
34179
|
-
|
|
34180
|
-
|
|
34181
|
-
|
|
34182
|
-
|
|
34183
|
-
|
|
34184
|
-
const
|
|
34185
|
-
|
|
34186
|
-
|
|
34187
|
-
|
|
34188
|
-
|
|
34189
|
-
|
|
34190
|
-
|
|
34191
|
-
|
|
34192
|
-
|
|
34193
|
-
|
|
34194
|
-
|
|
34195
|
-
|
|
34196
|
-
|
|
34197
|
-
|
|
34115
|
+
geometry = dummyGeometry;
|
|
34116
|
+
}
|
|
34117
|
+
const childMesh = new InstancedMesh(geometry, null, event.data.Instances.length);
|
|
34118
|
+
childMesh.castShadow = true;
|
|
34119
|
+
childMesh.receiveShadow = true;
|
|
34120
|
+
for (let index = 0; index < event.data.Instances.length; index++) {
|
|
34121
|
+
const transform = event.data.Instances[index];
|
|
34122
|
+
let numbers = [
|
|
34123
|
+
transform.BasisX.X,
|
|
34124
|
+
-transform.BasisX.Z,
|
|
34125
|
+
-transform.BasisX.Y,
|
|
34126
|
+
0,
|
|
34127
|
+
-transform.BasisZ.X,
|
|
34128
|
+
transform.BasisZ.Z,
|
|
34129
|
+
transform.BasisZ.Y,
|
|
34130
|
+
0,
|
|
34131
|
+
-transform.BasisY.X,
|
|
34132
|
+
transform.BasisY.Z,
|
|
34133
|
+
transform.BasisY.Y,
|
|
34134
|
+
0,
|
|
34135
|
+
-transform.Offset.X,
|
|
34136
|
+
transform.Offset.Z,
|
|
34137
|
+
transform.Offset.Y,
|
|
34138
|
+
1,
|
|
34139
|
+
];
|
|
34140
|
+
//transform first
|
|
34141
|
+
let matrix4 = new Matrix4();
|
|
34142
|
+
matrix4.fromArray(numbers);
|
|
34143
|
+
childMesh.setMatrixAt(index, matrix4);
|
|
34144
|
+
//if number of polygon smaller than expect, generate edges
|
|
34145
|
+
if (geometry.attributes.position.count < maxPolygonForEdge) {
|
|
34146
|
+
const edges = new EdgesGeometry(geometry, 90);
|
|
34147
|
+
const positions = edges.attributes.position.array;
|
|
34148
|
+
const indices = [];
|
|
34149
|
+
for (let i = 0; i < positions.length / 3; i += 2) {
|
|
34150
|
+
indices.push(i, i + 1);
|
|
34151
|
+
}
|
|
34152
|
+
const bufferGeometry = new BufferGeometry();
|
|
34153
|
+
// Set the position attribute
|
|
34154
|
+
bufferGeometry.setAttribute("position", new BufferAttribute(new Float32Array(positions), 3));
|
|
34155
|
+
// Set the index attribute
|
|
34156
|
+
bufferGeometry.setIndex(indices);
|
|
34157
|
+
const line = new LineSegments(bufferGeometry, new LineBasicMaterial({ color: "#666", linewidth: 0.5 }));
|
|
34158
|
+
line.applyMatrix4(matrix4);
|
|
34159
|
+
line.updateMatrix();
|
|
34160
|
+
childMesh.add(line);
|
|
34161
|
+
}
|
|
34162
|
+
}
|
|
34163
|
+
// childMesh.instanceMatrix.needsUpdate = true;
|
|
34164
|
+
childMesh.updateMatrix();
|
|
34165
|
+
let jsonData = childMesh.toJSON();
|
|
34166
|
+
// jsonData.object.type = "InstancedMesh";
|
|
34167
|
+
// jsonData.object.count = childMesh.count;
|
|
34168
|
+
// jsonData.object.instanceMatrix = childMesh.instanceMatrix.toJSON();
|
|
34169
|
+
// if (this.instanceColor !== null)
|
|
34170
|
+
// jsonData.object.instanceColor = childMesh.instanceColor.toJSON();
|
|
34171
|
+
console.log(jsonData);
|
|
34172
|
+
self.postMessage(jsonData);
|
|
34173
|
+
}
|
|
34174
|
+
else {
|
|
34175
|
+
const edges = new EdgesGeometry(dummyGeometry, 90);
|
|
34176
|
+
const positions = edges.attributes.position.array;
|
|
34177
|
+
const indices = [];
|
|
34178
|
+
for (let i = 0; i < positions.length / 3; i += 2) {
|
|
34179
|
+
indices.push(i, i + 1);
|
|
34180
|
+
}
|
|
34181
|
+
const bufferGeometry = new BufferGeometry();
|
|
34182
|
+
// Set the position attribute
|
|
34183
|
+
bufferGeometry.setAttribute("position", new BufferAttribute(new Float32Array(positions), 3));
|
|
34184
|
+
// Set the index attribute
|
|
34185
|
+
bufferGeometry.setIndex(indices);
|
|
34186
|
+
const line = new LineSegments(bufferGeometry, new LineBasicMaterial({ color: "#202020", linewidth: 0.5 }));
|
|
34187
|
+
const childMesh = new Mesh(dummyGeometry);
|
|
34188
|
+
childMesh.add(line);
|
|
34189
|
+
childMesh.castShadow = true;
|
|
34190
|
+
childMesh.receiveShadow = true;
|
|
34191
|
+
let jsonData = childMesh.toJSON();
|
|
34192
|
+
self.postMessage(jsonData);
|
|
34193
|
+
}
|
|
34198
34194
|
}, false);
|
|
34199
34195
|
class ViralViewerRevitNoneStructuralGeometry {
|
|
34200
34196
|
constructor() {
|