viral-viewer-2 3.6.6 → 3.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.
@@ -0,0 +1,5 @@
1
+ import { BufferGeometry } from "three";
2
+ export declare class ViralBVH {
3
+ constructor();
4
+ applyThreeMeshBVH(geometry: BufferGeometry): void;
5
+ }
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ViralBVH = void 0;
4
+ const three_1 = require("three");
5
+ const three_mesh_bvh_1 = require("three-mesh-bvh");
6
+ class ViralBVH {
7
+ constructor() {
8
+ three_1.BufferGeometry.prototype.computeBoundsTree = three_mesh_bvh_1.computeBoundsTree;
9
+ three_1.BufferGeometry.prototype.disposeBoundsTree = three_mesh_bvh_1.disposeBoundsTree;
10
+ three_1.Mesh.prototype.raycast = three_mesh_bvh_1.acceleratedRaycast;
11
+ }
12
+ applyThreeMeshBVH(geometry) {
13
+ geometry.computeBoundsTree();
14
+ }
15
+ }
16
+ exports.ViralBVH = ViralBVH;
17
+ //# sourceMappingURL=viral-bvh.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"viral-bvh.js","sourceRoot":"","sources":["../../../src/components/bvh/viral-bvh.ts"],"names":[],"mappings":";;;AAAA,iCAA6C;AAC7C,mDAIwB;AAExB,MAAa,QAAQ;IACnB;QACE,sBAAc,CAAC,SAAS,CAAC,iBAAiB,GAAG,kCAAiB,CAAC;QAC/D,sBAAc,CAAC,SAAS,CAAC,iBAAiB,GAAG,kCAAiB,CAAC;QAC/D,YAAI,CAAC,SAAS,CAAC,OAAO,GAAG,mCAAkB,CAAC;IAC9C,CAAC;IACD,iBAAiB,CAAC,QAAwB;QACtC,QAAQ,CAAC,iBAAiB,EAAE,CAAC;IACjC,CAAC;CACF;AATD,4BASC"}
@@ -42,6 +42,7 @@ class ViralViewerWorker3 {
42
42
  this.workerPool.Enqueue(inputData, (data) => {
43
43
  let mesh = this.viralViewerApi.viralLoader.threeLoader.parseObject(data);
44
44
  mesh.material = this.viralViewerApi.viralScene.materials.get(model.MaterialIndex);
45
+ this.viralViewerApi.viralBVH.applyThreeMeshBVH(mesh.geometry);
45
46
  mesh.userData.type = "Revit Element";
46
47
  if (this.mainModel)
47
48
  this.mainModel.add(mesh);
@@ -53,6 +54,7 @@ class ViralViewerWorker3 {
53
54
  this.workerPool.Enqueue(model, (data) => {
54
55
  let mesh = this.viralViewerApi.viralLoader.threeLoader.parseObject(data);
55
56
  mesh.material = this.viralViewerApi.viralScene.materials.get(model.MaterialIndex);
57
+ this.viralViewerApi.viralBVH.applyThreeMeshBVH(mesh.geometry);
56
58
  mesh.userData.type = "Revit Element";
57
59
  if (this.mainModel)
58
60
  this.mainModel.add(mesh);
@@ -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,uCAMqB;AACrB,iCAA+D;AAC/D,kEAA4D;AAC5D,oDAAsD;AACtD,iDAAwD;AAExD,MAAa,kBAAkB;IAI7B,YACS,cAA8B,EACrC,YAAoB,gDAAgD;QAD7D,mBAAc,GAAd,cAAc,CAAgB;QAHhC,cAAS,GAAqB,EAAE,CAAC;QACjC,cAAS,GAAgB,IAAI,CAAC;QAKnC,+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,CACpC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,cAAc,EAC1C,UAAU,CACX,CAAC;IACJ,CAAC;IACM,OAAO,CAAC,SAA2B;QACxC,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,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACxD,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,SAAS,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;YACrD,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;YAClC,IAAI,WAAW,GAAG,IAAA,2BAAiB,EACjC,QAAQ,CAAC,GAAG,EACZ,QAAQ,CAAC,KAAK,EACd,QAAQ,CAAC,IAAI,CACd,CAAC;YAEF,IAAI,cAAc,GAAG,IAAI,yBAAiB,CAAC;gBACzC,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;aACpB,CAAC,CAAC;YACH,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;SACrE;IACH,CAAC;IACM,sBAAsB,CAC3B,KAAyC,EACzC,iBAAiB,GAAG,GAAG,EAAE,GAAE,CAAC;QAE5B,IAAI,SAAS,GAAG,IAAI,gCAAwB,EAAE,CAAC;QAC/C,SAAS,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;QAClC,SAAS,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;QACpC,IAAI,CAAC,UAAU,CAAC,OAAO,CACrB,SAAS,EACT,CAAC,IAAS,EAAE,EAAE;YACZ,IAAI,IAAI,GACN,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,WAAW,CAAC,WAAW,CAAC,IAAI,CAAS,CAAC;YACxE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,CAC1D,KAAK,CAAC,aAAa,CACnB,CAAC;YACH,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAE9D,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,eAAe,CAAC;YACrC,IAAI,IAAI,CAAC,SAAS;gBAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC7C,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;YAC3C,iBAAiB,EAAE,CAAC;QACtB,CAAC,CACF,CAAC;IACJ,CAAC;IACM,0BAA0B,CAC/B,KAA6C,EAC7C,iBAAiB,GAAG,GAAG,EAAE,GAAE,CAAC;QAE5B,IAAI,CAAC,UAAU,CAAC,OAAO,CACrB,KAAK,EACL,CAAC,IAAS,EAAE,EAAE;YACZ,IAAI,IAAI,GACN,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,WAAW,CAAC,WAAW,CACrD,IAAI,CACY,CAAC;YACrB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,CAC1D,KAAK,CAAC,aAAa,CACnB,CAAC;YACH,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC9D,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,eAAe,CAAC;YACrC,IAAI,IAAI,CAAC,SAAS;gBAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC7C,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;YAC3C,iBAAiB,EAAE,CAAC;QACtB,CAAC,CACF,CAAC;IACJ,CAAC;CACF;AAvFD,gDAuFC"}
@@ -34051,16 +34051,19 @@ which can be placed in CurveUtils.
34051
34051
  dummyGeometry.setAttribute("position", new BufferAttribute(buffer, 3));
34052
34052
  if (event.data.Instances && event.data.Instances.length > 0) {
34053
34053
  let geometry = new BufferGeometry();
34054
- // In case number of polygon larger than expect, merge them to reduce polygon first, for optimize purpose
34055
- if (dummyGeometry.attributes.position.count > maxPolygonPerObject) {
34056
- let modifier = new SimplifyModifier();
34057
- // decrease 50% of polygon
34058
- geometry = modifier.modify(dummyGeometry, dummyGeometry.attributes.position.count * 0.5);
34059
- console.log(dummyGeometry.attributes.position.count, geometry.attributes.position.count);
34060
- }
34061
- else {
34062
- geometry = dummyGeometry;
34063
- }
34054
+ // // In case number of polygon larger than expect, merge them to reduce polygon first, for optimize purpose
34055
+ // if (dummyGeometry.attributes.position.count > maxPolygonPerObject) {
34056
+ // let modifier = new SimplifyModifier();
34057
+ // // decrease 50% of polygon
34058
+ // geometry = modifier.modify(dummyGeometry, dummyGeometry.attributes.position.count * 0.5);
34059
+ // console.log(
34060
+ // dummyGeometry.attributes.position.count,
34061
+ // geometry.attributes.position.count
34062
+ // );
34063
+ // } else {
34064
+ // geometry = dummyGeometry;
34065
+ // }
34066
+ geometry = mergeVertices(dummyGeometry);
34064
34067
  geometry.computeVertexNormals();
34065
34068
  const childMesh = new InstancedMesh(geometry, new MeshBasicMaterial(), event.data.Instances.length);
34066
34069
  childMesh.castShadow = true;
@@ -34086,7 +34089,7 @@ which can be placed in CurveUtils.
34086
34089
  childMesh.setMatrixAt(index, matrix4);
34087
34090
  //if number of polygon smaller than expect, generate edges
34088
34091
  if (geometry.attributes.position.count <= maxPolygonForEdge) {
34089
- const edges = new EdgesGeometry(geometry, 15);
34092
+ const edges = new EdgesGeometry(geometry, 90);
34090
34093
  const positions = edges.attributes.position.array;
34091
34094
  const indices = [];
34092
34095
  for (let i = 0; i < positions.length / 3; i += 2) {
@@ -34110,16 +34113,19 @@ which can be placed in CurveUtils.
34110
34113
  }
34111
34114
  else {
34112
34115
  let geometry = new BufferGeometry();
34113
- if (dummyGeometry.attributes.position.count > maxPolygonPerObject) {
34114
- let modifier = new SimplifyModifier();
34115
- geometry = modifier.modify(dummyGeometry, maxPolygonPerObject);
34116
- console.log(dummyGeometry.attributes.position.count, geometry.attributes.position.count);
34117
- }
34118
- else {
34119
- geometry = dummyGeometry;
34120
- }
34116
+ // if (dummyGeometry.attributes.position.count > maxPolygonPerObject) {
34117
+ // let modifier = new SimplifyModifier();
34118
+ // geometry = modifier.modify(dummyGeometry, maxPolygonPerObject);
34119
+ // console.log(
34120
+ // dummyGeometry.attributes.position.count,
34121
+ // geometry.attributes.position.count
34122
+ // );
34123
+ // } else {
34124
+ // geometry = dummyGeometry;
34125
+ // }
34126
+ geometry = mergeVertices(dummyGeometry);
34121
34127
  geometry.computeVertexNormals();
34122
- const edges = new EdgesGeometry(geometry, 15);
34128
+ const edges = new EdgesGeometry(geometry, 90);
34123
34129
  const positions = edges.attributes.position.array;
34124
34130
  const indices = [];
34125
34131
  for (let i = 0; i < positions.length / 3; i += 2) {