viral-viewer-2 4.6.9 → 4.7.1
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/bvh/viral-bvh.js +3 -1
- package/dist/components/bvh/viral-bvh.js.map +1 -1
- package/dist/components/material/viral-material-manager.d.ts +12 -0
- package/dist/components/material/viral-material-manager.js +44 -0
- package/dist/components/material/viral-material-manager.js.map +1 -0
- package/dist/components/renderer/viral-renderer.js +2 -1
- package/dist/components/renderer/viral-renderer.js.map +1 -1
- package/dist/components/scene/viral-scene.d.ts +1 -4
- package/dist/components/scene/viral-scene.js +0 -5
- package/dist/components/scene/viral-scene.js.map +1 -1
- package/dist/components/worker/viral-viewer-3.worker.js +3 -3
- package/dist/components/worker/viral-viewer-3.worker.js.map +1 -1
- package/dist/components/worker/viral-viewer-4.worker.d.ts +1 -1
- package/dist/components/worker/viral-viewer-4.worker.js +8 -3
- package/dist/components/worker/viral-viewer-4.worker.js.map +1 -1
- package/dist/components/worker-script/load-model-worker-3.script.js +52 -32
- package/dist/components/worker-script/load-model-worker-3.script.js.map +1 -1
- package/dist/viral-viewer-api.d.ts +2 -0
- package/dist/viral-viewer-api.js +2 -0
- package/dist/viral-viewer-api.js.map +1 -1
- package/package.json +1 -1
|
@@ -10,7 +10,9 @@ class ViralBVH {
|
|
|
10
10
|
three_1.Mesh.prototype.raycast = three_mesh_bvh_1.acceleratedRaycast;
|
|
11
11
|
}
|
|
12
12
|
applyThreeMeshBVH(geometry) {
|
|
13
|
-
geometry.
|
|
13
|
+
if (!geometry.boundsTree) {
|
|
14
|
+
geometry.computeBoundsTree();
|
|
15
|
+
}
|
|
14
16
|
}
|
|
15
17
|
}
|
|
16
18
|
exports.ViralBVH = ViralBVH;
|
|
@@ -1 +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;
|
|
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;QACxC,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE;YAExB,QAAQ,CAAC,iBAAiB,EAAE,CAAC;SAC9B;IACH,CAAC;CACF;AAZD,4BAYC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Material, MeshPhongMaterial, ShaderMaterial } from "three";
|
|
2
|
+
import { ViralViewerApi } from "../../viral-viewer-api";
|
|
3
|
+
import { Dictionary } from "../../types";
|
|
4
|
+
export declare class ViralMaterialManager {
|
|
5
|
+
private viralViewerApi;
|
|
6
|
+
hoverMaterial: MeshPhongMaterial;
|
|
7
|
+
vertexShader: string;
|
|
8
|
+
fragmentShader: string;
|
|
9
|
+
outlineMaterial: ShaderMaterial;
|
|
10
|
+
materials: Dictionary<number, Material>;
|
|
11
|
+
constructor(viralViewerApi: ViralViewerApi);
|
|
12
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ViralMaterialManager = void 0;
|
|
4
|
+
const three_1 = require("three");
|
|
5
|
+
const threejs_1 = require("../../utils/threejs");
|
|
6
|
+
const colors_1 = require("../../const/colors");
|
|
7
|
+
const types_1 = require("../../types");
|
|
8
|
+
class ViralMaterialManager {
|
|
9
|
+
constructor(viralViewerApi) {
|
|
10
|
+
this.viralViewerApi = viralViewerApi;
|
|
11
|
+
this.hoverMaterial = new three_1.MeshPhongMaterial({
|
|
12
|
+
color: (0, threejs_1.hexToThreejsColor)(colors_1.LightTheme.secondary),
|
|
13
|
+
opacity: 0.7,
|
|
14
|
+
transparent: true,
|
|
15
|
+
name: "Render Material",
|
|
16
|
+
});
|
|
17
|
+
this.vertexShader = `
|
|
18
|
+
uniform float outline;
|
|
19
|
+
void main() {
|
|
20
|
+
gl_Position = projectionMatrix * modelViewMatrix * vec4(position + normal * outline, 1.0);
|
|
21
|
+
}
|
|
22
|
+
`;
|
|
23
|
+
this.fragmentShader = `
|
|
24
|
+
uniform vec3 color;
|
|
25
|
+
uniform float opacity;
|
|
26
|
+
void main() {
|
|
27
|
+
gl_FragColor = vec4(color, opacity);
|
|
28
|
+
}
|
|
29
|
+
`;
|
|
30
|
+
this.outlineMaterial = new three_1.ShaderMaterial({
|
|
31
|
+
uniforms: {
|
|
32
|
+
color: { value: new three_1.Color(colors_1.LightTheme.accent) },
|
|
33
|
+
opacity: { value: 1.0 },
|
|
34
|
+
outline: { value: 0.1 },
|
|
35
|
+
},
|
|
36
|
+
vertexShader: this.vertexShader,
|
|
37
|
+
fragmentShader: this.fragmentShader,
|
|
38
|
+
side: three_1.BackSide,
|
|
39
|
+
});
|
|
40
|
+
this.materials = new types_1.Dictionary();
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
exports.ViralMaterialManager = ViralMaterialManager;
|
|
44
|
+
//# sourceMappingURL=viral-material-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"viral-material-manager.js","sourceRoot":"","sources":["../../../src/components/material/viral-material-manager.ts"],"names":[],"mappings":";;;AAAA,iCAMe;AAEf,iDAAwD;AACxD,+CAAgD;AAChD,uCAAyC;AAEzC,MAAa,oBAAoB;IAkC/B,YAAoB,cAA8B;QAA9B,mBAAc,GAAd,cAAc,CAAgB;QAjC3C,kBAAa,GAAG,IAAI,yBAAiB,CAAC;YAC3C,KAAK,EAAE,IAAA,2BAAiB,EAAC,mBAAU,CAAC,SAAS,CAAC;YAC9C,OAAO,EAAE,GAAG;YACZ,WAAW,EAAE,IAAI;YACjB,IAAI,EAAE,iBAAiB;SACxB,CAAC,CAAC;QACH,iBAAY,GAAG;;;;;CAKhB,CAAC;QAEA,mBAAc,GAAG;;;;;;CAMlB,CAAC;QAEO,oBAAe,GAAG,IAAI,sBAAc,CAAC;YAC1C,QAAQ,EAAE;gBACR,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,aAAK,CAAC,mBAAU,CAAC,MAAM,CAAC,EAAE;gBAC9C,OAAO,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE;gBACvB,OAAO,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE;aACxB;YACD,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,IAAI,EAAE,gBAAQ;SACf,CAAC,CAAC;QACH,cAAS,GAAiC,IAAI,kBAAU,EAAoB,CAAC;IAExB,CAAC;CACvD;AAnCD,oDAmCC"}
|
|
@@ -8,13 +8,14 @@ class ViralRenderer {
|
|
|
8
8
|
this.viralViewerApi = viralViewerApi;
|
|
9
9
|
this.renderer = new three_1.WebGLRenderer({
|
|
10
10
|
alpha: true,
|
|
11
|
-
antialias:
|
|
11
|
+
antialias: true,
|
|
12
12
|
stencil: false,
|
|
13
13
|
logarithmicDepthBuffer: true,
|
|
14
14
|
powerPreference: "high-performance",
|
|
15
15
|
});
|
|
16
16
|
this.renderer.shadowMap.enabled = true;
|
|
17
17
|
this.renderer.shadowMap.type = three_1.PCFSoftShadowMap;
|
|
18
|
+
this.renderer.outputColorSpace = three_1.SRGBColorSpace;
|
|
18
19
|
this.renderer.setClearColor(0xffffff, 0);
|
|
19
20
|
this.renderer.setSize(this.viralViewerApi.targetElement.offsetWidth, this.viralViewerApi.targetElement.offsetHeight);
|
|
20
21
|
this.viralViewerApi.targetElement.appendChild(this.renderer.domElement);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"viral-renderer.js","sourceRoot":"","sources":["../../../src/components/renderer/viral-renderer.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"viral-renderer.js","sourceRoot":"","sources":["../../../src/components/renderer/viral-renderer.ts"],"names":[],"mappings":";;;AAAA,iCAA8F;AAE9F,0FAAqF;AAErF,MAAa,aAAa;IAWxB,YAAmB,cAA8B;QAA9B,mBAAc,GAAd,cAAc,CAAgB;QAVjD,aAAQ,GAAkB,IAAI,qBAAa,CAAC;YAC1C,KAAK,EAAE,IAAI;YACX,SAAS,EAAE,IAAI;YACf,OAAO,EAAE,KAAK;YACd,sBAAsB,EAAE,IAAI;YAC5B,eAAe,EAAE,kBAAkB;SACpC,CAAC,CAAC;QAKD,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC;QACvC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,GAAG,wBAAgB,CAAC;QAChD,IAAI,CAAC,QAAQ,CAAC,gBAAgB,GAAG,sBAAc,CAAC;QAChD,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QACzC,IAAI,CAAC,QAAQ,CAAC,OAAO,CACnB,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,WAAW,EAC7C,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,YAAY,CAC/C,CAAC;QAEF,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QACxE,IAAI,CAAC,sBAAsB,GAAG,IAAI,iDAAsB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC1E,CAAC;IACM,UAAU,CAAC,KAAY,EAAC,MAAa;QAE1C,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAC,MAAM,CAAC,CAAC;QACpC,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAC,MAAM,CAAC,CAAC;IAC7D,CAAC;IACM,MAAM;;QACX,IACE,IAAI,CAAC,cAAc,CAAC,WAAW;YAC/B,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,MAAM,EACtC;YACA,0CAA0C;YAC1C,MAAA,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,MAAM,0CAAE,iBAAiB,CAAC,IAAI,CAAC,CAAC;YAChE,wBAAwB;YACxB,0CAA0C;YAC1C,2CAA2C;YAC3C,KAAK;YACL,IAAI,CAAC,sBAAsB,CAAC,MAAM,EAAE,CAAC;YACrC,IAAI,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,gBAAgB,CAAC,WAAW,EAAE;gBAC/D,IAAI,CAAC,QAAQ,CAAC,SAAS,GAAG,KAAK,CAAC;gBAChC,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;gBAC3B,IAAI,CAAC,QAAQ,CAAC,MAAM,CAClB,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,gBAAgB,CAAC,qBAAqB,EACrE,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,MAAM,CACvC,CAAC;gBACF,IAAI,CAAC,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC;aAChC;SACF;IACH,CAAC;CACF;AApDD,sCAoDC"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import { Scene, Object3D, Light, CameraHelper
|
|
1
|
+
import { Scene, Object3D, Light, CameraHelper } from "three";
|
|
2
2
|
import { ViralViewerApi } from "../../viral-viewer-api";
|
|
3
|
-
import { Dictionary } from "../../types";
|
|
4
3
|
import { TransformControls } from "../../threejs-addon/transform-control";
|
|
5
4
|
export declare class ViralScene {
|
|
6
5
|
viralViewerApi: ViralViewerApi;
|
|
@@ -12,11 +11,9 @@ export declare class ViralScene {
|
|
|
12
11
|
lights: Light[];
|
|
13
12
|
transformControls: TransformControls | null;
|
|
14
13
|
lightHelpers: CameraHelper[];
|
|
15
|
-
materials: Dictionary<number, Material>;
|
|
16
14
|
constructor(viralViewerApi: ViralViewerApi);
|
|
17
15
|
addObject(object: Object3D): void;
|
|
18
16
|
addModel(object: Object3D): void;
|
|
19
|
-
addMaterial(index: number, material: Material): void;
|
|
20
17
|
addEdge(object: Object3D): void;
|
|
21
18
|
getObjectByName(name: string): Object3D<import("three").Event> | undefined;
|
|
22
19
|
addLights(): void;
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ViralScene = void 0;
|
|
4
4
|
const three_1 = require("three");
|
|
5
|
-
const types_1 = require("../../types");
|
|
6
5
|
const transform_control_1 = require("../../threejs-addon/transform-control");
|
|
7
6
|
const threejs_1 = require("../../utils/threejs");
|
|
8
7
|
const colors_1 = require("../../const/colors");
|
|
@@ -17,7 +16,6 @@ class ViralScene {
|
|
|
17
16
|
this.lights = [];
|
|
18
17
|
this.transformControls = null;
|
|
19
18
|
this.lightHelpers = [];
|
|
20
|
-
this.materials = new types_1.Dictionary();
|
|
21
19
|
this.addLights();
|
|
22
20
|
this.addPivotPoint();
|
|
23
21
|
}
|
|
@@ -30,9 +28,6 @@ class ViralScene {
|
|
|
30
28
|
this.addObject(object);
|
|
31
29
|
this.models.push(object);
|
|
32
30
|
}
|
|
33
|
-
addMaterial(index, material) {
|
|
34
|
-
this.materials.add(index, material);
|
|
35
|
-
}
|
|
36
31
|
addEdge(object) {
|
|
37
32
|
this.addObject(object);
|
|
38
33
|
this.edges.push(object);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"viral-scene.js","sourceRoot":"","sources":["../../../src/components/scene/viral-scene.ts"],"names":[],"mappings":";;;AAAA,iCAee;
|
|
1
|
+
{"version":3,"file":"viral-scene.js","sourceRoot":"","sources":["../../../src/components/scene/viral-scene.ts"],"names":[],"mappings":"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"}
|
|
@@ -32,7 +32,7 @@ class ViralViewerWorker3 {
|
|
|
32
32
|
flatShading: true,
|
|
33
33
|
name: material.Name,
|
|
34
34
|
});
|
|
35
|
-
this.viralViewerApi.
|
|
35
|
+
this.viralViewerApi.viralMaterialManager.materials.add(index, renderMaterial);
|
|
36
36
|
}
|
|
37
37
|
}
|
|
38
38
|
loadStructuralGeometry(model, callbackOnSuccess = () => { }) {
|
|
@@ -41,7 +41,7 @@ class ViralViewerWorker3 {
|
|
|
41
41
|
inputData.Vertices = model.Vertices;
|
|
42
42
|
this.workerPool.Enqueue(inputData, (data) => {
|
|
43
43
|
let mesh = this.viralViewerApi.viralLoader.threeLoader.parseObject(data);
|
|
44
|
-
mesh.material = this.viralViewerApi.
|
|
44
|
+
mesh.material = this.viralViewerApi.viralMaterialManager.materials.get(model.MaterialIndex);
|
|
45
45
|
if (mesh.children.length > 0) {
|
|
46
46
|
for (let index = 0; index < mesh.children.length; index++) {
|
|
47
47
|
const edge = mesh.children[index];
|
|
@@ -60,7 +60,7 @@ class ViralViewerWorker3 {
|
|
|
60
60
|
loadNoneStructuralGeometry(model, callbackOnSuccess = () => { }) {
|
|
61
61
|
this.workerPool.Enqueue(model, (data) => {
|
|
62
62
|
let mesh = this.viralViewerApi.viralLoader.threeLoader.parseObject(data);
|
|
63
|
-
mesh.material = this.viralViewerApi.
|
|
63
|
+
mesh.material = this.viralViewerApi.viralMaterialManager.materials.get(model.MaterialIndex);
|
|
64
64
|
//seperate edge from mesh
|
|
65
65
|
if (mesh.children.length > 0) {
|
|
66
66
|
for (let index = 0; index < mesh.children.length; index++) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"viral-viewer-3.worker.js","sourceRoot":"","sources":["../../../src/components/worker/viral-viewer-3.worker.ts"],"names":[],"mappings":";;;AACA,uCAMqB;AACrB,iCAOe;AACf,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,WAAW,EAAE,IAAI;gBACjB,IAAI,EAAE,QAAQ,CAAC,IAAI;aACpB,CAAC,CAAC;YACH,IAAI,CAAC,cAAc,CAAC,
|
|
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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"}
|
|
@@ -6,7 +6,7 @@ export declare class ViralViewerWorker4 {
|
|
|
6
6
|
viralViewerApi: ViralViewerApi;
|
|
7
7
|
workerPool: WorkerThreadPool;
|
|
8
8
|
mainModel: Mesh | null;
|
|
9
|
-
constructor(viralViewerApi: ViralViewerApi
|
|
9
|
+
constructor(viralViewerApi: ViralViewerApi);
|
|
10
10
|
initial(materials: RenderMaterial[]): void;
|
|
11
11
|
loadElement(elements: ViralutionElement[], callbackOnSuccess?: () => void): void;
|
|
12
12
|
}
|
|
@@ -6,7 +6,7 @@ const load_model_worker_3_script_1 = require("../worker-script/load-model-worker
|
|
|
6
6
|
const worker_pool_1 = require("./base/worker-pool");
|
|
7
7
|
const threejs_1 = require("../../utils/threejs");
|
|
8
8
|
class ViralViewerWorker4 {
|
|
9
|
-
constructor(viralViewerApi
|
|
9
|
+
constructor(viralViewerApi) {
|
|
10
10
|
this.viralViewerApi = viralViewerApi;
|
|
11
11
|
this.mainModel = null;
|
|
12
12
|
// Create a new Blob containing the worker code
|
|
@@ -32,18 +32,23 @@ class ViralViewerWorker4 {
|
|
|
32
32
|
polygonOffsetFactor: 1,
|
|
33
33
|
polygonOffsetUnits: 0.1,
|
|
34
34
|
});
|
|
35
|
-
this.viralViewerApi.
|
|
35
|
+
this.viralViewerApi.viralMaterialManager.materials.add(index, renderMaterial);
|
|
36
36
|
}
|
|
37
37
|
}
|
|
38
38
|
loadElement(elements, callbackOnSuccess = () => { }) {
|
|
39
39
|
this.workerPool.Enqueue(elements, (data) => {
|
|
40
|
+
var _a;
|
|
40
41
|
let dummyMesh = this.viralViewerApi.viralLoader.threeLoader.parseObject(data);
|
|
41
42
|
for (let j = 0; j < dummyMesh.children.length; j++) {
|
|
42
43
|
const element = dummyMesh.children[j];
|
|
43
44
|
this.viralViewerApi.viralScene.selectables.push(element);
|
|
45
|
+
if ((_a = element.userData) === null || _a === void 0 ? void 0 : _a.IsInstancedMesh) {
|
|
46
|
+
console.log(element);
|
|
47
|
+
continue;
|
|
48
|
+
}
|
|
44
49
|
for (let index = 0; index < element.children.length; index++) {
|
|
45
50
|
const solid = element.children[index];
|
|
46
|
-
solid.material = this.viralViewerApi.
|
|
51
|
+
solid.material = this.viralViewerApi.viralMaterialManager.materials.get(solid.userData.MaterialId);
|
|
47
52
|
try {
|
|
48
53
|
this.viralViewerApi.viralBVH.applyThreeMeshBVH(solid.geometry);
|
|
49
54
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"viral-viewer-4.worker.js","sourceRoot":"","sources":["../../../src/components/worker/viral-viewer-4.worker.ts"],"names":[],"mappings":";;;AAKA,iCAGe;AACf,4FAAyE;AACzE,oDAAsD;AACtD,iDAAwD;AAExD,MAAa,kBAAkB;IAG7B,YACS,cAA8B
|
|
1
|
+
{"version":3,"file":"viral-viewer-4.worker.js","sourceRoot":"","sources":["../../../src/components/worker/viral-viewer-4.worker.ts"],"names":[],"mappings":"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"}
|
|
@@ -34009,6 +34009,18 @@ which can be placed in CurveUtils.
|
|
|
34009
34009
|
const buffer = new Float32Array(verticePoints);
|
|
34010
34010
|
return buffer;
|
|
34011
34011
|
}
|
|
34012
|
+
// this array have a structure
|
|
34013
|
+
// [11, 12, 13 , 14, 21, 22, 23, 24, 31, 32, 33, 34, 41, 42, 43, 44]
|
|
34014
|
+
//
|
|
34015
|
+
// then it will be converted to matrix4 like structure below:
|
|
34016
|
+
// [11, 21, 31, 41]
|
|
34017
|
+
// [12, 22, 32, 42]
|
|
34018
|
+
// [13, 23, 33, 43]
|
|
34019
|
+
// [14, 24, 34, 44]
|
|
34020
|
+
// 41, 42, 43 is translation from main origin
|
|
34021
|
+
//
|
|
34022
|
+
// Explain about axis, in revit axis follow x,y,z structure. but in threejs follow x,z,y structure, which y stand for height
|
|
34023
|
+
// IMPORTANT: x direction in threejs is opposite with x direction in revit
|
|
34012
34024
|
let numbers = [
|
|
34013
34025
|
transform.BasisX.X, -transform.BasisX.Z, -transform.BasisX.Y,
|
|
34014
34026
|
0, -transform.BasisZ.X,
|
|
@@ -34070,41 +34082,49 @@ which can be placed in CurveUtils.
|
|
|
34070
34082
|
//1 element may have multiple solids
|
|
34071
34083
|
const solids = progressGeometries(data);
|
|
34072
34084
|
if (data.Instances && data.Instances.length > 0) {
|
|
34073
|
-
let group = new Mesh();
|
|
34085
|
+
// let group = new Mesh();
|
|
34074
34086
|
//foreach solid create new InstancedMesh
|
|
34087
|
+
let mergedGeometry = new BufferGeometry();
|
|
34088
|
+
const instancedMesh = new InstancedMesh(mergedGeometry, new MeshBasicMaterial(), data.Instances.length);
|
|
34089
|
+
instancedMesh.userData.Instances = [];
|
|
34090
|
+
instancedMesh.userData.MaterialIds = [];
|
|
34075
34091
|
for (let index = 0; index < solids.length; index++) {
|
|
34076
34092
|
const solid = solids[index];
|
|
34077
|
-
const
|
|
34078
|
-
|
|
34079
|
-
|
|
34080
|
-
|
|
34081
|
-
|
|
34082
|
-
|
|
34083
|
-
|
|
34084
|
-
|
|
34085
|
-
|
|
34086
|
-
|
|
34087
|
-
|
|
34088
|
-
|
|
34089
|
-
|
|
34090
|
-
|
|
34091
|
-
|
|
34092
|
-
|
|
34093
|
-
|
|
34094
|
-
|
|
34095
|
-
|
|
34096
|
-
|
|
34097
|
-
|
|
34098
|
-
|
|
34099
|
-
|
|
34100
|
-
|
|
34101
|
-
|
|
34102
|
-
|
|
34103
|
-
|
|
34104
|
-
|
|
34105
|
-
|
|
34106
|
-
|
|
34107
|
-
|
|
34093
|
+
const startVertexCount = mergedGeometry.attributes.position.count;
|
|
34094
|
+
mergedGeometry = mergedGeometry.merge(solid.geometry);
|
|
34095
|
+
const endVertexCount = mergedGeometry.attributes.position.count;
|
|
34096
|
+
mergedGeometry.groups.addGroup(startVertexCount, endVertexCount, index);
|
|
34097
|
+
instancedMesh.userData.MaterialIds.push(solid.userData.MaterialId);
|
|
34098
|
+
// group.add(instancedMesh);
|
|
34099
|
+
}
|
|
34100
|
+
for (let j = 0; j < data.Instances.length; j++) {
|
|
34101
|
+
const transform = data.Instances[j];
|
|
34102
|
+
let numbers = [
|
|
34103
|
+
transform.BasisX.X, -transform.BasisX.Z, -transform.BasisX.Y,
|
|
34104
|
+
0, -transform.BasisZ.X,
|
|
34105
|
+
transform.BasisZ.Z,
|
|
34106
|
+
transform.BasisZ.Y,
|
|
34107
|
+
0, -transform.BasisY.X,
|
|
34108
|
+
transform.BasisY.Z,
|
|
34109
|
+
transform.BasisY.Y,
|
|
34110
|
+
0, -transform.Offset.X,
|
|
34111
|
+
transform.Offset.Z,
|
|
34112
|
+
transform.Offset.Y,
|
|
34113
|
+
1,
|
|
34114
|
+
];
|
|
34115
|
+
//transform first
|
|
34116
|
+
let matrix4 = new Matrix4();
|
|
34117
|
+
matrix4.fromArray(numbers);
|
|
34118
|
+
instancedMesh.setMatrixAt(j, matrix4);
|
|
34119
|
+
instancedMesh.userData.Instances.push(transform.Id);
|
|
34120
|
+
}
|
|
34121
|
+
instancedMesh.updateMatrix();
|
|
34122
|
+
instancedMesh.userData.IsInstancedMesh = true;
|
|
34123
|
+
instancedMesh.userData.Type = 1;
|
|
34124
|
+
// group.userData.IsInstancedMesh = true;
|
|
34125
|
+
// group.userData.Type = 1; //element
|
|
34126
|
+
// group.updateMatrix();
|
|
34127
|
+
mainMesh.add(instancedMesh);
|
|
34108
34128
|
// let jsonData = group.toJSON();
|
|
34109
34129
|
// self.postMessage(jsonData);
|
|
34110
34130
|
}
|