viral-viewer-2 6.0.9 → 6.1.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.
Files changed (53) hide show
  1. package/dist/components/custom-objects/viral-instanced-mesh.d.ts +2 -0
  2. package/dist/components/custom-objects/viral-instanced-mesh.js +2 -0
  3. package/dist/components/custom-objects/viral-instanced-mesh.js.map +1 -1
  4. package/dist/components/event-handler/keyboard/viral-keyboard.d.ts +17 -0
  5. package/dist/components/event-handler/keyboard/viral-keyboard.js +76 -0
  6. package/dist/components/event-handler/keyboard/viral-keyboard.js.map +1 -0
  7. package/dist/components/event-handler/mouse/viral-mouse.d.ts +31 -0
  8. package/dist/components/event-handler/mouse/viral-mouse.js +234 -0
  9. package/dist/components/event-handler/mouse/viral-mouse.js.map +1 -0
  10. package/dist/components/event-handler/viral-centralized-event-handler.js +2 -12
  11. package/dist/components/event-handler/viral-centralized-event-handler.js.map +1 -1
  12. package/dist/components/visibility-manager/viral-visibility-manager.js +10 -7
  13. package/dist/components/visibility-manager/viral-visibility-manager.js.map +1 -1
  14. package/dist/gui/context-menu/viral-context-menu.d.ts +17 -0
  15. package/dist/gui/context-menu/viral-context-menu.js +74 -0
  16. package/dist/gui/context-menu/viral-context-menu.js.map +1 -0
  17. package/dist/gui/navigation-cube/components/cube-camera.d.ts +15 -0
  18. package/dist/gui/navigation-cube/components/cube-camera.js +74 -0
  19. package/dist/gui/navigation-cube/components/cube-camera.js.map +1 -0
  20. package/dist/gui/navigation-cube/components/cube-renderer.d.ts +9 -0
  21. package/dist/gui/navigation-cube/components/cube-renderer.js +31 -0
  22. package/dist/gui/navigation-cube/components/cube-renderer.js.map +1 -0
  23. package/dist/gui/navigation-cube/components/cube-scene.d.ts +13 -0
  24. package/dist/gui/navigation-cube/components/cube-scene.js +546 -0
  25. package/dist/gui/navigation-cube/components/cube-scene.js.map +1 -0
  26. package/dist/gui/navigation-cube/components/cube.mouse.d.ts +9 -0
  27. package/dist/gui/navigation-cube/components/cube.mouse.js +109 -0
  28. package/dist/gui/navigation-cube/components/cube.mouse.js.map +1 -0
  29. package/dist/gui/navigation-cube/viral-navigation-cube.d.ts +16 -0
  30. package/dist/gui/navigation-cube/viral-navigation-cube.js +50 -0
  31. package/dist/gui/navigation-cube/viral-navigation-cube.js.map +1 -0
  32. package/dist/gui/tools/tools/viral-tool-ambient-occlusion.d.ts +7 -0
  33. package/dist/gui/tools/tools/viral-tool-ambient-occlusion.js +16 -0
  34. package/dist/gui/tools/tools/viral-tool-ambient-occlusion.js.map +1 -0
  35. package/dist/gui/tools/tools/viral-tool-dark-mode.d.ts +7 -0
  36. package/dist/gui/tools/tools/viral-tool-dark-mode.js +21 -0
  37. package/dist/gui/tools/tools/viral-tool-dark-mode.js.map +1 -0
  38. package/dist/gui/tools/tools/viral-tool-elevation.d.ts +11 -0
  39. package/dist/gui/tools/tools/viral-tool-elevation.js +30 -0
  40. package/dist/gui/tools/tools/viral-tool-elevation.js.map +1 -0
  41. package/dist/gui/tools/tools/viral-tool-measure.d.ts +33 -0
  42. package/dist/gui/tools/tools/viral-tool-measure.js +243 -0
  43. package/dist/gui/tools/tools/viral-tool-measure.js.map +1 -0
  44. package/dist/gui/tools/tools/viral-tool-sunlight.d.ts +7 -0
  45. package/dist/gui/tools/tools/viral-tool-sunlight.js +46 -0
  46. package/dist/gui/tools/tools/viral-tool-sunlight.js.map +1 -0
  47. package/dist/gui/tools/viral-tools.d.ts +32 -0
  48. package/dist/gui/tools/viral-tools.js +213 -0
  49. package/dist/gui/tools/viral-tools.js.map +1 -0
  50. package/dist/viral-viewer-api.d.ts +7 -5
  51. package/dist/viral-viewer-api.js +7 -5
  52. package/dist/viral-viewer-api.js.map +1 -1
  53. package/package.json +5 -2
@@ -0,0 +1,109 @@
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.CubeMouse = void 0;
13
+ const three_1 = require("three");
14
+ class CubeMouse {
15
+ constructor(viralNavigationCube) {
16
+ this.viralNavigationCube = viralNavigationCube;
17
+ this.handleClick = (_event) => __awaiter(this, void 0, void 0, function* () {
18
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w;
19
+ if (!((_a = this.viralNavigationCube.cubeScene) === null || _a === void 0 ? void 0 : _a.activePlane) || ((_b = this.viralNavigationCube.cubeCamera) === null || _b === void 0 ? void 0 : _b.cameraControlHasMoved)) {
20
+ console.log("false");
21
+ return false;
22
+ }
23
+ let planePosition = new three_1.Vector3((_c = this.viralNavigationCube.cubeScene) === null || _c === void 0 ? void 0 : _c.activePlane.position.x, (_d = this.viralNavigationCube.cubeScene) === null || _d === void 0 ? void 0 : _d.activePlane.position.y, (_e = this.viralNavigationCube.cubeScene) === null || _e === void 0 ? void 0 : _e.activePlane.position.z);
24
+ //have children mean edge or corner
25
+ if (((_f = this.viralNavigationCube.cubeScene) === null || _f === void 0 ? void 0 : _f.activePlane.children.length) > 0) {
26
+ let combineX = 0;
27
+ let combineY = 0;
28
+ let combineZ = 0;
29
+ for (let index = 0; index < ((_g = this.viralNavigationCube.cubeScene) === null || _g === void 0 ? void 0 : _g.activePlane.children.length); index++) {
30
+ const element = (_h = this.viralNavigationCube.cubeScene) === null || _h === void 0 ? void 0 : _h.activePlane.children[index];
31
+ combineX += element.position.x;
32
+ combineY += element.position.y;
33
+ combineZ += element.position.z;
34
+ }
35
+ planePosition = new three_1.Vector3(combineX / ((_j = this.viralNavigationCube.cubeScene) === null || _j === void 0 ? void 0 : _j.activePlane.children.length), combineY / ((_k = this.viralNavigationCube.cubeScene) === null || _k === void 0 ? void 0 : _k.activePlane.children.length), combineZ / ((_l = this.viralNavigationCube.cubeScene) === null || _l === void 0 ? void 0 : _l.activePlane.children.length));
36
+ }
37
+ let cubeCameraTargetPoint = new three_1.Vector3();
38
+ (_m = this.viralNavigationCube.cubeCamera) === null || _m === void 0 ? void 0 : _m.cameraControls.getTarget(cubeCameraTargetPoint);
39
+ let directionVector = planePosition.clone().sub(cubeCameraTargetPoint).normalize();
40
+ (_o = this.viralNavigationCube.cubeCamera) === null || _o === void 0 ? void 0 : _o.cameraControlOldPosition.copy((_q = (_p = this.viralNavigationCube.cubeCamera) === null || _p === void 0 ? void 0 : _p.camera) === null || _q === void 0 ? void 0 : _q.position);
41
+ let targetPoint = new three_1.Vector3();
42
+ (_r = this.viralNavigationCube.viralViewerApi.viralCamera) === null || _r === void 0 ? void 0 : _r.cameraControls.getTarget(targetPoint);
43
+ let currentPosition = new three_1.Vector3();
44
+ (_s = this.viralNavigationCube.viralViewerApi.viralCamera) === null || _s === void 0 ? void 0 : _s.cameraControls.getPosition(currentPosition);
45
+ let distance = currentPosition
46
+ .clone()
47
+ .sub(targetPoint)
48
+ .length();
49
+ let newVector = new three_1.Vector3(Math.round(directionVector.x), Math.round(directionVector.y), Math.round(directionVector.z));
50
+ newVector.multiplyScalar(distance);
51
+ (_t = this.viralNavigationCube.viralViewerApi.viralCamera.camera) === null || _t === void 0 ? void 0 : _t.updateMatrixWorld();
52
+ (_u = this.viralNavigationCube.viralViewerApi.viralCamera.cameraControls) === null || _u === void 0 ? void 0 : _u.setTarget(0, 0, 0);
53
+ directionVector.multiplyScalar(2);
54
+ (_v = this.viralNavigationCube.cubeCamera) === null || _v === void 0 ? void 0 : _v.cameraControls.setPosition(directionVector.x, directionVector.y, directionVector.z, true);
55
+ (_w = this.viralNavigationCube.viralViewerApi.viralCamera.cameraControls) === null || _w === void 0 ? void 0 : _w.setPosition(newVector.x, newVector.y, newVector.z, true);
56
+ });
57
+ this.handleMove = (_event) => __awaiter(this, void 0, void 0, function* () {
58
+ var _x, _y, _z, _0, _1, _2;
59
+ if ((_x = this.viralNavigationCube.cubeScene) === null || _x === void 0 ? void 0 : _x.activePlane) {
60
+ this.viralNavigationCube.cubeScene.activePlane.material.opacity = 0;
61
+ this.viralNavigationCube.cubeScene.activePlane.material.needsUpdate = true;
62
+ for (let index = 0; index < this.viralNavigationCube.cubeScene.activePlane.children.length; index++) {
63
+ let element = this.viralNavigationCube.cubeScene.activePlane.children[index];
64
+ element.material.opacity = 0;
65
+ element.needsUpdate = true;
66
+ }
67
+ this.viralNavigationCube.cubeScene.activePlane = null;
68
+ }
69
+ let x = _event.offsetX;
70
+ let y = _event.offsetY;
71
+ let size = (_y = this.viralNavigationCube.cubeRenderer) === null || _y === void 0 ? void 0 : _y.renderer.getSize(new three_1.Vector2());
72
+ let mouse = new three_1.Vector2(x / size.width * 2 - 1, -y / size.height * 2 + 1);
73
+ let raycaster = new three_1.Raycaster();
74
+ raycaster.setFromCamera(mouse, (_z = this.viralNavigationCube.cubeCamera) === null || _z === void 0 ? void 0 : _z.camera);
75
+ let intersects = raycaster.intersectObjects((_0 = this.viralNavigationCube.cubeScene) === null || _0 === void 0 ? void 0 : _0.objects);
76
+ if (intersects.length > 0 && intersects[0].object != ((_1 = this.viralNavigationCube.cubeScene) === null || _1 === void 0 ? void 0 : _1.cube)) {
77
+ if (intersects[0].object.parent && intersects[0].object.parent.name != '' && (intersects[0].object.parent.children.length == 2 || intersects[0].object.parent.children.length == 3)) {
78
+ this.viralNavigationCube.cubeScene.activePlane = intersects[0].object.parent;
79
+ for (let index = 0; index < this.viralNavigationCube.cubeScene.activePlane.children.length; index++) {
80
+ let element = this.viralNavigationCube.cubeScene.activePlane.children[index];
81
+ element.material.opacity = 0.2;
82
+ element.needsUpdate = true;
83
+ }
84
+ }
85
+ else {
86
+ this.viralNavigationCube.cubeScene.activePlane = intersects[0].object;
87
+ this.viralNavigationCube.cubeScene.activePlane.material.opacity = 0.2;
88
+ this.viralNavigationCube.cubeScene.activePlane.material.needsUpdate = true;
89
+ }
90
+ (_2 = this.viralNavigationCube.cubeRenderer) === null || _2 === void 0 ? void 0 : _2.render();
91
+ }
92
+ });
93
+ if (this.viralNavigationCube.cubeRenderer) {
94
+ this.setupMouseClick(this.viralNavigationCube.cubeRenderer.renderer.domElement);
95
+ this.setupMouseMove(this.viralNavigationCube.cubeRenderer.renderer.domElement);
96
+ }
97
+ }
98
+ //#region Mouse Click
99
+ setupMouseClick(domElement) {
100
+ domElement.onclick = this.handleClick;
101
+ }
102
+ //#endregion
103
+ //#region Mouse Move
104
+ setupMouseMove(domElement) {
105
+ domElement.onmousemove = this.handleMove;
106
+ }
107
+ }
108
+ exports.CubeMouse = CubeMouse;
109
+ //# sourceMappingURL=cube.mouse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cube.mouse.js","sourceRoot":"","sources":["../../../../src/gui/navigation-cube/components/cube.mouse.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import { ViralViewerApi } from "../../viral-viewer-api";
2
+ import { CubeCamera } from "./components/cube-camera";
3
+ import { CubeRenderer } from "./components/cube-renderer";
4
+ import { CubeScene } from "./components/cube-scene";
5
+ import { CubeMouse } from "./components/cube.mouse";
6
+ export declare class ViralNavigationCube {
7
+ viralViewerApi: ViralViewerApi;
8
+ targetElement: HTMLElement | null;
9
+ cubeScene: CubeScene | null;
10
+ cubeRenderer: CubeRenderer | null;
11
+ cubeCamera: CubeCamera | null;
12
+ cubeMouse: CubeMouse | null;
13
+ constructor(viralViewerApi: ViralViewerApi);
14
+ private injectCubeWrapperElement;
15
+ private handleClick;
16
+ }
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ViralNavigationCube = void 0;
4
+ const types_1 = require("../../types");
5
+ const cube_camera_1 = require("./components/cube-camera");
6
+ const cube_renderer_1 = require("./components/cube-renderer");
7
+ const cube_scene_1 = require("./components/cube-scene");
8
+ const cube_mouse_1 = require("./components/cube.mouse");
9
+ class ViralNavigationCube {
10
+ constructor(viralViewerApi) {
11
+ this.viralViewerApi = viralViewerApi;
12
+ this.targetElement = null;
13
+ this.cubeScene = null;
14
+ this.cubeRenderer = null;
15
+ this.cubeCamera = null;
16
+ this.cubeMouse = null;
17
+ this.injectCubeWrapperElement();
18
+ this.targetElement = document.getElementById('orientCubeWrapper');
19
+ if (this.targetElement) {
20
+ this.cubeScene = new cube_scene_1.CubeScene(this);
21
+ this.cubeRenderer = new cube_renderer_1.CubeRenderer(this);
22
+ this.cubeCamera = new cube_camera_1.CubeCamera(this);
23
+ this.cubeMouse = new cube_mouse_1.CubeMouse(this);
24
+ // this.cubeRenderer.anim();
25
+ }
26
+ this.viralViewerApi.lifeCycleEvent.emit(types_1.ViralutionEvent.LOADED_CUBE);
27
+ }
28
+ injectCubeWrapperElement() {
29
+ if (this.viralViewerApi.targetElement) {
30
+ const wrapperDiv = document.createElement('div');
31
+ wrapperDiv.setAttribute("style", 'position:absolute; right:10px; top:10px; display:flex');
32
+ //home button
33
+ const button = document.createElement('div');
34
+ button.innerHTML = `<svg xmlns="http://www.w3.org/2000/svg" style="fill:#e2e6dc;cursor: pointer; filter: drop-shadow(1px 1px 2px rgba(0, 0, 0, 0.5));" height="20px" viewBox="0 0 576 512"><!--! Font Awesome Free 6.4.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --><path d="M280.37 148.26L96 300.11V464a16 16 0 0 0 16 16l112.06-.29a16 16 0 0 0 15.92-16V368a16 16 0 0 1 16-16h64a16 16 0 0 1 16 16v95.64a16 16 0 0 0 16 16.05L464 480a16 16 0 0 0 16-16V300L295.67 148.26a12.19 12.19 0 0 0-15.3 0zM571.6 251.47L488 182.56V44.05a12 12 0 0 0-12-12h-56a12 12 0 0 0-12 12v72.61L318.47 43a48 48 0 0 0-61 0L4.34 251.47a12 12 0 0 0-1.6 16.9l25.5 31A12 12 0 0 0 45.15 301l235.22-193.74a12.19 12.19 0 0 1 15.3 0L530.9 301a12 12 0 0 0 16.9-1.6l25.5-31a12 12 0 0 0-1.7-16.93z"/></svg>`;
35
+ button.addEventListener('click', (ev) => { this.handleClick(); });
36
+ wrapperDiv.appendChild(button);
37
+ //cube div
38
+ const cubeDiv = document.createElement('div');
39
+ cubeDiv.setAttribute('style', 'height:130px; width:130px');
40
+ cubeDiv.id = 'orientCubeWrapper';
41
+ wrapperDiv.appendChild(cubeDiv);
42
+ this.viralViewerApi.targetElement.appendChild(wrapperDiv);
43
+ }
44
+ }
45
+ handleClick() {
46
+ this.viralViewerApi.viralCamera.focusModelByName();
47
+ }
48
+ }
49
+ exports.ViralNavigationCube = ViralNavigationCube;
50
+ //# sourceMappingURL=viral-navigation-cube.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"viral-navigation-cube.js","sourceRoot":"","sources":["../../../src/gui/navigation-cube/viral-navigation-cube.ts"],"names":[],"mappings":";;;AAAA,uCAA8C;AAE9C,0DAAsD;AACtD,8DAA0D;AAC1D,wDAAoD;AACpD,wDAAoD;AAEpD,MAAa,mBAAmB;IAM5B,YAAmB,cAA8B;QAA9B,mBAAc,GAAd,cAAc,CAAgB;QALjD,kBAAa,GAAuB,IAAI,CAAC;QACzC,cAAS,GAAqB,IAAI,CAAC;QACnC,iBAAY,GAAwB,IAAI,CAAC;QACzC,eAAU,GAAsB,IAAI,CAAC;QACrC,cAAS,GAAqB,IAAI,CAAC;QAE/B,IAAI,CAAC,wBAAwB,EAAE,CAAC;QAChC,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC,cAAc,CAAC,mBAAmB,CAAC,CAAC;QAClE,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,IAAI,CAAC,SAAS,GAAG,IAAI,sBAAS,CAAC,IAAI,CAAC,CAAC;YACrC,IAAI,CAAC,YAAY,GAAG,IAAI,4BAAY,CAAC,IAAI,CAAC,CAAC;YAC3C,IAAI,CAAC,UAAU,GAAG,IAAI,wBAAU,CAAC,IAAI,CAAC,CAAC;YACvC,IAAI,CAAC,SAAS,GAAG,IAAI,sBAAS,CAAC,IAAI,CAAC,CAAC;YACrC,4BAA4B;SAC/B;QACD,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,IAAI,CAAC,uBAAe,CAAC,WAAW,CAAC,CAAC;IAEzE,CAAC;IACO,wBAAwB;QAC5B,IAAI,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE;YACnC,MAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YACjD,UAAU,CAAC,YAAY,CAAC,OAAO,EAAE,uDAAuD,CAAC,CAAC;YAE1F,aAAa;YACb,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YAC7C,MAAM,CAAC,SAAS,GAAG,y0BAAy0B,CAAC;YAE71B,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,EAAc,EAAE,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE,CAAA,CAAC,CAAC,CAAC,CAAC;YAE7E,UAAU,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YAE/B,UAAU;YACV,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YAC9C,OAAO,CAAC,YAAY,CAAC,OAAO,EAAE,2BAA2B,CAAC,CAAC;YAC3D,OAAO,CAAC,EAAE,GAAG,mBAAmB,CAAA;YAEhC,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YAChC,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;SAC7D;IAGL,CAAC;IACO,WAAW;QACf,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,gBAAgB,EAAE,CAAC;IACvD,CAAC;CACJ;AA9CD,kDA8CC"}
@@ -0,0 +1,7 @@
1
+ import { ViralViewerTool } from "../../../types";
2
+ import { ViralTools } from "../viral-tools";
3
+ export declare class ViralToolAmbientOcclusion {
4
+ viralTools: ViralTools;
5
+ constructor(viralTools: ViralTools);
6
+ activate(input: ViralViewerTool): void;
7
+ }
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ViralToolAmbientOcclusion = void 0;
4
+ class ViralToolAmbientOcclusion {
5
+ constructor(viralTools) {
6
+ this.viralTools = viralTools;
7
+ }
8
+ activate(input) {
9
+ if (input.activate) {
10
+ }
11
+ else {
12
+ }
13
+ }
14
+ }
15
+ exports.ViralToolAmbientOcclusion = ViralToolAmbientOcclusion;
16
+ //# sourceMappingURL=viral-tool-ambient-occlusion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"viral-tool-ambient-occlusion.js","sourceRoot":"","sources":["../../../../src/gui/tools/tools/viral-tool-ambient-occlusion.ts"],"names":[],"mappings":";;;AAGA,MAAa,yBAAyB;IACpC,YAAmB,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;IAAG,CAAC;IACtC,QAAQ,CAAC,KAAsB;QACpC,IAAI,KAAK,CAAC,QAAQ,EAAE;SACnB;aAAM;SACN;IACH,CAAC;CACF;AAPD,8DAOC"}
@@ -0,0 +1,7 @@
1
+ import { ViralViewerTool } from "../../../types";
2
+ import { ViralTools } from "../viral-tools";
3
+ export declare class ViralToolDarkMode {
4
+ viralTools: ViralTools;
5
+ constructor(viralTools: ViralTools);
6
+ activate(input: ViralViewerTool): void;
7
+ }
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ViralToolDarkMode = void 0;
4
+ class ViralToolDarkMode {
5
+ constructor(viralTools) {
6
+ this.viralTools = viralTools;
7
+ }
8
+ activate(input) {
9
+ if (this.viralTools.viralViewerApi.targetElement) {
10
+ if (input.activate) {
11
+ this.viralTools.viralViewerApi.targetElement.style.setProperty("background-color", "#303030");
12
+ }
13
+ else {
14
+ this.viralTools.viralViewerApi.targetElement.style.setProperty("background-color", "unset");
15
+ }
16
+ this.viralTools.viralViewerApi.localStorageService.setObject("viral-viewer-tool", this.viralTools.tools);
17
+ }
18
+ }
19
+ }
20
+ exports.ViralToolDarkMode = ViralToolDarkMode;
21
+ //# sourceMappingURL=viral-tool-dark-mode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"viral-tool-dark-mode.js","sourceRoot":"","sources":["../../../../src/gui/tools/tools/viral-tool-dark-mode.ts"],"names":[],"mappings":";;;AAIA,MAAa,iBAAiB;IAE1B,YAAmB,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;IAEzC,CAAC;IACM,QAAQ,CAAC,KAAsB;QAClC,IAAI,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,aAAa,EAAE;YAC9C,IAAI,KAAK,CAAC,QAAQ,EAAE;gBAChB,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,aAAa,CAAC,KAAK,CAAC,WAAW,CAAC,kBAAkB,EAAE,SAAS,CAAC,CAAC;aAEjG;iBACI;gBACD,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,aAAa,CAAC,KAAK,CAAC,WAAW,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC;aAC/F;YACD,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,mBAAmB,CAAC,SAAS,CAAC,mBAAmB,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;SAC3G;IACL,CAAC;CACJ;AAjBD,8CAiBC"}
@@ -0,0 +1,11 @@
1
+ import { Vector2 } from "three";
2
+ import { ViralViewerTool } from "../../../types";
3
+ import { ViralTools } from "../viral-tools";
4
+ export declare class ViralToolElevation {
5
+ viralTools: ViralTools;
6
+ isActivated: boolean;
7
+ constructor(viralTools: ViralTools);
8
+ activate(input: ViralViewerTool): void;
9
+ onMouseMove(mousePoint: Vector2): void;
10
+ onMouseClick(mousePoint: Vector2): void;
11
+ }
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ViralToolElevation = void 0;
4
+ class ViralToolElevation {
5
+ constructor(viralTools) {
6
+ this.viralTools = viralTools;
7
+ this.isActivated = false;
8
+ }
9
+ activate(input) {
10
+ this.isActivated = input.activate;
11
+ }
12
+ onMouseMove(mousePoint) {
13
+ if (mousePoint) {
14
+ let result = this.viralTools.viralViewerApi.viralCamera.clientToWorld();
15
+ if (result && result.length > 0) {
16
+ let coordinate = result[0].point;
17
+ }
18
+ }
19
+ }
20
+ onMouseClick(mousePoint) {
21
+ if (mousePoint) {
22
+ let result = this.viralTools.viralViewerApi.viralCamera.clientToWorld();
23
+ if (result && result.length > 0) {
24
+ let coordinate = result[0].point;
25
+ }
26
+ }
27
+ }
28
+ }
29
+ exports.ViralToolElevation = ViralToolElevation;
30
+ //# sourceMappingURL=viral-tool-elevation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"viral-tool-elevation.js","sourceRoot":"","sources":["../../../../src/gui/tools/tools/viral-tool-elevation.ts"],"names":[],"mappings":";;;AAIA,MAAa,kBAAkB;IAE3B,YAAmB,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;QADlC,gBAAW,GAAG,KAAK,CAAC;IAG3B,CAAC;IACM,QAAQ,CAAC,KAAsB;QAClC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,QAAQ,CAAA;IACrC,CAAC;IACM,WAAW,CAAC,UAAmB;QAClC,IAAI,UAAU,EAAE;YACZ,IAAI,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,WAAW,CAAC,aAAa,EAAE,CAAC;YACxE,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC7B,IAAI,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;aACpC;SACJ;IACL,CAAC;IAEM,YAAY,CAAC,UAAkB;QAElC,IAAG,UAAU,EACb;YACI,IAAI,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,WAAW,CAAC,aAAa,EAAE,CAAC;YACxE,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC7B,IAAI,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;aACpC;SACJ;IACL,CAAC;CACJ;AA3BD,gDA2BC"}
@@ -0,0 +1,33 @@
1
+ import { Scene, Vector2, Vector3 } from "three";
2
+ import { ViralViewerTool } from "../../../types";
3
+ import { ViralTools } from "../viral-tools";
4
+ interface ViralMeasure {
5
+ point1: Vector3;
6
+ point2: Vector3;
7
+ }
8
+ export declare class ViralToolMeasure {
9
+ viralTools: ViralTools;
10
+ viralToolMeasureScene: Scene;
11
+ isActivated: boolean;
12
+ measures: ViralMeasure[];
13
+ private point1;
14
+ private point2;
15
+ private tempPoint2;
16
+ private defaultSprite;
17
+ private measureObject;
18
+ private tempMeasure;
19
+ private tempSprite1;
20
+ private tempLine;
21
+ private tempSprite2;
22
+ constructor(viralTools: ViralTools);
23
+ activate(input: ViralViewerTool): void;
24
+ onMouseMove(mousePoint: Vector2): void;
25
+ onMouseClick(mousePoint: Vector2): void;
26
+ private resetPickedPoints;
27
+ private makeSprite;
28
+ private makeLine;
29
+ private makeDistanceSprite;
30
+ private dispose;
31
+ onKeyPress(evt: KeyboardEvent): void;
32
+ }
33
+ export {};
@@ -0,0 +1,243 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ViralToolMeasure = void 0;
4
+ const three_1 = require("three");
5
+ const colors_1 = require("../../../const/colors");
6
+ const __1 = require("../../..");
7
+ class ViralToolMeasure {
8
+ constructor(viralTools) {
9
+ this.viralTools = viralTools;
10
+ this.viralToolMeasureScene = new three_1.Scene();
11
+ this.isActivated = false;
12
+ this.measures = [];
13
+ this.point1 = null;
14
+ this.point2 = null;
15
+ this.tempPoint2 = null;
16
+ this.defaultSprite = this.makeSprite();
17
+ this.measureObject = new three_1.Mesh();
18
+ this.tempMeasure = new three_1.Mesh();
19
+ this.tempSprite1 = null;
20
+ this.tempLine = null;
21
+ this.tempSprite2 = null;
22
+ }
23
+ activate(input) {
24
+ this.isActivated = input.activate;
25
+ if (!this.isActivated) {
26
+ this.dispose();
27
+ }
28
+ else {
29
+ if (!this.viralToolMeasureScene.getObjectByName('measure-object')) {
30
+ this.measureObject.name = 'measure-object';
31
+ this.viralToolMeasureScene.add(this.measureObject);
32
+ }
33
+ if (!this.viralToolMeasureScene.getObjectByName('temp-measure')) {
34
+ this.tempMeasure.name = 'temp-measure';
35
+ this.viralToolMeasureScene.add(this.tempMeasure);
36
+ }
37
+ }
38
+ }
39
+ onMouseMove(mousePoint) {
40
+ if (mousePoint) {
41
+ let result = this.viralTools.viralViewerApi.viralCamera.clientToWorld();
42
+ if (result && result.length > 0) {
43
+ let coordinate = result[0].point;
44
+ if (this.point1 && !this.point2) {
45
+ this.tempPoint2 = coordinate;
46
+ //sprite 1
47
+ if (!this.tempSprite1) {
48
+ this.tempSprite1 = this.defaultSprite.clone();
49
+ this.tempSprite1.position.copy(this.point1);
50
+ this.tempMeasure.add(this.tempSprite1);
51
+ }
52
+ else {
53
+ this.tempSprite1.position.copy(this.point1);
54
+ }
55
+ //sprite 2
56
+ if (!this.tempSprite2) {
57
+ this.tempSprite2 = this.defaultSprite.clone();
58
+ this.tempSprite2.position.copy(this.tempPoint2);
59
+ this.tempMeasure.add(this.tempSprite2);
60
+ }
61
+ else {
62
+ this.tempSprite2.position.copy(this.tempPoint2);
63
+ }
64
+ //line
65
+ if (!this.tempLine) {
66
+ this.tempLine = this.makeLine(this.point1, this.tempPoint2);
67
+ this.tempMeasure.add(this.tempLine);
68
+ }
69
+ else {
70
+ // this.tempLine = this.makeLine(this.point1, this.tempPoint2);
71
+ // this.tempLine.matrixWorldNeedsUpdate = true;
72
+ const positions = this.tempLine.geometry.attributes.position;
73
+ positions.setXYZ(0, this.point1.x, this.point1.y, this.point1.z);
74
+ positions.setXYZ(1, this.tempPoint2.x, this.tempPoint2.y, this.tempPoint2.z);
75
+ positions.needsUpdate = true;
76
+ }
77
+ //distance sprite
78
+ // let distanceSprite = this.makeDistanceSprite(this.point1, this.tempPoint2);
79
+ // this.tempMeasure.add(distanceSprite);
80
+ //rerender
81
+ this.viralTools.viralViewerApi.viralRenderer.render();
82
+ }
83
+ }
84
+ }
85
+ }
86
+ onMouseClick(mousePoint) {
87
+ if (mousePoint) {
88
+ let result = this.viralTools.viralViewerApi.viralCamera.clientToWorld();
89
+ if (result && result.length > 0) {
90
+ let coordinate = result[0].point;
91
+ if (!this.point1 && !this.point2) {
92
+ this.point1 = coordinate;
93
+ let sprite1 = this.defaultSprite.clone();
94
+ sprite1.position.copy(this.point1);
95
+ this.tempMeasure.add(sprite1);
96
+ }
97
+ else if (this.point1 && !this.point2) {
98
+ this.point2 = coordinate;
99
+ __1.THREEUtil.clearChildren(this.tempMeasure);
100
+ //sprite 1
101
+ let sprite1 = this.defaultSprite.clone();
102
+ sprite1.position.copy(this.point1);
103
+ this.measureObject.add(sprite1);
104
+ //sprite 2
105
+ let sprite2 = this.defaultSprite.clone();
106
+ sprite2.position.copy(this.point2);
107
+ this.measureObject.add(sprite2);
108
+ //line
109
+ let line = this.makeLine(this.point1, this.point2);
110
+ this.measureObject.add(line);
111
+ //distance sprite
112
+ let distanceSprite = this.makeDistanceSprite(this.point1, this.point2);
113
+ this.measureObject.add(distanceSprite);
114
+ //rerender
115
+ this.viralTools.viralViewerApi.viralRenderer.render();
116
+ }
117
+ else if (this.point1 && this.point2) {
118
+ this.resetPickedPoints();
119
+ this.point1 = coordinate;
120
+ let sprite1 = this.defaultSprite.clone();
121
+ sprite1.position.copy(this.point1);
122
+ this.tempMeasure.add(sprite1);
123
+ }
124
+ }
125
+ }
126
+ }
127
+ resetPickedPoints() {
128
+ this.point1 = null;
129
+ this.point2 = null;
130
+ }
131
+ makeSprite() {
132
+ function makeCircleImage() {
133
+ let canvas = document.createElement('canvas');
134
+ let ctx = canvas.getContext('2d');
135
+ let size = 32;
136
+ canvas.width = size;
137
+ canvas.height = size;
138
+ let r = size * 0.8 / 2;
139
+ let blur = size - r;
140
+ if (ctx) {
141
+ ctx.shadowBlur = 5;
142
+ ctx.shadowColor = '#555';
143
+ ctx.fillStyle = '#fff';
144
+ ctx.beginPath();
145
+ ctx.arc(size / 2, size / 2, r, 0, Math.PI * 2);
146
+ ctx.closePath();
147
+ ctx.fill();
148
+ ctx.shadowBlur = 0;
149
+ ctx.fillStyle = colors_1.LightTheme.primary;
150
+ ctx.beginPath();
151
+ ctx.arc(size / 2, size / 2, r * 0.5, 0, Math.PI * 2);
152
+ ctx.closePath();
153
+ ctx.fill();
154
+ }
155
+ return canvas;
156
+ }
157
+ let circleTexture = new three_1.CanvasTexture(makeCircleImage());
158
+ let circleMaterial = new three_1.SpriteMaterial({
159
+ map: circleTexture,
160
+ sizeAttenuation: false,
161
+ });
162
+ let circleSprite = new three_1.Sprite(circleMaterial);
163
+ circleSprite.scale.setScalar(0.08);
164
+ return circleSprite;
165
+ }
166
+ makeLine(position1, position2) {
167
+ let lineMaterial = new three_1.LineBasicMaterial({
168
+ color: __1.THREEUtil.hexToThreejsColor(colors_1.LightTheme.primary),
169
+ linewidth: 20,
170
+ });
171
+ const points = [position1, position2];
172
+ const geometry = new three_1.BufferGeometry().setFromPoints(points);
173
+ let line = new three_1.Line(geometry, lineMaterial);
174
+ return line;
175
+ }
176
+ makeDistanceSprite(position1, position2) {
177
+ function roundRect(ctx, x, y, w, h, r) {
178
+ ctx.beginPath();
179
+ ctx.moveTo(x + r, y);
180
+ ctx.lineTo(x + w - r, y);
181
+ ctx.quadraticCurveTo(x + w, y, x + w, y + r);
182
+ ctx.lineTo(x + w, y + h - r);
183
+ ctx.quadraticCurveTo(x + w, y + h, x + w - r, y + h);
184
+ ctx.lineTo(x + r, y + h);
185
+ ctx.quadraticCurveTo(x, y + h, x, y + h - r);
186
+ ctx.lineTo(x, y + r);
187
+ ctx.quadraticCurveTo(x, y, x + r, y);
188
+ ctx.closePath();
189
+ ctx.fill();
190
+ }
191
+ let canvas = document.createElement('canvas');
192
+ let ctx = canvas.getContext('2d');
193
+ let fontsize = 32;
194
+ if (ctx) {
195
+ ctx.font = 'bolder ' + fontsize + 'px "Open Sans", Arial';
196
+ let length = Math.round(position1.distanceTo(position2));
197
+ let text = '~ ' + length;
198
+ let size = ctx.measureText(text);
199
+ let paddingLeft = 20;
200
+ let paddingTop = 10;
201
+ let margin = 10;
202
+ canvas.width = size.width + paddingLeft * 2 + margin * 2;
203
+ canvas.height = fontsize + paddingTop * 2 + margin * 2;
204
+ ctx.shadowBlur = 10;
205
+ ctx.shadowColor = '#555';
206
+ ctx.fillStyle = colors_1.LightTheme.primary;
207
+ roundRect(ctx, margin, margin, canvas.width - margin * 2, canvas.height - margin * 2, 10);
208
+ ctx.shadowBlur = 0;
209
+ ctx.fillStyle = '#fff';
210
+ ctx.textAlign = 'left';
211
+ ctx.textBaseline = 'top';
212
+ ctx.font = 'bolder ' + fontsize + 'px "Open Sans", Arial';
213
+ ctx.fillText(text, paddingLeft + margin, paddingTop + margin);
214
+ }
215
+ let texture = new three_1.CanvasTexture(canvas);
216
+ let sprite = new three_1.Sprite(new three_1.SpriteMaterial({
217
+ map: texture,
218
+ sizeAttenuation: false,
219
+ }));
220
+ sprite.scale.set(0.002 * canvas.width * 0.5, 0.0025 * canvas.height * 0.5, 1);
221
+ let positionPoint = __1.THREEUtil.middlePoint(position1, position2);
222
+ sprite.position.copy(positionPoint);
223
+ return sprite;
224
+ }
225
+ dispose() {
226
+ this.resetPickedPoints();
227
+ __1.THREEUtil.clearChildren(this.measureObject);
228
+ __1.THREEUtil.clearChildren(this.tempMeasure);
229
+ this.viralTools.viralViewerApi.viralRenderer.render();
230
+ }
231
+ onKeyPress(evt) {
232
+ if (evt.code == "Escape") {
233
+ __1.THREEUtil.clearChildren(this.tempMeasure);
234
+ this.point1 = null;
235
+ this.point2 = null;
236
+ this.tempPoint2 = null;
237
+ //rerender
238
+ this.viralTools.viralViewerApi.viralRenderer.render();
239
+ }
240
+ }
241
+ }
242
+ exports.ViralToolMeasure = ViralToolMeasure;
243
+ //# sourceMappingURL=viral-tool-measure.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"viral-tool-measure.js","sourceRoot":"","sources":["../../../../src/gui/tools/tools/viral-tool-measure.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { ViralViewerTool } from "../../../types";
2
+ import { ViralTools } from "../viral-tools";
3
+ export declare class ViralToolSunlight {
4
+ viralTools: ViralTools;
5
+ constructor(viralTools: ViralTools);
6
+ activate(input: ViralViewerTool): void;
7
+ }