@roomle/web-sdk 2.33.0 → 2.35.0-alpha.2

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 (260) hide show
  1. package/lib/banana-for-scale-e16183d8.js +2 -0
  2. package/lib/{banana-for-scale-1d3127e8.js.map → banana-for-scale-e16183d8.js.map} +1 -1
  3. package/lib/banana-for-scale-f35c358e.nomodule.js +2 -0
  4. package/lib/{banana-for-scale-a63fb2df.nomodule.js.map → banana-for-scale-f35c358e.nomodule.js.map} +1 -1
  5. package/lib/{budgeteer-measure-700b4d27.js → budgeteer-measure-6fb6d4b2.js} +2 -2
  6. package/lib/{budgeteer-measure-700b4d27.js.map → budgeteer-measure-6fb6d4b2.js.map} +1 -1
  7. package/lib/budgeteer-measure.nomodule.js +1 -1
  8. package/lib/component-dimensioning-76b0d389.nomodule.js +2 -0
  9. package/lib/component-dimensioning-76b0d389.nomodule.js.map +1 -0
  10. package/lib/component-dimensioning-f7336523.js +2 -0
  11. package/lib/component-dimensioning-f7336523.js.map +1 -0
  12. package/lib/component-raycast-helper-1438e310.nomodule.js +2 -0
  13. package/lib/component-raycast-helper-1438e310.nomodule.js.map +1 -0
  14. package/lib/component-raycast-helper-5a9fe4b5.js +2 -0
  15. package/lib/component-raycast-helper-5a9fe4b5.js.map +1 -0
  16. package/lib/configurator-8671adc7.nomodule.js +2 -0
  17. package/lib/configurator-8671adc7.nomodule.js.map +1 -0
  18. package/lib/configurator-ccd550a4.js +2 -0
  19. package/lib/configurator-ccd550a4.js.map +1 -0
  20. package/lib/configurator-main-597e912c.js +2 -0
  21. package/lib/configurator-main-597e912c.js.map +1 -0
  22. package/lib/configurator-main.nomodule.js +1 -1
  23. package/lib/default-light-setting-1e6d1c5d.js +2 -0
  24. package/lib/default-light-setting-1e6d1c5d.js.map +1 -0
  25. package/lib/default-light-setting-b24eb686.nomodule.js +2 -0
  26. package/lib/default-light-setting-b24eb686.nomodule.js.map +1 -0
  27. package/lib/definitions/common-core/mock/kernel-instances.d.ts +6 -0
  28. package/lib/definitions/common-core/src/cameracontrol/camera-control-3d.d.ts +4 -1
  29. package/lib/definitions/common-core/src/cameracontrol/camera-control.d.ts +2 -2
  30. package/lib/definitions/common-core/src/{kernel-access.d.ts → configurator-kernel-access.d.ts} +7 -5
  31. package/lib/definitions/common-core/src/rapi-access.d.ts +2 -0
  32. package/lib/definitions/common-core/src/services/common-kernel-access.d.ts +3 -2
  33. package/lib/definitions/common-core/src/view-model/configurator-plan-object-view-model.d.ts +4 -0
  34. package/lib/definitions/common-core/src/view-model/configurator-view-model.d.ts +5 -4
  35. package/lib/definitions/common-core/src/view-model/plan-element-view-model.d.ts +2 -2
  36. package/lib/definitions/common-core/src/webgl/configurator-context.d.ts +4 -1
  37. package/lib/definitions/common-core/src/webgl/layer.d.ts +6 -5
  38. package/lib/definitions/common-core/src/webgl/mesh-generator.d.ts +4 -0
  39. package/lib/definitions/common-core/src/webgl/scene-manager.d.ts +1 -1
  40. package/lib/definitions/configurator-core/__tests__/{scene-helper.d.ts → configurator-scene-manager.d.ts} +0 -0
  41. package/lib/definitions/configurator-core/src/roomle-configurator.d.ts +5 -2
  42. package/lib/definitions/configurator-core/src/utils/component-dimensioning-helper.d.ts +1 -1
  43. package/lib/definitions/configurator-core/src/utils/event-dispatcher.d.ts +3 -0
  44. package/lib/definitions/configurator-core/src/webgl/configurator-mesh-generator.d.ts +0 -4
  45. package/lib/definitions/configurator-core/src/webgl/configurator-scene-event-handler.d.ts +2 -0
  46. package/lib/definitions/configurator-core/src/webgl/configurator-scene-manager.d.ts +17 -12
  47. package/lib/definitions/planner-core/mock/planner-mock-helper.d.ts +1 -0
  48. package/lib/definitions/planner-core/src/roomle-planner-ui-callback.d.ts +4 -1
  49. package/lib/definitions/planner-core/src/roomle-planner.d.ts +9 -5
  50. package/lib/definitions/planner-core/src/services/planner-kernel-access.d.ts +8 -57
  51. package/lib/definitions/planner-core/src/view-model/plan-view-model.d.ts +6 -5
  52. package/lib/definitions/planner-core/src/webgl/planner-mesh-generator.d.ts +1 -1
  53. package/lib/definitions/planner-core/src/webgl/planner-scene-event-handler.d.ts +3 -1
  54. package/lib/definitions/planner-core/src/webgl/planner-scene-manager.d.ts +22 -15
  55. package/lib/definitions/typings/planner.d.ts +1 -0
  56. package/lib/dimensioning-helper-71d2cff7.js +2 -0
  57. package/lib/{dimensioning-helper-46403799.js.map → dimensioning-helper-71d2cff7.js.map} +1 -1
  58. package/lib/dimensioning-helper-dc99f61f.nomodule.js +2 -0
  59. package/lib/{dimensioning-helper-edfc5933.nomodule.js.map → dimensioning-helper-dc99f61f.nomodule.js.map} +1 -1
  60. package/lib/glb-viewer-2ddec88f.nomodule.js +2 -0
  61. package/lib/{glb-viewer-564c48c8.nomodule.js.map → glb-viewer-2ddec88f.nomodule.js.map} +1 -1
  62. package/lib/glb-viewer-5a20e69f.js +2 -0
  63. package/lib/{glb-viewer-67e22889.js.map → glb-viewer-5a20e69f.js.map} +1 -1
  64. package/lib/glb-viewer-main-dcaea336.js +2 -0
  65. package/lib/glb-viewer-main-dcaea336.js.map +1 -0
  66. package/lib/glb-viewer-main.nomodule.js +1 -1
  67. package/lib/legacy/banana-for-scale-3f2699e2.legacy.js +2 -0
  68. package/lib/legacy/{banana-for-scale-2ae53764.legacy.js.map → banana-for-scale-3f2699e2.legacy.js.map} +1 -1
  69. package/lib/legacy/budgeteer-measure.legacy.js +1 -1
  70. package/lib/{component-dimensioning-cd3fa46e.js → legacy/component-dimensioning-8f7bc8d6.legacy.js} +2 -2
  71. package/lib/legacy/component-dimensioning-8f7bc8d6.legacy.js.map +1 -0
  72. package/lib/legacy/component-raycast-helper-cc16cd61.legacy.js +2 -0
  73. package/lib/legacy/component-raycast-helper-cc16cd61.legacy.js.map +1 -0
  74. package/lib/legacy/configurator-8f4f9b92.legacy.js +2 -0
  75. package/lib/legacy/configurator-8f4f9b92.legacy.js.map +1 -0
  76. package/lib/legacy/configurator-main.legacy.js +1 -1
  77. package/lib/legacy/default-light-setting-c24dab56.legacy.js +2 -0
  78. package/lib/legacy/default-light-setting-c24dab56.legacy.js.map +1 -0
  79. package/lib/legacy/dimensioning-helper-c41115bd.legacy.js +2 -0
  80. package/lib/legacy/{dimensioning-helper-82ad5e54.legacy.js.map → dimensioning-helper-c41115bd.legacy.js.map} +1 -1
  81. package/lib/legacy/glb-viewer-c47afc6c.legacy.js +2 -0
  82. package/lib/legacy/{glb-viewer-cb5014ee.legacy.js.map → glb-viewer-c47afc6c.legacy.js.map} +1 -1
  83. package/lib/legacy/glb-viewer-main.legacy.js +1 -1
  84. package/lib/legacy/{main-thread-to-worker-fb98950d.legacy.js → main-thread-to-worker-6f382b43.legacy.js} +2 -2
  85. package/lib/legacy/main-thread-to-worker-6f382b43.legacy.js.map +1 -0
  86. package/lib/legacy/material-viewer-0514a4c3.legacy.js +2 -0
  87. package/lib/legacy/material-viewer-0514a4c3.legacy.js.map +1 -0
  88. package/lib/legacy/material-viewer-main.legacy.js +1 -1
  89. package/lib/legacy/pixotron-c52e3fba.legacy.js +2 -0
  90. package/lib/legacy/{pixotron-35cea8f8.legacy.js.map → pixotron-c52e3fba.legacy.js.map} +1 -1
  91. package/lib/legacy/planner-1d7d681d.legacy.js +2 -0
  92. package/lib/legacy/{planner-b9154820.legacy.js.map → planner-1d7d681d.legacy.js.map} +1 -1
  93. package/lib/legacy/planner-main.legacy.js +1 -1
  94. package/lib/legacy/roomle-configurator-9134829a.legacy.js +2 -0
  95. package/lib/legacy/roomle-configurator-9134829a.legacy.js.map +1 -0
  96. package/lib/legacy/roomle-dependency-injection-29d2088d.legacy.js +16 -0
  97. package/lib/legacy/roomle-dependency-injection-29d2088d.legacy.js.map +1 -0
  98. package/lib/legacy/roomle-sdk.legacy.js +1 -1
  99. package/lib/legacy/static/ConfiguratorKernel-3c16a462912d4363.wasm +0 -0
  100. package/lib/legacy/static/{ConfiguratorKernel-e9bbd4998a056b0b.js → ConfiguratorKernel-805ef8c9e2946584.js} +72 -73
  101. package/lib/legacy/static/ConfiguratorKernelJs-46632e2744e151e6.js +143 -0
  102. package/lib/legacy/static/ConfiguratorKernelJs-a7b190fe9a79da9f.mem +0 -0
  103. package/lib/legacy/static/{RoomleCore-18f96bc7c4c9fe8e.js → RoomleCore-41a17c2814f0726e.js} +81 -82
  104. package/lib/legacy/static/RoomleCore-eefc95fcacfbbdb7.wasm +0 -0
  105. package/lib/legacy/static/RoomleCoreJs-5e547e7bf5b9b475.js +151 -0
  106. package/lib/legacy/static/RoomleCoreJs-f7d9879c184a770d.mem +0 -0
  107. package/lib/legacy/static/shaders-7020129ae8893468.json +1 -0
  108. package/lib/legacy/stats-helper-442c3223.legacy.js +2 -0
  109. package/lib/legacy/{stats-helper-0331e2a2.legacy.js.map → stats-helper-442c3223.legacy.js.map} +1 -1
  110. package/lib/{main-thread-to-worker-97315397.nomodule.js → main-thread-to-worker-1f6a23af.nomodule.js} +2 -2
  111. package/lib/main-thread-to-worker-1f6a23af.nomodule.js.map +1 -0
  112. package/lib/main-thread-to-worker-ed1f7708.js +2 -0
  113. package/lib/main-thread-to-worker-ed1f7708.js.map +1 -0
  114. package/lib/material-viewer-721925dc.js +2 -0
  115. package/lib/material-viewer-721925dc.js.map +1 -0
  116. package/lib/material-viewer-8892e9c6.nomodule.js +2 -0
  117. package/lib/material-viewer-8892e9c6.nomodule.js.map +1 -0
  118. package/lib/material-viewer-main-3b61abce.js +2 -0
  119. package/lib/material-viewer-main-3b61abce.js.map +1 -0
  120. package/lib/material-viewer-main.nomodule.js +1 -1
  121. package/lib/pixotron-a848c4ca.js +2 -0
  122. package/lib/{pixotron-bb62a4ac.js.map → pixotron-a848c4ca.js.map} +1 -1
  123. package/lib/pixotron-f8c2e3a5.nomodule.js +2 -0
  124. package/lib/{pixotron-2bc1795a.nomodule.js.map → pixotron-f8c2e3a5.nomodule.js.map} +1 -1
  125. package/lib/planner-05e12365.nomodule.js +2 -0
  126. package/lib/{planner-625e04ba.nomodule.js.map → planner-05e12365.nomodule.js.map} +1 -1
  127. package/lib/planner-755e6ccb.js +2 -0
  128. package/lib/{planner-93dd1048.js.map → planner-755e6ccb.js.map} +1 -1
  129. package/lib/planner-dummy-app.js +1 -1
  130. package/lib/planner-dummy-app.js.map +1 -1
  131. package/lib/planner-dummy.html +3 -0
  132. package/lib/planner-main-7fd8ece8.js +2 -0
  133. package/lib/planner-main-7fd8ece8.js.map +1 -0
  134. package/lib/planner-main.nomodule.js +1 -1
  135. package/lib/roomle-configurator-62518099.nomodule.js +2 -0
  136. package/lib/roomle-configurator-62518099.nomodule.js.map +1 -0
  137. package/lib/roomle-configurator-d102da33.js +2 -0
  138. package/lib/roomle-configurator-d102da33.js.map +1 -0
  139. package/lib/roomle-dependency-injection-25764a2d.js +16 -0
  140. package/lib/roomle-dependency-injection-25764a2d.js.map +1 -0
  141. package/lib/roomle-dependency-injection-4b0d114d.nomodule.js +16 -0
  142. package/lib/roomle-dependency-injection-4b0d114d.nomodule.js.map +1 -0
  143. package/lib/roomle-sdk-64324ba4.js +2 -0
  144. package/lib/roomle-sdk-64324ba4.js.map +1 -0
  145. package/lib/roomle-sdk.nomodule.js +1 -1
  146. package/lib/static/ConfiguratorKernel-3c16a462912d4363.wasm +0 -0
  147. package/lib/static/ConfiguratorKernel-805ef8c9e2946584.js +1 -0
  148. package/lib/static/ConfiguratorKernel-805ef8c9e2946584.js.map +1 -0
  149. package/lib/static/ConfiguratorKernelJs-46632e2744e151e6.js +143 -0
  150. package/lib/static/ConfiguratorKernelJs-a7b190fe9a79da9f.mem +0 -0
  151. package/lib/static/RoomleCore-41a17c2814f0726e.js +1 -0
  152. package/lib/static/RoomleCore-41a17c2814f0726e.js.map +1 -0
  153. package/lib/static/RoomleCore-eefc95fcacfbbdb7.wasm +0 -0
  154. package/lib/static/RoomleCoreJs-5e547e7bf5b9b475.js +151 -0
  155. package/lib/static/RoomleCoreJs-f7d9879c184a770d.mem +0 -0
  156. package/lib/static/shaders-7020129ae8893468.json +1 -0
  157. package/lib/stats-helper-718f9ec4.js +2 -0
  158. package/lib/{stats-helper-47b1c13e.js.map → stats-helper-718f9ec4.js.map} +1 -1
  159. package/lib/stats-helper-76e579fe.nomodule.js +2 -0
  160. package/lib/{stats-helper-90311a20.nomodule.js.map → stats-helper-76e579fe.nomodule.js.map} +1 -1
  161. package/package.json +2 -2
  162. package/lib/banana-for-scale-1d3127e8.js +0 -2
  163. package/lib/banana-for-scale-a63fb2df.nomodule.js +0 -2
  164. package/lib/component-dimensioning-6c0c9199.nomodule.js +0 -2
  165. package/lib/component-dimensioning-6c0c9199.nomodule.js.map +0 -1
  166. package/lib/component-dimensioning-cd3fa46e.js.map +0 -1
  167. package/lib/configurator-3cf0afc7.js +0 -2
  168. package/lib/configurator-3cf0afc7.js.map +0 -1
  169. package/lib/configurator-9ec75ff2.nomodule.js +0 -2
  170. package/lib/configurator-9ec75ff2.nomodule.js.map +0 -1
  171. package/lib/configurator-main-2b41551f.js +0 -2
  172. package/lib/configurator-main-2b41551f.js.map +0 -1
  173. package/lib/configurator-mesh-generator-3151246c.js +0 -2
  174. package/lib/configurator-mesh-generator-3151246c.js.map +0 -1
  175. package/lib/configurator-mesh-generator-3497564c.nomodule.js +0 -2
  176. package/lib/configurator-mesh-generator-3497564c.nomodule.js.map +0 -1
  177. package/lib/default-light-setting-6852d456.nomodule.js +0 -2
  178. package/lib/default-light-setting-6852d456.nomodule.js.map +0 -1
  179. package/lib/default-light-setting-825bb619.js +0 -2
  180. package/lib/default-light-setting-825bb619.js.map +0 -1
  181. package/lib/definitions/planner-core/__tests__/backstack.d.ts +0 -1
  182. package/lib/definitions/planner-core/src/services/backstack.d.ts +0 -30
  183. package/lib/dimensioning-helper-46403799.js +0 -2
  184. package/lib/dimensioning-helper-edfc5933.nomodule.js +0 -2
  185. package/lib/glb-viewer-564c48c8.nomodule.js +0 -2
  186. package/lib/glb-viewer-67e22889.js +0 -2
  187. package/lib/glb-viewer-main-2dfab30f.js +0 -2
  188. package/lib/glb-viewer-main-2dfab30f.js.map +0 -1
  189. package/lib/image-renderer-5394fa5b.nomodule.js +0 -2
  190. package/lib/image-renderer-5394fa5b.nomodule.js.map +0 -1
  191. package/lib/image-renderer-d3652216.js +0 -2
  192. package/lib/image-renderer-d3652216.js.map +0 -1
  193. package/lib/legacy/banana-for-scale-2ae53764.legacy.js +0 -2
  194. package/lib/legacy/component-dimensioning-eeddfbe4.legacy.js +0 -2
  195. package/lib/legacy/component-dimensioning-eeddfbe4.legacy.js.map +0 -1
  196. package/lib/legacy/configurator-b980d570.legacy.js +0 -2
  197. package/lib/legacy/configurator-b980d570.legacy.js.map +0 -1
  198. package/lib/legacy/configurator-mesh-generator-32a1a893.legacy.js +0 -2
  199. package/lib/legacy/configurator-mesh-generator-32a1a893.legacy.js.map +0 -1
  200. package/lib/legacy/default-light-setting-0c03b9e5.legacy.js +0 -2
  201. package/lib/legacy/default-light-setting-0c03b9e5.legacy.js.map +0 -1
  202. package/lib/legacy/dimensioning-helper-82ad5e54.legacy.js +0 -2
  203. package/lib/legacy/glb-viewer-cb5014ee.legacy.js +0 -2
  204. package/lib/legacy/image-renderer-5dc590d6.legacy.js +0 -2
  205. package/lib/legacy/image-renderer-5dc590d6.legacy.js.map +0 -1
  206. package/lib/legacy/main-thread-to-worker-fb98950d.legacy.js.map +0 -1
  207. package/lib/legacy/material-viewer-d7122341.legacy.js +0 -2
  208. package/lib/legacy/material-viewer-d7122341.legacy.js.map +0 -1
  209. package/lib/legacy/mesh-generator-bcc95cb6.legacy.js +0 -2
  210. package/lib/legacy/mesh-generator-bcc95cb6.legacy.js.map +0 -1
  211. package/lib/legacy/pixotron-35cea8f8.legacy.js +0 -2
  212. package/lib/legacy/planner-b9154820.legacy.js +0 -2
  213. package/lib/legacy/rapi-access-ab9c7de3.legacy.js +0 -16
  214. package/lib/legacy/rapi-access-ab9c7de3.legacy.js.map +0 -1
  215. package/lib/legacy/static/ConfiguratorKernel-4153106c16b35980.wasm +0 -0
  216. package/lib/legacy/static/ConfiguratorKernelJs-02aa8157cf299656.js +0 -143
  217. package/lib/legacy/static/ConfiguratorKernelJs-795532b819912c59.mem +0 -0
  218. package/lib/legacy/static/RoomleCore-daed88a09e86faf7.wasm +0 -0
  219. package/lib/legacy/static/RoomleCoreJs-10b4a8ee2a89da25.mem +0 -0
  220. package/lib/legacy/static/RoomleCoreJs-1e5e3331b2d12a5a.js +0 -151
  221. package/lib/legacy/static/shaders-34f19089b7cddbfe.json +0 -1
  222. package/lib/legacy/stats-helper-0331e2a2.legacy.js +0 -2
  223. package/lib/main-thread-to-worker-97315397.nomodule.js.map +0 -1
  224. package/lib/main-thread-to-worker-9d399850.js +0 -2
  225. package/lib/main-thread-to-worker-9d399850.js.map +0 -1
  226. package/lib/material-viewer-840eebf7.js +0 -2
  227. package/lib/material-viewer-840eebf7.js.map +0 -1
  228. package/lib/material-viewer-9c55d420.nomodule.js +0 -2
  229. package/lib/material-viewer-9c55d420.nomodule.js.map +0 -1
  230. package/lib/material-viewer-main-27d70f5b.js +0 -2
  231. package/lib/material-viewer-main-27d70f5b.js.map +0 -1
  232. package/lib/mesh-generator-7b9048c1.js +0 -2
  233. package/lib/mesh-generator-7b9048c1.js.map +0 -1
  234. package/lib/mesh-generator-95709715.nomodule.js +0 -2
  235. package/lib/mesh-generator-95709715.nomodule.js.map +0 -1
  236. package/lib/pixotron-2bc1795a.nomodule.js +0 -2
  237. package/lib/pixotron-bb62a4ac.js +0 -2
  238. package/lib/planner-625e04ba.nomodule.js +0 -2
  239. package/lib/planner-93dd1048.js +0 -2
  240. package/lib/planner-main-3e727a01.js +0 -2
  241. package/lib/planner-main-3e727a01.js.map +0 -1
  242. package/lib/rapi-access-693b87b1.js +0 -16
  243. package/lib/rapi-access-693b87b1.js.map +0 -1
  244. package/lib/rapi-access-ec9bc9d3.nomodule.js +0 -16
  245. package/lib/rapi-access-ec9bc9d3.nomodule.js.map +0 -1
  246. package/lib/roomle-sdk-a81664de.js +0 -2
  247. package/lib/roomle-sdk-a81664de.js.map +0 -1
  248. package/lib/static/ConfiguratorKernel-4153106c16b35980.wasm +0 -0
  249. package/lib/static/ConfiguratorKernel-e9bbd4998a056b0b.js +0 -1
  250. package/lib/static/ConfiguratorKernel-e9bbd4998a056b0b.js.map +0 -1
  251. package/lib/static/ConfiguratorKernelJs-02aa8157cf299656.js +0 -143
  252. package/lib/static/ConfiguratorKernelJs-795532b819912c59.mem +0 -0
  253. package/lib/static/RoomleCore-18f96bc7c4c9fe8e.js +0 -1
  254. package/lib/static/RoomleCore-18f96bc7c4c9fe8e.js.map +0 -1
  255. package/lib/static/RoomleCore-daed88a09e86faf7.wasm +0 -0
  256. package/lib/static/RoomleCoreJs-10b4a8ee2a89da25.mem +0 -0
  257. package/lib/static/RoomleCoreJs-1e5e3331b2d12a5a.js +0 -151
  258. package/lib/static/shaders-34f19089b7cddbfe.json +0 -1
  259. package/lib/stats-helper-47b1c13e.js +0 -2
  260. package/lib/stats-helper-90311a20.nomodule.js +0 -2
@@ -6,42 +6,47 @@ import { KernelComponent, PlanObject, UiPossibleChild } from '../../../typings/k
6
6
  import { SceneSettings } from '../../../common-core/src/scene-settings-loader';
7
7
  import { RapiMaterial } from '../../../typings/rapi-types';
8
8
  import { BakedShadowParams } from '../../../typings/pixotron';
9
- import { ConfiguratorViewModelCallbackI } from '../../../common-core/src/view-model/configurator-view-model';
9
+ import ConfiguratorContext from '../../../common-core/src/webgl/configurator-context';
10
+ import ConfiguratorViewModel, { ConfiguratorViewModelCallbackI } from '../../../common-core/src/view-model/configurator-view-model';
10
11
  import { CameraParameter } from '../../../common-core/src/cameracontrol/camera-control';
11
- import { PrepareImageOptions, RenderOptions } from '../../../common-core/src/webgl/image-renderer';
12
+ import { CameraTarget, PrepareImageOptions, RenderOptions } from '../../../common-core/src/webgl/image-renderer';
12
13
  import SceneManager from '../../../common-core/src/webgl/scene-manager';
13
14
  import { CAMERA_TYPE } from '../../../common-core/src/cameracontrol/camera-type';
15
+ import PlannerKernelAccess from '../../../planner-core/src/services/planner-kernel-access';
14
16
  export default class ConfiguratorSceneManager extends SceneManager implements ConfiguratorViewModelCallbackI {
15
17
  _creator_: string;
16
18
  private _configuratorInputManager;
17
19
  private _configuratorUiCallbacks;
18
20
  private _configuratorMeshGenerator;
19
21
  private _memoryManager;
20
- private _configuratorContext;
21
- private _kernelAccess;
22
+ protected _configuratorContext: ConfiguratorContext;
22
23
  private _componentDimensioningHelper;
23
- private _configuratorViewModel;
24
24
  private _configuratorHistory;
25
+ protected _plannerKernelAccess: PlannerKernelAccess;
26
+ protected _viewModel: ConfiguratorViewModel;
25
27
  private _componentFactory;
26
28
  private _componentRaycastHelper;
27
29
  private _dimensionHelper;
28
30
  private _uiIntersectionHelper;
29
31
  private _sceneEventHandler;
30
- private _camera;
31
- constructor(creator: string, offset: CanvasOffset);
32
+ constructor(creator: string, offset: CanvasOffset, mode?: CAMERA_TYPE);
32
33
  private _initOptionalModules;
34
+ enableConfiguratorEvents(): void;
35
+ disableConfiguratorEvents(): void;
36
+ protected _getViewModel(): ConfiguratorViewModel;
37
+ protected _getKernelAccess(): PlannerKernelAccess;
33
38
  private _showDockings;
34
39
  cancelDockings(): void;
35
40
  private _cancelDockings;
36
41
  private _onHoverOn;
37
42
  private _onHoverOff;
38
- private _highlight;
43
+ private _highlightComponent;
39
44
  protected shouldClearShadowsAndAO(): boolean;
40
45
  resume(): void;
41
46
  private _materialLoaded;
42
47
  private _applySSR;
43
48
  pause(): void;
44
- protected _setupScene(offset?: CanvasOffset): void;
49
+ protected _setupScene(offset?: CanvasOffset, transparent?: boolean): void;
45
50
  sceneCleared(shouldHardReset: boolean): void;
46
51
  display(component: RoomleComponent): void;
47
52
  debugSceneGraph(id?: number): void;
@@ -53,7 +58,7 @@ export default class ConfiguratorSceneManager extends SceneManager implements Co
53
58
  preparePerspectiveImage(options?: PrepareImageOptions): Promise<Base64Image>;
54
59
  renderImage(renderOptions: RenderOptions): Promise<Base64Image>;
55
60
  preparePartImage(partId: number, options: PrepareImageOptions): Promise<any>;
56
- private _calculateBoundingBoxOfAllMeshes;
61
+ protected _calculateBoundingBoxOfAllMeshes(spacing?: number, showDimensions?: boolean): CameraTarget;
57
62
  private _externalMeshesAndMaterialsReady;
58
63
  prepareTopImage(options?: PrepareImageOptions): Promise<Base64Image>;
59
64
  enableDragIn(dragEvent: DragEvent): void;
@@ -70,7 +75,7 @@ export default class ConfiguratorSceneManager extends SceneManager implements Co
70
75
  protected _onKeyDown(event: KeyboardEvent): void;
71
76
  protected _onKeyUp(event: KeyboardEvent): void;
72
77
  cancelPreviousDockings(): void;
73
- cancelSelection(resetCamera?: boolean): void;
78
+ cancelComponentSelection(resetCamera?: boolean): void;
74
79
  private _cancelSelection;
75
80
  private _selectComponent;
76
81
  private _deselectComponent;
@@ -106,7 +111,7 @@ export default class ConfiguratorSceneManager extends SceneManager implements Co
106
111
  highlightParts(ids: number[]): void;
107
112
  private _shouldHighlight;
108
113
  protected _getInputManager(): InputManager;
109
- createCameraControl(_mode: CAMERA_TYPE, offset: CanvasOffset): void;
114
+ protected createCameraControl(_mode: CAMERA_TYPE, offset: CanvasOffset): void;
110
115
  getBakedShadowParams(): BakedShadowParams;
111
116
  getBounds(): THREE.Box3;
112
117
  getPixotronParams(): any;
@@ -5,6 +5,7 @@ export declare const createPlanObject: () => PlanObject;
5
5
  export declare const getRapiItem: () => RapiItem;
6
6
  export declare const MOCK_RUNTIME_COMPONENTID = 49;
7
7
  export declare const MOCK_MESHID = "adidas-focs:ShelfTable_Table_Large_Metall";
8
+ export declare const MOCK_MESH_ID_NUMBER = 42;
8
9
  export declare const MOCK_GEOMETRY_ID = "#asdfjaksdklfasd";
9
10
  export declare const MOCK_MATERIALID = "adidas:Metal";
10
11
  export declare const MOCK_TRANSFORM: Float32Array;
@@ -14,7 +14,6 @@ export interface SelectionPayload {
14
14
  export default class RoomlePlannerUiCallback extends UiCallback {
15
15
  constructor(creator: string);
16
16
  onItemsLoaded: () => void;
17
- onBackStackChanged: (backStack: string[]) => void;
18
17
  onCameraChanged: (type: CAMERA_TYPE) => void;
19
18
  onTotalFloorAreaChanged: (totalFloorArea: number) => void;
20
19
  onPlanInteractionHandlerCreated: (planInteractionHandler: PlanInteractionHandler) => void;
@@ -46,6 +45,10 @@ export default class RoomlePlannerUiCallback extends UiCallback {
46
45
  * When something in the plan has changed
47
46
  */
48
47
  onPlanChanged: () => void;
48
+ /**
49
+ * When an element in the plan has been added, removed or changed
50
+ */
51
+ onPlanElementChanged: () => void;
49
52
  /**
50
53
  * When the plan has been completely loaded
51
54
  */
@@ -4,7 +4,6 @@ import Main, { ExternalEmbeddable, GlobalAPI, KernelUtilityForUi } from '../../c
4
4
  import { Configurator } from '../../configurator-core/src/configurator';
5
5
  import { GlobalInitDataDefinition, InitDataDefinition } from '../../common-core/src/utils/shims';
6
6
  import { RapiId, RapiItem } from '../../typings/rapi-types';
7
- import { BackstackCallbacks } from './services/backstack';
8
7
  import { Context } from '../../common-core/src/di/context';
9
8
  import { KernelObject, KernelWall, PlanInteractionHandler, PlanModelViewHelper, PlanOverview } from '../../typings/planner';
10
9
  import { KernelAccessCallbackI } from '../../common-core/src/kernel-access-callback';
@@ -13,6 +12,7 @@ import { CanvasOffset, Position3 } from '../../common-core/src/common-interfaces
13
12
  import { PrepareImageOptions } from '../../common-core/src/webgl/image-renderer';
14
13
  import { DynamicLightSettingSource } from '../../common-core/src/lightsetting/dynamic-light-setting-loader';
15
14
  import { KernelParameter, KernelPartList, UiPlanObject } from '../../typings/kernel';
15
+ import RoomleConfigurator from '../../configurator-core/src/roomle-configurator';
16
16
  export interface RoomlePlannerCallback {
17
17
  switchToConfigurator: () => Promise<Configurator>;
18
18
  switchToViewer: () => Promise<GlbViewer>;
@@ -31,7 +31,7 @@ export interface WallDefinition {
31
31
  export interface InteractionOptions {
32
32
  keepInteractionOpen?: boolean;
33
33
  }
34
- export default class RoomlePlanner implements KernelAccessCallbackI, RoomlePlannerCallback, GlobalAPI, BackstackCallbacks, Context, KernelUtilityForUi, ExternalEmbeddable<RoomlePlannerUiCallback> {
34
+ export default class RoomlePlanner implements KernelAccessCallbackI, RoomlePlannerCallback, GlobalAPI, Context, KernelUtilityForUi, ExternalEmbeddable<RoomlePlannerUiCallback> {
35
35
  _creator_: string;
36
36
  private _domHelper;
37
37
  private _scriptLoader;
@@ -41,7 +41,6 @@ export default class RoomlePlanner implements KernelAccessCallbackI, RoomlePlann
41
41
  private _singlePromiseFactory;
42
42
  private _roomlePlannerUiCallback;
43
43
  private _lifeCycleManager;
44
- private _backstack;
45
44
  private _threeLoader;
46
45
  private _dataSyncer;
47
46
  protected _initData: InitData;
@@ -54,6 +53,8 @@ export default class RoomlePlanner implements KernelAccessCallbackI, RoomlePlann
54
53
  private _kernelReadyCallback;
55
54
  private _hscInstance;
56
55
  private _glbInstance;
56
+ private _configurator;
57
+ private _currentMode;
57
58
  constructor(creator: string);
58
59
  deleteSelection(): void;
59
60
  /**
@@ -79,6 +80,10 @@ export default class RoomlePlanner implements KernelAccessCallbackI, RoomlePlann
79
80
  enableHD(source?: DynamicLightSettingSource): Promise<void>;
80
81
  isReady(): void;
81
82
  showBenchmarks(): void;
83
+ getConfiguratorApi(): RoomleConfigurator;
84
+ startViewing(): void;
85
+ startConfiguring(): void;
86
+ backToPlanner(): void;
82
87
  switchToConfigurator(): Promise<Configurator>;
83
88
  switchToViewer(): Promise<GlbViewer>;
84
89
  switchToPlanner(id?: string): void;
@@ -94,10 +99,9 @@ export default class RoomlePlanner implements KernelAccessCallbackI, RoomlePlann
94
99
  get callbacks(): RoomlePlannerUiCallback;
95
100
  set callbacks(callback: RoomlePlannerUiCallback);
96
101
  showStats(): void;
97
- onBackStackChanged(currentStack: string[]): void;
98
102
  onCloseHSC(): void;
99
103
  back(): void;
100
- backTo(cssClass: string): void;
104
+ backTo(_cssClass: string): void;
101
105
  getConfigurator(): Configurator;
102
106
  getCurrentSkin(): Promise<import("../../typings/rapi-types").RapiSkin>;
103
107
  /**
@@ -1,13 +1,12 @@
1
- import { KernelEnum, KernelVector3 } from '../../../typings/kernel';
2
- import PlanViewModel from '../view-model/plan-view-model';
1
+ import { KernelEnum } from '../../../typings/kernel';
3
2
  import { KernelObject, Plan, PlanElement, PlanInteractionHandler, PlanObject } from '../../../typings/planner';
4
- import CommonKernelAccess from '../../../common-core/src/services/common-kernel-access';
5
- import { ConfigurationString, RapiConfiguration, RapiId, RapiItem } from '../../../typings/rapi-types';
3
+ import { RapiConfiguration, RapiItem } from '../../../typings/rapi-types';
6
4
  import RoomlePlannerUiCallback from '../roomle-planner-ui-callback';
7
5
  import PlanElementViewModel from '../../../common-core/src/view-model/plan-element-view-model';
8
6
  import { Position3 } from '../../../common-core/src/common-interfaces';
7
+ import ConfiguratorKernelAccess from '../../../common-core/src/configurator-kernel-access';
9
8
  export interface PlannerKernelCallbackI {
10
- handlerSwitchedPlans(planViewModel: PlanViewModel): void;
9
+ handlerSwitchedPlans(fromPlan: Plan, toPlan: Plan): void;
11
10
  planCompletelyLoaded(plan: Plan): void;
12
11
  beginPlanConstruction(plan: Plan): void;
13
12
  addMesh(planElement: PlanElement, material: any, vertices: Int32Array, indices: Int32Array, uvCoords: Float32Array, normals: Float32Array): void;
@@ -20,15 +19,15 @@ export interface PlannerKernelCallbackI {
20
19
  planObjectConfigurationLoaded(plan: Plan, element: PlanElement, success: boolean): void;
21
20
  planBoundsChanged(): void;
22
21
  }
23
- export default class PlannerKernelAccess extends CommonKernelAccess {
22
+ export default class PlannerKernelAccess extends ConfiguratorKernelAccess {
24
23
  private _kernelAccessCallback;
25
24
  private _roomlePlannerUiCallback;
26
25
  private _planInteractionHandler;
27
26
  private _plannerKernelCallbackListener;
28
27
  get kernelContainer(): any;
29
28
  constructor(creator: string);
30
- private _loadSuccess;
31
- private _loadError;
29
+ protected _loadSuccess(): void;
30
+ protected _loadError(): void;
32
31
  private _createPlanInteractionHandler;
33
32
  addPlannerListener(listener: PlannerKernelCallbackI): void;
34
33
  removePlannerListener(listener: PlannerKernelCallbackI): void;
@@ -39,58 +38,10 @@ export default class PlannerKernelAccess extends CommonKernelAccess {
39
38
  catalogItemLoaded(catalogItem: RapiItem): void;
40
39
  insertItems(itemList: Array<RapiItem | RapiConfiguration>): Promise<void>;
41
40
  private _rapiItemToKernelItem;
42
- onLoadComponentError(_error: Error, _id: RapiId): void;
43
- configurationLoaded(_conversationId: number, _objectId: number, _componentId: number, _hash: string, _errors: any): void;
44
- componentDefinitionLoaded(_conversationId: number, _componentId: number): void;
45
- componentDefinitionLoadingError(_conversationId: number, _errorMessage: string): void;
46
- configurationLoadingError(): void;
47
- componentConfigurationUpdated(_componentId: number): void;
48
- componentParameters(): void;
49
- requestComponentDimensions(): void;
50
- planObjectCreated(_conversationId: number, _planObjectId: number): void;
51
- planObjectUpdated(_planObjectId: number): void;
52
- planObjectConfigurationUpdated(_planObjectId: number, _configuration: ConfigurationString, _hash: string): void;
53
41
  planObjectDeleted(): void;
54
42
  requestPlanObjectDimensions(): void;
55
43
  cleanUpCallbacks(): void;
56
44
  registerCallbacks(): void;
57
- requestExternalMesh(meshId: string, quality: number): Promise<void>;
58
- Editor3dRootComponentCreated(id: number, position: KernelVector3, eulerAngles: KernelVector3, parentObjectRuntimeId: number): void;
59
- Editor3dPlanObjectConstructionDone(_planObjectId: number): void;
60
- Editor3dBeginGroup(): void;
61
- Editor3dEndGroup(): void;
62
- Editor3dSetMaterial(): void;
63
- Editor3dLoadMaterial(): void;
64
- Editor3dAddDockPreview(_componentId: number, _previewId: number): void;
65
- Editor3dSetPreviewPointAssociations(_dockPairs: any, _previewId: number): void;
66
- Editor3dSetPreviewLineAssociations(_dockLines: any, _previewId: number): void;
67
- Editor3dPreviewConstructionDone(_componentId: number, _objectId: number): void;
68
- Editor3dTranslateBy(): void;
69
- Editor3dRotateBy(): void;
70
- Editor3dRotateAround(): void;
71
- Editor3dAddCube(): void;
72
- Editor3dAddCubeUVMod(): void;
73
- Editor3dAddSphere(): void;
74
- Editor3dAddSphereUVMod(): void;
75
- Editor3dAddRectangle(): void;
76
- Editor3dAddRectangleUVMod(): void;
77
- Editor3dAddMesh(): void;
78
- Editor3dAddMeshUVMod(): void;
79
- Editor3dAddMeshUVCoord(): void;
80
- Editor3dAddCylinder(): void;
81
- Editor3dAddCylinderUVMod(): void;
82
- Editor3dAddPrism(): void;
83
- Editor3dAddPrismUVMod(): void;
84
- Editor3dAddFittingPoint(): void;
85
- Editor3dAddFittingLine(): void;
86
- Editor3dSelectObject(): void;
87
- Editor3dCopy(): void;
88
- Editor3dUpdatePlanObjectPosition(): void;
89
- Editor3dUpdatePlanObjectRotation(): void;
90
- Editor3dUpdatePlanObjectTransform(): void;
91
- Editor3dUpdatePlanComponentPosition(): void;
92
- Editor3dUpdatePlanComponentRotation(): void;
93
- Editor3dUpdatePlanComponentTransform(): void;
94
45
  planElementRemoved(element: PlanElement): void;
95
46
  handlerSwitchedPlans(fromPlan: Plan, toPlan: Plan): void;
96
47
  planBoundsChanged(): void;
@@ -113,6 +64,6 @@ export default class PlannerKernelAccess extends CommonKernelAccess {
113
64
  addPlanMesh(plan: Plan, material: any, vertices: Int32Array, indices: Int32Array, uvCoords: Float32Array, normals: Float32Array, type: KernelEnum): void;
114
65
  endPlanConstruction(plan: Plan): void;
115
66
  addPlanObjectFromItem(rapiElement: RapiItem | RapiConfiguration, position?: Position3, rotation?: number): KernelObject | Promise<void>;
116
- private _coupleReferences;
67
+ coupleReferences(jsObject: any, coreReference: KernelObject): void;
117
68
  private _decoupleReferences;
118
69
  }
@@ -6,7 +6,6 @@ import PlannerSceneEventHandler from '../webgl/planner-scene-event-handler';
6
6
  import StaticPlanObjectViewModel from './static-plan-object-view-model';
7
7
  import ConfiguratorViewModel from '../../../common-core/src/view-model/configurator-view-model';
8
8
  import { KernelEnum, KernelVector3 } from '../../../typings/kernel';
9
- import CommonKernelAccess from '../../../common-core/src/services/common-kernel-access';
10
9
  import PlanElementViewModel from '../../../common-core/src/view-model/plan-element-view-model';
11
10
  import MeshGenerator from '../../../common-core/src/webgl/mesh-generator';
12
11
  export declare const GROUP_CONSTRUCTION = "Construction";
@@ -14,6 +13,7 @@ export declare const GROUP_CEILING = "Ceiling";
14
13
  export declare const GROUP_FLOOR = "Ceiling";
15
14
  export default class PlanViewModel extends ConfiguratorViewModel implements PlannerKernelCallbackI {
16
15
  private _plannerMeshGenerator;
16
+ private _roomlePlannerUiCallback;
17
17
  private _coreReference;
18
18
  private _configurablePlanObjectViewModels;
19
19
  private _staticPlanObjectViewModels;
@@ -23,7 +23,6 @@ export default class PlanViewModel extends ConfiguratorViewModel implements Plan
23
23
  private _plannerSceneEventHandler;
24
24
  constructor(creator: string);
25
25
  planBoundsChanged(): void;
26
- protected _getKernelAccess(): CommonKernelAccess;
27
26
  setReference(plan: Plan): void;
28
27
  clearReference(): void;
29
28
  getCorePlan(): Plan;
@@ -51,12 +50,11 @@ export default class PlanViewModel extends ConfiguratorViewModel implements Plan
51
50
  setPlannerSceneEventHandler(plannerSceneEventHandler: PlannerSceneEventHandler): void;
52
51
  sceneCleared(): void;
53
52
  getStaticPlanObjectViewModels(): StaticPlanObjectViewModel[];
54
- getComponent(id: number): RoomleComponent;
55
- protected _generateMesh(_runtimeComponentId: number, meshId: string, material: any, vertices: Int32Array, indices: Int32Array, uvCoords: Float32Array, normals: Float32Array, type?: KernelEnum, newGeometryInstance?: boolean): THREE.Mesh;
53
+ protected _generateMesh(runtimeComponentId: number, geometryId: string, material: any, vertices: Int32Array, indices: Int32Array, uvCoords: Float32Array, normals: Float32Array, type?: KernelEnum, newGeometryInstance?: boolean): THREE.Mesh;
56
54
  protected _setMaterial(mesh: THREE.Mesh, material: any, _type?: KernelEnum): void;
57
55
  Editor3dComponentCreated(id: number, position: KernelVector3, eulerAngles: KernelVector3, parentObjectRuntimeId: number, isRootComponent: boolean): void;
58
56
  addPlanObjectToScene(_planViewModel: PlanElementViewModel): void;
59
- handlerSwitchedPlans(_planViewModel: PlanViewModel): void;
57
+ handlerSwitchedPlans(_fromPlan: Plan, _toPlan: Plan): void;
60
58
  planCompletelyLoaded(_plan: Plan): void;
61
59
  beginPlanConstruction(_plan: Plan): void;
62
60
  addPlanMesh(_plan: Plan, _material: any, _vertices: Int32Array, _indices: Int32Array, _uvCoords: Float32Array, _normals: Float32Array, _type: KernelEnum): void;
@@ -68,4 +66,7 @@ export default class PlanViewModel extends ConfiguratorViewModel implements Plan
68
66
  private _isConstructionType;
69
67
  planElementRemoved(element: PlanElement): void;
70
68
  protected getMeshGenerator(): MeshGenerator;
69
+ componentConfigurationUpdated(runtimeComponentId: number, geometryChanged: boolean): void;
70
+ hideAllExcept(planObjectId: number): void;
71
+ showAll(): void;
71
72
  }
@@ -9,7 +9,7 @@ export default class PlannerMeshGenerator extends MeshGenerator {
9
9
  private _defaultMaterial;
10
10
  constructor(creator: string);
11
11
  generateGeometry(meshId: string, vertices: Int32Array, indices: Int32Array, uvCoords: Float32Array, normals: Float32Array, newGeometryInstance?: boolean): THREE.BufferGeometry;
12
- generateMesh(meshId: string, material: BaseMaterial | string, vertices: Int32Array, indices: Int32Array, uvCoords: Float32Array, normals: Float32Array, type?: KernelEnum, newGeometryInstance?: boolean): THREE.Mesh;
12
+ generateMesh(runtimeComponentId: number, geometryId: string, materialId: BaseMaterial | string, vertices: Int32Array, indices: Int32Array, uvCoords: Float32Array, normals: Float32Array, type?: KernelEnum, newGeometryInstance?: boolean): THREE.Mesh;
13
13
  setMaterial(mesh: THREE.Mesh, material: BaseMaterial | string, type?: KernelEnum): Promise<void>;
14
14
  set maxAnisotropy(maxAnisotropy: number);
15
15
  private _checkWallMaterial;
@@ -40,8 +40,10 @@ export default class PlannerSceneEventHandler extends SceneEventHandler<SceneEve
40
40
  private _position;
41
41
  private _state;
42
42
  constructor(creator: string, scene: THREE.Scene, camera: THREE.Camera, inputManager: InputManager);
43
+ disable(): void;
44
+ enable(): void;
43
45
  getSelectionMode(): SELECTION_MODE;
44
- addPlanObjectHandlers(planObjectViewModel: PlanObjectViewModel, object?: THREE.Object3D): Promise<void>;
46
+ addPlanObjectHandlers(planObjectViewModel: PlanObjectViewModel, object?: THREE.Object3D): void;
45
47
  addWallHandlers(planElementViewModel: PlanElementViewModel): void;
46
48
  private _addPlanObjectHandlers;
47
49
  private _addPlanElementHandlers;
@@ -1,25 +1,24 @@
1
1
  import { Base64Image, CanvasOffset } from '../../../common-core/src/common-interfaces';
2
2
  import { PlannerKernelCallbackI } from '../services/planner-kernel-access';
3
3
  import { Plan, PlanElement } from '../../../typings/planner';
4
- import PlanViewModel from '../view-model/plan-view-model';
5
- import SceneManager from '../../../common-core/src/webgl/scene-manager';
6
4
  import { KernelEnum } from '../../../typings/kernel';
7
5
  import PlannerSceneEventHandler from './planner-scene-event-handler';
8
6
  import { RoomlePlannerCallback } from '../roomle-planner';
9
7
  import InputManager from '../../../common-core/src/input/input-manager';
8
+ import { SelectionPayload } from '../roomle-planner-ui-callback';
10
9
  import { CAMERA_TYPE } from '../../../common-core/src/cameracontrol/camera-type';
11
10
  import PlanElementViewModel from '../../../common-core/src/view-model/plan-element-view-model';
12
11
  import { BakedShadowParams } from '../../../typings/pixotron';
13
- import { PrepareImageOptions } from '../../../common-core/src/webgl/image-renderer';
14
- export default class PlannerSceneManager extends SceneManager implements PlannerKernelCallbackI {
15
- private _plannerKernelAccess;
12
+ import { CameraTarget, PrepareImageOptions } from '../../../common-core/src/webgl/image-renderer';
13
+ import PlanViewModel from '../view-model/plan-view-model';
14
+ import ConfiguratorSceneManager from '../../../configurator-core/src/webgl/configurator-scene-manager';
15
+ export default class PlannerSceneManager extends ConfiguratorSceneManager implements PlannerKernelCallbackI {
16
16
  private _rapiAccess;
17
17
  private _plannerMeshGenerator;
18
18
  private _plannerInputManager;
19
19
  private _roomlePlannerUiCallback;
20
20
  private _localStorageHelper;
21
21
  private _plannerSceneEventHandler;
22
- private _planViewModel;
23
22
  private _roomlePlannerCallback;
24
23
  private _sky;
25
24
  private _planId;
@@ -27,30 +26,36 @@ export default class PlannerSceneManager extends SceneManager implements Planner
27
26
  private _staticItemGuard;
28
27
  private _configurableItemGuard;
29
28
  private _dragStartBounds;
30
- constructor(creator: string, offset: CanvasOffset, plannerCallback: RoomlePlannerCallback, mode?: CAMERA_TYPE);
29
+ currentSelection: SelectionPayload;
30
+ constructor(creator: string, offset: CanvasOffset, plannerCallback: RoomlePlannerCallback, mode: CAMERA_TYPE);
31
+ protected _getViewModel(): PlanViewModel;
31
32
  private _getDragPosition;
32
33
  private _onSelectionChange;
34
+ private _onSelectionCancel;
35
+ resetConfiguratorContext(): void;
33
36
  protected _setupScene(offset?: CanvasOffset, transparent?: boolean): void;
34
37
  protected onBeforeRender(): void;
35
38
  protected _getInputManager(): InputManager;
36
39
  protected createCameraControl(mode: CAMERA_TYPE, _offset: CanvasOffset): void;
40
+ startViewing(): void;
41
+ startConfiguring(): void;
42
+ backToPlanner(): void;
37
43
  resetCamera(): void;
38
44
  resetCameraToState(): void;
39
- resetCameraPositionToStart(): void;
40
45
  private _getYRotationOfObject;
41
46
  loadStaticPlanObjects(): void;
42
47
  private _staticItemsLoaded;
43
48
  preload(id: string): void;
44
49
  planXMLLoaded(plan: Plan): void;
45
50
  planCompletelyLoaded(_plan: Plan): void;
46
- handlerSwitchedPlans(planViewModel: PlanViewModel): void;
51
+ handlerSwitchedPlans(fromPlan: Plan, toPlan: Plan): void;
47
52
  private _itemsLoaded;
48
53
  beginPlanConstruction(_plan: Plan): void;
49
54
  addPlanMesh(_plan: Plan, _material: any, _vertices: Int32Array, _indices: Int32Array, _uvCoords: Float32Array, _normals: Float32Array, _type: KernelEnum): void;
50
55
  endPlanConstruction(_plan: Plan): void;
51
56
  addPlanObjectToScene(planViewModel: PlanElementViewModel): void;
52
57
  removePlanObjectFromScene(planViewModel: PlanElementViewModel): void;
53
- planElementChanged(_plan: Plan, _planObject: PlanElementViewModel): void;
58
+ planElementChanged(_plan: Plan, _planViewModel: PlanElementViewModel): void;
54
59
  exportGLB(exportObjects?: THREE.Object3D[], id?: string): void;
55
60
  importGLB(url: string): void;
56
61
  clearScene(): void;
@@ -66,7 +71,7 @@ export default class PlannerSceneManager extends SceneManager implements Planner
66
71
  private _checkNumKey;
67
72
  protected _onKeyUp(event: KeyboardEvent): void;
68
73
  setMode(mode: CAMERA_TYPE): void;
69
- private _highlight;
74
+ private _highlightPlanElement;
70
75
  destroy(): void;
71
76
  getPixotronParams(): any;
72
77
  getBakedShadowParams(): BakedShadowParams;
@@ -76,17 +81,19 @@ export default class PlannerSceneManager extends SceneManager implements Planner
76
81
  private _updateCamera;
77
82
  private _zoomToBounds;
78
83
  getBounds(): THREE.Box3;
79
- cancelSelection(): void;
80
- deleteSelection(): void;
81
- rotateSelection(rotateBy: number): void;
84
+ cancelPlanElementSelection(): void;
85
+ deletePlanElementSelection(): void;
86
+ rotatePlanElementSelection(rotateBy: number): void;
82
87
  planBoundsChanged(): void;
83
88
  planElementRemoved(_element: PlanElement): void;
84
89
  private _onPlanChanged;
85
90
  prepareTopImage(options?: PrepareImageOptions): Promise<Base64Image>;
86
91
  preparePerspectiveImage(options?: PrepareImageOptions): Promise<Base64Image>;
87
- private _calculateBoundingBoxOfAllMeshes;
92
+ protected _calculateBoundingBoxOfAllMeshes(spacing?: number): CameraTarget;
88
93
  enableRotation(): void;
89
94
  disableRotation(): void;
90
95
  dragIn(dragEvent: DragEvent): void;
91
96
  getPlannerSceneEventHandler(): PlannerSceneEventHandler;
97
+ disablePlannerEvents(): void;
98
+ enablePlannerEvents(): void;
92
99
  }
@@ -27,6 +27,7 @@ export interface PlanObject extends PlanElement {
27
27
  flipX: boolean;
28
28
  flipY: boolean;
29
29
  fixedZ: boolean;
30
+ boxForMeasurement: KernelCube;
30
31
  hasConfiguration(): boolean;
31
32
  getCatalogItemId(): string;
32
33
  getConfigurationRuntimeId(): number;
@@ -0,0 +1,2 @@
1
+ import{m as dispose,_ as __decorate,i as inject,e as AsyncGuard,ae as AsyncDependencyLoader}from"./roomle-dependency-injection-25764a2d.js";import"./main-thread-to-worker-ed1f7708.js";const PLANE_MATERIAL="component_dimensioning_plane_material",TEXT_MATERIAL="component_dimensioning_text_material";let TextWithBackground=(()=>{class e extends THREE.Object3D{constructor(e){super(),this._label="",this._parameters={font:null,size:.1,height:.001,curveSegments:2,bevelEnabled:!0,bevelThickness:.001,bevelSize:.001},this.topDown=!1,this._parameters.font=e,this._position=new THREE.Vector3,this._initMaterials(),this._init(),this._update()}_initMaterials(){this._cacheHolder.materialCache.has(PLANE_MATERIAL)?this._planeMaterial=this._cacheHolder.materialCache.get(PLANE_MATERIAL):(this._planeMaterial=new THREE.MeshBasicMaterial({color:16777215,side:THREE.DoubleSide,opacity:.8,transparent:!0}),this._cacheHolder.materialCache.set(PLANE_MATERIAL,this._planeMaterial)),this._cacheHolder.materialCache.has(TEXT_MATERIAL)?this._textMaterial=this._cacheHolder.materialCache.get(TEXT_MATERIAL):(this._textMaterial=new THREE.MeshPhongMaterial({color:3618615}),this._cacheHolder.materialCache.set(TEXT_MATERIAL,this._textMaterial))}_init(){let e=new THREE.Geometry;this._text=new THREE.Mesh(e,this._textMaterial),this._text.name="text with background text "+this._label,this._plane=new THREE.Mesh(e,this._planeMaterial),this._plane.name="text with background plane "+this._label,this._textGeometry=new THREE.TextGeometry(this._label,this._parameters),this._textGeometry.computeBoundingBox(),this._text.geometry=this._textGeometry,this.add(this._text),this.add(this._plane)}update(e,i,t,s){this._position.copy(e),this._dimensioningType=i,this._cameraPosition=s,this._label=t;const n=this._cameraPosition.distanceTo(this._text.position),h=Math.max(.01,n/100),o=Math.max(5e-4,n/5e3);this._parameters.bevelThickness=o,this._parameters.bevelSize=o,this._parameters.size=h,this._textGeometry=new THREE.TextGeometry(this._label,this._parameters),this._textGeometry.computeBoundingBox(),this._text.geometry=this._textGeometry,this._update()}_update(){if(this.topDown){let e=new THREE.Quaternion;e.setFromAxisAngle(new THREE.Vector3(-1,0,0),Math.PI/2),this._updateText(this._textGeometry,e,new THREE.Vector3)}else if(this._updateText(this._textGeometry,new THREE.Quaternion,new THREE.Vector3),this._cameraPosition){const e=Math.atan2(this._cameraPosition.x-this._position.x,this._cameraPosition.z-this._position.z);this._text.rotation.y=e,this._plane.rotation.y=e}}_updateText(e,i,t){let s=new THREE.Vector3;s.copy(this._position),t.x*=this._getXSign(),s.add(t);let n=e.boundingBox.getSize(new THREE.Vector3);e.center(),this._text.position.copy(s),this._text.quaternion.copy(i);let h=new THREE.PlaneGeometry(n.x+.02,n.y+.02,32);h.center(),this._plane.geometry=h,this._plane.position.copy(s),this._plane.quaternion.copy(i)}_getXSign(){return!this._cameraPosition||this._cameraPosition.x>=0?1:-1}dispose(){dispose(this)}}return __decorate([inject],e.prototype,"_cacheHolder",void 0),e})(),DimensioningHelper=(()=>{class e{constructor(e){this._cameraPosition=new THREE.Vector3,this._textUpdated=!1,this._topDimensions=!1,this._initialized=new AsyncGuard,this._enabled=!1,this._dimensionsVisible=!1,this._creator_=e,this._lineMaterial=new THREE.LineBasicMaterial({color:3618615,linewidth:2});let i=new THREE.Geometry;this._widthLine=new THREE.Line(i,this._lineMaterial),this._widthLine.name="dimension width line",this._heightLine=new THREE.Line(i,this._lineMaterial),this._heightLine.name="dimension height line",this._depthLine=new THREE.Line(i,this._lineMaterial),this._depthLine.name="dimension depth line",this._planeMaterial=new THREE.MeshBasicMaterial({color:16777215,side:THREE.DoubleSide,opacity:.8,transparent:!0}),AsyncDependencyLoader.loadFont("static/rubik_regular_sub-eb3f3b61078695cc.json").then(e=>{this._font=e,this._loaded()})}_loaded(){this.update(!1),this.addToScene(this._scene,this._uiScene),this._initialized.resolve()}_performUpdate(e){this._enabled&&(this._lineBounds||e)&&this._font&&(this._updateHeight(),this._updateWidth(),this._updateDepth())}_updateWidth(){let e=new THREE.Geometry,i=this._getWidthEdge();e.vertices.push(i.start,i.end),this._widthLine.geometry.dispose(),this._widthLine.geometry=e;let t=i.getCenter(new THREE.Vector3);this._widthText||(this._widthText=new TextWithBackground(this._font)),this._widthText.topDown=this._topDimensions;const s=this._unitFormatter.formatMMValueToUnitString(1e3*this._dimensions.x);this._widthText.update(t,0,s,this._cameraPosition)}_updateHeight(){let e=new THREE.Geometry,i=this._getHeightEdge();e.vertices.push(i.start,i.end),this._heightLine.geometry.dispose(),this._heightLine.geometry=e;let t=i.getCenter(new THREE.Vector3);this._heightText||(this._heightText=new TextWithBackground(this._font)),this._heightText.topDown=this._topDimensions;const s=this._unitFormatter.formatMMValueToUnitString(1e3*this._dimensions.y);this._heightText.update(t,1,s,this._cameraPosition)}_updateDepth(){let e=new THREE.Geometry,i=this._getDepthEdge();e.vertices.push(i.start,i.end),this._depthLine.geometry.dispose(),this._depthLine.geometry=e;let t=i.getCenter(new THREE.Vector3);this._depthText||(this._depthText=new TextWithBackground(this._font)),this._depthText.topDown=this._topDimensions;const s=this._unitFormatter.formatMMValueToUnitString(1e3*this._dimensions.z);this._depthText.update(t,2,s,this._cameraPosition)}updateBounds(e){this._dimensions=e.getSize(new THREE.Vector3),this._lineBounds=e.clone();let i=this._lineBounds.min.y<0?this._lineBounds.min.y:0;i-=.01,this._lineBounds.expandByVector(new THREE.Vector3(.05,i,.05)),this._textUpdated=!1,this.update()}update(e=!1){this._enabled&&!this._dimensionsVisible&&(this._dimensionsVisible=!0,this._visibilityChangedCallback()),this._performUpdate(e)}addToScene(e,i){this._widthText&&this._widthLine&&this._heightText&&this._heightLine&&this._heightText&&this._heightLine&&(e.add(this._widthLine),i.add(this._widthText),e.add(this._heightLine),i.add(this._heightText),e.add(this._depthLine),i.add(this._depthText))}removeFromScene(e,i){e.remove(this._widthLine),i.remove(this._widthText),e.remove(this._heightLine),i.remove(this._heightText),e.remove(this._depthLine),i.remove(this._depthText)}_getWidthEdge(){return this._cameraPosition.z>=0?new THREE.Line3(new THREE.Vector3(this._lineBounds.min.x,this._lineBounds.min.y,this._lineBounds.max.z),new THREE.Vector3(this._lineBounds.max.x,this._lineBounds.min.y,this._lineBounds.max.z)):new THREE.Line3(new THREE.Vector3(this._lineBounds.min.x,this._lineBounds.min.y,this._lineBounds.min.z),new THREE.Vector3(this._lineBounds.max.x,this._lineBounds.min.y,this._lineBounds.min.z))}_getDepthEdge(){return this._cameraPosition.x>=0?new THREE.Line3(new THREE.Vector3(this._lineBounds.max.x,this._lineBounds.min.y,this._lineBounds.min.z),new THREE.Vector3(this._lineBounds.max.x,this._lineBounds.min.y,this._lineBounds.max.z)):new THREE.Line3(new THREE.Vector3(this._lineBounds.min.x,this._lineBounds.min.y,this._lineBounds.min.z),new THREE.Vector3(this._lineBounds.min.x,this._lineBounds.min.y,this._lineBounds.max.z))}_getHeightEdge(){return this._cameraPosition.x>=0&&this._cameraPosition.z>=0?new THREE.Line3(new THREE.Vector3(this._lineBounds.max.x,this._lineBounds.min.y,this._lineBounds.max.z),new THREE.Vector3(this._lineBounds.max.x,this._lineBounds.max.y,this._lineBounds.max.z)):this._cameraPosition.x<0&&this._cameraPosition.z>=0?new THREE.Line3(new THREE.Vector3(this._lineBounds.min.x,this._lineBounds.min.y,this._lineBounds.max.z),new THREE.Vector3(this._lineBounds.min.x,this._lineBounds.max.y,this._lineBounds.max.z)):this._cameraPosition.x>=0&&this._cameraPosition.z<0?new THREE.Line3(new THREE.Vector3(this._lineBounds.max.x,this._lineBounds.min.y,this._lineBounds.min.z),new THREE.Vector3(this._lineBounds.max.x,this._lineBounds.max.y,this._lineBounds.min.z)):new THREE.Line3(new THREE.Vector3(this._lineBounds.min.x,this._lineBounds.min.y,this._lineBounds.min.z),new THREE.Vector3(this._lineBounds.min.x,this._lineBounds.max.y,this._lineBounds.min.z))}onDimensionsVisibilityChanged(e){this._onChange=e}enableTopDimensions(){this.enableDimensions(),this._topDimensions=!0,this._heightLine.visible=!1,this._heightText.visible=!1,this.update(!0)}disableTopDimensions(){this._topDimensions=!1,this._heightLine.visible=!0,this._heightText.visible=!0,this.disableDimensions()}enableDimensions(){this._enabled=!0,this.update(!0),this.addToScene(this._scene,this._uiScene)}disableDimensions(){this._enabled=!1,this._dimensionsVisible&&(this._dimensionsVisible=!1,this._visibilityChangedCallback()),this.removeFromScene(this._scene,this._uiScene)}_visibilityChangedCallback(){this._onChange&&this._onChange(this._dimensionsVisible)}_clear(){this._lineMaterial.dispose(),this._planeMaterial.dispose(),this._widthLine.geometry.dispose(),this._heightLine.geometry.dispose(),this._depthLine.geometry.dispose(),this._heightText.dispose(),this._heightText.dispose(),this._depthText.dispose()}getBoundingBox(){const e=new THREE.Box3;return e.expandByObject(this._widthLine),e.expandByObject(this._widthText),e.expandByObject(this._heightLine),e.expandByObject(this._heightText),e.expandByObject(this._depthLine),e.expandByObject(this._depthText),e}setVisibility(e){this._heightLine&&this._widthLine&&this._depthLine&&this._heightText&&this._widthText&&this._depthText&&(this._heightLine.visible=e,this._heightText.visible=e,this._widthLine.visible=e,this._widthText.visible=e,this._depthLine.visible=e,this._depthText.visible=e)}moveCameraStart(e){this.setVisibility(!1),this._cameraPosition=e,this.update()}moveCameraEnd(e){this.setVisibility(!0),this._cameraPosition=e,this.update()}clearScene(e){this._clear()}setScene(e){this._scene=e}setUiScene(e){this._uiScene=e}needsUiScene(){return!0}isInitialized(){return this._initialized.wait()}areDimensionsEnabled(){return this._enabled}}return __decorate([inject],e.prototype,"_unitFormatter",void 0),e})();export default DimensioningHelper;
2
+ //# sourceMappingURL=dimensioning-helper-71d2cff7.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dimensioning-helper-46403799.js","sources":["../../packages/configurator-core/public/fonts/rubik_regular_sub.json"],"sourcesContent":["export default \"static/rubik_regular_sub-eb3f3b61078695cc.json\""],"names":[],"mappings":"ggIAAe"}
1
+ {"version":3,"file":"dimensioning-helper-71d2cff7.js","sources":["../../packages/configurator-core/public/fonts/rubik_regular_sub.json"],"sourcesContent":["export default \"static/rubik_regular_sub-eb3f3b61078695cc.json\""],"names":[],"mappings":"wvHAAe"}
@@ -0,0 +1,2 @@
1
+ System.register(["./roomle-dependency-injection-4b0d114d.nomodule.js","./main-thread-to-worker-1f6a23af.nomodule.js"],(function(e){var t,i,s,n,h;return{setters:[function(e){t=e.m,i=e._,s=e.i,n=e.e,h=e.ae},function(){}],execute:function(){const o="component_dimensioning_plane_material",a="component_dimensioning_text_material";let _=(()=>{class e extends THREE.Object3D{constructor(e){super(),this._label="",this._parameters={font:null,size:.1,height:.001,curveSegments:2,bevelEnabled:!0,bevelThickness:.001,bevelSize:.001},this.topDown=!1,this._parameters.font=e,this._position=new THREE.Vector3,this._initMaterials(),this._init(),this._update()}_initMaterials(){this._cacheHolder.materialCache.has(o)?this._planeMaterial=this._cacheHolder.materialCache.get(o):(this._planeMaterial=new THREE.MeshBasicMaterial({color:16777215,side:THREE.DoubleSide,opacity:.8,transparent:!0}),this._cacheHolder.materialCache.set(o,this._planeMaterial)),this._cacheHolder.materialCache.has(a)?this._textMaterial=this._cacheHolder.materialCache.get(a):(this._textMaterial=new THREE.MeshPhongMaterial({color:3618615}),this._cacheHolder.materialCache.set(a,this._textMaterial))}_init(){let e=new THREE.Geometry;this._text=new THREE.Mesh(e,this._textMaterial),this._text.name="text with background text "+this._label,this._plane=new THREE.Mesh(e,this._planeMaterial),this._plane.name="text with background plane "+this._label,this._textGeometry=new THREE.TextGeometry(this._label,this._parameters),this._textGeometry.computeBoundingBox(),this._text.geometry=this._textGeometry,this.add(this._text),this.add(this._plane)}update(e,t,i,s){this._position.copy(e),this._dimensioningType=t,this._cameraPosition=s,this._label=i;const n=this._cameraPosition.distanceTo(this._text.position),h=Math.max(.01,n/100),o=Math.max(5e-4,n/5e3);this._parameters.bevelThickness=o,this._parameters.bevelSize=o,this._parameters.size=h,this._textGeometry=new THREE.TextGeometry(this._label,this._parameters),this._textGeometry.computeBoundingBox(),this._text.geometry=this._textGeometry,this._update()}_update(){if(this.topDown){let e=new THREE.Quaternion;e.setFromAxisAngle(new THREE.Vector3(-1,0,0),Math.PI/2),this._updateText(this._textGeometry,e,new THREE.Vector3)}else if(this._updateText(this._textGeometry,new THREE.Quaternion,new THREE.Vector3),this._cameraPosition){const e=Math.atan2(this._cameraPosition.x-this._position.x,this._cameraPosition.z-this._position.z);this._text.rotation.y=e,this._plane.rotation.y=e}}_updateText(e,t,i){let s=new THREE.Vector3;s.copy(this._position),i.x*=this._getXSign(),s.add(i);let n=e.boundingBox.getSize(new THREE.Vector3);e.center(),this._text.position.copy(s),this._text.quaternion.copy(t);let h=new THREE.PlaneGeometry(n.x+.02,n.y+.02,32);h.center(),this._plane.geometry=h,this._plane.position.copy(s),this._plane.quaternion.copy(t)}_getXSign(){return!this._cameraPosition||this._cameraPosition.x>=0?1:-1}dispose(){t(this)}}return i([s],e.prototype,"_cacheHolder",void 0),e})();e("default",(()=>{class e{constructor(e){this._cameraPosition=new THREE.Vector3,this._textUpdated=!1,this._topDimensions=!1,this._initialized=new n,this._enabled=!1,this._dimensionsVisible=!1,this._creator_=e,this._lineMaterial=new THREE.LineBasicMaterial({color:3618615,linewidth:2});let t=new THREE.Geometry;this._widthLine=new THREE.Line(t,this._lineMaterial),this._widthLine.name="dimension width line",this._heightLine=new THREE.Line(t,this._lineMaterial),this._heightLine.name="dimension height line",this._depthLine=new THREE.Line(t,this._lineMaterial),this._depthLine.name="dimension depth line",this._planeMaterial=new THREE.MeshBasicMaterial({color:16777215,side:THREE.DoubleSide,opacity:.8,transparent:!0}),h.loadFont("static/rubik_regular_sub-eb3f3b61078695cc.json").then(e=>{this._font=e,this._loaded()})}_loaded(){this.update(!1),this.addToScene(this._scene,this._uiScene),this._initialized.resolve()}_performUpdate(e){this._enabled&&(this._lineBounds||e)&&this._font&&(this._updateHeight(),this._updateWidth(),this._updateDepth())}_updateWidth(){let e=new THREE.Geometry,t=this._getWidthEdge();e.vertices.push(t.start,t.end),this._widthLine.geometry.dispose(),this._widthLine.geometry=e;let i=t.getCenter(new THREE.Vector3);this._widthText||(this._widthText=new _(this._font)),this._widthText.topDown=this._topDimensions;const s=this._unitFormatter.formatMMValueToUnitString(1e3*this._dimensions.x);this._widthText.update(i,0,s,this._cameraPosition)}_updateHeight(){let e=new THREE.Geometry,t=this._getHeightEdge();e.vertices.push(t.start,t.end),this._heightLine.geometry.dispose(),this._heightLine.geometry=e;let i=t.getCenter(new THREE.Vector3);this._heightText||(this._heightText=new _(this._font)),this._heightText.topDown=this._topDimensions;const s=this._unitFormatter.formatMMValueToUnitString(1e3*this._dimensions.y);this._heightText.update(i,1,s,this._cameraPosition)}_updateDepth(){let e=new THREE.Geometry,t=this._getDepthEdge();e.vertices.push(t.start,t.end),this._depthLine.geometry.dispose(),this._depthLine.geometry=e;let i=t.getCenter(new THREE.Vector3);this._depthText||(this._depthText=new _(this._font)),this._depthText.topDown=this._topDimensions;const s=this._unitFormatter.formatMMValueToUnitString(1e3*this._dimensions.z);this._depthText.update(i,2,s,this._cameraPosition)}updateBounds(e){this._dimensions=e.getSize(new THREE.Vector3),this._lineBounds=e.clone();let t=this._lineBounds.min.y<0?this._lineBounds.min.y:0;t-=.01,this._lineBounds.expandByVector(new THREE.Vector3(.05,t,.05)),this._textUpdated=!1,this.update()}update(e=!1){this._enabled&&!this._dimensionsVisible&&(this._dimensionsVisible=!0,this._visibilityChangedCallback()),this._performUpdate(e)}addToScene(e,t){this._widthText&&this._widthLine&&this._heightText&&this._heightLine&&this._heightText&&this._heightLine&&(e.add(this._widthLine),t.add(this._widthText),e.add(this._heightLine),t.add(this._heightText),e.add(this._depthLine),t.add(this._depthText))}removeFromScene(e,t){e.remove(this._widthLine),t.remove(this._widthText),e.remove(this._heightLine),t.remove(this._heightText),e.remove(this._depthLine),t.remove(this._depthText)}_getWidthEdge(){return this._cameraPosition.z>=0?new THREE.Line3(new THREE.Vector3(this._lineBounds.min.x,this._lineBounds.min.y,this._lineBounds.max.z),new THREE.Vector3(this._lineBounds.max.x,this._lineBounds.min.y,this._lineBounds.max.z)):new THREE.Line3(new THREE.Vector3(this._lineBounds.min.x,this._lineBounds.min.y,this._lineBounds.min.z),new THREE.Vector3(this._lineBounds.max.x,this._lineBounds.min.y,this._lineBounds.min.z))}_getDepthEdge(){return this._cameraPosition.x>=0?new THREE.Line3(new THREE.Vector3(this._lineBounds.max.x,this._lineBounds.min.y,this._lineBounds.min.z),new THREE.Vector3(this._lineBounds.max.x,this._lineBounds.min.y,this._lineBounds.max.z)):new THREE.Line3(new THREE.Vector3(this._lineBounds.min.x,this._lineBounds.min.y,this._lineBounds.min.z),new THREE.Vector3(this._lineBounds.min.x,this._lineBounds.min.y,this._lineBounds.max.z))}_getHeightEdge(){return this._cameraPosition.x>=0&&this._cameraPosition.z>=0?new THREE.Line3(new THREE.Vector3(this._lineBounds.max.x,this._lineBounds.min.y,this._lineBounds.max.z),new THREE.Vector3(this._lineBounds.max.x,this._lineBounds.max.y,this._lineBounds.max.z)):this._cameraPosition.x<0&&this._cameraPosition.z>=0?new THREE.Line3(new THREE.Vector3(this._lineBounds.min.x,this._lineBounds.min.y,this._lineBounds.max.z),new THREE.Vector3(this._lineBounds.min.x,this._lineBounds.max.y,this._lineBounds.max.z)):this._cameraPosition.x>=0&&this._cameraPosition.z<0?new THREE.Line3(new THREE.Vector3(this._lineBounds.max.x,this._lineBounds.min.y,this._lineBounds.min.z),new THREE.Vector3(this._lineBounds.max.x,this._lineBounds.max.y,this._lineBounds.min.z)):new THREE.Line3(new THREE.Vector3(this._lineBounds.min.x,this._lineBounds.min.y,this._lineBounds.min.z),new THREE.Vector3(this._lineBounds.min.x,this._lineBounds.max.y,this._lineBounds.min.z))}onDimensionsVisibilityChanged(e){this._onChange=e}enableTopDimensions(){this.enableDimensions(),this._topDimensions=!0,this._heightLine.visible=!1,this._heightText.visible=!1,this.update(!0)}disableTopDimensions(){this._topDimensions=!1,this._heightLine.visible=!0,this._heightText.visible=!0,this.disableDimensions()}enableDimensions(){this._enabled=!0,this.update(!0),this.addToScene(this._scene,this._uiScene)}disableDimensions(){this._enabled=!1,this._dimensionsVisible&&(this._dimensionsVisible=!1,this._visibilityChangedCallback()),this.removeFromScene(this._scene,this._uiScene)}_visibilityChangedCallback(){this._onChange&&this._onChange(this._dimensionsVisible)}_clear(){this._lineMaterial.dispose(),this._planeMaterial.dispose(),this._widthLine.geometry.dispose(),this._heightLine.geometry.dispose(),this._depthLine.geometry.dispose(),this._heightText.dispose(),this._heightText.dispose(),this._depthText.dispose()}getBoundingBox(){const e=new THREE.Box3;return e.expandByObject(this._widthLine),e.expandByObject(this._widthText),e.expandByObject(this._heightLine),e.expandByObject(this._heightText),e.expandByObject(this._depthLine),e.expandByObject(this._depthText),e}setVisibility(e){this._heightLine&&this._widthLine&&this._depthLine&&this._heightText&&this._widthText&&this._depthText&&(this._heightLine.visible=e,this._heightText.visible=e,this._widthLine.visible=e,this._widthText.visible=e,this._depthLine.visible=e,this._depthText.visible=e)}moveCameraStart(e){this.setVisibility(!1),this._cameraPosition=e,this.update()}moveCameraEnd(e){this.setVisibility(!0),this._cameraPosition=e,this.update()}clearScene(e){this._clear()}setScene(e){this._scene=e}setUiScene(e){this._uiScene=e}needsUiScene(){return!0}isInitialized(){return this._initialized.wait()}areDimensionsEnabled(){return this._enabled}}return i([s],e.prototype,"_unitFormatter",void 0),e})())}}}));
2
+ //# sourceMappingURL=dimensioning-helper-dc99f61f.nomodule.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dimensioning-helper-edfc5933.nomodule.js","sources":["../../packages/configurator-core/public/fonts/rubik_regular_sub.json"],"sourcesContent":["export default \"static/rubik_regular_sub-eb3f3b61078695cc.json\""],"names":[],"mappings":"o/HAAe"}
1
+ {"version":3,"file":"dimensioning-helper-dc99f61f.nomodule.js","sources":["../../packages/configurator-core/public/fonts/rubik_regular_sub.json"],"sourcesContent":["export default \"static/rubik_regular_sub-eb3f3b61078695cc.json\""],"names":[],"mappings":"ioHAAe"}
@@ -0,0 +1,2 @@
1
+ System.register(["./query-params-helper-c231e1b8.nomodule.js","./roomle-dependency-injection-4b0d114d.nomodule.js","./main-thread-to-worker-1f6a23af.nomodule.js","./pixotron-f8c2e3a5.nomodule.js","./default-light-setting-b24eb686.nomodule.js"],(function(e){var t,i,r,n,s,a,o,h,c,l,d,_,m,u,p,g,w,E,f,b,S,v,L,C,M;return{setters:[function(){},function(e){t=e.a3,i=e.D,r=e.L,n=e.R,s=e.k,a=e._,o=e.i,h=e.G,c=e.n,l=e.J,d=e.m,_=e.a1,m=e.a2,u=e.b},function(e){p=e.j},function(e){g=e.S,w=e.C,E=e.L,f=e.b,b=e.B,S=e.T,v=e.P,L=e.d,C=e.M},function(e){M=e.D}],execute:function(){const y=[new i("script-loader",g),new i("glb-input-manager",class extends t{},1),new i("logger",r),new i("rapi-access",n)];class R extends w{constructor(){super(...arguments),this.shouldIgnoreStandardBehavior=!1}adjust(e,t,i,r,n){let s=new THREE.Vector3(-e.x/2,0,-e.z/2),a=new THREE.Vector3(e.x/2,e.y,e.z/2);this._boundingBox=new THREE.Box3(s,a);let o=new THREE.Euler(-Math.PI/2+r,i,0,"ZYX"),h=(new THREE.Quaternion).setFromEuler(o);this._camera.updateProjectionMatrix(),this._camera.quaternion.copy(h),this._camera.position.copy(t)}_update(e){this.shouldIgnoreStandardBehavior?this._saveYawAndPitch():super._update(e)}animateCamera(e){return!!this.shouldIgnoreStandardBehavior||super.animateCamera(e)}}class B extends E{constructor(e,t){super(e,t),this._params={ambientLight:{color:"#ffffff"}},this._ambientLight=new THREE.AmbientLight(new THREE.Color(this._params.ambientLight.color),.5),this.addToScene()}addToScene(){this._scene.add(this._ambientLight)}removeFromScene(){this._scene.remove(this._ambientLight)}reload(){this.removeFromScene(),this.addToScene()}showGUI(){let e=s();if(e&&this._ambientLight){let t=e.addFolder("Ambient Light");t.add(this._ambientLight,"visible"),t.add(this._ambientLight,"intensity").min(0).max(5).step(.1),t.addColor(this._params.ambientLight,"color").onChange(e=>{this._ambientLight.color=new THREE.Color(e)})}}}let T=(()=>{class e extends f{constructor(e,t){super(e,t,h.GLB),this._itemsCount=0,this._standardSceneBackgroundColor=this._scene.background,this._renderer.capabilities.maxTextures>8?this.loadDynamicLightSetting(c.createDynamicLightSettingSource(null,l.CAMERA)):(console.warn("this device has a maximum of 8 texture units thus we are using a simpler light setting"),this._lightSetting=new B(this._scene)),this._setEnvironment(new b(this._scene,this._environment))}createCameraControl(e,t){this._cameraControl=new R(this._creator_,this._getInputManager(),new THREE.Vector3(-1,1,1))}_getInputManager(){return this._glbInputManager}async loadStaticItem(e,t){const i=await this._rapiAccess.getItem(e);if(i.configuration)return Promise.reject();const r=p(i);return r?this.loadGLB(r,!0,void 0,t):Promise.reject(new Error("GLB Url not detected"))}loadGLB(e,t=!0,i=new THREE.Vector3(1,1,1),r){return this.clearScene(),new Promise((n,s)=>{this._loadGLB(e,new THREE.Vector3(0,0,0),0,void 0,i,void 0,void 0,r).then(e=>{this._currentGLB=e,this._scene.add(this._currentGLB);let i=(new THREE.Box3).setFromObject(this._currentGLB);if(t){let e=i.getCenter(new THREE.Vector3);this._cameraControl instanceof R&&(this._cameraControl.updateToBounds(i,!1,!0,e),this._cameraControl.reset(i,e,-15,0))}this._updateBounds(i),n()},s)})}preparePerspectiveImage(e,t,i){return new Promise(r=>{t||(t=1e3),i||(i=1e3),e||((e=new THREE.WebGLRenderer({antialias:!0})).setSize(t,i),e.outputEncoding=THREE.sRGBEncoding,e.autoClear=!1,e.shadowMap.enabled=!0,e.shadowMap.type=THREE.BasicShadowMap);let n=this._cameraControl.getCamera().clone();n instanceof THREE.PerspectiveCamera&&(n.aspect=t/i,n.updateProjectionMatrix()),this._lightSetting.removeFromScene();let s=new M(this._scene);e.render(this._scene,n);let a=e.domElement.toDataURL();e.domElement.toBlob(e=>{r({image:a,width:t,height:i,blob:e})},"image/png"),s.removeFromScene(),this._lightSetting.addToScene()})}adjustCamera(e,t,i,r){if(this._cameraControl instanceof R){let n=(new THREE.Box3).setFromObject(this._scene).getSize(new THREE.Vector3);this._cameraControl.adjust(n,e,t,i,r),this._requestRender()}}onStart(e){this._itemsCount=e,this._scene.background=null,this._cameraControl instanceof R&&(this._cameraControl.shouldIgnoreStandardBehavior=!0)}onElementFinished(e){this._itemsCount,Math.round(100/this._itemsCount*e)}onFinished(e){this._scene.background=this._standardSceneBackgroundColor,this._cameraControl instanceof R&&(this._cameraControl.shouldIgnoreStandardBehavior=!1)}clearScene(){this._currentGLB&&(this._scene.remove(this._currentGLB),d(this._currentGLB),this._currentGLB=null),super.clearScene()}enableHD(){super.enableHD(),this._pixotron.enableAA=!1,this._pixotron.getSAOPass().enabled=!0}sceneChanged(){}getPixotronParams(){return{saoparams:{intensity:.25,occlusionWorldRadius:.4,smoothTransition:!0,samplesPerFrame:4,bias:.016,numSamples:200,accumulative:!1,falloff:1.5},shadowparams:{shadowMapResolution:1024,shadowRadius:3,shadowQuality:1,smoothTransition:!0,enableAccumulation:!0,shadowBiasMultiplier:.6,nearPlane:.01,farPlane:50,fov:110,side:THREE.FrontSide,numSamples:100}}}getBakedShadowParams(){return{enable:!0,shadowMapResolution:512,smoothTransition:!0,numSamples:500,numSamplesPerFrame:4,bShadowMaterial:!0,falloff:1.5,darkness:.2,size:1.6,lightDirection:new THREE.Vector3(0,1,.5),lightSolidAngle:40}}getBounds(){return this._currentGLB?(new THREE.Box3).setFromObject(this._currentGLB):null}}return a([o],e.prototype,"_glbInputManager",void 0),a([o],e.prototype,"_rapiAccess",void 0),e})();class x{constructor(e,t,i){this._prefix="https://furniture.roomle.com/3d/glb/",this._listeners=new Set,this._finishedItems=0,this._sceneManager=e,this._renderer=new THREE.WebGLRenderer({antialias:!0,alpha:!0}),this._width=t,this._height=i,this._renderer.setSize(t,i),this._renderer.setClearColor(16777215,0),this._renderer.outputEncoding=THREE.sRGBEncoding}addListener(e){this._listeners.add(e)}removeListener(e){this._listeners.delete(e)}start(e){return this._entries=[],e.forEach(e=>{this._entries.push(this._transform(e))}),this._finishedItems=0,this._listeners.forEach(e=>e.onStart(this._entries.length)),this._zip=new window.JSZip,this._doNextEntry(),new Promise(e=>{this._resolve=e})}_transform(e){return{name:e.path.replace(".glb",".png"),url:this._prefix+e.path,position:new THREE.Vector3(e.camera.position.x,e.camera.position.z,-e.camera.position.y),fov:2*e.camera.fieldOfView,yaw:e.camera.rotation.z,pitch:e.camera.rotation.x}}_doNextEntry(){0===this._entries.length?(this._listeners.forEach(e=>e.onFinished(this._zip)),this._resolve(this._zip)):this._processEntry(this._entries[0])}_processEntry(e){this._sceneManager.loadGLB(e.url,!1,void 0).then(()=>{this._sceneManager.adjustCamera(e.position,e.yaw,e.pitch,e.fov),this._sceneManager.preparePerspectiveImage(this._renderer,this._width,this._height).then(t=>{this._entryFinished(e,t)})})}_entryFinished(e,t){let i=this._entries.indexOf(e);i>-1&&this._entries.splice(i,1),this._finishedItems++,this._listeners.forEach(e=>e.onElementFinished(this._finishedItems)),this._zip.file(e.name,t.blob),this._doNextEntry()}}let H=(()=>{class e{constructor(e){this._currentIdOrUrl=null,this._creator_=e}setCameraOffset(e){this._sceneManager.setCameraOffset(e)}getCameraOffset(){return this._sceneManager.getCameraOffset()}init(e,t){return this.setOverrides(t),this._domHelper.setDomElement(e),this._sceneManager?(this._lifeCycleManager.resume(),Promise.resolve()):new Promise(this._initPromiseCallback.bind(this))}_initPromiseCallback(e,t){this._threeLoader.fetch().then(()=>{let t=this._scriptLoader.fetch(_,{id:"gltf-loader"}),i=this._scriptLoader.fetch(m,{id:"draco-loader"}),r=this._scriptLoader.fetch(S,{id:"tween-js"});Promise.all([t,i,r]).then(()=>{this._sceneManager=new T(this._creator_,{left:0,top:1,right:1,bottom:0}),this.enableHD(),e()})})}enableHD(){return new Promise((e,t)=>{const i=()=>{this._sceneManager.enableHD(),e()};Promise.all(v.map(e=>this._scriptLoader.fetch(e,{id:e}))).then(()=>{this._scriptLoader.fetch(L,{id:"pi-js"}).then(i,t)},t)})}clearScene(){this._sceneManager.clearScene()}loadGLB(e,t=1,i){return this._currentIdOrUrl=e,this._rapiAccess.trackView(e),this._sceneManager.loadGLB(e,!0,new THREE.Vector3(t,t,t),i)}loadStaticItem(e,t){return this._currentIdOrUrl=e,this._rapiAccess.trackView(e),this._sceneManager.loadStaticItem(e,t)}getCurrentId(){return this._currentIdOrUrl}loadSceneSetting(e){return this._sceneManager.loadSceneSettings(e)}loadQualitySetting(e){this._sceneManager.loadQualitySetting(e)}preparePerspectiveImage(){return this._sceneManager.preparePerspectiveImage()}processRenderList(e,t=320,i=320){let r=JSON.parse(e);this._scriptLoader.fetch("static/jszip.min-dd6c9829408677a1.js",{id:"jszip-js"}).then(()=>{let e=new x(this._sceneManager,t,i);e.addListener(this._sceneManager),e.start(r.items).then(t=>{t.generateAsync({type:"blob"}).then(t=>{let i=document.createElement("a");i.href=URL.createObjectURL(t),i.download="content.zip",i.style.display="none",document.body.appendChild(i),i.click(),document.body.removeChild(i),e.removeListener(this._sceneManager)})})})}setOverrides(e){e&&(this._initData.setOverrides(e),this._globalInitData.setOverrides(e))}updateSize(){this._sceneManager.updateCamera()}getMain(){}resumeTest(e){this._domHelper.setDomElement(e),this._lifeCycleManager.resume()}pauseTest(){this._lifeCycleManager.pause()}showGUI(){this._sceneManager.showGUI()}get callbacks(){return{}}getScene(){return this._sceneManager.getScene()}updateScene(){this._sceneManager.updateScene()}}return a([o],e.prototype,"_rapiAccess",void 0),a([o],e.prototype,"_domHelper",void 0),a([o],e.prototype,"_scriptLoader",void 0),a([o],e.prototype,"_lifeCycleManager",void 0),a([o],e.prototype,"_threeLoader",void 0),a([o],e.prototype,"_initData",void 0),a([o],e.prototype,"_globalInitData",void 0),e})();e("GlbViewer",class extends C{setupGlobals(){}setupDependencies(){u.setup(y),this.lookup("logger",this._context)}cleanUpGlobals(){throw new Error("Method not implemented.")}cleanUpDependencies(){throw new Error("Method not implemented.")}bootFinished(){this._viewer=new H(this._context),window.RoomleGLBViewer||(window.RoomleGLBViewer=this._viewer)}getApi(){return this._viewer}getContextName(){return"glb-viewer"}})}}}));
2
+ //# sourceMappingURL=glb-viewer-2ddec88f.nomodule.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"glb-viewer-564c48c8.nomodule.js","sources":["../../node_modules/jszip/dist/jszip.min.js"],"sourcesContent":["export default \"static/jszip.min-dd6c9829408677a1.js\""],"names":[],"mappings":"i5QAAe"}
1
+ {"version":3,"file":"glb-viewer-2ddec88f.nomodule.js","sources":["../../node_modules/jszip/dist/jszip.min.js"],"sourcesContent":["export default \"static/jszip.min-dd6c9829408677a1.js\""],"names":[],"mappings":"65QAAe"}
@@ -0,0 +1,2 @@
1
+ import"./query-params-helper-a271f9dc.js";import{a3 as InputManager,D as DependencyInjectionAssignment,L as Logger,R as RapiAccess,k as getGUI,_ as __decorate,i as inject,G as CANVAS_ID,n as DynamicLightSettingLoader,J as PREDEFINED_LIGHTSETTING,m as dispose,a1 as GLTF_LOADER_FILE_NAME,a2 as DRACO_LOADER_FILE_NAME,b as RoomleDependencyInjection}from"./roomle-dependency-injection-25764a2d.js";import{j as getGlbUrl}from"./main-thread-to-worker-ed1f7708.js";import{S as ScriptLoader,C as CameraControl3D,L as LightSetting,b as SceneManager,B as BakedShadowEnvironment,T as TWEEN_FILE_NAME,P as PIXOTRON_EFFETCS,d as PIXOTRON_FILE_NAME,M as Main}from"./pixotron-a848c4ca.js";import{D as DefaultLightSetting}from"./default-light-setting-1e6d1c5d.js";const INJECTABLES=[new DependencyInjectionAssignment("script-loader",ScriptLoader),new DependencyInjectionAssignment("glb-input-manager",class extends InputManager{},1),new DependencyInjectionAssignment("logger",Logger),new DependencyInjectionAssignment("rapi-access",RapiAccess)];class AdjustableCameraControl3D extends CameraControl3D{constructor(){super(...arguments),this.shouldIgnoreStandardBehavior=!1}adjust(e,t,n,r,i){let s=new THREE.Vector3(-e.x/2,0,-e.z/2),a=new THREE.Vector3(e.x/2,e.y,e.z/2);this._boundingBox=new THREE.Box3(s,a);let o=new THREE.Euler(-Math.PI/2+r,n,0,"ZYX"),c=(new THREE.Quaternion).setFromEuler(o);this._camera.updateProjectionMatrix(),this._camera.quaternion.copy(c),this._camera.position.copy(t)}_update(e){this.shouldIgnoreStandardBehavior?this._saveYawAndPitch():super._update(e)}animateCamera(e){return!!this.shouldIgnoreStandardBehavior||super.animateCamera(e)}}class GLBViewerLightSetting extends LightSetting{constructor(e,t){super(e,t),this._params={ambientLight:{color:"#ffffff"}},this._ambientLight=new THREE.AmbientLight(new THREE.Color(this._params.ambientLight.color),.5),this.addToScene()}addToScene(){this._scene.add(this._ambientLight)}removeFromScene(){this._scene.remove(this._ambientLight)}reload(){this.removeFromScene(),this.addToScene()}showGUI(){let e=getGUI();if(e&&this._ambientLight){let t=e.addFolder("Ambient Light");t.add(this._ambientLight,"visible"),t.add(this._ambientLight,"intensity").min(0).max(5).step(.1),t.addColor(this._params.ambientLight,"color").onChange(e=>{this._ambientLight.color=new THREE.Color(e)})}}}let GLBViewerSceneManager=(()=>{class e extends SceneManager{constructor(e,t){super(e,t,CANVAS_ID.GLB),this._itemsCount=0,this._standardSceneBackgroundColor=this._scene.background,this._renderer.capabilities.maxTextures>8?this.loadDynamicLightSetting(DynamicLightSettingLoader.createDynamicLightSettingSource(null,PREDEFINED_LIGHTSETTING.CAMERA)):(console.warn("this device has a maximum of 8 texture units thus we are using a simpler light setting"),this._lightSetting=new GLBViewerLightSetting(this._scene)),this._setEnvironment(new BakedShadowEnvironment(this._scene,this._environment))}createCameraControl(e,t){this._cameraControl=new AdjustableCameraControl3D(this._creator_,this._getInputManager(),new THREE.Vector3(-1,1,1))}_getInputManager(){return this._glbInputManager}async loadStaticItem(e,t){const n=await this._rapiAccess.getItem(e);if(n.configuration)return Promise.reject();const r=getGlbUrl(n);return r?this.loadGLB(r,!0,void 0,t):Promise.reject(new Error("GLB Url not detected"))}loadGLB(e,t=!0,n=new THREE.Vector3(1,1,1),r){return this.clearScene(),new Promise((i,s)=>{this._loadGLB(e,new THREE.Vector3(0,0,0),0,void 0,n,void 0,void 0,r).then(e=>{this._currentGLB=e,this._scene.add(this._currentGLB);let n=(new THREE.Box3).setFromObject(this._currentGLB);if(t){let e=n.getCenter(new THREE.Vector3);this._cameraControl instanceof AdjustableCameraControl3D&&(this._cameraControl.updateToBounds(n,!1,!0,e),this._cameraControl.reset(n,e,-15,0))}this._updateBounds(n),i()},s)})}preparePerspectiveImage(e,t,n){return new Promise(r=>{t||(t=1e3),n||(n=1e3),e||((e=new THREE.WebGLRenderer({antialias:!0})).setSize(t,n),e.outputEncoding=THREE.sRGBEncoding,e.autoClear=!1,e.shadowMap.enabled=!0,e.shadowMap.type=THREE.BasicShadowMap);let i=this._cameraControl.getCamera().clone();i instanceof THREE.PerspectiveCamera&&(i.aspect=t/n,i.updateProjectionMatrix()),this._lightSetting.removeFromScene();let s=new DefaultLightSetting(this._scene);e.render(this._scene,i);let a=e.domElement.toDataURL();e.domElement.toBlob(e=>{r({image:a,width:t,height:n,blob:e})},"image/png"),s.removeFromScene(),this._lightSetting.addToScene()})}adjustCamera(e,t,n,r){if(this._cameraControl instanceof AdjustableCameraControl3D){let i=(new THREE.Box3).setFromObject(this._scene).getSize(new THREE.Vector3);this._cameraControl.adjust(i,e,t,n,r),this._requestRender()}}onStart(e){this._itemsCount=e,this._scene.background=null,this._cameraControl instanceof AdjustableCameraControl3D&&(this._cameraControl.shouldIgnoreStandardBehavior=!0)}onElementFinished(e){this._itemsCount,Math.round(100/this._itemsCount*e)}onFinished(e){this._scene.background=this._standardSceneBackgroundColor,this._cameraControl instanceof AdjustableCameraControl3D&&(this._cameraControl.shouldIgnoreStandardBehavior=!1)}clearScene(){this._currentGLB&&(this._scene.remove(this._currentGLB),dispose(this._currentGLB),this._currentGLB=null),super.clearScene()}enableHD(){super.enableHD(),this._pixotron.enableAA=!1,this._pixotron.getSAOPass().enabled=!0}sceneChanged(){}getPixotronParams(){return{saoparams:{intensity:.25,occlusionWorldRadius:.4,smoothTransition:!0,samplesPerFrame:4,bias:.016,numSamples:200,accumulative:!1,falloff:1.5},shadowparams:{shadowMapResolution:1024,shadowRadius:3,shadowQuality:1,smoothTransition:!0,enableAccumulation:!0,shadowBiasMultiplier:.6,nearPlane:.01,farPlane:50,fov:110,side:THREE.FrontSide,numSamples:100}}}getBakedShadowParams(){return{enable:!0,shadowMapResolution:512,smoothTransition:!0,numSamples:500,numSamplesPerFrame:4,bShadowMaterial:!0,falloff:1.5,darkness:.2,size:1.6,lightDirection:new THREE.Vector3(0,1,.5),lightSolidAngle:40}}getBounds(){return this._currentGLB?(new THREE.Box3).setFromObject(this._currentGLB):null}}return __decorate([inject],e.prototype,"_glbInputManager",void 0),__decorate([inject],e.prototype,"_rapiAccess",void 0),e})();class GLBRenderWorker{constructor(e,t,n){this._prefix="https://furniture.roomle.com/3d/glb/",this._listeners=new Set,this._finishedItems=0,this._sceneManager=e,this._renderer=new THREE.WebGLRenderer({antialias:!0,alpha:!0}),this._width=t,this._height=n,this._renderer.setSize(t,n),this._renderer.setClearColor(16777215,0),this._renderer.outputEncoding=THREE.sRGBEncoding}addListener(e){this._listeners.add(e)}removeListener(e){this._listeners.delete(e)}start(e){return this._entries=[],e.forEach(e=>{this._entries.push(this._transform(e))}),this._finishedItems=0,this._listeners.forEach(e=>e.onStart(this._entries.length)),this._zip=new window.JSZip,this._doNextEntry(),new Promise(e=>{this._resolve=e})}_transform(e){return{name:e.path.replace(".glb",".png"),url:this._prefix+e.path,position:new THREE.Vector3(e.camera.position.x,e.camera.position.z,-e.camera.position.y),fov:2*e.camera.fieldOfView,yaw:e.camera.rotation.z,pitch:e.camera.rotation.x}}_doNextEntry(){0===this._entries.length?(this._listeners.forEach(e=>e.onFinished(this._zip)),this._resolve(this._zip)):this._processEntry(this._entries[0])}_processEntry(e){this._sceneManager.loadGLB(e.url,!1,void 0).then(()=>{this._sceneManager.adjustCamera(e.position,e.yaw,e.pitch,e.fov),this._sceneManager.preparePerspectiveImage(this._renderer,this._width,this._height).then(t=>{this._entryFinished(e,t)})})}_entryFinished(e,t){let n=this._entries.indexOf(e);n>-1&&this._entries.splice(n,1),this._finishedItems++,this._listeners.forEach(e=>e.onElementFinished(this._finishedItems)),this._zip.file(e.name,t.blob),this._doNextEntry()}}let RoomleGLBViewer=(()=>{class e{constructor(e){this._currentIdOrUrl=null,this._creator_=e}setCameraOffset(e){this._sceneManager.setCameraOffset(e)}getCameraOffset(){return this._sceneManager.getCameraOffset()}init(e,t){return this.setOverrides(t),this._domHelper.setDomElement(e),this._sceneManager?(this._lifeCycleManager.resume(),Promise.resolve()):new Promise(this._initPromiseCallback.bind(this))}_initPromiseCallback(e,t){this._threeLoader.fetch().then(()=>{let t=this._scriptLoader.fetch(GLTF_LOADER_FILE_NAME,{id:"gltf-loader"}),n=this._scriptLoader.fetch(DRACO_LOADER_FILE_NAME,{id:"draco-loader"}),r=this._scriptLoader.fetch(TWEEN_FILE_NAME,{id:"tween-js"});Promise.all([t,n,r]).then(()=>{this._sceneManager=new GLBViewerSceneManager(this._creator_,{left:0,top:1,right:1,bottom:0}),this.enableHD(),e()})})}enableHD(){return new Promise((e,t)=>{const n=()=>{this._sceneManager.enableHD(),e()};Promise.all(PIXOTRON_EFFETCS.map(e=>this._scriptLoader.fetch(e,{id:e}))).then(()=>{this._scriptLoader.fetch(PIXOTRON_FILE_NAME,{id:"pi-js"}).then(n,t)},t)})}clearScene(){this._sceneManager.clearScene()}loadGLB(e,t=1,n){return this._currentIdOrUrl=e,this._rapiAccess.trackView(e),this._sceneManager.loadGLB(e,!0,new THREE.Vector3(t,t,t),n)}loadStaticItem(e,t){return this._currentIdOrUrl=e,this._rapiAccess.trackView(e),this._sceneManager.loadStaticItem(e,t)}getCurrentId(){return this._currentIdOrUrl}loadSceneSetting(e){return this._sceneManager.loadSceneSettings(e)}loadQualitySetting(e){this._sceneManager.loadQualitySetting(e)}preparePerspectiveImage(){return this._sceneManager.preparePerspectiveImage()}processRenderList(e,t=320,n=320){let r=JSON.parse(e);this._scriptLoader.fetch("static/jszip.min-dd6c9829408677a1.js",{id:"jszip-js"}).then(()=>{let e=new GLBRenderWorker(this._sceneManager,t,n);e.addListener(this._sceneManager),e.start(r.items).then(t=>{t.generateAsync({type:"blob"}).then(t=>{let n=document.createElement("a");n.href=URL.createObjectURL(t),n.download="content.zip",n.style.display="none",document.body.appendChild(n),n.click(),document.body.removeChild(n),e.removeListener(this._sceneManager)})})})}setOverrides(e){e&&(this._initData.setOverrides(e),this._globalInitData.setOverrides(e))}updateSize(){this._sceneManager.updateCamera()}getMain(){}resumeTest(e){this._domHelper.setDomElement(e),this._lifeCycleManager.resume()}pauseTest(){this._lifeCycleManager.pause()}showGUI(){this._sceneManager.showGUI()}get callbacks(){return{}}getScene(){return this._sceneManager.getScene()}updateScene(){this._sceneManager.updateScene()}}return __decorate([inject],e.prototype,"_rapiAccess",void 0),__decorate([inject],e.prototype,"_domHelper",void 0),__decorate([inject],e.prototype,"_scriptLoader",void 0),__decorate([inject],e.prototype,"_lifeCycleManager",void 0),__decorate([inject],e.prototype,"_threeLoader",void 0),__decorate([inject],e.prototype,"_initData",void 0),__decorate([inject],e.prototype,"_globalInitData",void 0),e})();class GlbViewer extends Main{setupGlobals(){}setupDependencies(){RoomleDependencyInjection.setup(INJECTABLES),this.lookup("logger",this._context)}cleanUpGlobals(){throw new Error("Method not implemented.")}cleanUpDependencies(){throw new Error("Method not implemented.")}bootFinished(){this._viewer=new RoomleGLBViewer(this._context),window.RoomleGLBViewer||(window.RoomleGLBViewer=this._viewer)}getApi(){return this._viewer}getContextName(){return"glb-viewer"}}export{GlbViewer};
2
+ //# sourceMappingURL=glb-viewer-5a20e69f.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"glb-viewer-67e22889.js","sources":["../../node_modules/jszip/dist/jszip.min.js"],"sourcesContent":["export default \"static/jszip.min-dd6c9829408677a1.js\""],"names":[],"mappings":"0uSAAe"}
1
+ {"version":3,"file":"glb-viewer-5a20e69f.js","sources":["../../node_modules/jszip/dist/jszip.min.js"],"sourcesContent":["export default \"static/jszip.min-dd6c9829408677a1.js\""],"names":[],"mappings":"svSAAe"}
@@ -0,0 +1,2 @@
1
+ import"./query-params-helper-a271f9dc.js";import"./roomle-dependency-injection-25764a2d.js";import"./main-thread-to-worker-ed1f7708.js";import"./pixotron-a848c4ca.js";import"./default-light-setting-1e6d1c5d.js";import{GlbViewer}from"./glb-viewer-5a20e69f.js";(new GlbViewer).boot();
2
+ //# sourceMappingURL=glb-viewer-main-dcaea336.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"glb-viewer-main-dcaea336.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -1,2 +1,2 @@
1
- System.register(["./query-params-helper-c231e1b8.nomodule.js","./rapi-access-ec9bc9d3.nomodule.js","./main-thread-to-worker-97315397.nomodule.js","./pixotron-2bc1795a.nomodule.js","./default-light-setting-6852d456.nomodule.js","./glb-viewer-564c48c8.nomodule.js"],(function(){var e;return{setters:[function(){},function(){},function(){},function(){},function(){},function(n){e=n.GlbViewer}],execute:function(){(new e).boot()}}}));
1
+ System.register(["./query-params-helper-c231e1b8.nomodule.js","./roomle-dependency-injection-4b0d114d.nomodule.js","./main-thread-to-worker-1f6a23af.nomodule.js","./pixotron-f8c2e3a5.nomodule.js","./default-light-setting-b24eb686.nomodule.js","./glb-viewer-2ddec88f.nomodule.js"],(function(){var e;return{setters:[function(){},function(){},function(){},function(){},function(){},function(n){e=n.GlbViewer}],execute:function(){(new e).boot()}}}));
2
2
  //# sourceMappingURL=glb-viewer-main.nomodule.js.map
@@ -0,0 +1,2 @@
1
+ System.register(["./roomle-dependency-injection-29d2088d.legacy.js","./main-thread-to-worker-6f382b43.legacy.js"],(function(e){var n,t,a,s;return{setters:[function(e){n=e._,t=e.i,a=e.af},function(e){s=e.g}],execute:function(){e("default",(()=>{class e extends a{setScene(e){this._scene=e,this._staticItemLoader.loadGLB(s()+"static/banana_div2-1351c98ec2986be1.glb").then(e=>{this._banana=e,this.updateBounds(null)})}updateBounds(e){if(e&&(this._bounds=e),this._bounds){if(this._banana){const e=this._bounds.getSize(new THREE.Vector3),n=this._bounds.getCenter(new THREE.Vector3).clone();n.x-=e.x/2+.18,n.z+=e.z/2+.05,n.y=0;let t=.03;this._banana.scale.copy(new THREE.Vector3(t,t,t)),this._banana.rotation.y=.6,this._banana.position.copy(n)}this._scene.children.includes(this._banana)||this.addToScene()}}clearScene(e,n){super.clearScene(e,n),this.removeFromScene()}addToScene(){this._scene&&this._banana&&this._scene.add(this._banana)}removeFromScene(){this._scene&&this._banana&&this._scene.remove(this._banana)}}return n([t],e.prototype,"_staticItemLoader",void 0),e})())}}}));
2
+ //# sourceMappingURL=banana-for-scale-3f2699e2.legacy.js.map