viral-viewer-2 6.0.8 → 6.1.0

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 (111) hide show
  1. package/dist/components/camera/viral-camera.d.ts +1 -1
  2. package/dist/components/custom-objects/viral-instanced-mesh.d.ts +2 -1
  3. package/dist/components/custom-objects/viral-instanced-mesh.js +5 -3
  4. package/dist/components/custom-objects/viral-instanced-mesh.js.map +1 -1
  5. package/dist/components/event-handler/keyboard/viral-keyboard.d.ts +17 -0
  6. package/dist/components/event-handler/keyboard/viral-keyboard.js +76 -0
  7. package/dist/components/event-handler/keyboard/viral-keyboard.js.map +1 -0
  8. package/dist/components/event-handler/mouse/viral-mouse.d.ts +31 -0
  9. package/dist/components/event-handler/mouse/viral-mouse.js +234 -0
  10. package/dist/components/event-handler/mouse/viral-mouse.js.map +1 -0
  11. package/dist/components/loader/viral-three.loader.d.ts +1 -1
  12. package/dist/components/post-processing/ambient-occlusion-effect.d.ts +0 -2
  13. package/dist/components/post-processing/ambient-occlusion-effect.js +1 -2
  14. package/dist/components/post-processing/ambient-occlusion-effect.js.map +1 -1
  15. package/dist/components/post-processing/viral-post-processing.d.ts +11 -0
  16. package/dist/components/post-processing/viral-post-processing.js +29 -0
  17. package/dist/components/post-processing/viral-post-processing.js.map +1 -0
  18. package/dist/components/scene/viral-scene.d.ts +1 -1
  19. package/dist/gui/context-menu/viral-context-menu.d.ts +17 -0
  20. package/dist/gui/context-menu/viral-context-menu.js +74 -0
  21. package/dist/gui/context-menu/viral-context-menu.js.map +1 -0
  22. package/dist/gui/draggable-modal/viral-draggable-modal.d.ts +11 -0
  23. package/dist/gui/draggable-modal/viral-draggable-modal.js +91 -0
  24. package/dist/gui/draggable-modal/viral-draggable-modal.js.map +1 -0
  25. package/dist/gui/navigation-cube/components/cube-camera.d.ts +15 -0
  26. package/dist/gui/navigation-cube/components/cube-camera.js +74 -0
  27. package/dist/gui/navigation-cube/components/cube-camera.js.map +1 -0
  28. package/dist/gui/navigation-cube/components/cube-renderer.d.ts +9 -0
  29. package/dist/gui/navigation-cube/components/cube-renderer.js +31 -0
  30. package/dist/gui/navigation-cube/components/cube-renderer.js.map +1 -0
  31. package/dist/gui/navigation-cube/components/cube-scene.d.ts +13 -0
  32. package/dist/gui/navigation-cube/components/cube-scene.js +546 -0
  33. package/dist/gui/navigation-cube/components/cube-scene.js.map +1 -0
  34. package/dist/gui/navigation-cube/components/cube.mouse.d.ts +9 -0
  35. package/dist/gui/navigation-cube/components/cube.mouse.js +109 -0
  36. package/dist/gui/navigation-cube/components/cube.mouse.js.map +1 -0
  37. package/dist/gui/navigation-cube/viral-navigation-cube.d.ts +16 -0
  38. package/dist/gui/navigation-cube/viral-navigation-cube.js +50 -0
  39. package/dist/gui/navigation-cube/viral-navigation-cube.js.map +1 -0
  40. package/dist/gui/spinner/viral-spinner.d.ts +10 -0
  41. package/dist/gui/spinner/viral-spinner.js +102 -0
  42. package/dist/gui/spinner/viral-spinner.js.map +1 -0
  43. package/dist/gui/tools/tools/viral-tool-ambient-occlusion.d.ts +7 -0
  44. package/dist/gui/tools/tools/viral-tool-ambient-occlusion.js +16 -0
  45. package/dist/gui/tools/tools/viral-tool-ambient-occlusion.js.map +1 -0
  46. package/dist/gui/tools/tools/viral-tool-dark-mode.d.ts +7 -0
  47. package/dist/gui/tools/tools/viral-tool-dark-mode.js +21 -0
  48. package/dist/gui/tools/tools/viral-tool-dark-mode.js.map +1 -0
  49. package/dist/gui/tools/tools/viral-tool-elevation.d.ts +11 -0
  50. package/dist/gui/tools/tools/viral-tool-elevation.js +30 -0
  51. package/dist/gui/tools/tools/viral-tool-elevation.js.map +1 -0
  52. package/dist/gui/tools/tools/viral-tool-measure.d.ts +33 -0
  53. package/dist/gui/tools/tools/viral-tool-measure.js +243 -0
  54. package/dist/gui/tools/tools/viral-tool-measure.js.map +1 -0
  55. package/dist/gui/tools/tools/viral-tool-sunlight.d.ts +7 -0
  56. package/dist/gui/tools/tools/viral-tool-sunlight.js +46 -0
  57. package/dist/gui/tools/tools/viral-tool-sunlight.js.map +1 -0
  58. package/dist/gui/tools/viral-tools.d.ts +32 -0
  59. package/dist/gui/tools/viral-tools.js +213 -0
  60. package/dist/gui/tools/viral-tools.js.map +1 -0
  61. package/dist/models/dictionary.model.d.ts +0 -10
  62. package/dist/models/dictionary.model.js +0 -41
  63. package/dist/models/dictionary.model.js.map +1 -1
  64. package/dist/threejs-addon/gltf-loader.d.ts +1 -1
  65. package/dist/threejs-addon/n8ao/n8ao.d.ts +8 -8
  66. package/dist/threejs-addon/n8ao/post-processing.d.ts +3919 -1534
  67. package/dist/threejs-addon/post-processing/outline-pass.d.ts +7 -7
  68. package/dist/threejs-addon/post-processing/pass.d.ts +1 -1
  69. package/dist/threejs-addon/post-processing/sao-pass.d.ts +5 -5
  70. package/dist/threejs-addon/post-processing/ssaa-render-pass.d.ts +30 -0
  71. package/dist/threejs-addon/post-processing/ssaa-render-pass.js +202 -0
  72. package/dist/threejs-addon/post-processing/ssaa-render-pass.js.map +1 -0
  73. package/dist/threejs-addon/post-processing/unreal-bloom-pass.d.ts +3 -3
  74. package/dist/threejs-addon/shaders/color-correction-shader.d.ts +22 -0
  75. package/dist/threejs-addon/shaders/color-correction-shader.js +43 -0
  76. package/dist/threejs-addon/shaders/color-correction-shader.js.map +1 -0
  77. package/dist/threejs-addon/shaders/fxaa-shader.d.ts +14 -0
  78. package/dist/threejs-addon/shaders/fxaa-shader.js +279 -0
  79. package/dist/threejs-addon/shaders/fxaa-shader.js.map +1 -0
  80. package/dist/threejs-addon/transform-control.d.ts +3 -3
  81. package/dist/viral-viewer-api.d.ts +8 -6
  82. package/dist/viral-viewer-api.js +8 -6
  83. package/dist/viral-viewer-api.js.map +1 -1
  84. package/package.json +5 -2
  85. package/dist/components/compress/compress.processor.d.ts +0 -4
  86. package/dist/components/compress/compress.processor.js +0 -29
  87. package/dist/components/compress/compress.processor.js.map +0 -1
  88. package/dist/components/loader/viral-viewer-point-cloud.loader.d.ts +0 -16
  89. package/dist/components/loader/viral-viewer-point-cloud.loader.js +0 -33
  90. package/dist/components/loader/viral-viewer-point-cloud.loader.js.map +0 -1
  91. package/dist/components/loader/viral-viewer-revit.loader.d.ts +0 -13
  92. package/dist/components/loader/viral-viewer-revit.loader.js +0 -124
  93. package/dist/components/loader/viral-viewer-revit.loader.js.map +0 -1
  94. package/dist/components/worker/load-model.d.ts +0 -126
  95. package/dist/components/worker/load-model.js +0 -1265
  96. package/dist/components/worker/load-model.js.map +0 -1
  97. package/dist/components/worker/test-worker-pool.d.ts +0 -6
  98. package/dist/components/worker/test-worker-pool.js +0 -21
  99. package/dist/components/worker/test-worker-pool.js.map +0 -1
  100. package/dist/components/worker/viral-viewer.worker-pool.d.ts +0 -0
  101. package/dist/components/worker/viral-viewer.worker-pool.js +0 -61
  102. package/dist/components/worker/viral-viewer.worker-pool.js.map +0 -1
  103. package/dist/components/worker/worker-pool.d.ts +0 -21
  104. package/dist/components/worker/worker-pool.js +0 -47
  105. package/dist/components/worker/worker-pool.js.map +0 -1
  106. package/dist/components/worker/worker-thread.d.ts +0 -9
  107. package/dist/components/worker/worker-thread.js +0 -30
  108. package/dist/components/worker/worker-thread.js.map +0 -1
  109. package/dist/components/worker-script/test-worker-pool.script.d.ts +0 -1
  110. package/dist/components/worker-script/test-worker-pool.script.js +0 -12
  111. package/dist/components/worker-script/test-worker-pool.script.js.map +0 -1
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ViralContextMenu = void 0;
4
+ const colors_1 = require("../../const/colors");
5
+ const html_1 = require("../../utils/html");
6
+ class ViralContextMenu {
7
+ constructor(viralViewerApi) {
8
+ this.viralViewerApi = viralViewerApi;
9
+ this.contextMenu = null;
10
+ this.contextItems = [];
11
+ this.injectContextMenu();
12
+ }
13
+ injectContextMenu() {
14
+ const hoverEffect = `
15
+ .hover-element {
16
+ transition: background-color 0.3s ease;
17
+ }
18
+ .hover-element:hover {
19
+ background-color: ${colors_1.LightTheme.primary};
20
+
21
+ }`;
22
+ // Create a style element and append the keyframes animation
23
+ const style = document.createElement("style");
24
+ style.innerHTML = hoverEffect;
25
+ // Append the style element to the document head
26
+ document.head.appendChild(style);
27
+ if (this.viralViewerApi.targetElement) {
28
+ this.contextMenu = document.createElement("div");
29
+ this.contextMenu.setAttribute("style", `position: absolute;top:0px;left:0px;background-color: ${colors_1.LightTheme.background};justify-content: center;display:none; z-index: 100; flex-direction:column; padding: 10px 0; border-radius:10px`);
30
+ this.viralViewerApi.targetElement.appendChild(this.contextMenu);
31
+ }
32
+ }
33
+ showContextMenu(top, left, itemKeys) {
34
+ if (this.contextMenu) {
35
+ this.initContent(itemKeys);
36
+ this.contextMenu.style.setProperty("display", "flex");
37
+ this.contextMenu.style.setProperty("top", `${top}px`);
38
+ this.contextMenu.style.setProperty("left", `${left}px`);
39
+ }
40
+ }
41
+ hideContextMenu() {
42
+ if (this.contextMenu) {
43
+ this.contextMenu.style.setProperty("display", "none");
44
+ }
45
+ }
46
+ initContent(itemKeys) {
47
+ var _a;
48
+ while (this.contextMenu && this.contextMenu.firstChild) {
49
+ this.contextMenu.removeChild(this.contextMenu.firstChild);
50
+ }
51
+ for (let index = 0; index < this.contextItems.length; index++) {
52
+ if (itemKeys.findIndex((x) => x == this.contextItems[index][0]) < 0) {
53
+ continue;
54
+ }
55
+ const [itemKey, itemName, callbackResolve] = this.contextItems[index];
56
+ const item = html_1.HTMLUtil.createElementFromHTML(`<div class="hover-element" style="padding: 5px 10px; cursor: pointer; color:#666">${itemName}</div>`);
57
+ item.addEventListener("click", (ev) => {
58
+ ev.stopPropagation();
59
+ callbackResolve(ev);
60
+ });
61
+ (_a = this.contextMenu) === null || _a === void 0 ? void 0 : _a.appendChild(item);
62
+ }
63
+ }
64
+ /**
65
+ *
66
+ * @param itemName
67
+ * @param resolve callback when user click
68
+ */
69
+ addContextItem(itemKey, itemName, resolve) {
70
+ this.contextItems.push([itemKey, itemName, resolve]);
71
+ }
72
+ }
73
+ exports.ViralContextMenu = ViralContextMenu;
74
+ //# sourceMappingURL=viral-context-menu.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"viral-context-menu.js","sourceRoot":"","sources":["../../../src/gui/context-menu/viral-context-menu.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import { ViralViewerApi } from "../../viral-viewer-api";
2
+ export declare class ViralDraggableModal {
3
+ viralViewerApi: ViralViewerApi;
4
+ private rawModal;
5
+ private rawModalStyle;
6
+ isDragging: boolean;
7
+ offsetX: number;
8
+ offsetY: number;
9
+ constructor(viralViewerApi: ViralViewerApi);
10
+ inject(): void;
11
+ }
@@ -0,0 +1,91 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ViralDraggableModal = void 0;
4
+ const __1 = require("../..");
5
+ class ViralDraggableModal {
6
+ constructor(viralViewerApi) {
7
+ this.viralViewerApi = viralViewerApi;
8
+ this.rawModal = `<div class="modal" id="myModal">
9
+ <div class="modal-content">
10
+ <div id="modal-header" style="
11
+ cursor: pointer;
12
+ border-bottom: 1px solid rgba(0, 0, 0, 0.1);
13
+ padding-bottom: 5px;
14
+ ">
15
+ <span class="close" id="closeBtn">&times;</span>
16
+ <h2 style="margin: 0px !important" id="modal-title">
17
+ Draggable Modal
18
+ </h2>
19
+ </div>
20
+ <div id="modal-body">
21
+ <p>Click and drag this modal to move it.</p>
22
+ </div>
23
+ </div>
24
+ </div>`;
25
+ this.rawModalStyle = `.modal {
26
+ display: none;
27
+ position: fixed;
28
+ z-index: 1;
29
+ }
30
+
31
+ .modal-content {
32
+ background-color: #fff;
33
+ border: 1px solid #ccc;
34
+ border-radius: 5px;
35
+ padding: 10px;
36
+ }
37
+
38
+ .close {
39
+ float: right;
40
+ font-size: 20px;
41
+ cursor: pointer;
42
+ }
43
+
44
+ .close:hover {
45
+ color: red;
46
+ }`;
47
+ this.isDragging = false;
48
+ this.offsetX = 0;
49
+ this.offsetY = 0;
50
+ this.inject();
51
+ }
52
+ inject() {
53
+ if (this.viralViewerApi.targetElement) {
54
+ // Create a style element and append the keyframes animation
55
+ const style = document.createElement("style");
56
+ style.innerHTML = this.rawModalStyle;
57
+ // Append the style element to the document head
58
+ document.head.appendChild(style);
59
+ const modal = __1.HTMLUtil.createElementFromHTML(this.rawModal);
60
+ this.viralViewerApi.targetElement.appendChild(modal);
61
+ // Get the modal and the close button
62
+ const modalHeader = document.getElementById("modal-header");
63
+ const closeBtn = document.getElementById("closeBtn");
64
+ // Event listener to start dragging
65
+ modalHeader.addEventListener("mousedown", (e) => {
66
+ this.isDragging = true;
67
+ this.offsetX = e.clientX - modal.getBoundingClientRect().left;
68
+ this.offsetY = e.clientY - modal.getBoundingClientRect().top;
69
+ modal.style.zIndex = "2";
70
+ });
71
+ // Event listener for mousemove while dragging
72
+ modal.addEventListener("mousemove", (e) => {
73
+ if (this.isDragging) {
74
+ modal.style.left = e.clientX - this.offsetX + "px";
75
+ modal.style.top = e.clientY - this.offsetY + "px";
76
+ }
77
+ });
78
+ // Event listener to stop dragging
79
+ modal.addEventListener("mouseup", () => {
80
+ this.isDragging = false;
81
+ modal.style.zIndex = "1";
82
+ });
83
+ // Close the modal when the close button is clicked
84
+ closeBtn.addEventListener("click", () => {
85
+ modal.style.display = "none";
86
+ });
87
+ }
88
+ }
89
+ }
90
+ exports.ViralDraggableModal = ViralDraggableModal;
91
+ //# sourceMappingURL=viral-draggable-modal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"viral-draggable-modal.js","sourceRoot":"","sources":["../../../src/gui/draggable-modal/viral-draggable-modal.ts"],"names":[],"mappings":";;;AAAA,6BAAiC;AAGjC,MAAa,mBAAmB;IA6C9B,YAAmB,cAA8B;QAA9B,mBAAc,GAAd,cAAc,CAAgB;QA5CzC,aAAQ,GAAG;;;;;;;;;;;;;;;;OAgBd,CAAC;QAEE,kBAAa,GAAG;;;;;;;;;;;;;;;;;;;;;MAqBpB,CAAC;QAEE,eAAU,GAAG,KAAK,CAAC;QACnB,YAAO,GAAW,CAAC,CAAC;QACpB,YAAO,GAAW,CAAC,CAAC;QAEzB,IAAI,CAAC,MAAM,EAAE,CAAC;IAChB,CAAC;IACM,MAAM;QACX,IAAI,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE;YACrC,4DAA4D;YAC5D,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;YAC9C,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC;YAErC,gDAAgD;YAChD,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YAEjC,MAAM,KAAK,GAAG,YAAQ,CAAC,qBAAqB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC5D,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YAErD,qCAAqC;YACrC,MAAM,WAAW,GAAG,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;YAC5D,MAAM,QAAQ,GAAG,QAAQ,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;YAErD,mCAAmC;YACnC,WAAY,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE;gBAC/C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;gBACvB,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,GAAG,KAAM,CAAC,qBAAqB,EAAE,CAAC,IAAI,CAAC;gBAC/D,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,GAAG,KAAM,CAAC,qBAAqB,EAAE,CAAC,GAAG,CAAC;gBAC9D,KAAM,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC;YAC5B,CAAC,CAAC,CAAC;YAEH,8CAA8C;YAC9C,KAAM,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE;gBACzC,IAAI,IAAI,CAAC,UAAU,EAAE;oBACnB,KAAM,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;oBACpD,KAAM,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;iBACpD;YACH,CAAC,CAAC,CAAC;YAEH,kCAAkC;YAClC,KAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,GAAG,EAAE;gBACtC,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;gBACxB,KAAM,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC;YAC5B,CAAC,CAAC,CAAC;YAEH,mDAAmD;YACnD,QAAS,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE;gBACvC,KAAM,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;YAChC,CAAC,CAAC,CAAC;SACJ;IACH,CAAC;CACF;AA5FD,kDA4FC"}
@@ -0,0 +1,15 @@
1
+ import CameraControls from "camera-controls";
2
+ import { Vector3, PerspectiveCamera } from 'three';
3
+ import { ViralNavigationCube } from "../viral-navigation-cube";
4
+ export declare class CubeCamera {
5
+ viralNavigationCube: ViralNavigationCube;
6
+ camera: PerspectiveCamera | null;
7
+ cameraControls: CameraControls | null;
8
+ cameraControlOldPosition: Vector3;
9
+ cameraControlNewPosition: Vector3;
10
+ cameraControlHasMoved: boolean;
11
+ constructor(viralNavigationCube: ViralNavigationCube);
12
+ setupCamera(): void;
13
+ updateCubeCamera(): void;
14
+ setupHandle(): void;
15
+ }
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CubeCamera = void 0;
4
+ const camera_controls_1 = require("camera-controls");
5
+ const three_1 = require("three");
6
+ const subsetOfTHREE = {
7
+ Vector2: three_1.Vector2,
8
+ Vector3: three_1.Vector3,
9
+ Vector4: three_1.Vector4,
10
+ Quaternion: three_1.Quaternion,
11
+ Matrix4: three_1.Matrix4,
12
+ Spherical: three_1.Spherical,
13
+ Box3: three_1.Box3,
14
+ Sphere: three_1.Sphere,
15
+ Raycaster: three_1.Raycaster,
16
+ MathUtils: three_1.MathUtils,
17
+ };
18
+ class CubeCamera {
19
+ constructor(viralNavigationCube) {
20
+ this.viralNavigationCube = viralNavigationCube;
21
+ this.camera = null;
22
+ this.cameraControls = null;
23
+ this.cameraControlOldPosition = new three_1.Vector3();
24
+ this.cameraControlNewPosition = new three_1.Vector3();
25
+ this.cameraControlHasMoved = false;
26
+ this.setupCamera();
27
+ this.setupHandle();
28
+ }
29
+ setupCamera() {
30
+ if (this.viralNavigationCube.targetElement && this.viralNavigationCube.cubeRenderer) {
31
+ const width = this.viralNavigationCube.targetElement.offsetWidth;
32
+ const height = this.viralNavigationCube.targetElement.offsetHeight;
33
+ this.camera = new three_1.PerspectiveCamera(60, width / height, 0.01, 100);
34
+ this.camera.position.set(0, 0, 2);
35
+ camera_controls_1.default.install({ THREE: subsetOfTHREE });
36
+ this.cameraControls = new camera_controls_1.default(this.camera, this.viralNavigationCube.cubeRenderer.renderer.domElement);
37
+ this.cameraControls.dollyToCursor = false;
38
+ this.cameraControls.infinityDolly = false;
39
+ this.cameraControls.setTarget(0, 0, 0);
40
+ this.cameraControls.polarRotateSpeed = 0.15;
41
+ this.cameraControls.azimuthRotateSpeed = 0.15;
42
+ this.cameraControls.mouseButtons.middle = camera_controls_1.default.ACTION.NONE;
43
+ this.cameraControls.mouseButtons.wheel = camera_controls_1.default.ACTION.NONE;
44
+ }
45
+ }
46
+ updateCubeCamera() {
47
+ var _a;
48
+ let cameraControlTarget = new three_1.Vector3();
49
+ this.viralNavigationCube.viralViewerApi.viralCamera.cameraControls.getTarget(cameraControlTarget);
50
+ let cameraControlPosition = new three_1.Vector3();
51
+ this.viralNavigationCube.viralViewerApi.viralCamera.cameraControls.getPosition(cameraControlPosition);
52
+ //Hieu 2 vector
53
+ let vector = cameraControlPosition.sub(cameraControlTarget);
54
+ //Chuan hoa
55
+ vector.normalize();
56
+ //Do lon vector bang 2
57
+ vector.multiplyScalar(2);
58
+ (_a = this.cameraControls) === null || _a === void 0 ? void 0 : _a.setPosition(vector.x, vector.y, vector.z);
59
+ }
60
+ setupHandle() {
61
+ function antiMoveOnDown(e) {
62
+ this.cameraControlHasMoved = false;
63
+ }
64
+ function antiMoveOnMove(e) {
65
+ this.cameraControlHasMoved = true;
66
+ }
67
+ window.addEventListener('mousedown', antiMoveOnDown, false);
68
+ window.addEventListener('mousemove', antiMoveOnMove, false);
69
+ window.addEventListener('touchstart', antiMoveOnDown, false);
70
+ window.addEventListener('touchmove', antiMoveOnMove, true);
71
+ }
72
+ }
73
+ exports.CubeCamera = CubeCamera;
74
+ //# sourceMappingURL=cube-camera.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cube-camera.js","sourceRoot":"","sources":["../../../../src/gui/navigation-cube/components/cube-camera.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { WebGLRenderer } from "three";
2
+ import { ViralNavigationCube } from "../viral-navigation-cube";
3
+ export declare class CubeRenderer {
4
+ viralNavigationCube: ViralNavigationCube;
5
+ renderer: WebGLRenderer;
6
+ constructor(viralNavigationCube: ViralNavigationCube);
7
+ setupRenderer(): void;
8
+ render(): void;
9
+ }
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CubeRenderer = void 0;
4
+ const three_1 = require("three");
5
+ class CubeRenderer {
6
+ constructor(viralNavigationCube) {
7
+ this.viralNavigationCube = viralNavigationCube;
8
+ // clock: Clock = new Clock();
9
+ this.renderer = new three_1.WebGLRenderer({
10
+ alpha: true,
11
+ antialias: true,
12
+ logarithmicDepthBuffer: true,
13
+ });
14
+ this.setupRenderer();
15
+ }
16
+ setupRenderer() {
17
+ if (this.viralNavigationCube.targetElement) {
18
+ this.renderer.setClearColor(0x000000, 0);
19
+ this.renderer.setSize(this.viralNavigationCube.targetElement.offsetWidth, this.viralNavigationCube.targetElement.offsetHeight);
20
+ this.viralNavigationCube.targetElement.appendChild(this.renderer.domElement);
21
+ }
22
+ }
23
+ render() {
24
+ if (this.viralNavigationCube.cubeScene && this.viralNavigationCube.cubeCamera && this.viralNavigationCube.cubeCamera.camera) {
25
+ this.viralNavigationCube.cubeCamera.camera.updateMatrixWorld(true);
26
+ this.renderer.render(this.viralNavigationCube.cubeScene.scene, this.viralNavigationCube.cubeCamera.camera);
27
+ }
28
+ }
29
+ }
30
+ exports.CubeRenderer = CubeRenderer;
31
+ //# sourceMappingURL=cube-renderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cube-renderer.js","sourceRoot":"","sources":["../../../../src/gui/navigation-cube/components/cube-renderer.ts"],"names":[],"mappings":";;;AAAA,iCAA6C;AAG7C,MAAa,YAAY;IAOrB,YAAmB,mBAAwC;QAAxC,wBAAmB,GAAnB,mBAAmB,CAAqB;QAN3D,8BAA8B;QAC9B,aAAQ,GAAkB,IAAI,qBAAa,CAAC;YACxC,KAAK,EAAE,IAAI;YACX,SAAS,EAAE,IAAI;YACf,sBAAsB,EAAE,IAAI;SAC/B,CAAC,CAAC;QAEC,IAAI,CAAC,aAAa,EAAE,CAAC;IACzB,CAAC;IACM,aAAa;QAChB,IAAI,IAAI,CAAC,mBAAmB,CAAC,aAAa,EAAE;YACxC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;YACzC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,WAAW,EAAE,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;YAC/H,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;SAEhF;IAEL,CAAC;IACM,MAAM;QACT,IAAI,IAAI,CAAC,mBAAmB,CAAC,SAAS,IAAI,IAAI,CAAC,mBAAmB,CAAC,UAAU,IAAI,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,MAAM,EAAE;YACzH,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;YACnE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;SAC9G;IAGL,CAAC;CAmBJ;AA7CD,oCA6CC"}
@@ -0,0 +1,13 @@
1
+ import { Scene, Mesh, Object3D, MeshBasicMaterial, BufferGeometry } from 'three';
2
+ import { ViralNavigationCube } from '../viral-navigation-cube';
3
+ export declare class CubeScene {
4
+ viralNavigationCube: ViralNavigationCube;
5
+ scene: Scene;
6
+ objects: Object3D[];
7
+ cube: Mesh | null;
8
+ activePlane: Mesh<BufferGeometry, MeshBasicMaterial> | null;
9
+ constructor(viralNavigationCube: ViralNavigationCube);
10
+ addObject(object: Object3D): void;
11
+ addCube(): void;
12
+ addPlanes(): void;
13
+ }