viral-viewer-2 6.2.0 → 6.2.3

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 (258) hide show
  1. package/README.md +0 -0
  2. package/dist/threejs-addon/n8ao/post-processing.d.ts +109 -109
  3. package/dist/viralution-viewer.js +2 -0
  4. package/dist/viralution-viewer.js.LICENSE.txt +19 -0
  5. package/package.json +6 -4
  6. package/dist/components/animation/viral-animation.js +0 -59
  7. package/dist/components/animation/viral-animation.js.map +0 -1
  8. package/dist/components/bvh/viral-bvh.js +0 -19
  9. package/dist/components/bvh/viral-bvh.js.map +0 -1
  10. package/dist/components/camera/viral-camera.js +0 -201
  11. package/dist/components/camera/viral-camera.js.map +0 -1
  12. package/dist/components/centralized-event-handler/viral-centralized-event-handler.d.ts +0 -7
  13. package/dist/components/centralized-event-handler/viral-centralized-event-handler.js +0 -47
  14. package/dist/components/centralized-event-handler/viral-centralized-event-handler.js.map +0 -1
  15. package/dist/components/compress/viral-compress.processor.js +0 -13
  16. package/dist/components/compress/viral-compress.processor.js.map +0 -1
  17. package/dist/components/context-menu/viral-context-menu.d.ts +0 -17
  18. package/dist/components/context-menu/viral-context-menu.js +0 -74
  19. package/dist/components/context-menu/viral-context-menu.js.map +0 -1
  20. package/dist/components/custom-objects/index.js +0 -6
  21. package/dist/components/custom-objects/index.js.map +0 -1
  22. package/dist/components/custom-objects/viral-instanced-mesh.js +0 -200
  23. package/dist/components/custom-objects/viral-instanced-mesh.js.map +0 -1
  24. package/dist/components/data-manager/viral-data-manager.js +0 -35
  25. package/dist/components/data-manager/viral-data-manager.js.map +0 -1
  26. package/dist/components/event-handler/base/event-dispatcher.js +0 -35
  27. package/dist/components/event-handler/base/event-dispatcher.js.map +0 -1
  28. package/dist/components/event-handler/keyboard/viral-keyboard.js +0 -76
  29. package/dist/components/event-handler/keyboard/viral-keyboard.js.map +0 -1
  30. package/dist/components/event-handler/mouse/viral-mouse.js +0 -234
  31. package/dist/components/event-handler/mouse/viral-mouse.js.map +0 -1
  32. package/dist/components/event-handler/viral-centralized-event-handler.js +0 -158
  33. package/dist/components/event-handler/viral-centralized-event-handler.js.map +0 -1
  34. package/dist/components/event-handler/viral-lifecycle-event-handler.js +0 -55
  35. package/dist/components/event-handler/viral-lifecycle-event-handler.js.map +0 -1
  36. package/dist/components/keyboard/viral-keyboard.d.ts +0 -17
  37. package/dist/components/keyboard/viral-keyboard.js +0 -76
  38. package/dist/components/keyboard/viral-keyboard.js.map +0 -1
  39. package/dist/components/loader/viral-point-cloud.loader.js +0 -33
  40. package/dist/components/loader/viral-point-cloud.loader.js.map +0 -1
  41. package/dist/components/loader/viral-revit.loader.js +0 -119
  42. package/dist/components/loader/viral-revit.loader.js.map +0 -1
  43. package/dist/components/loader/viral-three.loader.js +0 -20
  44. package/dist/components/loader/viral-three.loader.js.map +0 -1
  45. package/dist/components/loader/viral.loader.js +0 -16
  46. package/dist/components/loader/viral.loader.js.map +0 -1
  47. package/dist/components/material/viral-material-manager.js +0 -60
  48. package/dist/components/material/viral-material-manager.js.map +0 -1
  49. package/dist/components/mouse/viral-mouse.d.ts +0 -31
  50. package/dist/components/mouse/viral-mouse.js +0 -234
  51. package/dist/components/mouse/viral-mouse.js.map +0 -1
  52. package/dist/components/navigation-cube/components/cube-camera.d.ts +0 -15
  53. package/dist/components/navigation-cube/components/cube-camera.js +0 -74
  54. package/dist/components/navigation-cube/components/cube-camera.js.map +0 -1
  55. package/dist/components/navigation-cube/components/cube-renderer.d.ts +0 -9
  56. package/dist/components/navigation-cube/components/cube-renderer.js +0 -31
  57. package/dist/components/navigation-cube/components/cube-renderer.js.map +0 -1
  58. package/dist/components/navigation-cube/components/cube-scene.d.ts +0 -13
  59. package/dist/components/navigation-cube/components/cube-scene.js +0 -546
  60. package/dist/components/navigation-cube/components/cube-scene.js.map +0 -1
  61. package/dist/components/navigation-cube/components/cube.mouse.d.ts +0 -9
  62. package/dist/components/navigation-cube/components/cube.mouse.js +0 -109
  63. package/dist/components/navigation-cube/components/cube.mouse.js.map +0 -1
  64. package/dist/components/navigation-cube/viral-navigation-cube.d.ts +0 -16
  65. package/dist/components/navigation-cube/viral-navigation-cube.js +0 -50
  66. package/dist/components/navigation-cube/viral-navigation-cube.js.map +0 -1
  67. package/dist/components/post-processing/ambient-occlusion-effect.d.ts +0 -11
  68. package/dist/components/post-processing/ambient-occlusion-effect.js +0 -32
  69. package/dist/components/post-processing/ambient-occlusion-effect.js.map +0 -1
  70. package/dist/components/post-processing/bloom-effect.d.ts +0 -11
  71. package/dist/components/post-processing/bloom-effect.js +0 -29
  72. package/dist/components/post-processing/bloom-effect.js.map +0 -1
  73. package/dist/components/post-processing/outline-effect.d.ts +0 -13
  74. package/dist/components/post-processing/outline-effect.js +0 -33
  75. package/dist/components/post-processing/outline-effect.js.map +0 -1
  76. package/dist/components/post-processing/post-processing-renderer.js +0 -46
  77. package/dist/components/post-processing/post-processing-renderer.js.map +0 -1
  78. package/dist/components/post-processing/viral-post-processing.d.ts +0 -11
  79. package/dist/components/post-processing/viral-post-processing.js +0 -29
  80. package/dist/components/post-processing/viral-post-processing.js.map +0 -1
  81. package/dist/components/renderer/viral-renderer.js +0 -51
  82. package/dist/components/renderer/viral-renderer.js.map +0 -1
  83. package/dist/components/scene/viral-scene.js +0 -129
  84. package/dist/components/scene/viral-scene.js.map +0 -1
  85. package/dist/components/spinner/viral-spinner.d.ts +0 -10
  86. package/dist/components/spinner/viral-spinner.js +0 -207
  87. package/dist/components/spinner/viral-spinner.js.map +0 -1
  88. package/dist/components/stats/viral-stats.js +0 -17
  89. package/dist/components/stats/viral-stats.js.map +0 -1
  90. package/dist/components/tools/tools/viral-tool-ambient-occlusion.d.ts +0 -7
  91. package/dist/components/tools/tools/viral-tool-ambient-occlusion.js +0 -16
  92. package/dist/components/tools/tools/viral-tool-ambient-occlusion.js.map +0 -1
  93. package/dist/components/tools/tools/viral-tool-dark-mode.d.ts +0 -7
  94. package/dist/components/tools/tools/viral-tool-dark-mode.js +0 -21
  95. package/dist/components/tools/tools/viral-tool-dark-mode.js.map +0 -1
  96. package/dist/components/tools/tools/viral-tool-elevation.d.ts +0 -11
  97. package/dist/components/tools/tools/viral-tool-elevation.js +0 -30
  98. package/dist/components/tools/tools/viral-tool-elevation.js.map +0 -1
  99. package/dist/components/tools/tools/viral-tool-measure.d.ts +0 -33
  100. package/dist/components/tools/tools/viral-tool-measure.js +0 -243
  101. package/dist/components/tools/tools/viral-tool-measure.js.map +0 -1
  102. package/dist/components/tools/tools/viral-tool-sunlight.d.ts +0 -7
  103. package/dist/components/tools/tools/viral-tool-sunlight.js +0 -46
  104. package/dist/components/tools/tools/viral-tool-sunlight.js.map +0 -1
  105. package/dist/components/tools/viral-tools.d.ts +0 -32
  106. package/dist/components/tools/viral-tools.js +0 -213
  107. package/dist/components/tools/viral-tools.js.map +0 -1
  108. package/dist/components/visibility-manager/viral-visibility-manager.js +0 -166
  109. package/dist/components/visibility-manager/viral-visibility-manager.js.map +0 -1
  110. package/dist/components/worker/base/worker-pool.js +0 -68
  111. package/dist/components/worker/base/worker-pool.js.map +0 -1
  112. package/dist/components/worker/base/worker-thread.js +0 -35
  113. package/dist/components/worker/base/worker-thread.js.map +0 -1
  114. package/dist/components/worker/fetch-data.worker.js +0 -31
  115. package/dist/components/worker/fetch-data.worker.js.map +0 -1
  116. package/dist/components/worker/viral-viewer-2.worker.js +0 -127
  117. package/dist/components/worker/viral-viewer-2.worker.js.map +0 -1
  118. package/dist/components/worker/viral-viewer-3.worker.js +0 -82
  119. package/dist/components/worker/viral-viewer-3.worker.js.map +0 -1
  120. package/dist/components/worker/viral-viewer-4.worker.js +0 -97
  121. package/dist/components/worker/viral-viewer-4.worker.js.map +0 -1
  122. package/dist/components/worker/viral-viewer.worker.js +0 -107
  123. package/dist/components/worker/viral-viewer.worker.js.map +0 -1
  124. package/dist/components/worker-script/fetch-data-worker.script.js +0 -56
  125. package/dist/components/worker-script/fetch-data-worker.script.js.map +0 -1
  126. package/dist/components/worker-script/load-model-worker-2.script.js +0 -2704
  127. package/dist/components/worker-script/load-model-worker-2.script.js.map +0 -1
  128. package/dist/components/worker-script/load-model-worker-3.script.js +0 -34170
  129. package/dist/components/worker-script/load-model-worker-3.script.js.map +0 -1
  130. package/dist/components/worker-script/load-model-worker.script.js +0 -148
  131. package/dist/components/worker-script/load-model-worker.script.js.map +0 -1
  132. package/dist/components/worker-script/threejs.types.js +0 -34162
  133. package/dist/components/worker-script/threejs.types.js.map +0 -1
  134. package/dist/const/colors.js +0 -38
  135. package/dist/const/colors.js.map +0 -1
  136. package/dist/const/fonts.js +0 -17
  137. package/dist/const/fonts.js.map +0 -1
  138. package/dist/gui/context-menu/viral-context-menu.js +0 -74
  139. package/dist/gui/context-menu/viral-context-menu.js.map +0 -1
  140. package/dist/gui/draggable-modal/viral-draggable-modal.js +0 -91
  141. package/dist/gui/draggable-modal/viral-draggable-modal.js.map +0 -1
  142. package/dist/gui/fonts/fonts.js +0 -20
  143. package/dist/gui/fonts/fonts.js.map +0 -1
  144. package/dist/gui/navigation-cube/components/cube-camera.js +0 -74
  145. package/dist/gui/navigation-cube/components/cube-camera.js.map +0 -1
  146. package/dist/gui/navigation-cube/components/cube-renderer.js +0 -31
  147. package/dist/gui/navigation-cube/components/cube-renderer.js.map +0 -1
  148. package/dist/gui/navigation-cube/components/cube-scene.js +0 -546
  149. package/dist/gui/navigation-cube/components/cube-scene.js.map +0 -1
  150. package/dist/gui/navigation-cube/components/cube.mouse.js +0 -109
  151. package/dist/gui/navigation-cube/components/cube.mouse.js.map +0 -1
  152. package/dist/gui/navigation-cube/viral-navigation-cube.js +0 -50
  153. package/dist/gui/navigation-cube/viral-navigation-cube.js.map +0 -1
  154. package/dist/gui/spinner/viral-spinner.js +0 -102
  155. package/dist/gui/spinner/viral-spinner.js.map +0 -1
  156. package/dist/gui/tools/tools/viral-tool-ambient-occlusion.js +0 -16
  157. package/dist/gui/tools/tools/viral-tool-ambient-occlusion.js.map +0 -1
  158. package/dist/gui/tools/tools/viral-tool-dark-mode.js +0 -21
  159. package/dist/gui/tools/tools/viral-tool-dark-mode.js.map +0 -1
  160. package/dist/gui/tools/tools/viral-tool-elevation.js +0 -30
  161. package/dist/gui/tools/tools/viral-tool-elevation.js.map +0 -1
  162. package/dist/gui/tools/tools/viral-tool-measure.js +0 -243
  163. package/dist/gui/tools/tools/viral-tool-measure.js.map +0 -1
  164. package/dist/gui/tools/tools/viral-tool-sunlight.js +0 -46
  165. package/dist/gui/tools/tools/viral-tool-sunlight.js.map +0 -1
  166. package/dist/gui/tools/viral-tools.js +0 -213
  167. package/dist/gui/tools/viral-tools.js.map +0 -1
  168. package/dist/index.js +0 -21
  169. package/dist/index.js.map +0 -1
  170. package/dist/models/dictionary.model.d.ts +0 -0
  171. package/dist/models/dictionary.model.js +0 -1
  172. package/dist/models/dictionary.model.js.map +0 -1
  173. package/dist/services/local-storage.service.js +0 -57
  174. package/dist/services/local-storage.service.js.map +0 -1
  175. package/dist/threejs-addon/buffer-geometry-utils.d.ts +0 -64
  176. package/dist/threejs-addon/buffer-geometry-utils.js +0 -807
  177. package/dist/threejs-addon/buffer-geometry-utils.js.map +0 -1
  178. package/dist/threejs-addon/gltf-loader.d.ts +0 -17
  179. package/dist/threejs-addon/gltf-loader.js +0 -2796
  180. package/dist/threejs-addon/gltf-loader.js.map +0 -1
  181. package/dist/threejs-addon/n8ao/n8ao.js +0 -1952
  182. package/dist/threejs-addon/n8ao/n8ao.js.map +0 -1
  183. package/dist/threejs-addon/n8ao/post-processing.js +0 -15145
  184. package/dist/threejs-addon/n8ao/post-processing.js.map +0 -1
  185. package/dist/threejs-addon/post-processing/effect-composer.d.ts +0 -27
  186. package/dist/threejs-addon/post-processing/effect-composer.js +0 -134
  187. package/dist/threejs-addon/post-processing/effect-composer.js.map +0 -1
  188. package/dist/threejs-addon/post-processing/mask-pass.d.ts +0 -11
  189. package/dist/threejs-addon/post-processing/mask-pass.js +0 -69
  190. package/dist/threejs-addon/post-processing/mask-pass.js.map +0 -1
  191. package/dist/threejs-addon/post-processing/outline-pass.d.ts +0 -58
  192. package/dist/threejs-addon/post-processing/outline-pass.js +0 -484
  193. package/dist/threejs-addon/post-processing/outline-pass.js.map +0 -1
  194. package/dist/threejs-addon/post-processing/output-pass.d.ts +0 -11
  195. package/dist/threejs-addon/post-processing/output-pass.js +0 -61
  196. package/dist/threejs-addon/post-processing/output-pass.js.map +0 -1
  197. package/dist/threejs-addon/post-processing/pass.d.ts +0 -20
  198. package/dist/threejs-addon/post-processing/pass.js +0 -48
  199. package/dist/threejs-addon/post-processing/pass.js.map +0 -1
  200. package/dist/threejs-addon/post-processing/render-pass.d.ts +0 -13
  201. package/dist/threejs-addon/post-processing/render-pass.js +0 -50
  202. package/dist/threejs-addon/post-processing/render-pass.js.map +0 -1
  203. package/dist/threejs-addon/post-processing/sao-pass.d.ts +0 -62
  204. package/dist/threejs-addon/post-processing/sao-pass.js +0 -296
  205. package/dist/threejs-addon/post-processing/sao-pass.js.map +0 -1
  206. package/dist/threejs-addon/post-processing/shader-pass.d.ts +0 -11
  207. package/dist/threejs-addon/post-processing/shader-pass.js +0 -48
  208. package/dist/threejs-addon/post-processing/shader-pass.js.map +0 -1
  209. package/dist/threejs-addon/post-processing/ssaa-render-pass.d.ts +0 -30
  210. package/dist/threejs-addon/post-processing/ssaa-render-pass.js +0 -202
  211. package/dist/threejs-addon/post-processing/ssaa-render-pass.js.map +0 -1
  212. package/dist/threejs-addon/post-processing/unreal-bloom-pass.d.ts +0 -48
  213. package/dist/threejs-addon/post-processing/unreal-bloom-pass.js +0 -290
  214. package/dist/threejs-addon/post-processing/unreal-bloom-pass.js.map +0 -1
  215. package/dist/threejs-addon/shaders/color-correction-shader.d.ts +0 -22
  216. package/dist/threejs-addon/shaders/color-correction-shader.js +0 -43
  217. package/dist/threejs-addon/shaders/color-correction-shader.js.map +0 -1
  218. package/dist/threejs-addon/shaders/copy-shader.d.ts +0 -13
  219. package/dist/threejs-addon/shaders/copy-shader.js +0 -39
  220. package/dist/threejs-addon/shaders/copy-shader.js.map +0 -1
  221. package/dist/threejs-addon/shaders/depth-limited-blur-shader.d.ts +0 -48
  222. package/dist/threejs-addon/shaders/depth-limited-blur-shader.js +0 -142
  223. package/dist/threejs-addon/shaders/depth-limited-blur-shader.js.map +0 -1
  224. package/dist/threejs-addon/shaders/fxaa-shader.d.ts +0 -14
  225. package/dist/threejs-addon/shaders/fxaa-shader.js +0 -279
  226. package/dist/threejs-addon/shaders/fxaa-shader.js.map +0 -1
  227. package/dist/threejs-addon/shaders/luminosity-high-pass-shader.d.ts +0 -27
  228. package/dist/threejs-addon/shaders/luminosity-high-pass-shader.js +0 -56
  229. package/dist/threejs-addon/shaders/luminosity-high-pass-shader.js.map +0 -1
  230. package/dist/threejs-addon/shaders/output-shader.d.ts +0 -13
  231. package/dist/threejs-addon/shaders/output-shader.js +0 -72
  232. package/dist/threejs-addon/shaders/output-shader.js.map +0 -1
  233. package/dist/threejs-addon/shaders/sao-shader.d.ts +0 -71
  234. package/dist/threejs-addon/shaders/sao-shader.js +0 -180
  235. package/dist/threejs-addon/shaders/sao-shader.js.map +0 -1
  236. package/dist/threejs-addon/shaders/unpack-depth-rgba-shader.d.ts +0 -13
  237. package/dist/threejs-addon/shaders/unpack-depth-rgba-shader.js +0 -41
  238. package/dist/threejs-addon/shaders/unpack-depth-rgba-shader.js.map +0 -1
  239. package/dist/threejs-addon/simplify-modifier.d.ts +0 -4
  240. package/dist/threejs-addon/simplify-modifier.js +0 -325
  241. package/dist/threejs-addon/simplify-modifier.js.map +0 -1
  242. package/dist/threejs-addon/stats.js +0 -102
  243. package/dist/threejs-addon/stats.js.map +0 -1
  244. package/dist/threejs-addon/transform-control.d.ts +0 -74
  245. package/dist/threejs-addon/transform-control.js +0 -1033
  246. package/dist/threejs-addon/transform-control.js.map +0 -1
  247. package/dist/types.js +0 -145
  248. package/dist/types.js.map +0 -1
  249. package/dist/utils/html.js +0 -12
  250. package/dist/utils/html.js.map +0 -1
  251. package/dist/utils/index.js +0 -10
  252. package/dist/utils/index.js.map +0 -1
  253. package/dist/utils/log.js +0 -14
  254. package/dist/utils/log.js.map +0 -1
  255. package/dist/utils/threejs.js +0 -44
  256. package/dist/utils/threejs.js.map +0 -1
  257. package/dist/viral-viewer-api.js +0 -73
  258. package/dist/viral-viewer-api.js.map +0 -1
@@ -1,546 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CubeScene = void 0;
4
- const three_1 = require("three");
5
- const colors_1 = require("../../../const/colors");
6
- class CubeScene {
7
- constructor(viralNavigationCube) {
8
- this.viralNavigationCube = viralNavigationCube;
9
- this.scene = new three_1.Scene();
10
- this.objects = [];
11
- this.cube = null;
12
- // planes: Mesh<BufferGeometry, MeshBasicMaterial>[] = [];
13
- this.activePlane = null;
14
- this.addCube();
15
- this.addPlanes();
16
- }
17
- addObject(object) {
18
- this.scene.add(object);
19
- this.objects.push(object);
20
- }
21
- addCube() {
22
- let materials = [];
23
- let texts = ["RIGHT", "LEFT", "TOP", "BOTTOM", "FRONT", "BACK"];
24
- let textureLoader = new three_1.TextureLoader();
25
- let canvas = document.createElement("canvas");
26
- let ctx = canvas.getContext("2d");
27
- let size = 64;
28
- canvas.width = size;
29
- canvas.height = size;
30
- if (ctx) {
31
- ctx.font = 'bolder 12px "Open sans", Arial';
32
- ctx.textBaseline = "middle";
33
- ctx.textAlign = "center";
34
- let mainColor = `${colors_1.LightTheme.background}`;
35
- for (let i = 0; i < 6; i++) {
36
- if (texts[i] == "TOP") {
37
- ctx.fillStyle = mainColor;
38
- }
39
- else if (texts[i] == "BOTTOM") {
40
- ctx.fillStyle = mainColor;
41
- }
42
- else {
43
- ctx.fillStyle = mainColor;
44
- }
45
- ctx.fillRect(0, 0, size, size);
46
- ctx.strokeStyle = `${colors_1.LightTheme.primary}`;
47
- ctx.setLineDash([8, 8]);
48
- ctx.lineWidth = 4;
49
- ctx.strokeRect(0, 0, size, size);
50
- ctx.fillStyle = `${colors_1.LightTheme.primary}`;
51
- ctx.fillText(texts[i], size / 2, size / 2);
52
- materials[i] = new three_1.MeshBasicMaterial({
53
- map: textureLoader.load(canvas.toDataURL()),
54
- });
55
- }
56
- this.cube = new three_1.Mesh(new three_1.BoxGeometry(1, 1, 1), materials);
57
- this.addObject(this.cube);
58
- }
59
- }
60
- addPlanes() {
61
- let planeMaterial = new three_1.MeshBasicMaterial({
62
- side: three_1.DoubleSide,
63
- color: 0x659F51,
64
- transparent: true,
65
- opacity: 0,
66
- depthTest: false,
67
- });
68
- let planeSize = 0.7;
69
- let edgeHeight = 0.7;
70
- let edgeWidth = 0.15;
71
- let planeGeometry = new three_1.PlaneGeometry(planeSize, planeSize);
72
- let edgePlaneGeometry = new three_1.PlaneGeometry(edgeWidth, edgeHeight);
73
- let cornerPlaneGeometry = new three_1.PlaneGeometry(edgeWidth, edgeWidth);
74
- let distanceFromCenterPoint = 0.51;
75
- //#region Front
76
- let plane1 = new three_1.Mesh(planeGeometry, planeMaterial.clone());
77
- plane1.position.z = distanceFromCenterPoint;
78
- plane1.name = "FRONT";
79
- //right edge
80
- let plane11 = new three_1.Mesh(edgePlaneGeometry, planeMaterial.clone());
81
- plane11.position.z = distanceFromCenterPoint;
82
- plane11.position.x = ((planeSize / 2) + (edgeWidth / 2));
83
- //left edge
84
- let plane12 = new three_1.Mesh(edgePlaneGeometry, planeMaterial.clone());
85
- plane12.position.z = distanceFromCenterPoint;
86
- plane12.position.x = -((planeSize / 2) + (edgeWidth / 2));
87
- //top edge
88
- let plane13 = new three_1.Mesh(edgePlaneGeometry, planeMaterial.clone());
89
- plane13.position.z = distanceFromCenterPoint;
90
- plane13.rotation.z = Math.PI / 2;
91
- plane13.position.y = ((planeSize / 2) + (edgeWidth / 2));
92
- //bottom edge
93
- let plane14 = new three_1.Mesh(edgePlaneGeometry, planeMaterial.clone());
94
- plane14.position.z = distanceFromCenterPoint;
95
- plane14.rotation.z = Math.PI / 2;
96
- plane14.position.y = -((planeSize / 2) + (edgeWidth / 2));
97
- //top left corner
98
- let corner11 = new three_1.Mesh(cornerPlaneGeometry, planeMaterial.clone());
99
- corner11.position.z = distanceFromCenterPoint;
100
- corner11.position.x = -((planeSize / 2) + (edgeWidth / 2));
101
- corner11.position.y = ((planeSize / 2) + (edgeWidth / 2));
102
- //top right corner
103
- let corner12 = new three_1.Mesh(cornerPlaneGeometry, planeMaterial.clone());
104
- corner12.position.z = distanceFromCenterPoint;
105
- corner12.position.x = ((planeSize / 2) + (edgeWidth / 2));
106
- corner12.position.y = ((planeSize / 2) + (edgeWidth / 2));
107
- //bottom right corner
108
- let corner13 = new three_1.Mesh(cornerPlaneGeometry, planeMaterial.clone());
109
- corner13.position.z = distanceFromCenterPoint;
110
- corner13.position.x = ((planeSize / 2) + (edgeWidth / 2));
111
- corner13.position.y = -((planeSize / 2) + (edgeWidth / 2));
112
- //bottom left corner
113
- let corner14 = new three_1.Mesh(cornerPlaneGeometry, planeMaterial.clone());
114
- corner14.position.z = distanceFromCenterPoint;
115
- corner14.position.x = -((planeSize / 2) + (edgeWidth / 2));
116
- corner14.position.y = -((planeSize / 2) + (edgeWidth / 2));
117
- //#endregion
118
- //#region Back
119
- let plane2 = new three_1.Mesh(planeGeometry, planeMaterial.clone());
120
- plane2.position.z = -distanceFromCenterPoint;
121
- plane2.name = "BACK";
122
- //left edge
123
- let plane21 = new three_1.Mesh(edgePlaneGeometry, planeMaterial.clone());
124
- plane21.position.z = -distanceFromCenterPoint;
125
- plane21.position.x = ((planeSize / 2) + (edgeWidth / 2));
126
- //right edge
127
- let plane22 = new three_1.Mesh(edgePlaneGeometry, planeMaterial.clone());
128
- plane22.position.z = -distanceFromCenterPoint;
129
- plane22.position.x = -((planeSize / 2) + (edgeWidth / 2));
130
- //top edge
131
- let plane23 = new three_1.Mesh(edgePlaneGeometry, planeMaterial.clone());
132
- plane23.position.z = -distanceFromCenterPoint;
133
- plane23.rotation.z = Math.PI / 2;
134
- plane23.position.y = ((planeSize / 2) + (edgeWidth / 2));
135
- //bottom edge
136
- let plane24 = new three_1.Mesh(edgePlaneGeometry, planeMaterial.clone());
137
- plane24.position.z = -distanceFromCenterPoint;
138
- plane24.rotation.z = Math.PI / 2;
139
- plane24.position.y = -((planeSize / 2) + (edgeWidth / 2));
140
- //top left corner
141
- let corner21 = new three_1.Mesh(cornerPlaneGeometry, planeMaterial.clone());
142
- corner21.position.z = -distanceFromCenterPoint;
143
- corner21.position.x = ((planeSize / 2) + (edgeWidth / 2));
144
- corner21.position.y = ((planeSize / 2) + (edgeWidth / 2));
145
- //top right corner
146
- let corner22 = new three_1.Mesh(cornerPlaneGeometry, planeMaterial.clone());
147
- corner22.position.z = -distanceFromCenterPoint;
148
- corner22.position.x = -((planeSize / 2) + (edgeWidth / 2));
149
- corner22.position.y = ((planeSize / 2) + (edgeWidth / 2));
150
- //bottom right corner
151
- let corner23 = new three_1.Mesh(cornerPlaneGeometry, planeMaterial.clone());
152
- corner23.position.z = -distanceFromCenterPoint;
153
- corner23.position.x = -((planeSize / 2) + (edgeWidth / 2));
154
- corner23.position.y = -((planeSize / 2) + (edgeWidth / 2));
155
- //bottom left corner
156
- let corner24 = new three_1.Mesh(cornerPlaneGeometry, planeMaterial.clone());
157
- corner24.position.z = -distanceFromCenterPoint;
158
- corner24.position.x = ((planeSize / 2) + (edgeWidth / 2));
159
- corner24.position.y = -((planeSize / 2) + (edgeWidth / 2));
160
- //#endregion
161
- //#region Right
162
- let plane3 = new three_1.Mesh(planeGeometry, planeMaterial.clone());
163
- plane3.rotation.y = Math.PI / 2;
164
- plane3.position.x = distanceFromCenterPoint;
165
- plane3.name = "RIGHT";
166
- //left edge
167
- let plane31 = new three_1.Mesh(edgePlaneGeometry, planeMaterial.clone());
168
- plane31.rotation.y = Math.PI / 2;
169
- plane31.position.x = distanceFromCenterPoint;
170
- plane31.position.z = ((planeSize / 2) + (edgeWidth / 2));
171
- //right edge
172
- let plane32 = new three_1.Mesh(edgePlaneGeometry, planeMaterial.clone());
173
- plane32.rotation.y = Math.PI / 2;
174
- plane32.position.x = distanceFromCenterPoint;
175
- plane32.position.z = -((planeSize / 2) + (edgeWidth / 2));
176
- //top edge
177
- let plane33 = new three_1.Mesh(edgePlaneGeometry, planeMaterial.clone());
178
- plane33.rotation.y = Math.PI / 2;
179
- plane33.position.x = distanceFromCenterPoint;
180
- plane33.rotation.z = Math.PI / 2;
181
- plane33.position.y = ((planeSize / 2) + (edgeWidth / 2));
182
- //bottom edge
183
- let plane34 = new three_1.Mesh(edgePlaneGeometry, planeMaterial.clone());
184
- plane34.rotation.y = Math.PI / 2;
185
- plane34.position.x = distanceFromCenterPoint;
186
- plane34.rotation.z = Math.PI / 2;
187
- plane34.position.y = -((planeSize / 2) + (edgeWidth / 2));
188
- //top left corner
189
- let corner31 = new three_1.Mesh(cornerPlaneGeometry, planeMaterial.clone());
190
- corner31.rotation.y = Math.PI / 2;
191
- corner31.position.x = distanceFromCenterPoint;
192
- corner31.position.z = ((planeSize / 2) + (edgeWidth / 2));
193
- corner31.position.y = ((planeSize / 2) + (edgeWidth / 2));
194
- //top right corner
195
- let corner32 = new three_1.Mesh(cornerPlaneGeometry, planeMaterial.clone());
196
- corner32.rotation.y = Math.PI / 2;
197
- corner32.position.x = distanceFromCenterPoint;
198
- corner32.position.z = -((planeSize / 2) + (edgeWidth / 2));
199
- corner32.position.y = ((planeSize / 2) + (edgeWidth / 2));
200
- //bottom right corner
201
- let corner33 = new three_1.Mesh(cornerPlaneGeometry, planeMaterial.clone());
202
- corner33.rotation.y = Math.PI / 2;
203
- corner33.position.x = distanceFromCenterPoint;
204
- corner33.position.z = -((planeSize / 2) + (edgeWidth / 2));
205
- corner33.position.y = -((planeSize / 2) + (edgeWidth / 2));
206
- //bottom left corner
207
- let corner34 = new three_1.Mesh(cornerPlaneGeometry, planeMaterial.clone());
208
- corner34.rotation.y = Math.PI / 2;
209
- corner34.position.x = distanceFromCenterPoint;
210
- corner34.position.z = ((planeSize / 2) + (edgeWidth / 2));
211
- corner34.position.y = -((planeSize / 2) + (edgeWidth / 2));
212
- //#endregion
213
- //#region Left
214
- let plane4 = new three_1.Mesh(planeGeometry, planeMaterial.clone());
215
- plane4.rotation.y = Math.PI / 2;
216
- plane4.position.x = -distanceFromCenterPoint;
217
- plane4.name = "LEFT";
218
- //left edge
219
- let plane41 = new three_1.Mesh(edgePlaneGeometry, planeMaterial.clone());
220
- plane41.rotation.y = Math.PI / 2;
221
- plane41.position.x = -distanceFromCenterPoint;
222
- plane41.position.z = ((planeSize / 2) + (edgeWidth / 2));
223
- //right edge
224
- let plane42 = new three_1.Mesh(edgePlaneGeometry, planeMaterial.clone());
225
- plane42.rotation.y = Math.PI / 2;
226
- plane42.position.x = -distanceFromCenterPoint;
227
- plane42.position.z = -((planeSize / 2) + (edgeWidth / 2));
228
- //top edge
229
- let plane43 = new three_1.Mesh(edgePlaneGeometry, planeMaterial.clone());
230
- plane43.rotation.y = Math.PI / 2;
231
- plane43.position.x = -distanceFromCenterPoint;
232
- plane43.rotation.z = Math.PI / 2;
233
- plane43.position.y = ((planeSize / 2) + (edgeWidth / 2));
234
- //bottom edge
235
- let plane44 = new three_1.Mesh(edgePlaneGeometry, planeMaterial.clone());
236
- plane44.rotation.y = Math.PI / 2;
237
- plane44.position.x = -distanceFromCenterPoint;
238
- plane44.rotation.z = Math.PI / 2;
239
- plane44.position.y = -((planeSize / 2) + (edgeWidth / 2));
240
- //top left corner
241
- let corner41 = new three_1.Mesh(cornerPlaneGeometry, planeMaterial.clone());
242
- corner41.rotation.y = Math.PI / 2;
243
- corner41.position.x = -distanceFromCenterPoint;
244
- corner41.position.z = -((planeSize / 2) + (edgeWidth / 2));
245
- corner41.position.y = ((planeSize / 2) + (edgeWidth / 2));
246
- //top right corner
247
- let corner42 = new three_1.Mesh(cornerPlaneGeometry, planeMaterial.clone());
248
- corner42.rotation.y = Math.PI / 2;
249
- corner42.position.x = -distanceFromCenterPoint;
250
- corner42.position.z = ((planeSize / 2) + (edgeWidth / 2));
251
- corner42.position.y = ((planeSize / 2) + (edgeWidth / 2));
252
- //bottom right corner
253
- let corner43 = new three_1.Mesh(cornerPlaneGeometry, planeMaterial.clone());
254
- corner43.rotation.y = Math.PI / 2;
255
- corner43.position.x = -distanceFromCenterPoint;
256
- corner43.position.z = ((planeSize / 2) + (edgeWidth / 2));
257
- corner43.position.y = -((planeSize / 2) + (edgeWidth / 2));
258
- //bottom left corner
259
- let corner44 = new three_1.Mesh(cornerPlaneGeometry, planeMaterial.clone());
260
- corner44.rotation.y = Math.PI / 2;
261
- corner44.position.x = -distanceFromCenterPoint;
262
- corner44.position.z = -((planeSize / 2) + (edgeWidth / 2));
263
- corner44.position.y = -((planeSize / 2) + (edgeWidth / 2));
264
- //#endregion
265
- //#region Top
266
- let plane5 = new three_1.Mesh(planeGeometry, planeMaterial.clone());
267
- plane5.rotation.x = Math.PI / 2;
268
- plane5.position.y = distanceFromCenterPoint;
269
- plane5.name = "TOP";
270
- //right edge
271
- let plane51 = new three_1.Mesh(edgePlaneGeometry, planeMaterial.clone());
272
- plane51.rotation.x = Math.PI / 2;
273
- plane51.position.y = distanceFromCenterPoint;
274
- plane51.position.x = ((planeSize / 2) + (edgeWidth / 2));
275
- //left edge
276
- let plane52 = new three_1.Mesh(edgePlaneGeometry, planeMaterial.clone());
277
- plane52.rotation.x = Math.PI / 2;
278
- plane52.position.y = distanceFromCenterPoint;
279
- plane52.position.x = -((planeSize / 2) + (edgeWidth / 2));
280
- //top edge
281
- let plane53 = new three_1.Mesh(edgePlaneGeometry, planeMaterial.clone());
282
- plane53.rotation.x = Math.PI / 2;
283
- plane53.position.y = distanceFromCenterPoint;
284
- plane53.rotation.z = Math.PI / 2;
285
- plane53.position.z = ((planeSize / 2) + (edgeWidth / 2));
286
- //bottom edge
287
- let plane54 = new three_1.Mesh(edgePlaneGeometry, planeMaterial.clone());
288
- plane54.rotation.x = Math.PI / 2;
289
- plane54.position.y = distanceFromCenterPoint;
290
- plane54.rotation.z = Math.PI / 2;
291
- plane54.position.z = -((planeSize / 2) + (edgeWidth / 2));
292
- //top left corner
293
- let corner51 = new three_1.Mesh(cornerPlaneGeometry, planeMaterial.clone());
294
- corner51.rotation.x = Math.PI / 2;
295
- corner51.position.y = distanceFromCenterPoint;
296
- corner51.position.z = -((planeSize / 2) + (edgeWidth / 2));
297
- corner51.position.x = -((planeSize / 2) + (edgeWidth / 2));
298
- //top right corner
299
- let corner52 = new three_1.Mesh(cornerPlaneGeometry, planeMaterial.clone());
300
- corner52.rotation.x = Math.PI / 2;
301
- corner52.position.y = distanceFromCenterPoint;
302
- corner52.position.z = -((planeSize / 2) + (edgeWidth / 2));
303
- corner52.position.x = ((planeSize / 2) + (edgeWidth / 2));
304
- //bottom right corner
305
- let corner53 = new three_1.Mesh(cornerPlaneGeometry, planeMaterial.clone());
306
- corner53.rotation.x = Math.PI / 2;
307
- corner53.position.y = distanceFromCenterPoint;
308
- corner53.position.z = ((planeSize / 2) + (edgeWidth / 2));
309
- corner53.position.x = ((planeSize / 2) + (edgeWidth / 2));
310
- //bottom left corner
311
- let corner54 = new three_1.Mesh(cornerPlaneGeometry, planeMaterial.clone());
312
- corner54.rotation.x = Math.PI / 2;
313
- corner54.position.y = distanceFromCenterPoint;
314
- corner54.position.z = ((planeSize / 2) + (edgeWidth / 2));
315
- corner54.position.x = -((planeSize / 2) + (edgeWidth / 2));
316
- //#endregion
317
- //#region Bottom
318
- let plane6 = new three_1.Mesh(planeGeometry, planeMaterial.clone());
319
- plane6.rotation.x = Math.PI / 2;
320
- plane6.position.y = -distanceFromCenterPoint;
321
- plane6.name = "BOTTOM";
322
- //right edge
323
- let plane61 = new three_1.Mesh(edgePlaneGeometry, planeMaterial.clone());
324
- plane61.rotation.x = Math.PI / 2;
325
- plane61.position.y = -distanceFromCenterPoint;
326
- plane61.position.x = ((planeSize / 2) + (edgeWidth / 2));
327
- //left edge
328
- let plane62 = new three_1.Mesh(edgePlaneGeometry, planeMaterial.clone());
329
- plane62.rotation.x = Math.PI / 2;
330
- plane62.position.y = -distanceFromCenterPoint;
331
- plane62.position.x = -((planeSize / 2) + (edgeWidth / 2));
332
- //top edge
333
- let plane63 = new three_1.Mesh(edgePlaneGeometry, planeMaterial.clone());
334
- plane63.rotation.x = Math.PI / 2;
335
- plane63.position.y = -distanceFromCenterPoint;
336
- plane63.rotation.z = Math.PI / 2;
337
- plane63.position.z = ((planeSize / 2) + (edgeWidth / 2));
338
- //bottom edge
339
- let plane64 = new three_1.Mesh(edgePlaneGeometry, planeMaterial.clone());
340
- plane64.rotation.x = Math.PI / 2;
341
- plane64.position.y = -distanceFromCenterPoint;
342
- plane64.rotation.z = Math.PI / 2;
343
- plane64.position.z = -((planeSize / 2) + (edgeWidth / 2));
344
- //top left corner
345
- let corner61 = new three_1.Mesh(cornerPlaneGeometry, planeMaterial.clone());
346
- corner61.rotation.x = Math.PI / 2;
347
- corner61.position.y = -distanceFromCenterPoint;
348
- corner61.position.z = ((planeSize / 2) + (edgeWidth / 2));
349
- corner61.position.x = -((planeSize / 2) + (edgeWidth / 2));
350
- //top right corner
351
- let corner62 = new three_1.Mesh(cornerPlaneGeometry, planeMaterial.clone());
352
- corner62.rotation.x = Math.PI / 2;
353
- corner62.position.y = -distanceFromCenterPoint;
354
- corner62.position.z = ((planeSize / 2) + (edgeWidth / 2));
355
- corner62.position.x = ((planeSize / 2) + (edgeWidth / 2));
356
- //bottom right corner
357
- let corner63 = new three_1.Mesh(cornerPlaneGeometry, planeMaterial.clone());
358
- corner63.rotation.x = Math.PI / 2;
359
- corner63.position.y = -distanceFromCenterPoint;
360
- corner63.position.z = -((planeSize / 2) + (edgeWidth / 2));
361
- corner63.position.x = ((planeSize / 2) + (edgeWidth / 2));
362
- //bottom left corner
363
- let corner64 = new three_1.Mesh(cornerPlaneGeometry, planeMaterial.clone());
364
- corner64.rotation.x = Math.PI / 2;
365
- corner64.position.y = -distanceFromCenterPoint;
366
- corner64.position.z = -((planeSize / 2) + (edgeWidth / 2));
367
- corner64.position.x = -((planeSize / 2) + (edgeWidth / 2));
368
- //#endregion
369
- let groundMaterial = new three_1.MeshBasicMaterial({
370
- color: 0xaaaaaa,
371
- });
372
- let groundGeometry = new three_1.PlaneGeometry(1, 1);
373
- let groundPlane = new three_1.Mesh(groundGeometry, groundMaterial);
374
- groundPlane.rotation.x = -Math.PI / 2;
375
- groundPlane.position.y = -0.6;
376
- //#region Main Plane
377
- this.addObject(plane1);
378
- this.addObject(plane2);
379
- this.addObject(plane3);
380
- this.addObject(plane4);
381
- this.addObject(plane5);
382
- this.addObject(plane6);
383
- this.addObject(groundPlane);
384
- //#endregion
385
- //#region Edge
386
- //right
387
- const plane1131 = new three_1.Mesh();
388
- plane1131.name = "1131";
389
- plane1131.add(plane11);
390
- plane1131.add(plane31);
391
- // plane1131.material = planeMaterial.clone();
392
- this.addObject(plane1131);
393
- //left
394
- const plane1241 = new three_1.Mesh();
395
- plane1241.name = "1241";
396
- plane1241.add(plane12);
397
- plane1241.add(plane41);
398
- // plane1241.material = planeMaterial.clone();
399
- this.addObject(plane1241);
400
- //top
401
- const plane1353 = new three_1.Mesh();
402
- plane1353.name = "1353";
403
- plane1353.add(plane13);
404
- plane1353.add(plane53);
405
- // plane1353.material = planeMaterial.clone();
406
- this.addObject(plane1353);
407
- //bottom
408
- const plane1463 = new three_1.Mesh();
409
- plane1463.name = "1463";
410
- plane1463.add(plane14);
411
- plane1463.add(plane63);
412
- // plane1463.material = planeMaterial.clone();
413
- this.addObject(plane1463);
414
- const plane2464 = new three_1.Mesh();
415
- plane2464.name = "2464";
416
- plane2464.add(plane24);
417
- plane2464.add(plane64);
418
- // plane2464.material = planeMaterial.clone();
419
- this.addObject(plane2464);
420
- //right
421
- const plane3221 = new three_1.Mesh();
422
- plane3221.name = "3221";
423
- plane3221.add(plane32);
424
- plane3221.add(plane21);
425
- // plane3221.material = planeMaterial.clone();
426
- this.addObject(plane3221);
427
- //top
428
- const plane3351 = new three_1.Mesh();
429
- plane3351.name = "3351";
430
- plane3351.add(plane33);
431
- plane3351.add(plane51);
432
- // plane3351.material = planeMaterial.clone();
433
- this.addObject(plane3351);
434
- //bottom
435
- const plane3461 = new three_1.Mesh();
436
- plane3461.name = "3461";
437
- plane3461.add(plane34);
438
- plane3461.add(plane61);
439
- // plane3461.material = planeMaterial.clone();
440
- this.addObject(plane3461);
441
- //left
442
- const plane4222 = new three_1.Mesh();
443
- plane4222.name = "4222";
444
- plane4222.add(plane42);
445
- plane4222.add(plane22);
446
- // plane4222.material = planeMaterial.clone();
447
- this.addObject(plane4222);
448
- //top
449
- const plane4352 = new three_1.Mesh();
450
- plane4352.name = "4352";
451
- plane4352.add(plane43);
452
- plane4352.add(plane52);
453
- // plane4352.material = planeMaterial.clone();
454
- this.addObject(plane4352);
455
- //bottom
456
- const plane4462 = new three_1.Mesh();
457
- plane4462.name = "3462";
458
- plane4462.add(plane44);
459
- plane4462.add(plane62);
460
- // plane4462.material = planeMaterial.clone();
461
- this.addObject(plane4462);
462
- const plane5423 = new three_1.Mesh();
463
- plane5423.name = "5423";
464
- plane5423.add(plane54);
465
- plane5423.add(plane23);
466
- // plane5423.material = planeMaterial.clone();
467
- this.addObject(plane5423);
468
- //#endregion
469
- //#region Corner
470
- // this.addObject(corner11);
471
- // this.addObject(corner12);
472
- // this.addObject(corner13);
473
- // this.addObject(corner14);
474
- // this.addObject(corner21);
475
- // this.addObject(corner22);
476
- // this.addObject(corner23);
477
- // this.addObject(corner24);
478
- // this.addObject(corner31);
479
- // this.addObject(corner32);
480
- // this.addObject(corner33);
481
- // this.addObject(corner34);
482
- // this.addObject(corner41);
483
- // this.addObject(corner42);
484
- // this.addObject(corner43);
485
- // this.addObject(corner44);
486
- // this.addObject(corner51);
487
- // this.addObject(corner52);
488
- // this.addObject(corner53);
489
- // this.addObject(corner54);
490
- // this.addObject(corner61);
491
- // this.addObject(corner62);
492
- // this.addObject(corner63);
493
- // this.addObject(corner64);
494
- const corner1 = new three_1.Mesh();
495
- corner1.name = "corner1";
496
- corner1.add(corner11);
497
- corner1.add(corner54);
498
- corner1.add(corner42);
499
- this.addObject(corner1);
500
- const corner2 = new three_1.Mesh();
501
- corner2.name = "corner2";
502
- corner2.add(corner12);
503
- corner2.add(corner31);
504
- corner2.add(corner53);
505
- this.addObject(corner2);
506
- const corner3 = new three_1.Mesh();
507
- corner3.name = "corner3";
508
- corner3.add(corner13);
509
- corner3.add(corner34);
510
- corner3.add(corner62);
511
- this.addObject(corner3);
512
- const corner4 = new three_1.Mesh();
513
- corner4.name = "corner4";
514
- corner4.add(corner14);
515
- corner4.add(corner43);
516
- corner4.add(corner61);
517
- this.addObject(corner4);
518
- const corner5 = new three_1.Mesh();
519
- corner5.name = "corner5";
520
- corner5.add(corner21);
521
- corner5.add(corner32);
522
- corner5.add(corner52);
523
- this.addObject(corner5);
524
- const corner6 = new three_1.Mesh();
525
- corner6.name = "corner6";
526
- corner6.add(corner22);
527
- corner6.add(corner51);
528
- corner6.add(corner41);
529
- this.addObject(corner6);
530
- const corner7 = new three_1.Mesh();
531
- corner7.name = "corner7";
532
- corner7.add(corner23);
533
- corner7.add(corner44);
534
- corner7.add(corner64);
535
- this.addObject(corner7);
536
- const corner8 = new three_1.Mesh();
537
- corner8.name = "corner8";
538
- corner8.add(corner24);
539
- corner8.add(corner33);
540
- corner8.add(corner63);
541
- this.addObject(corner8);
542
- //#endregion
543
- }
544
- }
545
- exports.CubeScene = CubeScene;
546
- //# sourceMappingURL=cube-scene.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cube-scene.js","sourceRoot":"","sources":["../../../../src/gui/navigation-cube/components/cube-scene.ts"],"names":[],"mappings":"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"}