@crystaldesign/real-time-viewer 24.12.0-beta.3 → 24.12.0-beta.31

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 (225) hide show
  1. package/build/esm/index.js +341 -149
  2. package/build/types/real-time-viewer/src/CustomMaterial/index.d.ts.map +1 -1
  3. package/build/types/real-time-viewer/src/SelectionHandler/index.d.ts.map +1 -1
  4. package/build/types/real-time-viewer/src/ViewpointGui.d.ts +3 -2
  5. package/build/types/real-time-viewer/src/ViewpointGui.d.ts.map +1 -1
  6. package/build/types/real-time-viewer/src/controls/index.d.ts.map +1 -1
  7. package/build/types/real-time-viewer/src/index.d.ts +1 -1
  8. package/build/types/real-time-viewer/src/index.d.ts.map +1 -1
  9. package/build/types/real-time-viewer/src/parser/buildScene/index.d.ts +1 -1
  10. package/build/types/real-time-viewer/src/parser/buildScene/index.d.ts.map +1 -1
  11. package/build/types/real-time-viewer/src/parser/createCams/index.d.ts.map +1 -1
  12. package/build/types/real-time-viewer/src/parser/index.d.ts.map +1 -1
  13. package/build/types/real-time-viewer/src/store/GridStore.d.ts.map +1 -1
  14. package/build/types/real-time-viewer/src/store/SceneStore.d.ts +15 -1
  15. package/build/types/real-time-viewer/src/store/SceneStore.d.ts.map +1 -1
  16. package/build/types/real-time-viewer/src/store/UIStore.d.ts +0 -1
  17. package/build/types/real-time-viewer/src/store/UIStore.d.ts.map +1 -1
  18. package/build/types/real-time-viewer/src/store/UtilStore.d.ts +6 -0
  19. package/build/types/real-time-viewer/src/store/UtilStore.d.ts.map +1 -1
  20. package/build/types/real-time-viewer/src/useRealTimeRenderData.d.ts +0 -1
  21. package/build/types/real-time-viewer/src/useRealTimeRenderData.d.ts.map +1 -1
  22. package/build/umd/1309.real-time-viewer.umd.min.js +2 -0
  23. package/build/umd/1309.real-time-viewer.umd.min.js.LICENSE.txt +1 -0
  24. package/build/umd/1447.real-time-viewer.umd.min.js +2 -0
  25. package/build/umd/1447.real-time-viewer.umd.min.js.LICENSE.txt +1 -0
  26. package/build/umd/1499.real-time-viewer.umd.min.js +2 -0
  27. package/build/umd/1499.real-time-viewer.umd.min.js.LICENSE.txt +1 -0
  28. package/build/umd/1731.real-time-viewer.umd.min.js +2 -0
  29. package/build/umd/1731.real-time-viewer.umd.min.js.LICENSE.txt +1 -0
  30. package/build/umd/1781.real-time-viewer.umd.min.js +2 -0
  31. package/build/umd/1781.real-time-viewer.umd.min.js.LICENSE.txt +1 -0
  32. package/build/umd/1896.real-time-viewer.umd.min.js +2 -0
  33. package/build/umd/1896.real-time-viewer.umd.min.js.LICENSE.txt +1 -0
  34. package/build/umd/2011.real-time-viewer.umd.min.js +2 -0
  35. package/build/umd/2011.real-time-viewer.umd.min.js.LICENSE.txt +1 -0
  36. package/build/umd/2439.real-time-viewer.umd.min.js +2 -0
  37. package/build/umd/2439.real-time-viewer.umd.min.js.LICENSE.txt +1 -0
  38. package/build/umd/2817.real-time-viewer.umd.min.js +2 -0
  39. package/build/umd/2817.real-time-viewer.umd.min.js.LICENSE.txt +1 -0
  40. package/build/umd/2871.real-time-viewer.umd.min.js +2 -0
  41. package/build/umd/2871.real-time-viewer.umd.min.js.LICENSE.txt +1 -0
  42. package/build/umd/3116.real-time-viewer.umd.min.js +2 -0
  43. package/build/umd/3116.real-time-viewer.umd.min.js.LICENSE.txt +1 -0
  44. package/build/umd/3243.real-time-viewer.umd.min.js +2 -0
  45. package/build/umd/3243.real-time-viewer.umd.min.js.LICENSE.txt +1 -0
  46. package/build/umd/3351.real-time-viewer.umd.min.js +2 -0
  47. package/build/umd/3351.real-time-viewer.umd.min.js.LICENSE.txt +1 -0
  48. package/build/umd/3456.real-time-viewer.umd.min.js +2 -0
  49. package/build/umd/3456.real-time-viewer.umd.min.js.LICENSE.txt +1 -0
  50. package/build/umd/3631.real-time-viewer.umd.min.js +2 -0
  51. package/build/umd/3631.real-time-viewer.umd.min.js.LICENSE.txt +1 -0
  52. package/build/umd/3945.real-time-viewer.umd.min.js +2 -0
  53. package/build/umd/3945.real-time-viewer.umd.min.js.LICENSE.txt +1 -0
  54. package/build/umd/3956.real-time-viewer.umd.min.js +2 -0
  55. package/build/umd/3956.real-time-viewer.umd.min.js.LICENSE.txt +1 -0
  56. package/build/umd/4091.real-time-viewer.umd.min.js +2 -0
  57. package/build/umd/4091.real-time-viewer.umd.min.js.LICENSE.txt +1 -0
  58. package/build/umd/410.real-time-viewer.umd.min.js +2 -0
  59. package/build/umd/410.real-time-viewer.umd.min.js.LICENSE.txt +1 -0
  60. package/build/umd/4153.real-time-viewer.umd.min.js +2 -0
  61. package/build/umd/4153.real-time-viewer.umd.min.js.LICENSE.txt +1 -0
  62. package/build/umd/4248.real-time-viewer.umd.min.js +2 -0
  63. package/build/umd/4248.real-time-viewer.umd.min.js.LICENSE.txt +1 -0
  64. package/build/umd/4378.real-time-viewer.umd.min.js +2 -0
  65. package/build/umd/4378.real-time-viewer.umd.min.js.LICENSE.txt +1 -0
  66. package/build/umd/4431.real-time-viewer.umd.min.js +2 -0
  67. package/build/umd/4431.real-time-viewer.umd.min.js.LICENSE.txt +1 -0
  68. package/build/umd/4542.real-time-viewer.umd.min.js +2 -0
  69. package/build/umd/4542.real-time-viewer.umd.min.js.LICENSE.txt +1 -0
  70. package/build/umd/4602.real-time-viewer.umd.min.js +2 -0
  71. package/build/umd/4602.real-time-viewer.umd.min.js.LICENSE.txt +1 -0
  72. package/build/umd/4661.real-time-viewer.umd.min.js +2 -0
  73. package/build/umd/4661.real-time-viewer.umd.min.js.LICENSE.txt +1 -0
  74. package/build/umd/4669.real-time-viewer.umd.min.js +2 -0
  75. package/build/umd/4669.real-time-viewer.umd.min.js.LICENSE.txt +1 -0
  76. package/build/umd/4711.real-time-viewer.umd.min.js +2 -0
  77. package/build/umd/4711.real-time-viewer.umd.min.js.LICENSE.txt +1 -0
  78. package/build/umd/4823.real-time-viewer.umd.min.js +2 -0
  79. package/build/umd/4823.real-time-viewer.umd.min.js.LICENSE.txt +1 -0
  80. package/build/umd/5462.real-time-viewer.umd.min.js +2 -0
  81. package/build/umd/5462.real-time-viewer.umd.min.js.LICENSE.txt +1 -0
  82. package/build/umd/5478.real-time-viewer.umd.min.js +2 -0
  83. package/build/umd/5478.real-time-viewer.umd.min.js.LICENSE.txt +1 -0
  84. package/build/umd/5483.real-time-viewer.umd.min.js +2 -0
  85. package/build/umd/5483.real-time-viewer.umd.min.js.LICENSE.txt +1 -0
  86. package/build/umd/5555.real-time-viewer.umd.min.js +2 -0
  87. package/build/umd/5555.real-time-viewer.umd.min.js.LICENSE.txt +1 -0
  88. package/build/umd/5860.real-time-viewer.umd.min.js +2 -0
  89. package/build/umd/5860.real-time-viewer.umd.min.js.LICENSE.txt +1 -0
  90. package/build/umd/5922.real-time-viewer.umd.min.js +2 -0
  91. package/build/umd/5922.real-time-viewer.umd.min.js.LICENSE.txt +1 -0
  92. package/build/umd/6095.real-time-viewer.umd.min.js +2 -0
  93. package/build/umd/6095.real-time-viewer.umd.min.js.LICENSE.txt +1 -0
  94. package/build/umd/615.real-time-viewer.umd.min.js +2 -0
  95. package/build/umd/615.real-time-viewer.umd.min.js.LICENSE.txt +1 -0
  96. package/build/umd/6230.real-time-viewer.umd.min.js +2 -0
  97. package/build/umd/6230.real-time-viewer.umd.min.js.LICENSE.txt +1 -0
  98. package/build/umd/6357.real-time-viewer.umd.min.js +2 -0
  99. package/build/umd/6357.real-time-viewer.umd.min.js.LICENSE.txt +1 -0
  100. package/build/umd/6373.real-time-viewer.umd.min.js +2 -0
  101. package/build/umd/6373.real-time-viewer.umd.min.js.LICENSE.txt +1 -0
  102. package/build/umd/653.real-time-viewer.umd.min.js +2 -0
  103. package/build/umd/653.real-time-viewer.umd.min.js.LICENSE.txt +1 -0
  104. package/build/umd/6656.real-time-viewer.umd.min.js +2 -0
  105. package/build/umd/6656.real-time-viewer.umd.min.js.LICENSE.txt +1 -0
  106. package/build/umd/6829.real-time-viewer.umd.min.js +2 -0
  107. package/build/umd/6829.real-time-viewer.umd.min.js.LICENSE.txt +1 -0
  108. package/build/umd/6912.real-time-viewer.umd.min.js +2 -0
  109. package/build/umd/6912.real-time-viewer.umd.min.js.LICENSE.txt +1 -0
  110. package/build/umd/7042.real-time-viewer.umd.min.js +2 -0
  111. package/build/umd/7042.real-time-viewer.umd.min.js.LICENSE.txt +1 -0
  112. package/build/umd/710.real-time-viewer.umd.min.js +2 -0
  113. package/build/umd/710.real-time-viewer.umd.min.js.LICENSE.txt +1 -0
  114. package/build/umd/7142.real-time-viewer.umd.min.js +2 -0
  115. package/build/umd/7142.real-time-viewer.umd.min.js.LICENSE.txt +1 -0
  116. package/build/umd/7229.real-time-viewer.umd.min.js +2 -0
  117. package/build/umd/7229.real-time-viewer.umd.min.js.LICENSE.txt +1 -0
  118. package/build/umd/7276.real-time-viewer.umd.min.js +2 -0
  119. package/build/umd/7276.real-time-viewer.umd.min.js.LICENSE.txt +1 -0
  120. package/build/umd/7352.real-time-viewer.umd.min.js +2 -0
  121. package/build/umd/7352.real-time-viewer.umd.min.js.LICENSE.txt +1 -0
  122. package/build/umd/7501.real-time-viewer.umd.min.js +2 -0
  123. package/build/umd/7501.real-time-viewer.umd.min.js.LICENSE.txt +1 -0
  124. package/build/umd/7607.real-time-viewer.umd.min.js +2 -0
  125. package/build/umd/7607.real-time-viewer.umd.min.js.LICENSE.txt +1 -0
  126. package/build/umd/7729.real-time-viewer.umd.min.js +2 -0
  127. package/build/umd/7729.real-time-viewer.umd.min.js.LICENSE.txt +1 -0
  128. package/build/umd/7751.real-time-viewer.umd.min.js +2 -0
  129. package/build/umd/7751.real-time-viewer.umd.min.js.LICENSE.txt +1 -0
  130. package/build/umd/7754.real-time-viewer.umd.min.js +2 -0
  131. package/build/umd/7754.real-time-viewer.umd.min.js.LICENSE.txt +1 -0
  132. package/build/umd/8078.real-time-viewer.umd.min.js +2 -0
  133. package/build/umd/8078.real-time-viewer.umd.min.js.LICENSE.txt +1 -0
  134. package/build/umd/8105.real-time-viewer.umd.min.js +2 -0
  135. package/build/umd/8105.real-time-viewer.umd.min.js.LICENSE.txt +1 -0
  136. package/build/umd/815.real-time-viewer.umd.min.js +2 -0
  137. package/build/umd/815.real-time-viewer.umd.min.js.LICENSE.txt +1 -0
  138. package/build/umd/8240.real-time-viewer.umd.min.js +2 -0
  139. package/build/umd/8240.real-time-viewer.umd.min.js.LICENSE.txt +1 -0
  140. package/build/umd/8333.real-time-viewer.umd.min.js +2 -0
  141. package/build/umd/8333.real-time-viewer.umd.min.js.LICENSE.txt +1 -0
  142. package/build/umd/8526.real-time-viewer.umd.min.js +2 -0
  143. package/build/umd/8526.real-time-viewer.umd.min.js.LICENSE.txt +1 -0
  144. package/build/umd/8620.real-time-viewer.umd.min.js +2 -0
  145. package/build/umd/8620.real-time-viewer.umd.min.js.LICENSE.txt +1 -0
  146. package/build/umd/8728.real-time-viewer.umd.min.js +2 -0
  147. package/build/umd/8728.real-time-viewer.umd.min.js.LICENSE.txt +1 -0
  148. package/build/umd/8729.real-time-viewer.umd.min.js +2 -0
  149. package/build/umd/8729.real-time-viewer.umd.min.js.LICENSE.txt +1 -0
  150. package/build/umd/8991.real-time-viewer.umd.min.js +2 -0
  151. package/build/umd/8991.real-time-viewer.umd.min.js.LICENSE.txt +1 -0
  152. package/build/umd/9078.real-time-viewer.umd.min.js +2 -0
  153. package/build/umd/9078.real-time-viewer.umd.min.js.LICENSE.txt +1 -0
  154. package/build/umd/913.real-time-viewer.umd.min.js +2 -0
  155. package/build/umd/913.real-time-viewer.umd.min.js.LICENSE.txt +1 -0
  156. package/build/umd/930.real-time-viewer.umd.min.js +2 -0
  157. package/build/umd/930.real-time-viewer.umd.min.js.LICENSE.txt +1 -0
  158. package/build/umd/9334.real-time-viewer.umd.min.js +2 -0
  159. package/build/umd/9334.real-time-viewer.umd.min.js.LICENSE.txt +1 -0
  160. package/build/umd/9383.real-time-viewer.umd.min.js +2 -0
  161. package/build/umd/9383.real-time-viewer.umd.min.js.LICENSE.txt +1 -0
  162. package/build/umd/9568.real-time-viewer.umd.min.js +2 -0
  163. package/build/umd/9568.real-time-viewer.umd.min.js.LICENSE.txt +1 -0
  164. package/build/umd/9712.real-time-viewer.umd.min.js +2 -0
  165. package/build/umd/9712.real-time-viewer.umd.min.js.LICENSE.txt +1 -0
  166. package/build/umd/9884.real-time-viewer.umd.min.js +2 -0
  167. package/build/umd/9884.real-time-viewer.umd.min.js.LICENSE.txt +1 -0
  168. package/build/umd/real-time-viewer.umd.min.js +1 -1
  169. package/build/umd/real-time-viewer.umd.min.js.LICENSE.txt +2 -7
  170. package/build/umd/report.html +1 -1
  171. package/package.json +19 -19
  172. package/build/umd/100.real-time-viewer.umd.min.js +0 -2
  173. package/build/umd/100.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  174. package/build/umd/132.real-time-viewer.umd.min.js +0 -2
  175. package/build/umd/132.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  176. package/build/umd/145.real-time-viewer.umd.min.js +0 -2
  177. package/build/umd/145.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  178. package/build/umd/152.real-time-viewer.umd.min.js +0 -2
  179. package/build/umd/152.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  180. package/build/umd/173.real-time-viewer.umd.min.js +0 -2
  181. package/build/umd/173.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  182. package/build/umd/190.real-time-viewer.umd.min.js +0 -2
  183. package/build/umd/190.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  184. package/build/umd/224.real-time-viewer.umd.min.js +0 -2
  185. package/build/umd/224.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  186. package/build/umd/292.real-time-viewer.umd.min.js +0 -2
  187. package/build/umd/292.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  188. package/build/umd/333.real-time-viewer.umd.min.js +0 -2
  189. package/build/umd/333.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  190. package/build/umd/360.real-time-viewer.umd.min.js +0 -2
  191. package/build/umd/360.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  192. package/build/umd/508.real-time-viewer.umd.min.js +0 -2
  193. package/build/umd/508.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  194. package/build/umd/552.real-time-viewer.umd.min.js +0 -2
  195. package/build/umd/552.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  196. package/build/umd/593.real-time-viewer.umd.min.js +0 -2
  197. package/build/umd/593.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  198. package/build/umd/595.real-time-viewer.umd.min.js +0 -2
  199. package/build/umd/595.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  200. package/build/umd/662.real-time-viewer.umd.min.js +0 -2
  201. package/build/umd/662.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  202. package/build/umd/664.real-time-viewer.umd.min.js +0 -2
  203. package/build/umd/664.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  204. package/build/umd/67.real-time-viewer.umd.min.js +0 -2
  205. package/build/umd/67.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  206. package/build/umd/689.real-time-viewer.umd.min.js +0 -2
  207. package/build/umd/689.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  208. package/build/umd/691.real-time-viewer.umd.min.js +0 -2
  209. package/build/umd/691.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  210. package/build/umd/856.real-time-viewer.umd.min.js +0 -2
  211. package/build/umd/856.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  212. package/build/umd/882.real-time-viewer.umd.min.js +0 -2
  213. package/build/umd/882.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  214. package/build/umd/934.real-time-viewer.umd.min.js +0 -2
  215. package/build/umd/934.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  216. package/build/umd/942.real-time-viewer.umd.min.js +0 -2
  217. package/build/umd/942.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  218. package/build/umd/951.real-time-viewer.umd.min.js +0 -2
  219. package/build/umd/951.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  220. package/build/umd/964.real-time-viewer.umd.min.js +0 -2
  221. package/build/umd/964.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  222. package/build/umd/974.real-time-viewer.umd.min.js +0 -2
  223. package/build/umd/974.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
  224. package/build/umd/98.real-time-viewer.umd.min.js +0 -2
  225. package/build/umd/98.real-time-viewer.umd.min.js.LICENSE.txt +0 -1
@@ -26,14 +26,15 @@ import { Tools, Observable, WebRequest } from '@babylonjs/core/Misc';
26
26
  import { SceneOptimizerOptions, ShadowsOptimization, RenderTargetsOptimization, SceneOptimizer } from '@babylonjs/core/Misc/sceneOptimizer';
27
27
  import { getLogger, DivaError } from '@crystaldesign/diva-core';
28
28
  import { TransformNode } from '@babylonjs/core/Meshes/transformNode';
29
- import { Ellipse, Rectangle, Button, TextBlock, Image, AdvancedDynamicTexture } from '@babylonjs/gui';
30
- import { Matrix as Matrix$1, Vector3 as Vector3$1 } from '@babylonjs/core/Maths/math';
29
+ import { Ellipse, Rectangle, Button, TextBlock, AdvancedDynamicTexture, Image } from '@babylonjs/gui';
30
+ import { Matrix as Matrix$1, Vector3 as Vector3$1, Frustum } from '@babylonjs/core/Maths/math';
31
31
  import { Engine } from '@babylonjs/core/Engines/engine';
32
32
  import { Scene } from '@babylonjs/core/scene';
33
33
  import { DracoCompression } from '@babylonjs/core/Meshes/Compression/dracoCompression';
34
34
  import { SceneLoader } from '@babylonjs/core/Loading/sceneLoader';
35
35
  import { PBRMetallicRoughnessMaterial } from '@babylonjs/core/Materials/PBR/pbrMetallicRoughnessMaterial';
36
36
  import { DirectionalLight } from '@babylonjs/core/Lights/directionalLight';
37
+ import { BoundingInfo } from '@babylonjs/core/Culling/boundingInfo';
37
38
  import '@babylonjs/loaders/glTF/2.0/';
38
39
  import { jsxs, jsx } from 'react/jsx-runtime';
39
40
 
@@ -59,17 +60,18 @@ function GetCameraControls(camera) {
59
60
  var initDistance = 0;
60
61
  function renderLoop() {
61
62
  if (!sceneStore.doRenderControlLoop || sceneStore.isInitializing || uistore.isStaticBg) return;
63
+ if (sceneStore.cameraTargetPosition.x == 0 && sceneStore.cameraTargetPosition.y == 0 && sceneStore.cameraTargetPosition.z == 0) sceneStore.setCameraTarget();
62
64
  uistore.onMove();
63
65
  var stopRender = true;
64
66
  var delta = sceneStore.scene.getEngine().getDeltaTime();
65
67
  var deltaCamPos = sceneStore.targetCameraPosition.subtract(camera.position).multiplyByFloats(delta / 100, delta / 100, delta / 100);
66
68
  var deltaTarget = sceneStore.cameraTargetPosition.subtract(camera.target).multiplyByFloats(delta / 100, delta / 100, delta / 100);
67
- if (Math.abs(deltaCamPos.x) + Math.abs(deltaCamPos.y) + Math.abs(deltaCamPos.z) > 0.01) {
69
+ if (Math.abs(deltaCamPos.x) + Math.abs(deltaCamPos.y) + Math.abs(deltaCamPos.z) > 0.0001) {
68
70
  camera.position = camera.position.addInPlaceFromFloats(deltaCamPos.x, deltaCamPos.y, deltaCamPos.z);
69
71
  camera.setTarget(sceneStore.cameraTargetPosition);
70
72
  stopRender = false;
71
73
  }
72
- if (Math.abs(deltaTarget.x) + Math.abs(deltaTarget.y) + Math.abs(deltaTarget.z) > 0.01) {
74
+ if (Math.abs(deltaTarget.x) + Math.abs(deltaTarget.y) + Math.abs(deltaTarget.z) > 0.0001) {
73
75
  camera.setTarget(camera.target.addInPlaceFromFloats(deltaTarget.x, deltaTarget.y, deltaTarget.z));
74
76
  stopRender = false;
75
77
  }
@@ -125,7 +127,7 @@ function GetCameraControls(camera) {
125
127
  var newPosition = sceneStore.targetCameraPosition.add(directionVector.scale(distance * previousDistToTarget));
126
128
  var distToTarget = Vector3.Distance(sceneStore.cameraTargetPosition, newPosition);
127
129
  if (distToTarget < 0.1) return;
128
- if (distToTarget > 15) return;
130
+ if (distToTarget > 75) return;
129
131
  sceneStore.targetCameraPosition = newPosition;
130
132
  }
131
133
  function onRotate(deltaX, deltaY) {
@@ -338,9 +340,9 @@ function getGridControls(scene, element, selected, elements, selectMesh) {
338
340
  };
339
341
  }
340
342
 
341
- function _createForOfIteratorHelper$8(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$8(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
342
- function _unsupportedIterableToArray$8(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$8(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$8(r, a) : void 0; } }
343
- function _arrayLikeToArray$8(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
343
+ function _createForOfIteratorHelper$9(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$9(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
344
+ function _unsupportedIterableToArray$9(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$9(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$9(r, a) : void 0; } }
345
+ function _arrayLikeToArray$9(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
344
346
  function Grids () {
345
347
  var utilStore = useUtilStoreContext();
346
348
  var sceneStore = useSceneStoreContext();
@@ -407,7 +409,7 @@ function Grids () {
407
409
  var _Object$entries2$_i = _slicedToArray(_Object$entries2[_i2], 2),
408
410
  gridName = _Object$entries2$_i[0];
409
411
  _Object$entries2$_i[1];
410
- var _iterator = _createForOfIteratorHelper$8(plannedPlaceOnGrid.grids[gridName].accessories),
412
+ var _iterator = _createForOfIteratorHelper$9(plannedPlaceOnGrid.grids[gridName].accessories),
411
413
  _step;
412
414
  try {
413
415
  var _loop4 = function _loop4() {
@@ -862,8 +864,8 @@ function ownKeys$1(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymb
862
864
  function _objectSpread$1(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
863
865
  function createCams(scene, activeViewpoint, viewPoints) {
864
866
  var _useUtilStoreContext = useUtilStoreContext(),
865
- degreesToRadians = _useUtilStoreContext.degreesToRadians,
866
- vector3ToBVector3 = _useUtilStoreContext.vector3ToBVector3;
867
+ vector3ToBVector3 = _useUtilStoreContext.vector3ToBVector3,
868
+ degreesToRadians = _useUtilStoreContext.degreesToRadians;
867
869
  function createCam(_ref) {
868
870
  var name = _ref.name,
869
871
  pos = _ref.pos,
@@ -911,22 +913,21 @@ function createCams(scene, activeViewpoint, viewPoints) {
911
913
  })];
912
914
  }
913
915
  function updateCam(camera, scene) {
916
+ if (camera.pos.x == 0 && camera.pos.y == 0 && camera.pos.z == 0) return;
917
+ var utilStore = useUtilStoreContext();
914
918
  var sceneStore = useSceneStoreContext();
915
- var _useUtilStoreContext2 = useUtilStoreContext(),
916
- degreesToRadians = _useUtilStoreContext2.degreesToRadians,
917
- vector3ToBVector3 = _useUtilStoreContext2.vector3ToBVector3;
918
919
  var cam = scene.getCameraByName('defaultCam');
919
- var newPos = vector3ToBVector3(camera.pos).multiply(new Vector3(-0.01, 0.01, 0.01));
920
+ var newPos = utilStore.vector3ToBVector3(camera.pos).multiply(new Vector3(-0.01, 0.01, 0.01));
920
921
  cam.position = newPos;
921
- cam.rotation = degreesToRadians(vector3ToBVector3(_objectSpread$1(_objectSpread$1({}, camera.rot), {}, {
922
+ cam.rotation = utilStore.degreesToRadians(utilStore.vector3ToBVector3(_objectSpread$1(_objectSpread$1({}, camera.rot), {}, {
922
923
  x: -camera.rot.x
923
924
  })));
924
925
  sceneStore.targetCameraPosition = newPos;
925
926
  }
926
927
 
927
- function _createForOfIteratorHelper$7(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$7(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
928
- function _unsupportedIterableToArray$7(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$7(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$7(r, a) : void 0; } }
929
- function _arrayLikeToArray$7(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
928
+ function _createForOfIteratorHelper$8(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$8(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
929
+ function _unsupportedIterableToArray$8(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$8(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$8(r, a) : void 0; } }
930
+ function _arrayLikeToArray$8(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
930
931
  /*
931
932
  SceneStore
932
933
  Wraps the scene with additional data and methods
@@ -942,6 +943,7 @@ var SceneStore = /*#__PURE__*/function () {
942
943
  _defineProperty(this, "_geos", []);
943
944
  _defineProperty(this, "_sceneConstruct", {});
944
945
  _defineProperty(this, "_hasRendered", false);
946
+ _defineProperty(this, "_hasPlanned", false);
945
947
  _defineProperty(this, "_utilStore", void 0);
946
948
  _defineProperty(this, "_cache", []);
947
949
  _defineProperty(this, "_ssao", undefined);
@@ -958,6 +960,7 @@ var SceneStore = /*#__PURE__*/function () {
958
960
  _defineProperty(this, "_cameraTargetPosition", Vector3.Zero());
959
961
  _defineProperty(this, "_targetCameraPosition", Vector3.Zero());
960
962
  _defineProperty(this, "_selectedElement", void 0);
963
+ _defineProperty(this, "_focusedElement", void 0);
961
964
  _defineProperty(this, "light", undefined);
962
965
  _defineProperty(this, "changedElements", void 0);
963
966
  scene.clearColor = new Color4(1, 1, 1, 1);
@@ -1044,6 +1047,29 @@ var SceneStore = /*#__PURE__*/function () {
1044
1047
  set: function set(element) {
1045
1048
  this._selectedElement = element;
1046
1049
  }
1050
+ }, {
1051
+ key: "focusedElement",
1052
+ get: function get() {
1053
+ var _this$_focusedElement;
1054
+ if (!this._focusedElement) {
1055
+ var root = this.scene.getTransformNodeByName('Root');
1056
+ if (root) {
1057
+ var bbox = root.getHierarchyBoundingVectors();
1058
+ this._focusedElement = {
1059
+ id: this.getId(root),
1060
+ name: 'Root',
1061
+ position: root.absolutePosition,
1062
+ size: Vector3.Distance(bbox.min, bbox.max)
1063
+ };
1064
+ }
1065
+ }
1066
+ return (_this$_focusedElement = this._focusedElement) !== null && _this$_focusedElement !== void 0 ? _this$_focusedElement : {
1067
+ id: 'Root',
1068
+ name: 'Root',
1069
+ position: Vector3.Zero(),
1070
+ size: 0
1071
+ };
1072
+ }
1047
1073
  }, {
1048
1074
  key: "controlRenderLoop",
1049
1075
  get: function get() {
@@ -1072,12 +1098,12 @@ var SceneStore = /*#__PURE__*/function () {
1072
1098
  var _this$_sceneConstruct2;
1073
1099
  var elms = [];
1074
1100
  if (!((_this$_sceneConstruct2 = this._sceneConstruct.root) !== null && _this$_sceneConstruct2 !== void 0 && _this$_sceneConstruct2.sets)) return [];
1075
- var _iterator = _createForOfIteratorHelper$7(this._sceneConstruct.root.sets),
1101
+ var _iterator = _createForOfIteratorHelper$8(this._sceneConstruct.root.sets),
1076
1102
  _step;
1077
1103
  try {
1078
1104
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
1079
1105
  var set = _step.value;
1080
- var _iterator2 = _createForOfIteratorHelper$7(set.elements),
1106
+ var _iterator2 = _createForOfIteratorHelper$8(set.elements),
1081
1107
  _step2;
1082
1108
  try {
1083
1109
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
@@ -1132,12 +1158,12 @@ var SceneStore = /*#__PURE__*/function () {
1132
1158
  value: function getElementByName(name) {
1133
1159
  var _this$_sceneConstruct3, _this$_sceneConstruct4;
1134
1160
  if (!((_this$_sceneConstruct3 = this._sceneConstruct.root) !== null && _this$_sceneConstruct3 !== void 0 && _this$_sceneConstruct3.sets)) return undefined;
1135
- var _iterator3 = _createForOfIteratorHelper$7((_this$_sceneConstruct4 = this._sceneConstruct.root) === null || _this$_sceneConstruct4 === void 0 ? void 0 : _this$_sceneConstruct4.sets),
1161
+ var _iterator3 = _createForOfIteratorHelper$8((_this$_sceneConstruct4 = this._sceneConstruct.root) === null || _this$_sceneConstruct4 === void 0 ? void 0 : _this$_sceneConstruct4.sets),
1136
1162
  _step3;
1137
1163
  try {
1138
1164
  for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
1139
1165
  var set = _step3.value;
1140
- var _iterator4 = _createForOfIteratorHelper$7(set.elements),
1166
+ var _iterator4 = _createForOfIteratorHelper$8(set.elements),
1141
1167
  _step4;
1142
1168
  try {
1143
1169
  for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
@@ -1162,12 +1188,12 @@ var SceneStore = /*#__PURE__*/function () {
1162
1188
  value: function getElementNameById(id) {
1163
1189
  var _this$_sceneConstruct5, _this$_sceneConstruct6;
1164
1190
  if (!((_this$_sceneConstruct5 = this._sceneConstruct.root) !== null && _this$_sceneConstruct5 !== void 0 && _this$_sceneConstruct5.sets)) return undefined;
1165
- var _iterator5 = _createForOfIteratorHelper$7((_this$_sceneConstruct6 = this._sceneConstruct.root) === null || _this$_sceneConstruct6 === void 0 ? void 0 : _this$_sceneConstruct6.sets),
1191
+ var _iterator5 = _createForOfIteratorHelper$8((_this$_sceneConstruct6 = this._sceneConstruct.root) === null || _this$_sceneConstruct6 === void 0 ? void 0 : _this$_sceneConstruct6.sets),
1166
1192
  _step5;
1167
1193
  try {
1168
1194
  for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
1169
1195
  var set = _step5.value;
1170
- var _iterator6 = _createForOfIteratorHelper$7(set.elements),
1196
+ var _iterator6 = _createForOfIteratorHelper$8(set.elements),
1171
1197
  _step6;
1172
1198
  try {
1173
1199
  for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
@@ -1200,6 +1226,15 @@ var SceneStore = /*#__PURE__*/function () {
1200
1226
  if (!value) throw new Error("can't unrender");
1201
1227
  this._hasRendered = value;
1202
1228
  }
1229
+ }, {
1230
+ key: "hasPlanned",
1231
+ get: function get() {
1232
+ return this._hasPlanned;
1233
+ },
1234
+ set: function set(value) {
1235
+ if (!value) throw new Error("can't set has planned to false");
1236
+ this._hasPlanned = value;
1237
+ }
1203
1238
  }, {
1204
1239
  key: "cams",
1205
1240
  get: function get() {
@@ -1299,6 +1334,18 @@ var SceneStore = /*#__PURE__*/function () {
1299
1334
  geos: []
1300
1335
  });
1301
1336
  }
1337
+ }, {
1338
+ key: "removeElement",
1339
+ value: function removeElement(hqs) {
1340
+ var _this$_sceneConstruct8;
1341
+ var set = (_this$_sceneConstruct8 = this._sceneConstruct.root) === null || _this$_sceneConstruct8 === void 0 ? void 0 : _this$_sceneConstruct8.sets[this._sceneConstruct.root.sets.length - 1];
1342
+ if (!set) {
1343
+ throw new Error("can't register sets before root");
1344
+ }
1345
+ set.elements = set.elements.filter(function (el) {
1346
+ return el.hqs.name != hqs.name;
1347
+ });
1348
+ }
1302
1349
  }, {
1303
1350
  key: "shouldExport",
1304
1351
  value: function shouldExport(node) {
@@ -1380,6 +1427,45 @@ var SceneStore = /*#__PURE__*/function () {
1380
1427
  this.cameraTargetPosition = pos;
1381
1428
  // this.doRenderControlLoop = true;
1382
1429
  }
1430
+ }, {
1431
+ key: "getId",
1432
+ value: function getId(ob) {
1433
+ var id = ob.name;
1434
+ while (ob.parent) {
1435
+ id += '.' + ob.name;
1436
+ ob = ob.parent;
1437
+ }
1438
+ return id;
1439
+ }
1440
+ }, {
1441
+ key: "focusElement",
1442
+ value: function focusElement(root) {
1443
+ if (!root) root = this.scene.transformNodes.find(function (transformNode) {
1444
+ return transformNode.name == 'Root';
1445
+ });
1446
+ if (!root) return;
1447
+ var engine = this.scene.getEngine();
1448
+ var cam = this.scene.activeCamera;
1449
+ var bbox = root.getHierarchyBoundingVectors();
1450
+ var center = Vector3.Center(bbox.min, bbox.max);
1451
+ var radius = Vector3.Distance(bbox.min, bbox.max) / 2;
1452
+ if (radius == Infinity) return;
1453
+ var aspectRatio = engine.getRenderWidth() / engine.getRenderHeight();
1454
+ var distance = radius / Math.tan(cam.fov * 0.75);
1455
+ var direction = cam.getDirection(Vector3.Backward());
1456
+ if (aspectRatio > 1) distance *= aspectRatio;
1457
+ var newPosition = center.add(direction.scale(distance));
1458
+ if (newPosition.x == 0 && newPosition.y == 0 && newPosition.z == 0) return;
1459
+ this._focusedElement = {
1460
+ id: this.getId(root),
1461
+ name: root.id,
1462
+ position: root.absolutePosition,
1463
+ size: Vector3.Distance(bbox.min, bbox.max)
1464
+ };
1465
+ this.cameraTargetPosition = center;
1466
+ this.targetCameraPosition = newPosition;
1467
+ this.doRenderControlLoop = true;
1468
+ }
1383
1469
  }, {
1384
1470
  key: "getMaxCamPosition",
1385
1471
  value: function getMaxCamPosition() {
@@ -1397,69 +1483,81 @@ var delButton = "data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%
1397
1483
 
1398
1484
  var gdelButton = "data:image/svg+xml,%3Csvg%20width%3D%2216%22%20height%3D%2221%22%20viewBox%3D%220%200%2016%2021%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M15.2784%203.0226H10.9717V2.08029C10.9717%201.35784%2010.4151%200.72963%209.71198%200.72963H6.78229C6.10846%200.72963%205.52252%201.32643%205.52252%202.08029V3.0226H1.21588C0.981506%203.0226%200.776428%203.24248%200.776428%203.49376C0.776428%203.74505%200.981506%203.96492%201.21588%203.96492H2.18268V17.7542C2.18268%2019.0734%203.17877%2020.11%204.37994%2020.11H12.1436C13.3741%2020.11%2014.3409%2019.042%2014.3409%2017.7542V3.93351H15.3077C15.5714%203.93351%2015.7764%203.71364%2015.7764%203.46235C15.7764%203.17966%2015.5421%203.0226%2015.2784%203.0226ZM6.43073%202.08029C6.43073%201.829%206.6358%201.67195%206.78229%201.67195H9.71198C9.94635%201.67195%2010.0928%201.86041%2010.0928%202.08029V3.0226H6.43073V2.08029ZM13.462%2017.7228C13.462%2018.508%2012.876%2019.1363%2012.1436%2019.1363H4.37994C3.64752%2019.1363%203.06158%2018.508%203.06158%2017.7228V3.96492H13.462V17.7228Z%22%20fill%3D%22%234A4A4A%22%2F%3E%3Cpath%20d%3D%22M8.68658%206.82326V16.2464C8.68658%2016.5291%208.5108%2016.749%208.24713%2016.749C7.98346%2016.749%207.80768%2016.5291%207.80768%2016.2464V6.82326C7.80768%206.54056%208.04205%206.3521%208.24713%206.3521C8.48151%206.3521%208.68658%206.57197%208.68658%206.82326Z%22%20fill%3D%22%234A4A4A%22%2F%3E%3Cpath%20d%3D%22M11.6456%206.82326V16.2464C11.6456%2016.5291%2011.4405%2016.749%2011.2061%2016.749C10.9717%2016.749%2010.7667%2016.5291%2010.7667%2016.2464V6.82326C10.7667%206.54056%2010.9717%206.3521%2011.2061%206.3521C11.4405%206.3521%2011.6456%206.57197%2011.6456%206.82326Z%22%20fill%3D%22%234A4A4A%22%2F%3E%3Cpath%20d%3D%22M5.78619%206.82326V16.2464C5.78619%2016.5291%205.58112%2016.749%205.34674%2016.749C5.11237%2016.749%204.87799%2016.5291%204.87799%2016.2464V6.82326C4.87799%206.54056%205.08307%206.3521%205.31744%206.3521C5.55182%206.3521%205.78619%206.57197%205.78619%206.82326Z%22%20fill%3D%22%234A4A4A%22%2F%3E%3C%2Fsvg%3E";
1399
1485
 
1400
- function _createForOfIteratorHelper$6(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$6(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
1401
- function _unsupportedIterableToArray$6(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$6(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$6(r, a) : void 0; } }
1402
- function _arrayLikeToArray$6(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
1486
+ function _createForOfIteratorHelper$7(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$7(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
1487
+ function _unsupportedIterableToArray$7(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$7(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$7(r, a) : void 0; } }
1488
+ function _arrayLikeToArray$7(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
1403
1489
  function SelHandler (_ref) {
1404
1490
  var onElSelected = _ref.onElSelected;
1405
- var utilStore = useUtilStoreContext();
1491
+ useUtilStoreContext();
1406
1492
  var gridStore = useGridStoreContext();
1407
1493
  var sceneStore = useSceneStoreContext();
1408
1494
  var uiStore = useUIStoreContext();
1495
+ var timeoutId;
1409
1496
  var onSelection = function onSelection(evt) {
1410
- if (evt.event.button == 2) return;
1497
+ if (evt.event.button == 2 || !(evt.type == 16 || evt.type == 64)) return;
1411
1498
  var ray = sceneStore.scene.createPickingRay(sceneStore.scene.pointerX, sceneStore.scene.pointerY, Matrix.Identity(), sceneStore.scene.activeCamera);
1412
1499
  var hit = sceneStore.scene.pickWithRay(ray);
1413
1500
  var pickedElement = false;
1414
1501
  var element = hit === null || hit === void 0 ? void 0 : hit.pickedMesh;
1415
- while (element) {
1416
- var _element, _element2;
1417
- element = (_element = element) === null || _element === void 0 ? void 0 : _element.parent;
1418
- if ((_element2 = element) !== null && _element2 !== void 0 && _element2.name.toLowerCase().startsWith('element')) {
1419
- pickedElement = true;
1420
- if (evt.type == 16 && hit !== null && hit !== void 0 && hit.pickedPoint) {
1421
- onElementSelected(element, hit.pickedPoint);
1422
- return;
1502
+ clearTimeout(timeoutId);
1503
+ timeoutId = setTimeout(function () {
1504
+ while (element) {
1505
+ var _element, _element2;
1506
+ element = (_element = element) === null || _element === void 0 ? void 0 : _element.parent;
1507
+ if ((_element2 = element) !== null && _element2 !== void 0 && _element2.name.toLowerCase().startsWith('element')) {
1508
+ pickedElement = true;
1509
+ if (evt.type == 64 && hit !== null && hit !== void 0 && hit.pickedPoint) {
1510
+ onElementSelected(element, hit, true);
1511
+ return;
1512
+ } else if (evt.type == 16 && hit !== null && hit !== void 0 && hit.pickedPoint) {
1513
+ onElementSelected(element, hit);
1514
+ return;
1515
+ }
1423
1516
  }
1424
1517
  }
1425
- }
1426
- if (hit !== null && hit !== void 0 && hit.pickedPoint) {
1427
- var _hit$pickedMesh;
1428
- if (sceneStore.elements) {
1429
- var _iterator = _createForOfIteratorHelper$6(sceneStore.elements),
1430
- _step;
1431
- try {
1432
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
1433
- var _element3 = _step.value;
1434
- var _element3$bbn$getHier = _element3.bbn.getHierarchyBoundingVectors(),
1435
- min = _element3$bbn$getHier.min,
1436
- max = _element3$bbn$getHier.max;
1437
- var point = hit.pickedPoint;
1438
- if (min.x < point.x && min.z < point.y && max.x > point.x && max.z > point.z && evt.type == 16) {
1439
- pickedElement = true;
1440
- onElementSelected(_element3.bbn, point, true);
1518
+ if (!pickedElement && hit !== null && hit !== void 0 && hit.pickedPoint) {
1519
+ var _hit$pickedMesh;
1520
+ if (sceneStore.elements) {
1521
+ var _iterator = _createForOfIteratorHelper$7(sceneStore.elements),
1522
+ _step;
1523
+ try {
1524
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
1525
+ var _element3 = _step.value;
1526
+ var _element3$bbn$getHier = _element3.bbn.getHierarchyBoundingVectors(),
1527
+ min = _element3$bbn$getHier.min,
1528
+ max = _element3$bbn$getHier.max;
1529
+ var point = hit.pickedPoint;
1530
+ if (min.x < point.x && min.z < point.y && max.x > point.x && max.z > point.z && evt.type == 16) {
1531
+ pickedElement = true;
1532
+ onElementSelected(_element3.bbn, hit);
1533
+ }
1441
1534
  }
1535
+ } catch (err) {
1536
+ _iterator.e(err);
1537
+ } finally {
1538
+ _iterator.f();
1442
1539
  }
1443
- } catch (err) {
1444
- _iterator.e(err);
1445
- } finally {
1446
- _iterator.f();
1447
1540
  }
1541
+ if (!pickedElement && (hit === null || hit === void 0 || (_hit$pickedMesh = hit.pickedMesh) === null || _hit$pickedMesh === void 0 ? void 0 : _hit$pickedMesh.name) == 'ground' && sceneStore.sets && evt.type == 16) onSetSelected(sceneStore.sets[0].bbn);
1448
1542
  }
1449
- if (!pickedElement && (hit === null || hit === void 0 || (_hit$pickedMesh = hit.pickedMesh) === null || _hit$pickedMesh === void 0 ? void 0 : _hit$pickedMesh.name) == 'ground' && sceneStore.sets && evt.type == 16) onSetSelected(sceneStore.sets[0].bbn);
1450
- }
1543
+ }, 200);
1451
1544
  };
1452
1545
  var onSetSelected = function onSetSelected(elem) {
1453
1546
  gridStore.deselectGrids();
1454
- sceneStore.cameraTargetPosition = utilStore.calculateBBoxCenter(elem);
1455
- sceneStore.doRenderControlLoop = true;
1547
+ sceneStore.focusElement(elem);
1456
1548
  };
1457
- var onElementSelected = function onElementSelected(elem, target, changeViewPoint) {
1549
+ var onElementSelected = function onElementSelected(elem, hit, doubleClick) {
1458
1550
  var elemName = elem.name.slice(-1);
1459
- if (sceneStore.selectedElement == elemName) {
1460
- sceneStore.cameraTargetPosition = target;
1461
- sceneStore.doRenderControlLoop = true;
1551
+ if (doubleClick && sceneStore.selectedElement == elemName && hit.pickedMesh) {
1552
+ var _getParent = function getParent(mesh) {
1553
+ var _mesh$parent;
1554
+ if (((_mesh$parent = mesh.parent) === null || _mesh$parent === void 0 ? void 0 : _mesh$parent.getClassName()) == 'TransformNode') return mesh.parent;
1555
+ return _getParent(mesh.parent);
1556
+ };
1557
+ sceneStore.focusElement(_getParent(hit.pickedMesh));
1462
1558
  return;
1559
+ } else if (doubleClick || sceneStore.selectedElement == elemName) {
1560
+ sceneStore.focusElement(elem);
1463
1561
  }
1464
1562
  sceneStore.selectedElement = elemName;
1465
1563
  uiStore.selectElem(elemName);
@@ -1470,9 +1568,9 @@ function SelHandler (_ref) {
1470
1568
  };
1471
1569
  }
1472
1570
 
1473
- function _createForOfIteratorHelper$5(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$5(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
1474
- function _unsupportedIterableToArray$5(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$5(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$5(r, a) : void 0; } }
1475
- function _arrayLikeToArray$5(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
1571
+ function _createForOfIteratorHelper$6(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$6(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
1572
+ function _unsupportedIterableToArray$6(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$6(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$6(r, a) : void 0; } }
1573
+ function _arrayLikeToArray$6(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
1476
1574
  /*
1477
1575
  UIStore
1478
1576
  */
@@ -1487,7 +1585,6 @@ var UIStore = /*#__PURE__*/function () {
1487
1585
  _defineProperty(this, "_overlayImage", void 0);
1488
1586
  _defineProperty(this, "_requestNewOverlayImage", void 0);
1489
1587
  _defineProperty(this, "_timeoutId", void 0);
1490
- _defineProperty(this, "_outstandingImageCount", void 0);
1491
1588
  _defineProperty(this, "_latestViewpoint", void 0);
1492
1589
  _defineProperty(this, "_guiElements", []);
1493
1590
  _defineProperty(this, "_scene", void 0);
@@ -1505,15 +1602,7 @@ var UIStore = /*#__PURE__*/function () {
1505
1602
  var _this$_overlayImage;
1506
1603
  if (!overlayImage || !_this._scene || ((_this$_overlayImage = _this._overlayImage) === null || _this$_overlayImage === void 0 ? void 0 : _this$_overlayImage.source) == overlayImage.base64) return;
1507
1604
  _this._isStaticBg = overlayImage.isStaticBg;
1508
- _this._outstandingImageCount--;
1509
- if (_this._outstandingImageCount > 0) return;
1510
- if (_this._overlayImage) _this._overlayImage.source = overlayImage.base64;else {
1511
- _this._overlayImage = new Image('overlayImage', overlayImage.base64);
1512
- _this._overlayImage.width = '100%';
1513
- _this._overlayImage.height = '100%';
1514
- _this._overlayImage.alpha = 1;
1515
- _this._gui.addControl(_this._overlayImage);
1516
- }
1605
+ _this._overlayImage.source = overlayImage.base64;
1517
1606
  _this._overlayImage.isVisible = true;
1518
1607
  _this._enableSSAO(false);
1519
1608
  });
@@ -1532,9 +1621,17 @@ var UIStore = /*#__PURE__*/function () {
1532
1621
  this._colors.defaultBg = '#dfdfdf';
1533
1622
  this._colors.selectedBg = '#db3433';
1534
1623
  }
1535
- this._outstandingImageCount = 0;
1536
1624
  this._isStaticBg = _overlayImage === null || _overlayImage === void 0 ? void 0 : _overlayImage.isStaticBg;
1537
- if (_overlayImage) this.updateOverlayImage(_overlayImage);
1625
+ if (_overlayImage) {
1626
+ this._overlayImage = new Image('overlayImage', _overlayImage.base64);
1627
+ this._overlayImage.width = '100%';
1628
+ this._overlayImage.height = '100%';
1629
+ this._overlayImage.alpha = 1;
1630
+ this._gui.addControl(this._overlayImage);
1631
+ this._overlayImage.source = _overlayImage.base64;
1632
+ this._overlayImage.isVisible = true;
1633
+ this._enableSSAO(false);
1634
+ }
1538
1635
  }
1539
1636
  return _createClass(UIStore, [{
1540
1637
  key: "isStaticBg",
@@ -1651,7 +1748,7 @@ var UIStore = /*#__PURE__*/function () {
1651
1748
  key: "selectElem",
1652
1749
  value: function selectElem(name) {
1653
1750
  var _this5 = this;
1654
- var _iterator = _createForOfIteratorHelper$5(this._gui.getControlsByType('ellipse')),
1751
+ var _iterator = _createForOfIteratorHelper$6(this._gui.getControlsByType('ellipse')),
1655
1752
  _step;
1656
1753
  try {
1657
1754
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -1715,8 +1812,7 @@ var UIStore = /*#__PURE__*/function () {
1715
1812
  dbt.width = this._uiConfig.templateConfig == 'standard' ? '40px' : '60%';
1716
1813
  dbt.height = this._uiConfig.templateConfig == 'standard' ? '40px' : '70%';
1717
1814
  dbt.onPointerClickObservable.add(function () {
1718
- var _this6$_utilStore$vie;
1719
- return (_this6$_utilStore$vie = _this6._utilStore.viewHandler) === null || _this6$_utilStore$vie === void 0 ? void 0 : _this6$_utilStore$vie.viewPlannerHandler.onElementDeleted(setId, elementId);
1815
+ return _this6._utilStore.onElementDeleted(setId, elementId);
1720
1816
  });
1721
1817
  if (this._uiConfig.templateConfig == 'standard') dtarget.linkOffsetY = -48;
1722
1818
  dtarget.addControl(dbt);
@@ -1747,6 +1843,7 @@ var UIStore = /*#__PURE__*/function () {
1747
1843
  if (!this._overlayImage) return;
1748
1844
  this._overlayImage.isVisible = false;
1749
1845
  this._enableSSAO(true);
1846
+ this._utilStore.updateCam = false;
1750
1847
  }
1751
1848
  }, {
1752
1849
  key: "requestNewOverlayImage",
@@ -1762,7 +1859,8 @@ var UIStore = /*#__PURE__*/function () {
1762
1859
  _this7._enableSSAO(false);
1763
1860
  return;
1764
1861
  }
1765
- _this7._outstandingImageCount++;
1862
+ _this7._utilStore.addOutstandingImage();
1863
+ _this7._utilStore.updateCam = true;
1766
1864
  _this7._latestViewpoint = viewpoint;
1767
1865
  (_this7$_requestNewOve = _this7._requestNewOverlayImage) === null || _this7$_requestNewOve === void 0 || _this7$_requestNewOve.call(_this7, viewpoint);
1768
1866
  }, 500);
@@ -1779,6 +1877,8 @@ var UtilStore = /*#__PURE__*/function () {
1779
1877
  _classCallCheck(this, UtilStore);
1780
1878
  _defineProperty(this, "_isMobile", void 0);
1781
1879
  _defineProperty(this, "_rtvAnalyzeData", []);
1880
+ _defineProperty(this, "_outstandingImageCount", void 0);
1881
+ _defineProperty(this, "_updateCam", void 0);
1782
1882
  _defineProperty(this, "_viewHandler", void 0);
1783
1883
  _defineProperty(this, "calculateBBoxCenter", function (ob) {
1784
1884
  var boundingBox = ob.getHierarchyBoundingVectors();
@@ -1802,6 +1902,8 @@ var UtilStore = /*#__PURE__*/function () {
1802
1902
  });
1803
1903
  this._isMobile = !!isMobile;
1804
1904
  this._viewHandler = viewHandler;
1905
+ this._outstandingImageCount = 0;
1906
+ this._updateCam = true;
1805
1907
  }
1806
1908
  return _createClass(UtilStore, [{
1807
1909
  key: "isMobile",
@@ -1819,6 +1921,31 @@ var UtilStore = /*#__PURE__*/function () {
1819
1921
  var _this$_viewHandler;
1820
1922
  return (_this$_viewHandler = this._viewHandler) === null || _this$_viewHandler === void 0 ? void 0 : _this$_viewHandler.tabGroupState.curTabGroup.key;
1821
1923
  }
1924
+ }, {
1925
+ key: "updateCam",
1926
+ set: function set(doUpdateCam) {
1927
+ this._updateCam = doUpdateCam;
1928
+ }
1929
+ }, {
1930
+ key: "updateWithUnityData",
1931
+ get: function get() {
1932
+ var isNotOutStandingImage = this._outstandingImageCount > 0;
1933
+ if (isNotOutStandingImage) this._outstandingImageCount--;
1934
+ return !isNotOutStandingImage && this._updateCam;
1935
+ }
1936
+ }, {
1937
+ key: "onElementDeleted",
1938
+ value: function onElementDeleted(setId, elementId) {
1939
+ var _this$viewHandler;
1940
+ this.addOutstandingImage();
1941
+ (_this$viewHandler = this.viewHandler) === null || _this$viewHandler === void 0 || _this$viewHandler.viewPlannerHandler.onElementDeleted(setId, elementId);
1942
+ this._updateCam = true;
1943
+ }
1944
+ }, {
1945
+ key: "addOutstandingImage",
1946
+ value: function addOutstandingImage() {
1947
+ this._outstandingImageCount++;
1948
+ }
1822
1949
  }, {
1823
1950
  key: "disableElementRows",
1824
1951
  value: function disableElementRows(element, cache) {
@@ -1968,9 +2095,9 @@ var useUtilStoreContext = function useUtilStoreContext() {
1968
2095
  return (_context5 = _context) === null || _context5 === void 0 ? void 0 : _context5.utilStore;
1969
2096
  };
1970
2097
 
1971
- function _createForOfIteratorHelper$4(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$4(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
1972
- function _unsupportedIterableToArray$4(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$4(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$4(r, a) : void 0; } }
1973
- function _arrayLikeToArray$4(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
2098
+ function _createForOfIteratorHelper$5(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$5(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
2099
+ function _unsupportedIterableToArray$5(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$5(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$5(r, a) : void 0; } }
2100
+ function _arrayLikeToArray$5(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
1974
2101
  function caching () {
1975
2102
  var _useSceneStoreContext = useSceneStoreContext(),
1976
2103
  cache = _useSceneStoreContext.cache,
@@ -1985,7 +2112,7 @@ function caching () {
1985
2112
  var updatedElements = (_curElementRoot$nodes = curElementRoot === null || curElementRoot === void 0 || (_curElementRoot$nodes2 = curElementRoot.nodes) === null || _curElementRoot$nodes2 === void 0 ? void 0 : _curElementRoot$nodes2.filter(function (curElement) {
1986
2113
  if ((prevElementRoot === null || prevElementRoot === void 0 ? void 0 : prevElementRoot.nodes) === undefined) return true;
1987
2114
  var didChange = true;
1988
- var _iterator = _createForOfIteratorHelper$4(prevElementRoot.nodes),
2115
+ var _iterator = _createForOfIteratorHelper$5(prevElementRoot.nodes),
1989
2116
  _step;
1990
2117
  try {
1991
2118
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -2010,7 +2137,7 @@ function caching () {
2010
2137
  var prevGeo = (_assets$geos = previousHQRenderScript.assets.geos) === null || _assets$geos === void 0 ? void 0 : _assets$geos[idx];
2011
2138
  if (prevGeo && !(geo.id + geo.name === prevGeo.id + prevGeo.name) && cache !== null && cache !== void 0 && (_cache$idx = cache[idx]) !== null && _cache$idx !== void 0 && (_cache$idx = _cache$idx.geo) !== null && _cache$idx !== void 0 && _cache$idx.onElements) {
2012
2139
  var _cache$idx$geo;
2013
- var _iterator2 = _createForOfIteratorHelper$4((_cache$idx$geo = cache[idx].geo) === null || _cache$idx$geo === void 0 ? void 0 : _cache$idx$geo.onElements),
2140
+ var _iterator2 = _createForOfIteratorHelper$5((_cache$idx$geo = cache[idx].geo) === null || _cache$idx$geo === void 0 ? void 0 : _cache$idx$geo.onElements),
2014
2141
  _step2;
2015
2142
  try {
2016
2143
  var _loop = function _loop() {
@@ -2040,7 +2167,7 @@ function caching () {
2040
2167
  var prevMat = (_assets$mats = previousHQRenderScript.assets.mats) === null || _assets$mats === void 0 ? void 0 : _assets$mats[idx];
2041
2168
  if (prevMat && !(mat.id + mat.name === prevMat.id + prevMat.name) && cache !== null && cache !== void 0 && (_cache$idx2 = cache[idx]) !== null && _cache$idx2 !== void 0 && (_cache$idx2 = _cache$idx2.material) !== null && _cache$idx2 !== void 0 && _cache$idx2.onElements) {
2042
2169
  var _cache$idx$material;
2043
- var _iterator3 = _createForOfIteratorHelper$4((_cache$idx$material = cache[idx].material) === null || _cache$idx$material === void 0 ? void 0 : _cache$idx$material.onElements),
2170
+ var _iterator3 = _createForOfIteratorHelper$5((_cache$idx$material = cache[idx].material) === null || _cache$idx$material === void 0 ? void 0 : _cache$idx$material.onElements),
2044
2171
  _step3;
2045
2172
  try {
2046
2173
  var _loop2 = function _loop2() {
@@ -2071,7 +2198,7 @@ function caching () {
2071
2198
  deletedElements: prevElementRoot === null || prevElementRoot === void 0 || (_prevElementRoot$node = prevElementRoot.nodes) === null || _prevElementRoot$node === void 0 ? void 0 : _prevElementRoot$node.filter(function (prevElement) {
2072
2199
  if ((curElementRoot === null || curElementRoot === void 0 ? void 0 : curElementRoot.nodes) === undefined) return true;
2073
2200
  var wasDeleted = true;
2074
- var _iterator4 = _createForOfIteratorHelper$4(curElementRoot.nodes),
2201
+ var _iterator4 = _createForOfIteratorHelper$5(curElementRoot.nodes),
2075
2202
  _step4;
2076
2203
  try {
2077
2204
  for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
@@ -2188,9 +2315,9 @@ var customMat = /*#__PURE__*/function () {
2188
2315
  };
2189
2316
  }();
2190
2317
 
2191
- function _createForOfIteratorHelper$3(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$3(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
2192
- function _unsupportedIterableToArray$3(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$3(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$3(r, a) : void 0; } }
2193
- function _arrayLikeToArray$3(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
2318
+ function _createForOfIteratorHelper$4(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$4(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
2319
+ function _unsupportedIterableToArray$4(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$4(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$4(r, a) : void 0; } }
2320
+ function _arrayLikeToArray$4(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
2194
2321
  getLogger('RealTimeViewer', 'FindAsset');
2195
2322
  function findAssets(_x, _x2) {
2196
2323
  return _findAssets.apply(this, arguments);
@@ -2304,7 +2431,7 @@ function _findAssets() {
2304
2431
  });
2305
2432
  geo.material = mat.mat;
2306
2433
  oldMat = sceneStore.scene.getMaterialByUniqueID(oldMatId);
2307
- _iterator3 = _createForOfIteratorHelper$3(oldMat.getBindedMeshes());
2434
+ _iterator3 = _createForOfIteratorHelper$4(oldMat.getBindedMeshes());
2308
2435
  try {
2309
2436
  for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
2310
2437
  mesh = _step3.value;
@@ -2319,7 +2446,7 @@ function _findAssets() {
2319
2446
  _context.next = 37;
2320
2447
  break;
2321
2448
  case 20:
2322
- _iterator4 = _createForOfIteratorHelper$3(geo.getChildMeshes());
2449
+ _iterator4 = _createForOfIteratorHelper$4(geo.getChildMeshes());
2323
2450
  _context.prev = 21;
2324
2451
  _iterator4.s();
2325
2452
  case 23:
@@ -2364,7 +2491,7 @@ function _findAssets() {
2364
2491
  //TODO: tiling with Node Materials, multiple Textures
2365
2492
 
2366
2493
  //! clean std. materials from importing (.00x)
2367
- _iterator = _createForOfIteratorHelper$3(assets.geos);
2494
+ _iterator = _createForOfIteratorHelper$4(assets.geos);
2368
2495
  _context5.prev = 11;
2369
2496
  _loop = /*#__PURE__*/_regeneratorRuntime.mark(function _loop() {
2370
2497
  var geo, path, mesh, cachedGeo;
@@ -2446,7 +2573,7 @@ function _findAssets() {
2446
2573
  return _context5.finish(26);
2447
2574
  case 29:
2448
2575
  // Und alle materialien erstellt
2449
- _iterator2 = _createForOfIteratorHelper$3(assets.mats);
2576
+ _iterator2 = _createForOfIteratorHelper$4(assets.mats);
2450
2577
  _context5.prev = 30;
2451
2578
  _loop2 = /*#__PURE__*/_regeneratorRuntime.mark(function _loop2() {
2452
2579
  var mat, _nwCache$material;
@@ -2564,7 +2691,7 @@ function _createOrGetMaterial() {
2564
2691
  _context6.next = 18;
2565
2692
  break;
2566
2693
  }
2567
- _iterator5 = _createForOfIteratorHelper$3(scene.materials);
2694
+ _iterator5 = _createForOfIteratorHelper$4(scene.materials);
2568
2695
  _context6.prev = 2;
2569
2696
  _iterator5.s();
2570
2697
  case 4:
@@ -2621,9 +2748,9 @@ function _createOrGetMaterial() {
2621
2748
  return _createOrGetMaterial.apply(this, arguments);
2622
2749
  }
2623
2750
 
2624
- function _createForOfIteratorHelper$2(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$2(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
2625
- function _unsupportedIterableToArray$2(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$2(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$2(r, a) : void 0; } }
2626
- function _arrayLikeToArray$2(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
2751
+ function _createForOfIteratorHelper$3(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$3(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
2752
+ function _unsupportedIterableToArray$3(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$3(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$3(r, a) : void 0; } }
2753
+ function _arrayLikeToArray$3(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
2627
2754
  var buildScene = function buildScene(_ref) {
2628
2755
  var _sceneStore$elements;
2629
2756
  var startNode = _ref.startNode,
@@ -2662,7 +2789,7 @@ var buildScene = function buildScene(_ref) {
2662
2789
 
2663
2790
  //! getNodes / getGeos
2664
2791
  if (curGeo.nodes !== undefined) {
2665
- var _iterator = _createForOfIteratorHelper$2(curGeo.nodes),
2792
+ var _iterator = _createForOfIteratorHelper$3(curGeo.nodes),
2666
2793
  _step;
2667
2794
  try {
2668
2795
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -2677,7 +2804,7 @@ var buildScene = function buildScene(_ref) {
2677
2804
  }
2678
2805
  //! each geo
2679
2806
  if (curGeo.geos !== undefined) {
2680
- var _iterator2 = _createForOfIteratorHelper$2(curGeo.geos),
2807
+ var _iterator2 = _createForOfIteratorHelper$3(curGeo.geos),
2681
2808
  _step2;
2682
2809
  try {
2683
2810
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
@@ -2720,6 +2847,7 @@ var buildScene = function buildScene(_ref) {
2720
2847
  }
2721
2848
  if ((parentNode === null || parentNode === void 0 ? void 0 : parentNode.name) == 'Wohnzimmer') sceneStore.addSet(node, hqsNode);
2722
2849
  if (node !== null && node !== void 0 && node.name.startsWith('Element')) {
2850
+ sceneStore.hasPlanned = true;
2723
2851
  sceneStore.addElement(node, hqsNode);
2724
2852
  curElement = hqsNode;
2725
2853
  }
@@ -2731,7 +2859,7 @@ var buildScene = function buildScene(_ref) {
2731
2859
 
2732
2860
  //! each node
2733
2861
  if (hqsNode.nodes !== undefined) {
2734
- var _iterator3 = _createForOfIteratorHelper$2(hqsNode.nodes),
2862
+ var _iterator3 = _createForOfIteratorHelper$3(hqsNode.nodes),
2735
2863
  _step3;
2736
2864
  try {
2737
2865
  for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
@@ -2746,7 +2874,7 @@ var buildScene = function buildScene(_ref) {
2746
2874
  }
2747
2875
  //! each material
2748
2876
  if (hqsNode.mats !== undefined) {
2749
- var _iterator4 = _createForOfIteratorHelper$2(hqsNode.mats),
2877
+ var _iterator4 = _createForOfIteratorHelper$3(hqsNode.mats),
2750
2878
  _step4;
2751
2879
  try {
2752
2880
  for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
@@ -2761,7 +2889,7 @@ var buildScene = function buildScene(_ref) {
2761
2889
  }
2762
2890
  //! each geo
2763
2891
  if (hqsNode.geos !== undefined) {
2764
- var _iterator5 = _createForOfIteratorHelper$2(hqsNode.geos),
2892
+ var _iterator5 = _createForOfIteratorHelper$3(hqsNode.geos),
2765
2893
  _step5;
2766
2894
  try {
2767
2895
  for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
@@ -2776,18 +2904,17 @@ var buildScene = function buildScene(_ref) {
2776
2904
  }
2777
2905
  }
2778
2906
  recursiveIteration(startNode, parentNode);
2779
- sceneStore.setCameraTarget();
2780
2907
  sceneStore.cache = cachedAssets;
2781
2908
  };
2782
2909
 
2783
- function _createForOfIteratorHelper$1(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$1(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
2784
- function _unsupportedIterableToArray$1(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$1(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$1(r, a) : void 0; } }
2785
- function _arrayLikeToArray$1(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
2910
+ function _createForOfIteratorHelper$2(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$2(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
2911
+ function _unsupportedIterableToArray$2(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$2(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$2(r, a) : void 0; } }
2912
+ function _arrayLikeToArray$2(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
2786
2913
  function findMaterials(cache) {
2787
2914
  //! parent = the parent from which on every child should receive the Material
2788
2915
  //! id = the id which points to the material that should be assigned
2789
2916
  var setMaterials = function setMaterials(onNode, mat) {
2790
- var _iterator = _createForOfIteratorHelper$1(onNode.getChildMeshes()),
2917
+ var _iterator = _createForOfIteratorHelper$2(onNode.getChildMeshes()),
2791
2918
  _step;
2792
2919
  try {
2793
2920
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -2805,12 +2932,12 @@ function findMaterials(cache) {
2805
2932
  var findOnNode = function findOnNode(mat, parent) {
2806
2933
  if (!mat.onNodes) return;
2807
2934
  var children = parent.getChildTransformNodes(false);
2808
- var _iterator2 = _createForOfIteratorHelper$1(children),
2935
+ var _iterator2 = _createForOfIteratorHelper$2(children),
2809
2936
  _step2;
2810
2937
  try {
2811
2938
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
2812
2939
  var child = _step2.value;
2813
- var _iterator3 = _createForOfIteratorHelper$1(mat.onNodes),
2940
+ var _iterator3 = _createForOfIteratorHelper$2(mat.onNodes),
2814
2941
  _step3;
2815
2942
  try {
2816
2943
  for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
@@ -2831,13 +2958,13 @@ function findMaterials(cache) {
2831
2958
  _iterator2.f();
2832
2959
  }
2833
2960
  };
2834
- var _iterator4 = _createForOfIteratorHelper$1(cache),
2961
+ var _iterator4 = _createForOfIteratorHelper$2(cache),
2835
2962
  _step4;
2836
2963
  try {
2837
2964
  for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
2838
2965
  var element = _step4.value;
2839
2966
  if (!element.material || !element.material.parents) continue;
2840
- var _iterator5 = _createForOfIteratorHelper$1(element.material.parents),
2967
+ var _iterator5 = _createForOfIteratorHelper$2(element.material.parents),
2841
2968
  _step5;
2842
2969
  try {
2843
2970
  for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
@@ -2858,11 +2985,11 @@ function findMaterials(cache) {
2858
2985
  return findMaterials;
2859
2986
  }
2860
2987
 
2861
- function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
2862
- function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
2863
- function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
2988
+ function _createForOfIteratorHelper$1(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray$1(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
2989
+ function _unsupportedIterableToArray$1(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray$1(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray$1(r, a) : void 0; } }
2990
+ function _arrayLikeToArray$1(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
2864
2991
  function deacCache(cache) {
2865
- var _iterator = _createForOfIteratorHelper(cache.getChildTransformNodes(true)),
2992
+ var _iterator = _createForOfIteratorHelper$1(cache.getChildTransformNodes(true)),
2866
2993
  _step;
2867
2994
  try {
2868
2995
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
@@ -2921,23 +3048,29 @@ function shadow() {
2921
3048
  }
2922
3049
  }
2923
3050
 
3051
+ function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
3052
+ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
3053
+ function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
3054
+
2924
3055
  //! sets element set
2925
3056
  var parser = /*#__PURE__*/function () {
2926
3057
  var _ref = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
2927
3058
  var _changedElements$upda;
2928
- var sceneStore, hasRendered, hqRenderScript, scene, cache, changedElements, utilStore, _yield$findAssets, cacheGroup, newCache, _changedElements$upda2;
3059
+ var sceneStore, hasRendered, hqRenderScript, scene, cache, changedElements, utilStore, wasPlanned, elementCount, _yield$findAssets, cacheGroup, newCache, _changedElements$upda2, focusedElement, focusedNode, _iterator, _step, node, bbox, boundingInfo, frustumPlanes, isInFrustum;
2929
3060
  return _regeneratorRuntime.wrap(function _callee$(_context) {
2930
3061
  while (1) switch (_context.prev = _context.next) {
2931
3062
  case 0:
2932
3063
  sceneStore = useSceneStoreContext();
2933
3064
  hasRendered = sceneStore.hasRendered, hqRenderScript = sceneStore.hqRenderScript, scene = sceneStore.scene, cache = sceneStore.cache, changedElements = sceneStore.changedElements;
2934
- utilStore = useUtilStoreContext(); //disable elementrows from old cache
3065
+ utilStore = useUtilStoreContext();
3066
+ wasPlanned = sceneStore.hasPlanned;
3067
+ elementCount = sceneStore.elements.length; //disable elementrows from old cache
2935
3068
  changedElements === null || changedElements === void 0 || (_changedElements$upda = changedElements.updatedElements) === null || _changedElements$upda === void 0 || _changedElements$upda.forEach(function (el) {
2936
3069
  return utilStore.disableElementRows(el.name, cache);
2937
3070
  });
2938
- _context.next = 6;
3071
+ _context.next = 8;
2939
3072
  return findAssets(hqRenderScript.assets, cache);
2940
- case 6:
3073
+ case 8:
2941
3074
  _yield$findAssets = _context.sent;
2942
3075
  cacheGroup = _yield$findAssets.cacheGroup;
2943
3076
  newCache = _yield$findAssets.newCache;
@@ -2945,6 +3078,7 @@ var parser = /*#__PURE__*/function () {
2945
3078
  changedElements.deletedElements.forEach(function (deletedElement) {
2946
3079
  var _scene$getTransformNo;
2947
3080
  (_scene$getTransformNo = scene.getTransformNodeByName(deletedElement.name)) === null || _scene$getTransformNo === void 0 || _scene$getTransformNo.dispose();
3081
+ sceneStore.removeElement(deletedElement);
2948
3082
  });
2949
3083
  }
2950
3084
  if (changedElements && changedElements.updatedElements && changedElements.updatedElements.length > 0) {
@@ -2973,7 +3107,46 @@ var parser = /*#__PURE__*/function () {
2973
3107
  }
2974
3108
  utilStore.setRTVAnalyzeData();
2975
3109
  deacCache(cacheGroup);
2976
- case 13:
3110
+
3111
+ // Check if the bounding box is in the frustum
3112
+ focusedElement = sceneStore.focusedElement;
3113
+ if (!focusedElement) {
3114
+ _context.next = 27;
3115
+ break;
3116
+ }
3117
+ // let focusedNode = scene.getTransformNodeByName(focusedElement.name)!;
3118
+ focusedNode = undefined;
3119
+ _iterator = _createForOfIteratorHelper(scene.transformNodes);
3120
+ try {
3121
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
3122
+ node = _step.value;
3123
+ if (node.name == focusedElement.name) {
3124
+ if (sceneStore.getId(node) == focusedElement.id) {
3125
+ focusedNode = node;
3126
+ }
3127
+ }
3128
+ }
3129
+ } catch (err) {
3130
+ _iterator.e(err);
3131
+ } finally {
3132
+ _iterator.f();
3133
+ }
3134
+ if (focusedNode) {
3135
+ _context.next = 22;
3136
+ break;
3137
+ }
3138
+ return _context.abrupt("return");
3139
+ case 22:
3140
+ bbox = focusedNode.getHierarchyBoundingVectors();
3141
+ boundingInfo = new BoundingInfo(bbox.min, bbox.max);
3142
+ frustumPlanes = Frustum.GetPlanes(scene.activeCamera.getTransformationMatrix());
3143
+ isInFrustum = boundingInfo.isCompletelyInFrustum(frustumPlanes);
3144
+ if (focusedNode.absolutePosition.x != focusedElement.position.x || focusedNode.absolutePosition.y != focusedElement.position.y || focusedNode.absolutePosition.z != focusedElement.position.z) {
3145
+ sceneStore.focusElement(focusedNode);
3146
+ } else if (wasPlanned && (elementCount != sceneStore.elements.length || !isInFrustum && focusedElement.size != 0 && focusedElement.size != Vector3$1.Distance(bbox.min, bbox.max))) {
3147
+ sceneStore.focusElement(focusedNode);
3148
+ }
3149
+ case 27:
2977
3150
  case "end":
2978
3151
  return _context.stop();
2979
3152
  }
@@ -3047,7 +3220,7 @@ function useRealTimeRenderData (_ref) {
3047
3220
  }
3048
3221
  function _onSceneReady() {
3049
3222
  _onSceneReady = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {
3050
- var _sceneStore$hqRenderS, getEnableUnityRtvKombi, cams, filteredCustomViewpoints, activeViewpoint, activeViewpointIdx;
3223
+ var _sceneStore$hqRenderS, getEnableUnityRtvKombi, cams, filteredCustomViewpoints, activeViewpoint, activeViewpointIdx, activeElement, _activeElement;
3051
3224
  return _regeneratorRuntime.wrap(function _callee2$(_context2) {
3052
3225
  while (1) switch (_context2.prev = _context2.next) {
3053
3226
  case 0:
@@ -3085,67 +3258,79 @@ function useRealTimeRenderData (_ref) {
3085
3258
  allViewpoints: filteredCustomViewpoints
3086
3259
  }));
3087
3260
  }
3088
- _context2.next = 18;
3261
+ _context2.next = 17;
3089
3262
  break;
3090
3263
  case 11:
3091
3264
  sceneStore.hqRenderScript = JSON.parse(renderjob);
3092
3265
  if (checkCachedData()) {
3093
- _context2.next = 18;
3266
+ _context2.next = 17;
3094
3267
  break;
3095
3268
  }
3096
- if (elementsInfo) uiStore.initGui(callbacks.onElementSelected, sceneStore.elements, elementsInfo);
3097
- if (sceneStore.hqRenderScript.cams && sceneStore.hqRenderScript.cams.length > 0) updateCam(sceneStore.hqRenderScript.cams[0], sceneStore.scene);
3269
+ if (elementsInfo) {
3270
+ activeElement = elementsInfo.find(function (e) {
3271
+ return e.active;
3272
+ });
3273
+ if (activeElement) sceneStore.selectedElement = activeElement.elementId.toString();
3274
+ uiStore.initGui(callbacks.onElementSelected, sceneStore.elements, elementsInfo);
3275
+ }
3098
3276
  if (!overlayImage) actions.toggleLoading('buildScene', false, false);
3099
3277
  sceneStore.isInitializing = false;
3100
3278
  return _context2.abrupt("return");
3101
- case 18:
3279
+ case 17:
3102
3280
  LOG.startTransaction({
3103
3281
  event: 'buildScene',
3104
3282
  message: 'Start Building Realtime Scene',
3105
3283
  eventId: 'BUILD_SCENE'
3106
3284
  });
3107
- _context2.prev = 19;
3108
- _context2.next = 22;
3285
+ _context2.prev = 18;
3286
+ _context2.next = 21;
3109
3287
  return parser();
3110
- case 22:
3111
- if (elementsInfo) uiStore.initGui(callbacks.onElementSelected, sceneStore.elements, elementsInfo);
3288
+ case 21:
3289
+ if (elementsInfo) {
3290
+ _activeElement = elementsInfo.find(function (e) {
3291
+ return e.active;
3292
+ });
3293
+ if (_activeElement) sceneStore.selectedElement = _activeElement.elementId.toString();
3294
+ uiStore.initGui(callbacks.onElementSelected, sceneStore.elements, elementsInfo);
3295
+ }
3112
3296
  if (freePlacesOnGrids || plannedPlacesOnGrids) gridStore.getGrids(freePlacesOnGrids, plannedPlacesOnGrids);
3113
- _context2.next = 31;
3297
+ _context2.next = 30;
3114
3298
  break;
3115
- case 26:
3116
- _context2.prev = 26;
3117
- _context2.t0 = _context2["catch"](19);
3299
+ case 25:
3300
+ _context2.prev = 25;
3301
+ _context2.t0 = _context2["catch"](18);
3118
3302
  LOG.errorTransaction('BUILD_SCENE', 'RTS_0001', _context2.t0.message);
3119
3303
  LOG.error(new DivaError('Error building scene', {
3120
3304
  cause: _context2.t0,
3121
3305
  code: 'RTS_0001'
3122
3306
  }));
3123
3307
  sceneStore.isInitializing = false;
3124
- case 31:
3308
+ case 30:
3125
3309
  if (callbacks.setGlb) {
3126
3310
  sceneStore.exportScene().then(function (res) {
3127
3311
  var _callbacks$setGlb;
3128
3312
  if (res) (_callbacks$setGlb = callbacks.setGlb) === null || _callbacks$setGlb === void 0 || _callbacks$setGlb.call(callbacks, URL.createObjectURL(res.glTFFiles['fileName.glb']));
3129
3313
  });
3314
+ } else {
3315
+ LOG.debug('callbacks.setGlb is undefined');
3130
3316
  }
3131
3317
  if (!sceneStore.hasRendered) {
3132
3318
  sceneStore.scene.getEngine().runRenderLoop(renderLoop);
3133
3319
  sceneStore.hasRendered = true;
3134
3320
  }
3135
-
3136
- // sceneStore.scene.debugLayer?.show();
3137
3321
  sceneStore.scene.onAfterRenderObservable.add(onFirstFrame);
3138
3322
  LOG.successTransaction('BUILD_SCENE');
3139
- case 35:
3323
+ case 34:
3140
3324
  case "end":
3141
3325
  return _context2.stop();
3142
3326
  }
3143
- }, _callee2, null, [[19, 26]]);
3327
+ }, _callee2, null, [[18, 25]]);
3144
3328
  }));
3145
3329
  return _onSceneReady.apply(this, arguments);
3146
3330
  }
3147
3331
  function onFirstFrame() {
3148
3332
  var _callbacks$onInitiali2, _sceneStore;
3333
+ // sceneStore.scene.debugLayer!.show();
3149
3334
  sceneStore.isInitializing = false;
3150
3335
  sceneStore.scene.onAfterRenderObservable.removeCallback(onFirstFrame);
3151
3336
  if (!overlayImage) actions.toggleLoading('buildScene', false, false);
@@ -3186,7 +3371,8 @@ function useRealTimeRenderData (_ref) {
3186
3371
  }
3187
3372
  engine = new Engine(gameCanvas.current, true, {
3188
3373
  antialias: true,
3189
- stencil: true
3374
+ stencil: false,
3375
+ audioEngine: false
3190
3376
  }, true);
3191
3377
  engine.renderEvenInBackground = renderInBackground;
3192
3378
  engine.disablePerformanceMonitorInBackground = true;
@@ -3212,7 +3398,9 @@ function useRealTimeRenderData (_ref) {
3212
3398
  });
3213
3399
  case 17:
3214
3400
  resize = function resize() {
3215
- scene.getEngine().resize();
3401
+ if (inBackground || !scene || !scene.getEngine()) return;
3402
+ if (sceneStore.hasPlanned) sceneStore.doRenderControlLoop = true;
3403
+ return scene.getEngine().resize();
3216
3404
  };
3217
3405
  if (window) {
3218
3406
  window.addEventListener('resize', resize);
@@ -3238,7 +3426,9 @@ function useRealTimeRenderData (_ref) {
3238
3426
  asyncUseEffect();
3239
3427
  }, []);
3240
3428
  useEffect(function () {
3429
+ if (!utilStore.updateWithUnityData) return;
3241
3430
  if (overlayImage && uiStore) uiStore.updateOverlayImage(overlayImage);
3431
+ if (sceneStore && sceneStore.scene.activeCamera) updateCam(sceneStore.hqRenderScript.cams[0], sceneStore.scene);
3242
3432
  }, [overlayImage]);
3243
3433
  useEffect(function () {
3244
3434
  if (inBackground) {
@@ -3476,8 +3666,9 @@ var RealTimeRenderer = /*#__PURE__*/memo(function (props) {
3476
3666
  ref: resolutionDiv,
3477
3667
  style: {
3478
3668
  position: 'absolute',
3669
+ top: '-70px',
3479
3670
  width: '100%',
3480
- height: '100%',
3671
+ height: 'calc(100% + 70px)',
3481
3672
  backgroundColor: 'white',
3482
3673
  zIndex: 2
3483
3674
  },
@@ -3506,7 +3697,8 @@ var RealTimeRenderer = /*#__PURE__*/memo(function (props) {
3506
3697
  })]
3507
3698
  });
3508
3699
  }, function (prevProps, curProps) {
3509
- if (prevProps.overlayImage != curProps.overlayImage) return false;
3700
+ var _prevProps$overlayIma, _curProps$overlayImag, _prevProps$overlayIma2, _curProps$overlayImag2;
3701
+ if (((_prevProps$overlayIma = prevProps.overlayImage) === null || _prevProps$overlayIma === void 0 ? void 0 : _prevProps$overlayIma.base64) != ((_curProps$overlayImag = curProps.overlayImage) === null || _curProps$overlayImag === void 0 ? void 0 : _curProps$overlayImag.base64) || ((_prevProps$overlayIma2 = prevProps.overlayImage) === null || _prevProps$overlayIma2 === void 0 ? void 0 : _prevProps$overlayIma2.isStaticBg) != ((_curProps$overlayImag2 = curProps.overlayImage) === null || _curProps$overlayImag2 === void 0 ? void 0 : _curProps$overlayImag2.isStaticBg)) return false;
3510
3702
  if (prevProps.renderjob != curProps.renderjob) return false;
3511
3703
  if (JSON.stringify(prevProps.elementsInfo) != JSON.stringify(curProps.elementsInfo)) return false;
3512
3704
  if (prevProps.inBackground != curProps.inBackground) return false;