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
- // if (this.mainModel)
89
- // this.mainModel.add(instancedMesh);
90
- // this.viralViewerApi.viralRenderer.render();
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":";;;AACA,uCAA4K;AAC5K,iCAAsN;AACtN,4EAA4E;AAC5E,kEAA4D;AAC5D,oEAA2D;AAC3D,oDAAsD;AAGtD,MAAa,kBAAkB;IAQ3B,YAAmB,cAA8B,EAAE,YAAoB,gDAAgD;QAApG,mBAAc,GAAd,cAAc,CAAgB;QAN1C,cAAS,GAAqB,EAAE,CAAC;QACjC,cAAS,GAAgB,IAAI,CAAC;QAC9B,qBAAgB,GAA0C,IAAI,6BAAU,EAA6B,CAAC;QAC5F,wBAAmB,GAAG,IAAI,CAAC;QAC3B,sBAAiB,GAAG,IAAI,CAAC;QAClC,kBAAa,GAAG,IAAI,oBAAY,EAAE,CAAC;QAGvC,+CAA+C;QAC/C,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,IAAI,0BAAU,KAAK,CAAC,CAAC,CAAC;QAC7C,MAAM,UAAU,GAAG,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QAC7C,oCAAoC;QACpC,IAAI,CAAC,UAAU,GAAG,IAAI,8BAAgB,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;IAC1D,CAAC;IACM,OAAO,CAAC,SAA2B;QACtC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAE3B,IAAI,CAAC,SAAS,GAAG,IAAI,YAAI,EAAE,CAAC;QAC5B,IAAI,CAAC,SAAS,CAAC,IAAI,GAAG,aAAa,CAAC;QACpC,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACzD,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,SAAS,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;YACnD,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;YAClC,IAAI,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;YAE7E,IAAI,cAAc,GAAG,IAAI,yBAAiB,CAAC;gBACvC,KAAK,EAAE,WAAW;gBAClB,OAAO,EAAE,QAAQ,CAAC,OAAO;gBACzB,WAAW,EAAE,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK;gBACjD,qBAAqB;gBACrB,IAAI,EAAE,QAAQ,CAAC,IAAI;aACtB,CAAC,CAAC;YACH,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;SACpD;IACL,CAAC;IACM,sBAAsB,CAAC,KAAyC,EAAE,iBAAiB,GAAG,GAAG,EAAE,GAAG,CAAC;QAClG,IAAI,SAAS,GAAG,IAAI,8CAAsC,EAAE,CAAC;QAC7D,SAAS,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;QAClC,SAAS,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;QACpC,IAAI,CAAC,UAAU,CAAC,OAAO,CAA8C,SAAS,EAAE,CAAC,IAAS,EAAE,EAAE;YAC1F,IAAI,IAAI,GAAS,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAChD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,aAAa,CAAE,CAAC;YAChE,IAAI,IAAI,CAAC,SAAS;gBACd,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC7B,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;YAC3C,iBAAiB,EAAE,CAAC;QACxB,CAAC,CAAC,CAAA;IACN,CAAC;IACM,0BAA0B,CAAC,KAA6C,EAAE,iBAAiB,GAAG,GAAG,EAAE,GAAG,CAAC;QAC1G,IAAI,CAAC,UAAU,CAAC,OAAO,CAA8C,KAAK,EAAE,CAAC,IAAS,EAAE,EAAE;YACtF,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;YACjB,IAAI,IAAI,GAAkB,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACzD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;YACjB,8HAA8H;YAC9H,uCAAuC;YACvC,iEAAiE;YACjE,gDAAgD;YAChD,sBAAsB;YACtB,8BAA8B;YAC9B,+BAA+B;YAC/B,+BAA+B;YAC/B,aAAa;YACb,+BAA+B;YAC/B,8BAA8B;YAC9B,8BAA8B;YAC9B,aAAa;YACb,+BAA+B;YAC/B,8BAA8B;YAC9B,8BAA8B;YAC9B,aAAa;YACb,+BAA+B;YAC/B,8BAA8B;YAC9B,8BAA8B;YAC9B,aAAa;YACb,SAAS;YAET,wBAAwB;YACxB,mCAAmC;YACnC,kCAAkC;YAClC,iDAAiD;YAEjD,IAAI;YACJ,IAAI,IAAI,CAAC,SAAS;gBACd,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC7B,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;YAC3C,iBAAiB,EAAE,CAAC;QACxB,CAAC,CAAC,CAAA;IACN,CAAC;IACM,QAAQ,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS;QAC3C,OAAO,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;IAC1F,CAAC;IACM,cAAc,CAAC,CAAS;QAC3B,IAAI,GAAG,GAAG,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACzB,OAAO,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;IAC7C,CAAC;CACJ;AAhGD,gDAgGC"}
@@ -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, callback = (buffer) => { }) {
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
- callback(buffer);
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
- callback(buffer);
34093
+ return buffer;
34095
34094
  }
34096
- function progressGeometries(json, callback = (buffer) => { }) {
34097
- addMesh(json.Indices, json.Vertices, json.Transform, (buffer) => {
34098
- callback(buffer);
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 data = event.data;
34103
- progressGeometries(event.data, (buffer) => {
34104
- const dummyGeometry = new BufferGeometry();
34105
- dummyGeometry.setAttribute("position", new BufferAttribute(buffer, 3));
34106
- dummyGeometry.computeVertexNormals();
34107
- if (data.Instances > 0) {
34108
- let geometry = new BufferGeometry();
34109
- // In case number of polygon larger than expect, merge them to reduce polygon first, for optimize purpose
34110
- if (dummyGeometry.attributes.position.count > maxPolygonPerObject) {
34111
- const modifier = new SimplifyModifier();
34112
- const ratio = maxPolygonPerObject / dummyGeometry.attributes.position.count;
34113
- const count = Math.floor(dummyGeometry.attributes.position.count * ratio); // number of polygon to remove
34114
- geometry = modifier.modify(dummyGeometry, count);
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
- const edges = new EdgesGeometry(dummyGeometry, 90);
34179
- const positions = edges.attributes.position.array;
34180
- const indices = [];
34181
- for (let i = 0; i < positions.length / 3; i += 2) {
34182
- indices.push(i, i + 1);
34183
- }
34184
- const bufferGeometry = new BufferGeometry();
34185
- // Set the position attribute
34186
- bufferGeometry.setAttribute("position", new BufferAttribute(new Float32Array(positions), 3));
34187
- // Set the index attribute
34188
- bufferGeometry.setIndex(indices);
34189
- const line = new LineSegments(bufferGeometry, new LineBasicMaterial({ color: "#202020", linewidth: 0.5 }));
34190
- const childMesh = new Mesh(dummyGeometry);
34191
- childMesh.add(line);
34192
- childMesh.castShadow = true;
34193
- childMesh.receiveShadow = true;
34194
- let jsonData = childMesh.toJSON();
34195
- self.postMessage(jsonData);
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() {