viral-viewer-2 5.2.7 → 5.2.9
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/camera/viral-camera.d.ts +1 -1
- package/dist/components/compress/compress.processor.d.ts +4 -0
- package/dist/components/compress/compress.processor.js +29 -0
- package/dist/components/compress/compress.processor.js.map +1 -0
- package/dist/components/event-handler/viral-centralized-event-handler.d.ts +8 -0
- package/dist/components/event-handler/viral-centralized-event-handler.js +123 -0
- package/dist/components/event-handler/viral-centralized-event-handler.js.map +1 -1
- package/dist/components/loader/viral-three.loader.d.ts +1 -1
- package/dist/components/loader/viral-viewer-point-cloud.loader.d.ts +16 -0
- package/dist/components/loader/viral-viewer-point-cloud.loader.js +33 -0
- package/dist/components/loader/viral-viewer-point-cloud.loader.js.map +1 -0
- package/dist/components/loader/viral-viewer-revit.loader.d.ts +13 -0
- package/dist/components/loader/viral-viewer-revit.loader.js +124 -0
- package/dist/components/loader/viral-viewer-revit.loader.js.map +1 -0
- package/dist/components/post-processing/ambient-occlusion-effect.d.ts +2 -0
- package/dist/components/post-processing/ambient-occlusion-effect.js +2 -1
- package/dist/components/post-processing/ambient-occlusion-effect.js.map +1 -1
- package/dist/components/renderer/viral-renderer.js +6 -3
- package/dist/components/renderer/viral-renderer.js.map +1 -1
- package/dist/components/scene/viral-scene.d.ts +1 -1
- package/dist/components/worker/load-model.d.ts +126 -0
- package/dist/components/worker/load-model.js +1265 -0
- package/dist/components/worker/load-model.js.map +1 -0
- package/dist/components/worker/test-worker-pool.d.ts +6 -0
- package/dist/components/worker/test-worker-pool.js +21 -0
- package/dist/components/worker/test-worker-pool.js.map +1 -0
- package/dist/components/worker/viral-viewer.worker-pool.d.ts +0 -0
- package/dist/components/worker/viral-viewer.worker-pool.js +61 -0
- package/dist/components/worker/viral-viewer.worker-pool.js.map +1 -0
- package/dist/components/worker/worker-pool.d.ts +21 -0
- package/dist/components/worker/worker-pool.js +47 -0
- package/dist/components/worker/worker-pool.js.map +1 -0
- package/dist/components/worker/worker-thread.d.ts +9 -0
- package/dist/components/worker/worker-thread.js +30 -0
- package/dist/components/worker/worker-thread.js.map +1 -0
- package/dist/components/worker-script/load-model-worker-3.script.js +9 -9
- package/dist/components/worker-script/load-model-worker-3.script.js.map +1 -1
- package/dist/components/worker-script/test-worker-pool.script.d.ts +1 -0
- package/dist/components/worker-script/test-worker-pool.script.js +12 -0
- package/dist/components/worker-script/test-worker-pool.script.js.map +1 -0
- package/dist/models/dictionary.model.d.ts +10 -0
- package/dist/models/dictionary.model.js +41 -0
- package/dist/models/dictionary.model.js.map +1 -1
- package/dist/threejs-addon/gltf-loader.d.ts +1 -1
- package/dist/threejs-addon/n8ao/n8ao.d.ts +8 -8
- package/dist/threejs-addon/n8ao/post-processing.d.ts +1534 -3919
- package/dist/threejs-addon/post-processing/outline-pass.d.ts +7 -7
- package/dist/threejs-addon/post-processing/pass.d.ts +1 -1
- package/dist/threejs-addon/post-processing/sao-pass.d.ts +5 -5
- package/dist/threejs-addon/post-processing/unreal-bloom-pass.d.ts +3 -3
- package/dist/threejs-addon/transform-control.d.ts +3 -3
- package/dist/viral-viewer-api.js +3 -0
- package/dist/viral-viewer-api.js.map +1 -1
- package/package.json +1 -1
- package/dist/components/post-processing/viral-post-processing.d.ts +0 -11
- package/dist/components/post-processing/viral-post-processing.js +0 -29
- package/dist/components/post-processing/viral-post-processing.js.map +0 -1
- package/dist/threejs-addon/post-processing/ssaa-render-pass.d.ts +0 -30
- package/dist/threejs-addon/post-processing/ssaa-render-pass.js +0 -202
- package/dist/threejs-addon/post-processing/ssaa-render-pass.js.map +0 -1
- package/dist/threejs-addon/shaders/color-correction-shader.d.ts +0 -22
- package/dist/threejs-addon/shaders/color-correction-shader.js +0 -43
- package/dist/threejs-addon/shaders/color-correction-shader.js.map +0 -1
- package/dist/threejs-addon/shaders/fxaa-shader.d.ts +0 -14
- package/dist/threejs-addon/shaders/fxaa-shader.js +0 -279
- package/dist/threejs-addon/shaders/fxaa-shader.js.map +0 -1
|
@@ -22,7 +22,7 @@ export declare class ViralCamera {
|
|
|
22
22
|
focusModelByName(objectName?: string): void;
|
|
23
23
|
getState(): ViralViewerState | null;
|
|
24
24
|
restoreState(state: ViralViewerState): void;
|
|
25
|
-
clientToWorld(): import("three").Intersection<Object3D<import("three").
|
|
25
|
+
clientToWorld(): import("three").Intersection<Object3D<import("three").Event>>[] | null;
|
|
26
26
|
worldToClient(point: Vector3): Vector3 | null;
|
|
27
27
|
private castRay;
|
|
28
28
|
updateMainCamera(): void;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.CompressProcessor = void 0;
|
|
13
|
+
const lzstring = require("lz-string");
|
|
14
|
+
class CompressProcessor {
|
|
15
|
+
decompressed(path) {
|
|
16
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
17
|
+
let result = null;
|
|
18
|
+
let res = yield fetch(path);
|
|
19
|
+
if (res) {
|
|
20
|
+
let text = yield res.text();
|
|
21
|
+
let decompress = lzstring.decompressFromEncodedURIComponent(text);
|
|
22
|
+
result = JSON.parse(decompress);
|
|
23
|
+
}
|
|
24
|
+
return result;
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
exports.CompressProcessor = CompressProcessor;
|
|
29
|
+
//# sourceMappingURL=compress.processor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compress.processor.js","sourceRoot":"","sources":["../../../src/components/compress/compress.processor.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,sCAAsC;AAEtC,MAAa,iBAAiB;IACb,YAAY,CAAC,IAAY;;YAClC,IAAI,MAAM,GAAmC,IAAI,CAAC;YAClD,IAAI,GAAG,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC;YAC5B,IAAI,GAAG,EAAE;gBACL,IAAI,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;gBAC5B,IAAI,UAAU,GAAG,QAAQ,CAAC,iCAAiC,CAAC,IAAI,CAAC,CAAC;gBAElE,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;aACnC;YACD,OAAO,MAAM,CAAC;QAClB,CAAC;KAAA;CACJ;AAZD,8CAYC"}
|
|
@@ -4,4 +4,12 @@ export declare class ViralCentralizedEventHandler {
|
|
|
4
4
|
constructor(viralViewerApi: ViralViewerApi);
|
|
5
5
|
private contextMenuEventHandler;
|
|
6
6
|
windowHandler(): void;
|
|
7
|
+
private hoverMeshes;
|
|
8
|
+
private cloneMeshes;
|
|
9
|
+
private reverseColor;
|
|
10
|
+
hoverElementHandler(): void;
|
|
11
|
+
private selectedMesh;
|
|
12
|
+
private selectedCloneMesh;
|
|
13
|
+
private reverseElement;
|
|
14
|
+
selectElementHandler(): void;
|
|
7
15
|
}
|
|
@@ -1,12 +1,23 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ViralCentralizedEventHandler = void 0;
|
|
4
|
+
const three_1 = require("three");
|
|
4
5
|
const types_1 = require("../../types");
|
|
5
6
|
class ViralCentralizedEventHandler {
|
|
6
7
|
constructor(viralViewerApi) {
|
|
7
8
|
this.viralViewerApi = viralViewerApi;
|
|
9
|
+
//#endregion
|
|
10
|
+
//#region Hover Element Handler
|
|
11
|
+
this.hoverMeshes = [];
|
|
12
|
+
this.cloneMeshes = [];
|
|
13
|
+
//#endregion
|
|
14
|
+
//#region Select Element Handler
|
|
15
|
+
this.selectedMesh = [];
|
|
16
|
+
this.selectedCloneMesh = [];
|
|
8
17
|
this.windowHandler();
|
|
9
18
|
this.contextMenuEventHandler();
|
|
19
|
+
this.hoverElementHandler();
|
|
20
|
+
this.selectElementHandler();
|
|
10
21
|
}
|
|
11
22
|
//#region Context Menu
|
|
12
23
|
contextMenuEventHandler() {
|
|
@@ -42,6 +53,118 @@ class ViralCentralizedEventHandler {
|
|
|
42
53
|
this.viralViewerApi.viralCamera.resizeCanvas();
|
|
43
54
|
};
|
|
44
55
|
}
|
|
56
|
+
reverseColor() {
|
|
57
|
+
if (this.hoverMeshes.length == 0 && this.cloneMeshes.length == 0)
|
|
58
|
+
return;
|
|
59
|
+
this.hoverMeshes.forEach((element) => {
|
|
60
|
+
element.material = element.userData.originalMaterial;
|
|
61
|
+
});
|
|
62
|
+
this.cloneMeshes.forEach((element) => {
|
|
63
|
+
element.geometry.dispose();
|
|
64
|
+
element.material.dispose();
|
|
65
|
+
element.removeFromParent();
|
|
66
|
+
});
|
|
67
|
+
this.viralViewerApi.viralRenderer.render();
|
|
68
|
+
this.hoverMeshes = [];
|
|
69
|
+
this.cloneMeshes = [];
|
|
70
|
+
}
|
|
71
|
+
hoverElementHandler() {
|
|
72
|
+
this.viralViewerApi.viralMouse.addEventListener(types_1.ViralMouseEventType.ON_MOUSE_MOVE, "HoverElement", (result) => {
|
|
73
|
+
var _a, _b;
|
|
74
|
+
this.reverseColor();
|
|
75
|
+
if (!((_a = this.viralViewerApi) === null || _a === void 0 ? void 0 : _a.viralCamera.onUsing)) {
|
|
76
|
+
let intersects = this.viralViewerApi.viralCamera.clientToWorld();
|
|
77
|
+
if (intersects && intersects.length > 0) {
|
|
78
|
+
let intersect = intersects[0];
|
|
79
|
+
if ((intersect === null || intersect === void 0 ? void 0 : intersect.instanceId) != null) {
|
|
80
|
+
let instancedMesh = intersect.object;
|
|
81
|
+
// console.log(instancedMesh.);
|
|
82
|
+
let matrix4 = new three_1.Matrix4();
|
|
83
|
+
instancedMesh.getMatrixAt(intersect.instanceId, matrix4);
|
|
84
|
+
let clone = new three_1.Mesh(instancedMesh.geometry, this.viralViewerApi.viralMaterialManager.hoverMaterial);
|
|
85
|
+
clone.applyMatrix4(matrix4);
|
|
86
|
+
clone.updateMatrix();
|
|
87
|
+
clone.userData.instancedMeshId = instancedMesh.id;
|
|
88
|
+
clone.userData.instanceIndex = intersect.instanceId;
|
|
89
|
+
clone.renderOrder = 1;
|
|
90
|
+
(_b = this.viralViewerApi) === null || _b === void 0 ? void 0 : _b.viralScene.addModel(clone);
|
|
91
|
+
this.cloneMeshes.push(clone);
|
|
92
|
+
this.viralViewerApi.viralRenderer.render();
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
if (intersect.object &&
|
|
96
|
+
intersect.object.userData &&
|
|
97
|
+
intersect.object.userData.Type == 1) {
|
|
98
|
+
let mesh = intersect.object;
|
|
99
|
+
mesh.userData.originalMaterial = Array.isArray(mesh.material)
|
|
100
|
+
? mesh.material.map((x) => x.clone())
|
|
101
|
+
: mesh.material.clone();
|
|
102
|
+
mesh.material =
|
|
103
|
+
this.viralViewerApi.viralMaterialManager.hoverMaterial;
|
|
104
|
+
this.hoverMeshes.push(mesh);
|
|
105
|
+
this.viralViewerApi.viralRenderer.render();
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
reverseElement() {
|
|
113
|
+
if (this.selectedMesh.length == 0 && this.selectedCloneMesh.length == 0)
|
|
114
|
+
return;
|
|
115
|
+
this.selectedMesh.forEach((element) => {
|
|
116
|
+
element.material = element.userData.originalMaterial;
|
|
117
|
+
});
|
|
118
|
+
this.selectedCloneMesh.forEach((element) => {
|
|
119
|
+
element.geometry.dispose();
|
|
120
|
+
element.material.dispose();
|
|
121
|
+
element.removeFromParent();
|
|
122
|
+
});
|
|
123
|
+
this.viralViewerApi.viralRenderer.render();
|
|
124
|
+
this.selectedMesh = [];
|
|
125
|
+
this.selectedCloneMesh = [];
|
|
126
|
+
}
|
|
127
|
+
selectElementHandler() {
|
|
128
|
+
this.viralViewerApi.viralMouse.addEventListener(types_1.ViralMouseEventType.ON_MOUSE_DOWN_LEFT, "SelectElement", (result) => {
|
|
129
|
+
var _a, _b;
|
|
130
|
+
this.reverseElement();
|
|
131
|
+
if (!((_a = this.viralViewerApi) === null || _a === void 0 ? void 0 : _a.viralCamera.onUsing)) {
|
|
132
|
+
let intersects = this.viralViewerApi.viralCamera.clientToWorld();
|
|
133
|
+
if (intersects && intersects.length > 0) {
|
|
134
|
+
let intersect = intersects[0];
|
|
135
|
+
if ((intersect === null || intersect === void 0 ? void 0 : intersect.instanceId) != null) {
|
|
136
|
+
let instancedMesh = intersect.object;
|
|
137
|
+
// console.log(instancedMesh.);
|
|
138
|
+
let matrix4 = new three_1.Matrix4();
|
|
139
|
+
instancedMesh.getMatrixAt(intersect.instanceId, matrix4);
|
|
140
|
+
let clone = new three_1.Mesh(instancedMesh.geometry, this.viralViewerApi.viralMaterialManager.hoverMaterial);
|
|
141
|
+
clone.applyMatrix4(matrix4);
|
|
142
|
+
clone.updateMatrix();
|
|
143
|
+
clone.userData.instancedMeshId = instancedMesh.id;
|
|
144
|
+
clone.userData.instanceIndex = intersect.instanceId;
|
|
145
|
+
clone.renderOrder = 1;
|
|
146
|
+
(_b = this.viralViewerApi) === null || _b === void 0 ? void 0 : _b.viralScene.addModel(clone);
|
|
147
|
+
this.selectedCloneMesh.push(clone);
|
|
148
|
+
this.viralViewerApi.viralRenderer.render();
|
|
149
|
+
return;
|
|
150
|
+
}
|
|
151
|
+
if (intersect.object &&
|
|
152
|
+
intersect.object.userData &&
|
|
153
|
+
intersect.object.userData.Type == 1) {
|
|
154
|
+
let mesh = intersect.object;
|
|
155
|
+
mesh.userData.originalMaterial = Array.isArray(mesh.material)
|
|
156
|
+
? mesh.material.map((x) => x.clone())
|
|
157
|
+
: mesh.material.clone();
|
|
158
|
+
mesh.material =
|
|
159
|
+
this.viralViewerApi.viralMaterialManager.hoverMaterial;
|
|
160
|
+
this.selectedMesh.push(mesh);
|
|
161
|
+
this.viralViewerApi.viralRenderer.render();
|
|
162
|
+
return;
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
});
|
|
167
|
+
}
|
|
45
168
|
}
|
|
46
169
|
exports.ViralCentralizedEventHandler = ViralCentralizedEventHandler;
|
|
47
170
|
//# sourceMappingURL=viral-centralized-event-handler.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"viral-centralized-event-handler.js","sourceRoot":"","sources":["../../../src/components/event-handler/viral-centralized-event-handler.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"viral-centralized-event-handler.js","sourceRoot":"","sources":["../../../src/components/event-handler/viral-centralized-event-handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,6 @@ export declare class ViralThreeLoader {
|
|
|
6
6
|
objectLoader: ObjectLoader;
|
|
7
7
|
gltfLoader: GLTFLoader;
|
|
8
8
|
constructor(viralViewerApi: ViralViewerApi);
|
|
9
|
-
parseObject(data: any): import("three").Object3D<import("three").
|
|
9
|
+
parseObject(data: any): import("three").Object3D<import("three").Event>;
|
|
10
10
|
loadGLTF(url: string, onLoad?: (data: GLTF) => void, onProgress?: (data: ProgressEvent<EventTarget>) => void, onError?: (data: unknown) => void): void;
|
|
11
11
|
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Potree, PointCloudOctree } from "potree-core-viral";
|
|
2
|
+
import { ViralViewerApi } from "../../viral-viewer-api";
|
|
3
|
+
export declare class ViralViewerPointCloudLoader {
|
|
4
|
+
viralViewerApi: ViralViewerApi;
|
|
5
|
+
potree: Potree;
|
|
6
|
+
pointClouds: PointCloudOctree[];
|
|
7
|
+
constructor(viralViewerApi: ViralViewerApi);
|
|
8
|
+
/**
|
|
9
|
+
*
|
|
10
|
+
* @param metadataUrl endpoint to download metadata.json
|
|
11
|
+
* @param urlOcbinTree endpoint to download octree.bin
|
|
12
|
+
* @param urlHierarchy endpoint to download hierarchy.bin
|
|
13
|
+
* @param pointBudget
|
|
14
|
+
*/
|
|
15
|
+
load(metadataUrl: string, urlOcbinTree: string, urlHierarchy: string, pointBudget?: number, callbackOnSuccess?: (pco: PointCloudOctree) => void): void;
|
|
16
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ViralViewerPointCloudLoader = void 0;
|
|
4
|
+
const potree_core_viral_1 = require("potree-core-viral");
|
|
5
|
+
class ViralViewerPointCloudLoader {
|
|
6
|
+
constructor(viralViewerApi) {
|
|
7
|
+
this.viralViewerApi = viralViewerApi;
|
|
8
|
+
this.potree = new potree_core_viral_1.Potree();
|
|
9
|
+
this.pointClouds = [];
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
*
|
|
13
|
+
* @param metadataUrl endpoint to download metadata.json
|
|
14
|
+
* @param urlOcbinTree endpoint to download octree.bin
|
|
15
|
+
* @param urlHierarchy endpoint to download hierarchy.bin
|
|
16
|
+
* @param pointBudget
|
|
17
|
+
*/
|
|
18
|
+
load(metadataUrl, urlOcbinTree, urlHierarchy, pointBudget = 2000000, callbackOnSuccess = (pco) => { }) {
|
|
19
|
+
this.potree.pointBudget = pointBudget;
|
|
20
|
+
this.potree.loadPointCloudCustom(metadataUrl, urlOcbinTree, urlHierarchy).then((pco) => {
|
|
21
|
+
let material = pco.material;
|
|
22
|
+
material.size = 1;
|
|
23
|
+
material.pointSizeType = potree_core_viral_1.PointSizeType.ADAPTIVE;
|
|
24
|
+
material.shape = potree_core_viral_1.PointShape.CIRCLE;
|
|
25
|
+
material.pointColorType = potree_core_viral_1.PointColorType.RGB;
|
|
26
|
+
this.viralViewerApi.viralScene.addObject(pco);
|
|
27
|
+
this.pointClouds.push(pco);
|
|
28
|
+
callbackOnSuccess(pco);
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
exports.ViralViewerPointCloudLoader = ViralViewerPointCloudLoader;
|
|
33
|
+
//# sourceMappingURL=viral-viewer-point-cloud.loader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"viral-viewer-point-cloud.loader.js","sourceRoot":"","sources":["../../../src/components/loader/viral-viewer-point-cloud.loader.ts"],"names":[],"mappings":";;;AAAA,yDAAwG;AAGxG,MAAa,2BAA2B;IAGpC,YAAmB,cAA8B;QAA9B,mBAAc,GAAd,cAAc,CAAgB;QAFjD,WAAM,GAAW,IAAI,0BAAM,EAAE,CAAC;QAC9B,gBAAW,GAAuB,EAAE,CAAC;IAErC,CAAC;IACD;;;;;;OAMG;IACI,IAAI,CAAC,WAAmB,EAAE,YAAoB,EAAE,YAAoB,EAAE,cAAsB,OAAO,EAAE,oBAAoB,CAAC,GAAqB,EAAE,EAAE,GAAG,CAAC;QAC1J,IAAI,CAAC,MAAM,CAAC,WAAW,GAAG,WAAW,CAAC;QACtC,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAC5B,WAAW,EACX,YAAY,EACZ,YAAY,CACf,CAAC,IAAI,CAAC,CAAC,GAAqB,EAAE,EAAE;YAC7B,IAAI,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;YAC5B,QAAQ,CAAC,IAAI,GAAG,CAAC,CAAC;YAClB,QAAQ,CAAC,aAAa,GAAG,iCAAa,CAAC,QAAQ,CAAC;YAChD,QAAQ,CAAC,KAAK,GAAG,8BAAU,CAAC,MAAM,CAAC;YACnC,QAAQ,CAAC,cAAc,GAAG,kCAAc,CAAC,GAAG,CAAC;YAE7C,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YAC9C,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC3B,iBAAiB,CAAC,GAAG,CAAC,CAAC;QAC3B,CAAC,CAAC,CAAC;IACP,CAAC;CACJ;AA9BD,kEA8BC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { ViralViewerRevitProject } from "../../types";
|
|
2
|
+
import { ViralViewerApi } from "../../viral-viewer-api";
|
|
3
|
+
export declare class ViralViewerRevitLoader {
|
|
4
|
+
viralViewerApi: ViralViewerApi;
|
|
5
|
+
constructor(viralViewerApi: ViralViewerApi);
|
|
6
|
+
loadRevit(model: ViralViewerRevitProject): void;
|
|
7
|
+
private progressStructuralGeometries;
|
|
8
|
+
private progressNoneStructuralGeometries;
|
|
9
|
+
private addCustomMesh3;
|
|
10
|
+
private addCustomMesh4;
|
|
11
|
+
private rgbToHex;
|
|
12
|
+
private componentToHex;
|
|
13
|
+
}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ViralViewerRevitLoader = void 0;
|
|
4
|
+
const THREE = require("three");
|
|
5
|
+
class ViralViewerRevitLoader {
|
|
6
|
+
constructor(viralViewerApi) {
|
|
7
|
+
this.viralViewerApi = viralViewerApi;
|
|
8
|
+
}
|
|
9
|
+
loadRevit(model) {
|
|
10
|
+
this.progressNoneStructuralGeometries(model);
|
|
11
|
+
this.progressStructuralGeometries(model);
|
|
12
|
+
}
|
|
13
|
+
progressStructuralGeometries(model) {
|
|
14
|
+
const modelMesh = new THREE.Mesh();
|
|
15
|
+
for (let index = 0; index < model.StructuralGeometries.length; index++) {
|
|
16
|
+
// if(index==0) continue;
|
|
17
|
+
const geometry = model.StructuralGeometries[index];
|
|
18
|
+
const material = model.Materials[geometry.MaterialIndex];
|
|
19
|
+
this.addCustomMesh3(modelMesh, geometry.Indices, geometry.Vertices, material);
|
|
20
|
+
}
|
|
21
|
+
modelMesh.castShadow = true;
|
|
22
|
+
modelMesh.receiveShadow = true;
|
|
23
|
+
this.viralViewerApi.viralScene.addObject(modelMesh);
|
|
24
|
+
}
|
|
25
|
+
progressNoneStructuralGeometries(model) {
|
|
26
|
+
const modelMesh = new THREE.Mesh();
|
|
27
|
+
modelMesh.castShadow = true;
|
|
28
|
+
modelMesh.receiveShadow = true;
|
|
29
|
+
for (let index = 0; index < model.NoneStructuralGeometries.length; index++) {
|
|
30
|
+
const geometry = model.NoneStructuralGeometries[index];
|
|
31
|
+
const material = model.Materials[geometry.MaterialIndex];
|
|
32
|
+
this.addCustomMesh4(modelMesh, geometry.Indices, geometry.Vertices, material, geometry.Instances);
|
|
33
|
+
}
|
|
34
|
+
this.viralViewerApi.viralScene.addObject(modelMesh);
|
|
35
|
+
}
|
|
36
|
+
addCustomMesh3(mesh, indices, vertices, material) {
|
|
37
|
+
const geometry = new THREE.BufferGeometry();
|
|
38
|
+
let verticePoints = [];
|
|
39
|
+
for (let i = 0; i < indices.length; i++) {
|
|
40
|
+
const index = indices[i];
|
|
41
|
+
const point = vertices[index];
|
|
42
|
+
verticePoints.push(-point.X);
|
|
43
|
+
verticePoints.push(point.Z);
|
|
44
|
+
verticePoints.push(point.Y);
|
|
45
|
+
}
|
|
46
|
+
const buffer = new Float32Array(verticePoints);
|
|
47
|
+
let colorString = this.rgbToHex(material.Red, material.Green, material.Blue);
|
|
48
|
+
geometry.setAttribute("position", new THREE.BufferAttribute(buffer, 3));
|
|
49
|
+
let newMaterial = new THREE.MeshPhongMaterial({
|
|
50
|
+
color: colorString,
|
|
51
|
+
opacity: material.Opacity,
|
|
52
|
+
transparent: true,
|
|
53
|
+
flatShading: true,
|
|
54
|
+
});
|
|
55
|
+
const edges = new THREE.EdgesGeometry(geometry, 90);
|
|
56
|
+
const line = new THREE.LineSegments(edges, new THREE.LineBasicMaterial({ color: "#202020" }));
|
|
57
|
+
const childMesh = new THREE.Mesh(geometry, newMaterial);
|
|
58
|
+
childMesh.castShadow = true;
|
|
59
|
+
childMesh.receiveShadow = true;
|
|
60
|
+
childMesh.add(line);
|
|
61
|
+
mesh.add(childMesh);
|
|
62
|
+
}
|
|
63
|
+
addCustomMesh4(mesh, indices, vertices, material, instances) {
|
|
64
|
+
const geometry = new THREE.BufferGeometry();
|
|
65
|
+
let verticePoints = [];
|
|
66
|
+
for (let i = 0; i < indices.length; i++) {
|
|
67
|
+
const index = indices[i];
|
|
68
|
+
const point = vertices[index];
|
|
69
|
+
verticePoints.push(-point.X);
|
|
70
|
+
verticePoints.push(point.Z);
|
|
71
|
+
verticePoints.push(point.Y);
|
|
72
|
+
}
|
|
73
|
+
const buffer = new Float32Array(verticePoints);
|
|
74
|
+
let colorString = this.rgbToHex(material.Red, material.Green, material.Blue);
|
|
75
|
+
geometry.setAttribute("position", new THREE.BufferAttribute(buffer, 3));
|
|
76
|
+
let newMaterial = new THREE.MeshPhongMaterial({
|
|
77
|
+
color: colorString,
|
|
78
|
+
opacity: material.Opacity,
|
|
79
|
+
transparent: true,
|
|
80
|
+
flatShading: true
|
|
81
|
+
});
|
|
82
|
+
for (let index = 0; index < instances.length; index++) {
|
|
83
|
+
const instance = instances[index];
|
|
84
|
+
let cloneGeometry = geometry.clone();
|
|
85
|
+
const childMesh = new THREE.Mesh(cloneGeometry, newMaterial);
|
|
86
|
+
childMesh.castShadow = true;
|
|
87
|
+
childMesh.receiveShadow = true;
|
|
88
|
+
let numbers = [
|
|
89
|
+
instance.BasisX.X,
|
|
90
|
+
-instance.BasisX.Z,
|
|
91
|
+
-instance.BasisX.Y,
|
|
92
|
+
0,
|
|
93
|
+
-instance.BasisZ.X,
|
|
94
|
+
instance.BasisZ.Z,
|
|
95
|
+
instance.BasisZ.Y,
|
|
96
|
+
0,
|
|
97
|
+
-instance.BasisY.X,
|
|
98
|
+
instance.BasisY.Z,
|
|
99
|
+
instance.BasisY.Y,
|
|
100
|
+
0,
|
|
101
|
+
-instance.Offset.X,
|
|
102
|
+
instance.Offset.Z,
|
|
103
|
+
instance.Offset.Y,
|
|
104
|
+
1,
|
|
105
|
+
];
|
|
106
|
+
let matrix4 = new THREE.Matrix4();
|
|
107
|
+
matrix4.fromArray(numbers);
|
|
108
|
+
childMesh.applyMatrix4(matrix4);
|
|
109
|
+
const edges = new THREE.EdgesGeometry(childMesh.geometry);
|
|
110
|
+
const line = new THREE.LineSegments(edges, new THREE.LineBasicMaterial({ color: "#202020" }));
|
|
111
|
+
childMesh.add(line);
|
|
112
|
+
mesh.add(childMesh);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
rgbToHex(r, g, b) {
|
|
116
|
+
return "#" + this.componentToHex(r) + this.componentToHex(g) + this.componentToHex(b);
|
|
117
|
+
}
|
|
118
|
+
componentToHex(c) {
|
|
119
|
+
var hex = c.toString(16);
|
|
120
|
+
return hex.length == 1 ? "0" + hex : hex;
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
exports.ViralViewerRevitLoader = ViralViewerRevitLoader;
|
|
124
|
+
//# sourceMappingURL=viral-viewer-revit.loader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"viral-viewer-revit.loader.js","sourceRoot":"","sources":["../../../src/components/loader/viral-viewer-revit.loader.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { EffectComposer } from "../../threejs-addon/post-processing/effect-composer";
|
|
2
|
+
import { OutputPass } from "../../threejs-addon/post-processing/output-pass";
|
|
2
3
|
import { RenderPass } from "../../threejs-addon/post-processing/render-pass";
|
|
3
4
|
import { SAOPass } from "../../threejs-addon/post-processing/sao-pass";
|
|
4
5
|
import { ViralViewerApi } from "../../viral-viewer-api";
|
|
@@ -7,5 +8,6 @@ export declare class AmbientOcclusionEffect {
|
|
|
7
8
|
composer: EffectComposer | null;
|
|
8
9
|
renderPass: RenderPass | null;
|
|
9
10
|
saoPass: SAOPass | null;
|
|
11
|
+
outputPass: OutputPass | null;
|
|
10
12
|
constructor(viralViewerApi: ViralViewerApi);
|
|
11
13
|
}
|
|
@@ -11,9 +11,10 @@ class AmbientOcclusionEffect {
|
|
|
11
11
|
//effect
|
|
12
12
|
this.renderPass = null;
|
|
13
13
|
this.saoPass = null;
|
|
14
|
+
this.outputPass = null;
|
|
14
15
|
if (this.viralViewerApi.viralScene) {
|
|
15
16
|
this.composer = new effect_composer_1.EffectComposer(this.viralViewerApi.viralRenderer.renderer);
|
|
16
|
-
this.composer.setSize(
|
|
17
|
+
this.composer.setSize(this.viralViewerApi.targetElement.offsetWidth, this.viralViewerApi.targetElement.offsetHeight);
|
|
17
18
|
this.renderPass = new render_pass_1.RenderPass(this.viralViewerApi.viralScene.scene, this.viralViewerApi.viralCamera.camera);
|
|
18
19
|
this.saoPass = new sao_pass_1.SAOPass(this.viralViewerApi.viralScene.scene, this.viralViewerApi.viralCamera.camera, true, true);
|
|
19
20
|
this.saoPass.resolution.set(8192, 8192);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ambient-occlusion-effect.js","sourceRoot":"","sources":["../../../src/components/post-processing/ambient-occlusion-effect.ts"],"names":[],"mappings":";;;AAAA,yFAAqF;
|
|
1
|
+
{"version":3,"file":"ambient-occlusion-effect.js","sourceRoot":"","sources":["../../../src/components/post-processing/ambient-occlusion-effect.ts"],"names":[],"mappings":";;;AAAA,yFAAqF;AAErF,iFAA6E;AAC7E,2EAAuE;AAGvE,MAAa,sBAAsB;IAOjC,YAAoB,cAA8B;QAA9B,mBAAc,GAAd,cAAc,CAAgB;QANlD,aAAQ,GAA0B,IAAI,CAAC;QACvC,QAAQ;QACR,eAAU,GAAsB,IAAI,CAAC;QACrC,YAAO,GAAmB,IAAI,CAAC;QAC/B,eAAU,GAAsB,IAAI,CAAC;QAGnC,IAAI,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE;YAClC,IAAI,CAAC,QAAQ,GAAG,IAAI,gCAAc,CAChC,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,QAAQ,CAC3C,CAAC;YAEF,IAAI,CAAC,QAAQ,CAAC,OAAO,CACnB,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,WAAW,EAC7C,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,YAAY,CAC/C,CAAC;YACF,IAAI,CAAC,UAAU,GAAG,IAAI,wBAAU,CAC9B,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,KAAK,EACpC,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,MAAM,CACvC,CAAC;YAEF,IAAI,CAAC,OAAO,GAAG,IAAI,kBAAO,CACxB,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,KAAK,EACpC,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,MAAM,EACtC,IAAI,EACJ,IAAI,CACL,CAAC;YACF,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAExC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;YACnC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,GAAG,MAAM,CAAC;YAC1C,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,GAAG,GAAG,CAAC;YACnC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,eAAe,GAAG,EAAE,CAAC;YACzC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,aAAa,GAAG,CAAC,CAAC;YACtC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,gBAAgB,GAAG,CAAC,CAAC;YAEzC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACvC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;SACrC;IACH,CAAC;CACF;AAzCD,wDAyCC"}
|
|
@@ -14,7 +14,7 @@ class ViralRenderer {
|
|
|
14
14
|
logarithmicDepthBuffer: true,
|
|
15
15
|
powerPreference: "high-performance",
|
|
16
16
|
});
|
|
17
|
-
this.renderer.shadowMap.enabled = true;
|
|
17
|
+
// this.renderer.shadowMap.enabled = true;
|
|
18
18
|
// this.renderer.shadowMap.type = PCFSoftShadowMap;
|
|
19
19
|
// this.renderer.outputColorSpace = SRGBColorSpace;
|
|
20
20
|
this.renderer.setClearColor(0xffffff, 0);
|
|
@@ -33,8 +33,11 @@ class ViralRenderer {
|
|
|
33
33
|
this.viralViewerApi.viralCamera.camera) {
|
|
34
34
|
//force update without wait for next frame
|
|
35
35
|
(_a = this.viralViewerApi.viralCamera.camera) === null || _a === void 0 ? void 0 : _a.updateMatrixWorld(true);
|
|
36
|
-
this.renderer.render(
|
|
37
|
-
//
|
|
36
|
+
// this.renderer.render(
|
|
37
|
+
// this.viralViewerApi.viralScene.scene,
|
|
38
|
+
// this.viralViewerApi.viralCamera.camera
|
|
39
|
+
// );
|
|
40
|
+
this.postProcessingRenderer.render();
|
|
38
41
|
if (this.viralViewerApi.viralTools.viralToolMeasure.isActivated) {
|
|
39
42
|
this.renderer.autoClear = false;
|
|
40
43
|
this.renderer.clearDepth();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"viral-renderer.js","sourceRoot":"","sources":["../../../src/components/renderer/viral-renderer.ts"],"names":[],"mappings":";;;AAAA,iCAMe;AAEf,0FAAqF;AACrF,uCAA8C;AAE9C,MAAa,aAAa;IAgBxB,YAAmB,cAA8B;QAA9B,mBAAc,GAAd,cAAc,CAAgB;QAfjD,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;QAUD,
|
|
1
|
+
{"version":3,"file":"viral-renderer.js","sourceRoot":"","sources":["../../../src/components/renderer/viral-renderer.ts"],"names":[],"mappings":";;;AAAA,iCAMe;AAEf,0FAAqF;AACrF,uCAA8C;AAE9C,MAAa,aAAa;IAgBxB,YAAmB,cAA8B;QAA9B,mBAAc,GAAd,cAAc,CAAgB;QAfjD,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;QAUD,0CAA0C;QAC1C,mDAAmD;QACnD,mDAAmD;QACnD,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;QACxE,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,IAAI,CACrC,uBAAe,CAAC,eAAe,CAChC,CAAC;IACJ,CAAC;IACM,UAAU,CAAC,KAAa,EAAE,MAAc;QAC7C,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACrC,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC9D,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;YAEL,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;AA5DD,sCA4DC"}
|
|
@@ -15,7 +15,7 @@ export declare class ViralScene {
|
|
|
15
15
|
addObject(object: Object3D): void;
|
|
16
16
|
addModel(object: Object3D): void;
|
|
17
17
|
addEdge(object: Object3D): void;
|
|
18
|
-
getObjectByName(name: string): Object3D<import("three").
|
|
18
|
+
getObjectByName(name: string): Object3D<import("three").Event> | undefined;
|
|
19
19
|
addLights(): void;
|
|
20
20
|
addPivotPoint(): void;
|
|
21
21
|
addTransformControls(): void;
|