viral-viewer-2 3.6.6 → 3.6.7

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":"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"}
@@ -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;
@@ -34110,14 +34113,17 @@ 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
34128
  const edges = new EdgesGeometry(geometry, 15);
34123
34129
  const positions = edges.attributes.position.array;