kitchen-simulator 5.0.0-test.3 → 5.0.0-test.4

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 (694) hide show
  1. package/es/KitchenConfigurator.js +1 -1
  2. package/es/KitchenConfigurator.js.map +1 -1
  3. package/package.json +8 -12
  4. package/src/KitchenConfigurator.jsx +1 -1
  5. package/lib/@history.js +0 -11
  6. package/lib/@history.js.map +0 -1
  7. package/lib/AppContext.js +0 -11
  8. package/lib/AppContext.js.map +0 -1
  9. package/lib/KitchenConfigurator.js +0 -1353
  10. package/lib/KitchenConfigurator.js.map +0 -1
  11. package/lib/KitchenConfiguratorApp.js +0 -539
  12. package/lib/KitchenConfiguratorApp.js.map +0 -1
  13. package/lib/actions/area-actions.js +0 -22
  14. package/lib/actions/area-actions.js.map +0 -1
  15. package/lib/actions/export.js +0 -44
  16. package/lib/actions/export.js.map +0 -1
  17. package/lib/actions/groups-actions.js +0 -108
  18. package/lib/actions/groups-actions.js.map +0 -1
  19. package/lib/actions/holes-actions.js +0 -141
  20. package/lib/actions/holes-actions.js.map +0 -1
  21. package/lib/actions/items-actions.js +0 -365
  22. package/lib/actions/items-actions.js.map +0 -1
  23. package/lib/actions/lines-actions.js +0 -98
  24. package/lib/actions/lines-actions.js.map +0 -1
  25. package/lib/actions/project-actions.js +0 -333
  26. package/lib/actions/project-actions.js.map +0 -1
  27. package/lib/actions/scene-actions.js +0 -44
  28. package/lib/actions/scene-actions.js.map +0 -1
  29. package/lib/actions/user-actions.js +0 -69
  30. package/lib/actions/user-actions.js.map +0 -1
  31. package/lib/actions/vertices-actions.js +0 -36
  32. package/lib/actions/vertices-actions.js.map +0 -1
  33. package/lib/actions/viewer2d-actions.js +0 -74
  34. package/lib/actions/viewer2d-actions.js.map +0 -1
  35. package/lib/actions/viewer3d-actions.js +0 -33
  36. package/lib/actions/viewer3d-actions.js.map +0 -1
  37. package/lib/catalog/areas/area/planner-element.js +0 -47
  38. package/lib/catalog/areas/area/planner-element.js.map +0 -1
  39. package/lib/catalog/catalog.js +0 -283
  40. package/lib/catalog/catalog.js.map +0 -1
  41. package/lib/catalog/factories/area-factory-3d.js +0 -192
  42. package/lib/catalog/factories/area-factory-3d.js.map +0 -1
  43. package/lib/catalog/factories/area-factory.js +0 -90
  44. package/lib/catalog/factories/area-factory.js.map +0 -1
  45. package/lib/catalog/factories/export.js +0 -26
  46. package/lib/catalog/factories/export.js.map +0 -1
  47. package/lib/catalog/factories/wall-factory-3d.js +0 -213
  48. package/lib/catalog/factories/wall-factory-3d.js.map +0 -1
  49. package/lib/catalog/factories/wall-factory.js +0 -279
  50. package/lib/catalog/factories/wall-factory.js.map +0 -1
  51. package/lib/catalog/holes/door-closet/planner-element.js +0 -232
  52. package/lib/catalog/holes/door-closet/planner-element.js.map +0 -1
  53. package/lib/catalog/holes/door-double/planner-element.js +0 -325
  54. package/lib/catalog/holes/door-double/planner-element.js.map +0 -1
  55. package/lib/catalog/holes/door-exterior/planner-element.js +0 -225
  56. package/lib/catalog/holes/door-exterior/planner-element.js.map +0 -1
  57. package/lib/catalog/holes/door-interior/planner-element.js +0 -237
  58. package/lib/catalog/holes/door-interior/planner-element.js.map +0 -1
  59. package/lib/catalog/holes/door-panic/planner-element.js +0 -513
  60. package/lib/catalog/holes/door-panic/planner-element.js.map +0 -1
  61. package/lib/catalog/holes/door-panic-double/planner-element.js +0 -473
  62. package/lib/catalog/holes/door-panic-double/planner-element.js.map +0 -1
  63. package/lib/catalog/holes/door-sliding/planner-element.js +0 -235
  64. package/lib/catalog/holes/door-sliding/planner-element.js.map +0 -1
  65. package/lib/catalog/holes/doorway-framed/planner-element.js +0 -155
  66. package/lib/catalog/holes/doorway-framed/planner-element.js.map +0 -1
  67. package/lib/catalog/holes/doorway-frameless/planner-element.js +0 -114
  68. package/lib/catalog/holes/doorway-frameless/planner-element.js.map +0 -1
  69. package/lib/catalog/holes/window-clear/planner-element.js +0 -176
  70. package/lib/catalog/holes/window-clear/planner-element.js.map +0 -1
  71. package/lib/catalog/holes/window-cross/planner-element.js +0 -175
  72. package/lib/catalog/holes/window-cross/planner-element.js.map +0 -1
  73. package/lib/catalog/holes/window-double-hung/planner-element.js +0 -313
  74. package/lib/catalog/holes/window-double-hung/planner-element.js.map +0 -1
  75. package/lib/catalog/holes/window-vertical/planner-element.js +0 -286
  76. package/lib/catalog/holes/window-vertical/planner-element.js.map +0 -1
  77. package/lib/catalog/lines/wall/planner-element.js +0 -77
  78. package/lib/catalog/lines/wall/planner-element.js.map +0 -1
  79. package/lib/catalog/molding/molding-dcm/planner-element.js +0 -39
  80. package/lib/catalog/molding/molding-dcm/planner-element.js.map +0 -1
  81. package/lib/catalog/molding/molding-fbm/planner-element.js +0 -39
  82. package/lib/catalog/molding/molding-fbm/planner-element.js.map +0 -1
  83. package/lib/catalog/molding/molding-lrm/planner-element.js +0 -39
  84. package/lib/catalog/molding/molding-lrm/planner-element.js.map +0 -1
  85. package/lib/catalog/properties/export.js +0 -82
  86. package/lib/catalog/properties/export.js.map +0 -1
  87. package/lib/catalog/properties/property-checkbox.js +0 -79
  88. package/lib/catalog/properties/property-checkbox.js.map +0 -1
  89. package/lib/catalog/properties/property-color.js +0 -47
  90. package/lib/catalog/properties/property-color.js.map +0 -1
  91. package/lib/catalog/properties/property-enum.js +0 -63
  92. package/lib/catalog/properties/property-enum.js.map +0 -1
  93. package/lib/catalog/properties/property-hidden.js +0 -27
  94. package/lib/catalog/properties/property-hidden.js.map +0 -1
  95. package/lib/catalog/properties/property-lenght-measure.js +0 -109
  96. package/lib/catalog/properties/property-lenght-measure.js.map +0 -1
  97. package/lib/catalog/properties/property-length-measure.js +0 -93
  98. package/lib/catalog/properties/property-length-measure.js.map +0 -1
  99. package/lib/catalog/properties/property-length-measure_hole.js +0 -109
  100. package/lib/catalog/properties/property-length-measure_hole.js.map +0 -1
  101. package/lib/catalog/properties/property-number.js +0 -56
  102. package/lib/catalog/properties/property-number.js.map +0 -1
  103. package/lib/catalog/properties/property-read-only.js +0 -34
  104. package/lib/catalog/properties/property-read-only.js.map +0 -1
  105. package/lib/catalog/properties/property-string.js +0 -56
  106. package/lib/catalog/properties/property-string.js.map +0 -1
  107. package/lib/catalog/properties/property-toggle.js +0 -47
  108. package/lib/catalog/properties/property-toggle.js.map +0 -1
  109. package/lib/catalog/properties/shared-property-style.js +0 -21
  110. package/lib/catalog/properties/shared-property-style.js.map +0 -1
  111. package/lib/catalog/utils/FuseUtils.js +0 -89
  112. package/lib/catalog/utils/FuseUtils.js.map +0 -1
  113. package/lib/catalog/utils/exporter.js +0 -156
  114. package/lib/catalog/utils/exporter.js.map +0 -1
  115. package/lib/catalog/utils/geom-utils.js +0 -206
  116. package/lib/catalog/utils/geom-utils.js.map +0 -1
  117. package/lib/catalog/utils/item-loader.js +0 -1534
  118. package/lib/catalog/utils/item-loader.js.map +0 -1
  119. package/lib/catalog/utils/load-obj.js +0 -100
  120. package/lib/catalog/utils/load-obj.js.map +0 -1
  121. package/lib/catalog/utils/mtl-loader.js +0 -360
  122. package/lib/catalog/utils/mtl-loader.js.map +0 -1
  123. package/lib/catalog/utils/obj-loader.js +0 -479
  124. package/lib/catalog/utils/obj-loader.js.map +0 -1
  125. package/lib/class/FuseUtils.js +0 -89
  126. package/lib/class/FuseUtils.js.map +0 -1
  127. package/lib/class/area.js +0 -151
  128. package/lib/class/area.js.map +0 -1
  129. package/lib/class/export.js +0 -97
  130. package/lib/class/export.js.map +0 -1
  131. package/lib/class/group.js +0 -446
  132. package/lib/class/group.js.map +0 -1
  133. package/lib/class/guide.js +0 -68
  134. package/lib/class/guide.js.map +0 -1
  135. package/lib/class/hole.js +0 -935
  136. package/lib/class/hole.js.map +0 -1
  137. package/lib/class/item.js +0 -1894
  138. package/lib/class/item.js.map +0 -1
  139. package/lib/class/layer.js +0 -673
  140. package/lib/class/layer.js.map +0 -1
  141. package/lib/class/line.js +0 -1296
  142. package/lib/class/line.js.map +0 -1
  143. package/lib/class/project.js +0 -829
  144. package/lib/class/project.js.map +0 -1
  145. package/lib/class/vertex.js +0 -272
  146. package/lib/class/vertex.js.map +0 -1
  147. package/lib/components/atoms/Snackbar/index.js +0 -57
  148. package/lib/components/atoms/Snackbar/index.js.map +0 -1
  149. package/lib/components/atoms/radio-button/index.js +0 -33
  150. package/lib/components/atoms/radio-button/index.js.map +0 -1
  151. package/lib/components/atoms/radio-button/styles.js +0 -12
  152. package/lib/components/atoms/radio-button/styles.js.map +0 -1
  153. package/lib/components/button/MainButton.js +0 -98
  154. package/lib/components/button/MainButton.js.map +0 -1
  155. package/lib/components/button/ToggleMeasureButton.js +0 -63
  156. package/lib/components/button/ToggleMeasureButton.js.map +0 -1
  157. package/lib/components/catalog-view/catalog-breadcrumb.js +0 -61
  158. package/lib/components/catalog-view/catalog-breadcrumb.js.map +0 -1
  159. package/lib/components/catalog-view/catalog-item.js +0 -233
  160. package/lib/components/catalog-view/catalog-item.js.map +0 -1
  161. package/lib/components/catalog-view/catalog-list.js +0 -189
  162. package/lib/components/catalog-view/catalog-list.js.map +0 -1
  163. package/lib/components/catalog-view/catalog-page-item.js +0 -137
  164. package/lib/components/catalog-view/catalog-page-item.js.map +0 -1
  165. package/lib/components/catalog-view/catalog-turn-back-page-item.js +0 -113
  166. package/lib/components/catalog-view/catalog-turn-back-page-item.js.map +0 -1
  167. package/lib/components/configurator/custom-configurator.js +0 -101
  168. package/lib/components/configurator/custom-configurator.js.map +0 -1
  169. package/lib/components/configurator/project-configurator.js +0 -138
  170. package/lib/components/configurator/project-configurator.js.map +0 -1
  171. package/lib/components/content.js +0 -132
  172. package/lib/components/content.js.map +0 -1
  173. package/lib/components/export.js +0 -90
  174. package/lib/components/export.js.map +0 -1
  175. package/lib/components/firstsetting/button/styles.js +0 -34
  176. package/lib/components/firstsetting/button/styles.js.map +0 -1
  177. package/lib/components/firstsetting/export.js +0 -16
  178. package/lib/components/firstsetting/export.js.map +0 -1
  179. package/lib/components/firstsetting/firstsetting-content-button.js +0 -224
  180. package/lib/components/firstsetting/firstsetting-content-button.js.map +0 -1
  181. package/lib/components/firstsetting/firstsetting-toggle-button.js +0 -133
  182. package/lib/components/firstsetting/firstsetting-toggle-button.js.map +0 -1
  183. package/lib/components/firstsetting/firstsetting.js +0 -633
  184. package/lib/components/firstsetting/firstsetting.js.map +0 -1
  185. package/lib/components/footerbar/button/ControlButton.js +0 -79
  186. package/lib/components/footerbar/button/ControlButton.js.map +0 -1
  187. package/lib/components/footerbar/button/DirectionButton.js +0 -76
  188. package/lib/components/footerbar/button/DirectionButton.js.map +0 -1
  189. package/lib/components/footerbar/button/DirectionPanSpinButton.js +0 -57
  190. package/lib/components/footerbar/button/DirectionPanSpinButton.js.map +0 -1
  191. package/lib/components/footerbar/button/ToggleButton.js +0 -83
  192. package/lib/components/footerbar/button/ToggleButton.js.map +0 -1
  193. package/lib/components/footerbar/button/ToggleConvertButton.js +0 -80
  194. package/lib/components/footerbar/button/ToggleConvertButton.js.map +0 -1
  195. package/lib/components/footerbar/button/ToggleMeasureButton.js +0 -59
  196. package/lib/components/footerbar/button/ToggleMeasureButton.js.map +0 -1
  197. package/lib/components/footerbar/button/styles.js +0 -29
  198. package/lib/components/footerbar/button/styles.js.map +0 -1
  199. package/lib/components/footerbar/export.js +0 -16
  200. package/lib/components/footerbar/export.js.map +0 -1
  201. package/lib/components/footerbar/footer-content-button.js +0 -224
  202. package/lib/components/footerbar/footer-content-button.js.map +0 -1
  203. package/lib/components/footerbar/footer-toggle-button.js +0 -133
  204. package/lib/components/footerbar/footer-toggle-button.js.map +0 -1
  205. package/lib/components/footerbar/footerbar.js +0 -808
  206. package/lib/components/footerbar/footerbar.js.map +0 -1
  207. package/lib/components/footerbar/styles.js +0 -41
  208. package/lib/components/footerbar/styles.js.map +0 -1
  209. package/lib/components/header/button/MenuButton.js +0 -77
  210. package/lib/components/header/button/MenuButton.js.map +0 -1
  211. package/lib/components/header/button/SaveButton.js +0 -57
  212. package/lib/components/header/button/SaveButton.js.map +0 -1
  213. package/lib/components/header/button/styles.js +0 -68
  214. package/lib/components/header/button/styles.js.map +0 -1
  215. package/lib/components/header/export.js +0 -12
  216. package/lib/components/header/export.js.map +0 -1
  217. package/lib/components/header/header.js +0 -556
  218. package/lib/components/header/header.js.map +0 -1
  219. package/lib/components/header/styles.js +0 -47
  220. package/lib/components/header/styles.js.map +0 -1
  221. package/lib/components/login/Login.js +0 -94
  222. package/lib/components/login/Login.js.map +0 -1
  223. package/lib/components/login/LoginForm/index.js +0 -140
  224. package/lib/components/login/LoginForm/index.js.map +0 -1
  225. package/lib/components/login/Register.js +0 -104
  226. package/lib/components/login/Register.js.map +0 -1
  227. package/lib/components/login/RegisterForm/index.js +0 -237
  228. package/lib/components/login/RegisterForm/index.js.map +0 -1
  229. package/lib/components/login/jwtService.js +0 -239
  230. package/lib/components/login/jwtService.js.map +0 -1
  231. package/lib/components/molecules/slider/index.js +0 -22
  232. package/lib/components/molecules/slider/index.js.map +0 -1
  233. package/lib/components/molecules/slider/styles.js +0 -2
  234. package/lib/components/molecules/slider/styles.js.map +0 -1
  235. package/lib/components/myprojects/export.js +0 -12
  236. package/lib/components/myprojects/export.js.map +0 -1
  237. package/lib/components/myprojects/index.js +0 -453
  238. package/lib/components/myprojects/index.js.map +0 -1
  239. package/lib/components/myprojects/styles.js +0 -31
  240. package/lib/components/myprojects/styles.js.map +0 -1
  241. package/lib/components/sidebar/custom-accordion.js +0 -45
  242. package/lib/components/sidebar/custom-accordion.js.map +0 -1
  243. package/lib/components/sidebar/export.js +0 -50
  244. package/lib/components/sidebar/export.js.map +0 -1
  245. package/lib/components/sidebar/panel-element-editor/attributes-editor/attributes-editor.js +0 -74
  246. package/lib/components/sidebar/panel-element-editor/attributes-editor/attributes-editor.js.map +0 -1
  247. package/lib/components/sidebar/panel-element-editor/attributes-editor/confirm-popup.js +0 -124
  248. package/lib/components/sidebar/panel-element-editor/attributes-editor/confirm-popup.js.map +0 -1
  249. package/lib/components/sidebar/panel-element-editor/attributes-editor/hole-attributes-editor.js +0 -135
  250. package/lib/components/sidebar/panel-element-editor/attributes-editor/hole-attributes-editor.js.map +0 -1
  251. package/lib/components/sidebar/panel-element-editor/attributes-editor/item-attributes-editor.js +0 -260
  252. package/lib/components/sidebar/panel-element-editor/attributes-editor/item-attributes-editor.js.map +0 -1
  253. package/lib/components/sidebar/panel-element-editor/attributes-editor/line-attributes-editor.js +0 -84
  254. package/lib/components/sidebar/panel-element-editor/attributes-editor/line-attributes-editor.js.map +0 -1
  255. package/lib/components/sidebar/panel-element-editor/element-editor.js +0 -884
  256. package/lib/components/sidebar/panel-element-editor/element-editor.js.map +0 -1
  257. package/lib/components/sidebar/panel-element-editor/multi-elements-editor.js +0 -2
  258. package/lib/components/sidebar/panel-element-editor/multi-elements-editor.js.map +0 -1
  259. package/lib/components/sidebar/panel-element-editor/panel-element-editor.js +0 -56
  260. package/lib/components/sidebar/panel-element-editor/panel-element-editor.js.map +0 -1
  261. package/lib/components/sidebar/panel-element-editor/panel-multi-elements-editor.js +0 -125
  262. package/lib/components/sidebar/panel-element-editor/panel-multi-elements-editor.js.map +0 -1
  263. package/lib/components/sidebar/panel-group-editor.js +0 -218
  264. package/lib/components/sidebar/panel-group-editor.js.map +0 -1
  265. package/lib/components/sidebar/panel-groups.js +0 -274
  266. package/lib/components/sidebar/panel-groups.js.map +0 -1
  267. package/lib/components/sidebar/panel-guides.js +0 -192
  268. package/lib/components/sidebar/panel-guides.js.map +0 -1
  269. package/lib/components/sidebar/panel-layer-elements.js +0 -258
  270. package/lib/components/sidebar/panel-layer-elements.js.map +0 -1
  271. package/lib/components/sidebar/panel-layers.js +0 -347
  272. package/lib/components/sidebar/panel-layers.js.map +0 -1
  273. package/lib/components/sidebar/panel.js +0 -110
  274. package/lib/components/sidebar/panel.js.map +0 -1
  275. package/lib/components/sidebar/sidebar.js +0 -117
  276. package/lib/components/sidebar/sidebar.js.map +0 -1
  277. package/lib/components/sidebar/toolbar-panel.js +0 -171
  278. package/lib/components/sidebar/toolbar-panel.js.map +0 -1
  279. package/lib/components/sign/export.js +0 -18
  280. package/lib/components/sign/export.js.map +0 -1
  281. package/lib/components/sign/main/index.js +0 -567
  282. package/lib/components/sign/main/index.js.map +0 -1
  283. package/lib/components/sign/main/styles.js +0 -27
  284. package/lib/components/sign/main/styles.js.map +0 -1
  285. package/lib/components/style/button.js +0 -121
  286. package/lib/components/style/button.js.map +0 -1
  287. package/lib/components/style/cancel-button.js +0 -30
  288. package/lib/components/style/cancel-button.js.map +0 -1
  289. package/lib/components/style/content-container.js +0 -41
  290. package/lib/components/style/content-container.js.map +0 -1
  291. package/lib/components/style/content-title.js +0 -38
  292. package/lib/components/style/content-title.js.map +0 -1
  293. package/lib/components/style/delete-button.js +0 -35
  294. package/lib/components/style/delete-button.js.map +0 -1
  295. package/lib/components/style/export.js +0 -122
  296. package/lib/components/style/export.js.map +0 -1
  297. package/lib/components/style/form-block.js +0 -32
  298. package/lib/components/style/form-block.js.map +0 -1
  299. package/lib/components/style/form-color-input.js +0 -35
  300. package/lib/components/style/form-color-input.js.map +0 -1
  301. package/lib/components/style/form-label.js +0 -34
  302. package/lib/components/style/form-label.js.map +0 -1
  303. package/lib/components/style/form-number-input.js +0 -197
  304. package/lib/components/style/form-number-input.js.map +0 -1
  305. package/lib/components/style/form-number-input_2.js +0 -214
  306. package/lib/components/style/form-number-input_2.js.map +0 -1
  307. package/lib/components/style/form-select.js +0 -30
  308. package/lib/components/style/form-select.js.map +0 -1
  309. package/lib/components/style/form-slider.js +0 -53
  310. package/lib/components/style/form-slider.js.map +0 -1
  311. package/lib/components/style/form-submit-button.js +0 -36
  312. package/lib/components/style/form-submit-button.js.map +0 -1
  313. package/lib/components/style/form-text-input.js +0 -84
  314. package/lib/components/style/form-text-input.js.map +0 -1
  315. package/lib/components/toolbar/button/ControlButton.js +0 -76
  316. package/lib/components/toolbar/button/ControlButton.js.map +0 -1
  317. package/lib/components/toolbar/button/DirectionButton.js +0 -57
  318. package/lib/components/toolbar/button/DirectionButton.js.map +0 -1
  319. package/lib/components/toolbar/button/RightButton.js +0 -140
  320. package/lib/components/toolbar/button/RightButton.js.map +0 -1
  321. package/lib/components/toolbar/button/ToggleButton.js +0 -66
  322. package/lib/components/toolbar/button/ToggleButton.js.map +0 -1
  323. package/lib/components/toolbar/button/index.js +0 -94
  324. package/lib/components/toolbar/button/index.js.map +0 -1
  325. package/lib/components/toolbar/button/styles.js +0 -21
  326. package/lib/components/toolbar/button/styles.js.map +0 -1
  327. package/lib/components/toolbar/components/DoorStyleMenu.js +0 -112
  328. package/lib/components/toolbar/components/DoorStyleMenu.js.map +0 -1
  329. package/lib/components/toolbar/components/Pricing.js +0 -110
  330. package/lib/components/toolbar/components/Pricing.js.map +0 -1
  331. package/lib/components/toolbar/components/ReviewForQuote.js +0 -485
  332. package/lib/components/toolbar/components/ReviewForQuote.js.map +0 -1
  333. package/lib/components/toolbar/export.js +0 -50
  334. package/lib/components/toolbar/export.js.map +0 -1
  335. package/lib/components/toolbar/main/Alert.js +0 -132
  336. package/lib/components/toolbar/main/Alert.js.map +0 -1
  337. package/lib/components/toolbar/main/TakePictureModal.js +0 -109
  338. package/lib/components/toolbar/main/TakePictureModal.js.map +0 -1
  339. package/lib/components/toolbar/main/confirm-popup.js +0 -95
  340. package/lib/components/toolbar/main/confirm-popup.js.map +0 -1
  341. package/lib/components/toolbar/main/index.js +0 -4619
  342. package/lib/components/toolbar/main/index.js.map +0 -1
  343. package/lib/components/toolbar/main/myComponents.js +0 -125
  344. package/lib/components/toolbar/main/myComponents.js.map +0 -1
  345. package/lib/components/toolbar/main/styles.js +0 -73
  346. package/lib/components/toolbar/main/styles.js.map +0 -1
  347. package/lib/components/toolbar/plugin-item.js +0 -156
  348. package/lib/components/toolbar/plugin-item.js.map +0 -1
  349. package/lib/components/toolbar/popup/appliance/appliance-category/index.js +0 -86
  350. package/lib/components/toolbar/popup/appliance/appliance-category/index.js.map +0 -1
  351. package/lib/components/toolbar/popup/appliance/choose-appliance/index.js +0 -85
  352. package/lib/components/toolbar/popup/appliance/choose-appliance/index.js.map +0 -1
  353. package/lib/components/toolbar/popup/appliance/index.js +0 -89
  354. package/lib/components/toolbar/popup/appliance/index.js.map +0 -1
  355. package/lib/components/toolbar/popup/autosaveprompt/index.js +0 -99
  356. package/lib/components/toolbar/popup/autosaveprompt/index.js.map +0 -1
  357. package/lib/components/toolbar/popup/autosaveprompt/styles.js +0 -16
  358. package/lib/components/toolbar/popup/autosaveprompt/styles.js.map +0 -1
  359. package/lib/components/toolbar/popup/cabinet/cabinet-category/index.js +0 -86
  360. package/lib/components/toolbar/popup/cabinet/cabinet-category/index.js.map +0 -1
  361. package/lib/components/toolbar/popup/cabinet/choose-product/index.js +0 -107
  362. package/lib/components/toolbar/popup/cabinet/choose-product/index.js.map +0 -1
  363. package/lib/components/toolbar/popup/cabinet/index.js +0 -91
  364. package/lib/components/toolbar/popup/cabinet/index.js.map +0 -1
  365. package/lib/components/toolbar/popup/doorStyle/choose-style/index.js +0 -59
  366. package/lib/components/toolbar/popup/doorStyle/choose-style/index.js.map +0 -1
  367. package/lib/components/toolbar/popup/doorStyle/index.js +0 -68
  368. package/lib/components/toolbar/popup/doorStyle/index.js.map +0 -1
  369. package/lib/components/toolbar/popup/doorStyle/style-category/index.js +0 -152
  370. package/lib/components/toolbar/popup/doorStyle/style-category/index.js.map +0 -1
  371. package/lib/components/toolbar/popup/downloadsummary/downloadSummaryContext.js +0 -9
  372. package/lib/components/toolbar/popup/downloadsummary/downloadSummaryContext.js.map +0 -1
  373. package/lib/components/toolbar/popup/downloadsummary/downloadSummaryTemp.js +0 -128
  374. package/lib/components/toolbar/popup/downloadsummary/downloadSummaryTemp.js.map +0 -1
  375. package/lib/components/toolbar/popup/downloadsummary/index.js +0 -572
  376. package/lib/components/toolbar/popup/downloadsummary/index.js.map +0 -1
  377. package/lib/components/toolbar/popup/downloadsummary/show2D/show2DView.js +0 -60
  378. package/lib/components/toolbar/popup/downloadsummary/show2D/show2DView.js.map +0 -1
  379. package/lib/components/toolbar/popup/downloadsummary/show2D/viewer2DDownLoad.js +0 -200
  380. package/lib/components/toolbar/popup/downloadsummary/show2D/viewer2DDownLoad.js.map +0 -1
  381. package/lib/components/toolbar/popup/downloadsummary/show3D/show3DView.js +0 -254
  382. package/lib/components/toolbar/popup/downloadsummary/show3D/show3DView.js.map +0 -1
  383. package/lib/components/toolbar/popup/downloadsummary/show3D/viewer3DDownLoad.js +0 -1762
  384. package/lib/components/toolbar/popup/downloadsummary/show3D/viewer3DDownLoad.js.map +0 -1
  385. package/lib/components/toolbar/popup/downloadsummary/showCabinetInfo.js +0 -96
  386. package/lib/components/toolbar/popup/downloadsummary/showCabinetInfo.js.map +0 -1
  387. package/lib/components/toolbar/popup/downloadsummary/showElevation/showElevationView.js +0 -125
  388. package/lib/components/toolbar/popup/downloadsummary/showElevation/showElevationView.js.map +0 -1
  389. package/lib/components/toolbar/popup/downloadsummary/showElevation/viewer3DElevationDownload.js +0 -1713
  390. package/lib/components/toolbar/popup/downloadsummary/showElevation/viewer3DElevationDownload.js.map +0 -1
  391. package/lib/components/toolbar/popup/downloadsummary/showElevation/viewerElevationDownload.js +0 -184
  392. package/lib/components/toolbar/popup/downloadsummary/showElevation/viewerElevationDownload.js.map +0 -1
  393. package/lib/components/toolbar/popup/downloadsummary/showWarranty.js +0 -115
  394. package/lib/components/toolbar/popup/downloadsummary/showWarranty.js.map +0 -1
  395. package/lib/components/toolbar/popup/downloadsummary/styles.js +0 -47
  396. package/lib/components/toolbar/popup/downloadsummary/styles.js.map +0 -1
  397. package/lib/components/toolbar/popup/finishingtouch/category/index.js +0 -44
  398. package/lib/components/toolbar/popup/finishingtouch/category/index.js.map +0 -1
  399. package/lib/components/toolbar/popup/finishingtouch/index.js +0 -54
  400. package/lib/components/toolbar/popup/finishingtouch/index.js.map +0 -1
  401. package/lib/components/toolbar/popup/finishingtouch/material-edit.js +0 -163
  402. package/lib/components/toolbar/popup/finishingtouch/material-edit.js.map +0 -1
  403. package/lib/components/toolbar/popup/finishingtouch/product/index.js +0 -65
  404. package/lib/components/toolbar/popup/finishingtouch/product/index.js.map +0 -1
  405. package/lib/components/toolbar/popup/floorplan/choose-floor/confirm-popup.js +0 -124
  406. package/lib/components/toolbar/popup/floorplan/choose-floor/confirm-popup.js.map +0 -1
  407. package/lib/components/toolbar/popup/floorplan/choose-floor/index.js +0 -255
  408. package/lib/components/toolbar/popup/floorplan/choose-floor/index.js.map +0 -1
  409. package/lib/components/toolbar/popup/floorplan/choose-floor/styles.js +0 -20
  410. package/lib/components/toolbar/popup/floorplan/choose-floor/styles.js.map +0 -1
  411. package/lib/components/toolbar/popup/floorplan/floor-category/index.js +0 -99
  412. package/lib/components/toolbar/popup/floorplan/floor-category/index.js.map +0 -1
  413. package/lib/components/toolbar/popup/floorplan/index.js +0 -56
  414. package/lib/components/toolbar/popup/floorplan/index.js.map +0 -1
  415. package/lib/components/toolbar/popup/index.js +0 -195
  416. package/lib/components/toolbar/popup/index.js.map +0 -1
  417. package/lib/components/toolbar/popup/newproject/index.js +0 -75
  418. package/lib/components/toolbar/popup/newproject/index.js.map +0 -1
  419. package/lib/components/toolbar/popup/newproject/styles.js +0 -16
  420. package/lib/components/toolbar/popup/newproject/styles.js.map +0 -1
  421. package/lib/components/toolbar/popup/product/appliance.js +0 -73
  422. package/lib/components/toolbar/popup/product/appliance.js.map +0 -1
  423. package/lib/components/toolbar/popup/product/cabinetproduct.js +0 -33
  424. package/lib/components/toolbar/popup/product/cabinetproduct.js.map +0 -1
  425. package/lib/components/toolbar/popup/product/doorstyle.js +0 -59
  426. package/lib/components/toolbar/popup/product/doorstyle.js.map +0 -1
  427. package/lib/components/toolbar/popup/product/doorstyleproduct.js +0 -59
  428. package/lib/components/toolbar/popup/product/doorstyleproduct.js.map +0 -1
  429. package/lib/components/toolbar/popup/product/floor.js +0 -59
  430. package/lib/components/toolbar/popup/product/floor.js.map +0 -1
  431. package/lib/components/toolbar/popup/product/floorproduct.js +0 -68
  432. package/lib/components/toolbar/popup/product/floorproduct.js.map +0 -1
  433. package/lib/components/toolbar/popup/product/index.js +0 -59
  434. package/lib/components/toolbar/popup/product/index.js.map +0 -1
  435. package/lib/components/toolbar/popup/product/primary.js +0 -71
  436. package/lib/components/toolbar/popup/product/primary.js.map +0 -1
  437. package/lib/components/toolbar/popup/product/productline.js +0 -128
  438. package/lib/components/toolbar/popup/product/productline.js.map +0 -1
  439. package/lib/components/toolbar/popup/product/reviewItem.js +0 -346
  440. package/lib/components/toolbar/popup/product/reviewItem.js.map +0 -1
  441. package/lib/components/toolbar/popup/product/reviewMolding.js +0 -291
  442. package/lib/components/toolbar/popup/product/reviewMolding.js.map +0 -1
  443. package/lib/components/toolbar/popup/product/styles.js +0 -79
  444. package/lib/components/toolbar/popup/product/styles.js.map +0 -1
  445. package/lib/components/toolbar/popup/savedesign/FullPictureForm.js +0 -169
  446. package/lib/components/toolbar/popup/savedesign/FullPictureForm.js.map +0 -1
  447. package/lib/components/toolbar/popup/savedesign/index.js +0 -516
  448. package/lib/components/toolbar/popup/savedesign/index.js.map +0 -1
  449. package/lib/components/toolbar/popup/savedesign/styles.js +0 -26
  450. package/lib/components/toolbar/popup/savedesign/styles.js.map +0 -1
  451. package/lib/components/toolbar/popup/setDoorStyleOption/index.js +0 -64
  452. package/lib/components/toolbar/popup/setDoorStyleOption/index.js.map +0 -1
  453. package/lib/components/toolbar/popup/styles.js +0 -104
  454. package/lib/components/toolbar/popup/styles.js.map +0 -1
  455. package/lib/components/toolbar/popup/submitforquote/AddToCartOptions.js +0 -166
  456. package/lib/components/toolbar/popup/submitforquote/AddToCartOptions.js.map +0 -1
  457. package/lib/components/toolbar/popup/submitforquote/CustomerRequestsForm.js +0 -93
  458. package/lib/components/toolbar/popup/submitforquote/CustomerRequestsForm.js.map +0 -1
  459. package/lib/components/toolbar/popup/submitforquote/SkipDesignerReview.js +0 -45
  460. package/lib/components/toolbar/popup/submitforquote/SkipDesignerReview.js.map +0 -1
  461. package/lib/components/toolbar/popup/submitforquote/StepDots.js +0 -40
  462. package/lib/components/toolbar/popup/submitforquote/StepDots.js.map +0 -1
  463. package/lib/components/toolbar/popup/submitforquote/cart-choice.js +0 -141
  464. package/lib/components/toolbar/popup/submitforquote/cart-choice.js.map +0 -1
  465. package/lib/components/toolbar/popup/submitforquote/doorstyle-menus.js +0 -50
  466. package/lib/components/toolbar/popup/submitforquote/doorstyle-menus.js.map +0 -1
  467. package/lib/components/toolbar/popup/submitforquote/index.js +0 -698
  468. package/lib/components/toolbar/popup/submitforquote/index.js.map +0 -1
  469. package/lib/components/toolbar/popup/submitforquote/styles.js +0 -38
  470. package/lib/components/toolbar/popup/submitforquote/styles.js.map +0 -1
  471. package/lib/components/toolbar/popup/submitprompt/index.js +0 -79
  472. package/lib/components/toolbar/popup/submitprompt/index.js.map +0 -1
  473. package/lib/components/toolbar/popup/submitprompt/styles.js +0 -16
  474. package/lib/components/toolbar/popup/submitprompt/styles.js.map +0 -1
  475. package/lib/components/toolbar/toolbar-button.js +0 -111
  476. package/lib/components/toolbar/toolbar-button.js.map +0 -1
  477. package/lib/components/toolbar/toolbar-load-button.js +0 -36
  478. package/lib/components/toolbar/toolbar-load-button.js.map +0 -1
  479. package/lib/components/toolbar/toolbar-save-button.js +0 -34
  480. package/lib/components/toolbar/toolbar-save-button.js.map +0 -1
  481. package/lib/components/tutorial-view/Modal.js +0 -503
  482. package/lib/components/tutorial-view/Modal.js.map +0 -1
  483. package/lib/components/tutorial-view/styles.js +0 -13
  484. package/lib/components/tutorial-view/styles.js.map +0 -1
  485. package/lib/components/viewer2d/area.js +0 -90
  486. package/lib/components/viewer2d/area.js.map +0 -1
  487. package/lib/components/viewer2d/export.js +0 -122
  488. package/lib/components/viewer2d/export.js.map +0 -1
  489. package/lib/components/viewer2d/grids/grid-horizontal-streak.js +0 -45
  490. package/lib/components/viewer2d/grids/grid-horizontal-streak.js.map +0 -1
  491. package/lib/components/viewer2d/grids/grid-streak.js +0 -45
  492. package/lib/components/viewer2d/grids/grid-streak.js.map +0 -1
  493. package/lib/components/viewer2d/grids/grid-vertical-streak.js +0 -45
  494. package/lib/components/viewer2d/grids/grid-vertical-streak.js.map +0 -1
  495. package/lib/components/viewer2d/grids/grids.js +0 -45
  496. package/lib/components/viewer2d/grids/grids.js.map +0 -1
  497. package/lib/components/viewer2d/group.js +0 -63
  498. package/lib/components/viewer2d/group.js.map +0 -1
  499. package/lib/components/viewer2d/item.js +0 -522
  500. package/lib/components/viewer2d/item.js.map +0 -1
  501. package/lib/components/viewer2d/layer.js +0 -172
  502. package/lib/components/viewer2d/layer.js.map +0 -1
  503. package/lib/components/viewer2d/line.js +0 -899
  504. package/lib/components/viewer2d/line.js.map +0 -1
  505. package/lib/components/viewer2d/ruler.js +0 -108
  506. package/lib/components/viewer2d/ruler.js.map +0 -1
  507. package/lib/components/viewer2d/rulerDist.js +0 -154
  508. package/lib/components/viewer2d/rulerDist.js.map +0 -1
  509. package/lib/components/viewer2d/rulerX.js +0 -159
  510. package/lib/components/viewer2d/rulerX.js.map +0 -1
  511. package/lib/components/viewer2d/rulerY.js +0 -161
  512. package/lib/components/viewer2d/rulerY.js.map +0 -1
  513. package/lib/components/viewer2d/scene.js +0 -148
  514. package/lib/components/viewer2d/scene.js.map +0 -1
  515. package/lib/components/viewer2d/snap.js +0 -84
  516. package/lib/components/viewer2d/snap.js.map +0 -1
  517. package/lib/components/viewer2d/state.js +0 -88
  518. package/lib/components/viewer2d/state.js.map +0 -1
  519. package/lib/components/viewer2d/utils.js +0 -174
  520. package/lib/components/viewer2d/utils.js.map +0 -1
  521. package/lib/components/viewer2d/vertex.js +0 -76
  522. package/lib/components/viewer2d/vertex.js.map +0 -1
  523. package/lib/components/viewer2d/viewer2d.js +0 -1409
  524. package/lib/components/viewer2d/viewer2d.js.map +0 -1
  525. package/lib/components/viewer3d/camera-controls-module/camera-controls.module.js +0 -2598
  526. package/lib/components/viewer3d/camera-controls-module/camera-controls.module.js.map +0 -1
  527. package/lib/components/viewer3d/dcm.js +0 -408
  528. package/lib/components/viewer3d/dcm.js.map +0 -1
  529. package/lib/components/viewer3d/fbm.js +0 -421
  530. package/lib/components/viewer3d/fbm.js.map +0 -1
  531. package/lib/components/viewer3d/front3D.js +0 -76
  532. package/lib/components/viewer3d/front3D.js.map +0 -1
  533. package/lib/components/viewer3d/grid-creator.js +0 -35
  534. package/lib/components/viewer3d/grid-creator.js.map +0 -1
  535. package/lib/components/viewer3d/grids/grid-horizontal-streak.js +0 -45
  536. package/lib/components/viewer3d/grids/grid-horizontal-streak.js.map +0 -1
  537. package/lib/components/viewer3d/grids/grid-streak.js +0 -36
  538. package/lib/components/viewer3d/grids/grid-streak.js.map +0 -1
  539. package/lib/components/viewer3d/grids/grid-vertical-streak.js +0 -45
  540. package/lib/components/viewer3d/grids/grid-vertical-streak.js.map +0 -1
  541. package/lib/components/viewer3d/libs/first-person-controls.js +0 -75
  542. package/lib/components/viewer3d/libs/first-person-controls.js.map +0 -1
  543. package/lib/components/viewer3d/libs/helvetiker_regular.typeface.js +0 -1288
  544. package/lib/components/viewer3d/libs/helvetiker_regular.typeface.js.map +0 -1
  545. package/lib/components/viewer3d/libs/mtl-loader.js +0 -360
  546. package/lib/components/viewer3d/libs/mtl-loader.js.map +0 -1
  547. package/lib/components/viewer3d/libs/obj-loader.js +0 -465
  548. package/lib/components/viewer3d/libs/obj-loader.js.map +0 -1
  549. package/lib/components/viewer3d/libs/orbit-controls.js +0 -701
  550. package/lib/components/viewer3d/libs/orbit-controls.js.map +0 -1
  551. package/lib/components/viewer3d/libs/pointer-lock-controls.js +0 -48
  552. package/lib/components/viewer3d/libs/pointer-lock-controls.js.map +0 -1
  553. package/lib/components/viewer3d/lrm.js +0 -312
  554. package/lib/components/viewer3d/lrm.js.map +0 -1
  555. package/lib/components/viewer3d/model.js +0 -715
  556. package/lib/components/viewer3d/model.js.map +0 -1
  557. package/lib/components/viewer3d/pointer-lock-navigation.js +0 -123
  558. package/lib/components/viewer3d/pointer-lock-navigation.js.map +0 -1
  559. package/lib/components/viewer3d/ruler-utils/itemRect.js +0 -69
  560. package/lib/components/viewer3d/ruler-utils/itemRect.js.map +0 -1
  561. package/lib/components/viewer3d/ruler-utils/layer3D.js +0 -503
  562. package/lib/components/viewer3d/ruler-utils/layer3D.js.map +0 -1
  563. package/lib/components/viewer3d/ruler-utils/ruler3D.js +0 -235
  564. package/lib/components/viewer3d/ruler-utils/ruler3D.js.map +0 -1
  565. package/lib/components/viewer3d/ruler-utils/scene3D.js +0 -70
  566. package/lib/components/viewer3d/ruler-utils/scene3D.js.map +0 -1
  567. package/lib/components/viewer3d/ruler-utils/state3D.js +0 -26
  568. package/lib/components/viewer3d/ruler-utils/state3D.js.map +0 -1
  569. package/lib/components/viewer3d/scene-creator.js +0 -3641
  570. package/lib/components/viewer3d/scene-creator.js.map +0 -1
  571. package/lib/components/viewer3d/three-memory-cleaner.js +0 -61
  572. package/lib/components/viewer3d/three-memory-cleaner.js.map +0 -1
  573. package/lib/components/viewer3d/viewer3d-first-person.js +0 -321
  574. package/lib/components/viewer3d/viewer3d-first-person.js.map +0 -1
  575. package/lib/components/viewer3d/viewer3d.js +0 -2508
  576. package/lib/components/viewer3d/viewer3d.js.map +0 -1
  577. package/lib/components/wizardstep/button/styles.js +0 -67
  578. package/lib/components/wizardstep/button/styles.js.map +0 -1
  579. package/lib/components/wizardstep/export.js +0 -12
  580. package/lib/components/wizardstep/export.js.map +0 -1
  581. package/lib/components/wizardstep/index.js +0 -978
  582. package/lib/components/wizardstep/index.js.map +0 -1
  583. package/lib/components/wizardstep/styles.js +0 -68
  584. package/lib/components/wizardstep/styles.js.map +0 -1
  585. package/lib/components/wizardstep/wizardstep-content-button.js +0 -224
  586. package/lib/components/wizardstep/wizardstep-content-button.js.map +0 -1
  587. package/lib/components/wizardstep/wizardstep-toggle-button.js +0 -133
  588. package/lib/components/wizardstep/wizardstep-toggle-button.js.map +0 -1
  589. package/lib/constants.js +0 -646
  590. package/lib/constants.js.map +0 -1
  591. package/lib/hooks/useCheckCart.js +0 -60
  592. package/lib/hooks/useCheckCart.js.map +0 -1
  593. package/lib/hooks/useGetPricesBySku.js +0 -81
  594. package/lib/hooks/useGetPricesBySku.js.map +0 -1
  595. package/lib/hooks/useValidateToken.js +0 -207
  596. package/lib/hooks/useValidateToken.js.map +0 -1
  597. package/lib/index.js +0 -102
  598. package/lib/index.js.map +0 -1
  599. package/lib/models.js +0 -518
  600. package/lib/models.js.map +0 -1
  601. package/lib/plugins/SVGLoader.js +0 -1418
  602. package/lib/plugins/SVGLoader.js.map +0 -1
  603. package/lib/plugins/autosave.js +0 -40
  604. package/lib/plugins/autosave.js.map +0 -1
  605. package/lib/plugins/console-debugger.js +0 -45
  606. package/lib/plugins/console-debugger.js.map +0 -1
  607. package/lib/plugins/export.js +0 -34
  608. package/lib/plugins/export.js.map +0 -1
  609. package/lib/plugins/keyboard.js +0 -108
  610. package/lib/plugins/keyboard.js.map +0 -1
  611. package/lib/reducers/areas-reducer.js +0 -19
  612. package/lib/reducers/areas-reducer.js.map +0 -1
  613. package/lib/reducers/export.js +0 -98
  614. package/lib/reducers/export.js.map +0 -1
  615. package/lib/reducers/groups-reducer.js +0 -45
  616. package/lib/reducers/groups-reducer.js.map +0 -1
  617. package/lib/reducers/holes-reducer.js +0 -69
  618. package/lib/reducers/holes-reducer.js.map +0 -1
  619. package/lib/reducers/items-reducer.js +0 -147
  620. package/lib/reducers/items-reducer.js.map +0 -1
  621. package/lib/reducers/lines-reducer.js +0 -52
  622. package/lib/reducers/lines-reducer.js.map +0 -1
  623. package/lib/reducers/project-reducer.js +0 -136
  624. package/lib/reducers/project-reducer.js.map +0 -1
  625. package/lib/reducers/reducer.js +0 -27
  626. package/lib/reducers/reducer.js.map +0 -1
  627. package/lib/reducers/scene-reducer.js +0 -35
  628. package/lib/reducers/scene-reducer.js.map +0 -1
  629. package/lib/reducers/user-reducer.js +0 -48
  630. package/lib/reducers/user-reducer.js.map +0 -1
  631. package/lib/reducers/vertices-reducer.js +0 -26
  632. package/lib/reducers/vertices-reducer.js.map +0 -1
  633. package/lib/reducers/viewer2d-reducer.js +0 -83
  634. package/lib/reducers/viewer2d-reducer.js.map +0 -1
  635. package/lib/reducers/viewer3d-reducer.js +0 -64
  636. package/lib/reducers/viewer3d-reducer.js.map +0 -1
  637. package/lib/shared-style.js +0 -73
  638. package/lib/shared-style.js.map +0 -1
  639. package/lib/styles/export.js +0 -14
  640. package/lib/styles/export.js.map +0 -1
  641. package/lib/translator/en.js +0 -111
  642. package/lib/translator/en.js.map +0 -1
  643. package/lib/translator/it.js +0 -86
  644. package/lib/translator/it.js.map +0 -1
  645. package/lib/translator/ru.js +0 -86
  646. package/lib/translator/ru.js.map +0 -1
  647. package/lib/translator/translator.js +0 -91
  648. package/lib/translator/translator.js.map +0 -1
  649. package/lib/utils/browser.js +0 -41
  650. package/lib/utils/browser.js.map +0 -1
  651. package/lib/utils/email-validator.js +0 -11
  652. package/lib/utils/email-validator.js.map +0 -1
  653. package/lib/utils/export.js +0 -57
  654. package/lib/utils/export.js.map +0 -1
  655. package/lib/utils/geometry.js +0 -2329
  656. package/lib/utils/geometry.js.map +0 -1
  657. package/lib/utils/get-edges-of-subgraphs.js +0 -29
  658. package/lib/utils/get-edges-of-subgraphs.js.map +0 -1
  659. package/lib/utils/graph-cycles.js +0 -241
  660. package/lib/utils/graph-cycles.js.map +0 -1
  661. package/lib/utils/graph-inner-cycles.js +0 -55
  662. package/lib/utils/graph-inner-cycles.js.map +0 -1
  663. package/lib/utils/graph.js +0 -152
  664. package/lib/utils/graph.js.map +0 -1
  665. package/lib/utils/helper.js +0 -360
  666. package/lib/utils/helper.js.map +0 -1
  667. package/lib/utils/history.js +0 -37
  668. package/lib/utils/history.js.map +0 -1
  669. package/lib/utils/id-broker.js +0 -26
  670. package/lib/utils/id-broker.js.map +0 -1
  671. package/lib/utils/logger.js +0 -15
  672. package/lib/utils/logger.js.map +0 -1
  673. package/lib/utils/math.js +0 -58
  674. package/lib/utils/math.js.map +0 -1
  675. package/lib/utils/molding.js +0 -864
  676. package/lib/utils/molding.js.map +0 -1
  677. package/lib/utils/name-generator.js +0 -24
  678. package/lib/utils/name-generator.js.map +0 -1
  679. package/lib/utils/objects-utils.js +0 -61
  680. package/lib/utils/objects-utils.js.map +0 -1
  681. package/lib/utils/phone-validator.js +0 -11
  682. package/lib/utils/phone-validator.js.map +0 -1
  683. package/lib/utils/process-black-list.js +0 -25
  684. package/lib/utils/process-black-list.js.map +0 -1
  685. package/lib/utils/react-if.js +0 -25
  686. package/lib/utils/react-if.js.map +0 -1
  687. package/lib/utils/snap-scene.js +0 -106
  688. package/lib/utils/snap-scene.js.map +0 -1
  689. package/lib/utils/snap.js +0 -250
  690. package/lib/utils/snap.js.map +0 -1
  691. package/lib/utils/threeCSG.es6.js +0 -504
  692. package/lib/utils/threeCSG.es6.js.map +0 -1
  693. package/lib/version.js +0 -8
  694. package/lib/version.js.map +0 -1
@@ -1,2508 +0,0 @@
1
- 'use strict';
2
-
3
- function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports["default"] = void 0;
8
- var _react = _interopRequireDefault(require("react"));
9
- var _propTypes = _interopRequireDefault(require("prop-types"));
10
- var _reactDom = _interopRequireDefault(require("react-dom"));
11
- var Three = _interopRequireWildcard(require("three"));
12
- var _sceneCreator = require("./scene-creator");
13
- var _threeMemoryCleaner = require("./three-memory-cleaner");
14
- var _immutablediff = _interopRequireDefault(require("immutablediff"));
15
- var SharedStyle = _interopRequireWildcard(require("../../shared-style"));
16
- var _constants = require("../../constants");
17
- var _util = require("util");
18
- var _geometry = require("../../utils/geometry");
19
- var _convertUnits = _interopRequireDefault(require("convert-units"));
20
- var _export = require("../../utils/export");
21
- var _helper = require("../../utils/helper");
22
- var _RGBELoader = require("three/examples/jsm/loaders/RGBELoader");
23
- var _cameraControls = _interopRequireDefault(require("camera-controls"));
24
- var _utils = require("../viewer2d/utils");
25
- var _objectsUtils = require("../../utils/objects-utils");
26
- function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
27
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
28
- function _readOnlyError(r) { throw new TypeError('"' + r + '" is read-only'); }
29
- function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
30
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
31
- function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
32
- function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); }
33
- function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }
34
- function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; }
35
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
36
- function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
37
- function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
38
- function _possibleConstructorReturn(t, e) { if (e && ("object" == _typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return _assertThisInitialized(t); }
39
- function _assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; }
40
- function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
41
- function _getPrototypeOf(t) { return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, _getPrototypeOf(t); }
42
- function _inherits(t, e) { if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function"); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), Object.defineProperty(t, "prototype", { writable: !1 }), e && _setPrototypeOf(t, e); }
43
- function _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); }
44
- _cameraControls["default"].install({
45
- THREE: Three
46
- });
47
- var Scene3DViewer = exports["default"] = /*#__PURE__*/function (_React$Component) {
48
- function Scene3DViewer(props) {
49
- var _this;
50
- _classCallCheck(this, Scene3DViewer);
51
- _this = _callSuper(this, Scene3DViewer, [props]);
52
- _this.state = {
53
- isLoading: false,
54
- showflag: true,
55
- isLoadingCabinet: props.state.scene.isLoadingCabinet,
56
- toolObj: null,
57
- angleObj: null,
58
- waitForRender: 0,
59
- lineLength: null // when view wall's elevation, that wall's length
60
- };
61
- _this.lastMousePosition = {};
62
- _this.width = props.width;
63
- _this.height = props.height;
64
- _this.renderingID = 0;
65
- var mode = props.state.mode;
66
- if (!window.__elevationRendererDownload) {
67
- window.__elevationRendererDownload = {};
68
- }
69
- switch (mode) {
70
- case _constants.MODE_IDLE_3D:
71
- _this.renderer = window.__threeRenderer || new Three.WebGLRenderer({
72
- preserveDrawingBuffer: true,
73
- alpha: true,
74
- antialias: true
75
- });
76
- break;
77
- case _constants.MODE_3D_VIEW:
78
- _this.renderer = window.__threeRendererDownload || new Three.WebGLRenderer({
79
- preserveDrawingBuffer: true,
80
- alpha: true,
81
- antialias: true
82
- });
83
- break;
84
- default:
85
- if (_this.props.downloadFlag) {
86
- _this.renderer = window.__elevationRendererDownload[mode] || new Three.WebGLRenderer({
87
- preserveDrawingBuffer: true,
88
- alpha: true,
89
- antialias: true
90
- });
91
- } else {
92
- _this.renderer = window.__elevationRenderer || new Three.WebGLRenderer({
93
- preserveDrawingBuffer: true,
94
- alpha: true,
95
- antialias: true
96
- });
97
- }
98
- break;
99
- }
100
- _this.renderer.shadowMap.enabled = true;
101
- _this.renderer.shadowMapSoft = true;
102
- if (mode == 'MODE_IDLE_3D') {
103
- window.__threeRenderer = _this.renderer;
104
- } else if (mode == 'MODE_3D_VIEW') {
105
- window.__threeRendererDownload = _this.renderer;
106
- } else {
107
- if (_this.props.downloadFlag) window.__elevationRendererDownload[mode] = _this.renderer;else window.__elevationRenderer = _this.renderer;
108
- }
109
- _this.renderer.domElement.style.display = 'none';
110
- return _this;
111
- }
112
- _inherits(Scene3DViewer, _React$Component);
113
- return _createClass(Scene3DViewer, [{
114
- key: "componentDidMount",
115
- value: function componentDidMount(nextProps) {
116
- var _this2 = this;
117
- var scene3D, camera, pivot, cameraControls, clock;
118
- var spotLight1, spotLightTarget;
119
- var actions = {
120
- areaActions: this.context.areaActions,
121
- holesActions: this.context.holesActions,
122
- itemsActions: this.context.itemsActions,
123
- sceneActions: this.context.sceneActions,
124
- linesActions: this.context.linesActions,
125
- projectActions: this.context.projectActions,
126
- catalog: this.context.catalog
127
- };
128
- var self = this;
129
- var state = this.props.state;
130
- var mode = state.mode,
131
- scene = state.scene;
132
- function setupLight(scene, inbBox) {
133
- if ((0, _helper.isElevationView)(mode)) {
134
- var ambilight = new Three.AmbientLight('0xffffff', 3);
135
- scene.add(ambilight);
136
- } else {
137
- var addDirLight = function addDirLight(inColor, inIntensity, inPosition) {
138
- var dirLight = new Three.DirectionalLight(inColor, inIntensity);
139
- dirLight.castShadow = true;
140
- dirLight.shadow.mapSize.x = shadowMapSize;
141
- dirLight.shadow.mapSize.y = shadowMapSize;
142
- dirLight.shadow.camera.near = 0;
143
- dirLight.shadow.camera.far = shadowCameraFar;
144
- dirLight.shadow.camera.top = shadowCameraSize * 1.5;
145
- dirLight.shadow.camera.bottom = -shadowCameraSize * 1.5;
146
- dirLight.shadow.camera.left = -shadowCameraSize * 1.5;
147
- dirLight.shadow.camera.right = shadowCameraSize * 1.5;
148
- dirLight.position.copy(inPosition);
149
- var targetObject = new Three.Object3D();
150
- targetObject.position.copy(bboxCenter);
151
- scene.add(targetObject);
152
- dirLight.target = targetObject;
153
- dirLight.target.updateMatrixWorld();
154
- scene.add(dirLight);
155
- };
156
- var addSpotLight = function addSpotLight(inColor, inIntensity, inPosition, inTarget, inDistance) {
157
- var spotLight = new Three.SpotLight();
158
- spotLight.intensity = inIntensity;
159
- spotLight.color.setHex(inColor);
160
- spotLight.position.copy(inPosition);
161
- spotLight.angle = 1.3;
162
- spotLight.distance = inDistance;
163
- spotLight.penumbra = 1.8;
164
- spotLight.decay = 0.01;
165
- spotLight.castShadow = true;
166
- spotLight.shadow.intensity = 2;
167
- spotLight.shadow.mapSize.width = 4096;
168
- spotLight.shadow.mapSize.height = 4096;
169
- var targetObject = new Three.Object3D();
170
- targetObject.position.copy(new Three.Vector3(inTarget.x, 0, inTarget.z));
171
- scene.add(targetObject);
172
- spotLight.target = targetObject;
173
- spotLight.target.updateMatrixWorld();
174
- scene.add(spotLight);
175
- };
176
- var shadowMapSize = 2048;
177
- var shadowCameraSize = Math.max(Math.abs(inbBox.min.x - inbBox.max.x), Math.abs(inbBox.min.y - inbBox.max.y), Math.abs(inbBox.min.z - inbBox.max.z)) / 2;
178
- var shadowCameraFar = shadowCameraSize * 10;
179
- var bboxCenter = new Three.Vector3((inbBox.min.x + inbBox.max.x) / 2, inbBox.min.y, (inbBox.min.z + inbBox.max.z) / 2);
180
- var dirLightPos = new Three.Vector3(inbBox.max.x, inbBox.max.y + 1.8 * Math.abs(inbBox.max.y - inbBox.min.y), inbBox.min.z - 0.5 * Math.abs(inbBox.max.z - inbBox.min.z));
181
- addDirLight('white', 1.5, dirLightPos);
182
- var ceiling = scene3D.getObjectByName('ceil');
183
- if (ceiling) {
184
- var ceilBBox = new Three.Box3().setFromObject(ceiling);
185
- var spot1 = new Three.Vector3(ceilBBox.min.x + Math.abs(ceilBBox.min.x - ceilBBox.max.x) / 4, ceilBBox.max.y - 0.5, ceilBBox.min.z + Math.abs(ceilBBox.min.z - inbBox.max.z) / 4);
186
- var spot2 = new Three.Vector3(ceilBBox.min.x + Math.abs(ceilBBox.min.x - ceilBBox.max.x) / 4, ceilBBox.max.y - 0.5, ceilBBox.max.z - Math.abs(ceilBBox.min.z - ceilBBox.max.z) / 4);
187
- var spot3 = new Three.Vector3(ceilBBox.max.x - Math.abs(ceilBBox.min.x - ceilBBox.max.x) / 4, ceilBBox.max.y - 0.5, ceilBBox.min.z + Math.abs(ceilBBox.min.z - ceilBBox.max.z) / 4);
188
- var spot4 = new Three.Vector3(ceilBBox.max.x - Math.abs(ceilBBox.min.x - ceilBBox.max.x) / 4, ceilBBox.max.y - 0.5, ceilBBox.max.z - Math.abs(ceilBBox.min.z - ceilBBox.max.z) / 4);
189
- var spotlightDis = 1.5 * Math.abs(inbBox.min.y - inbBox.max.y);
190
-
191
- // check if spotlight is inside the room
192
- (0, _objectsUtils.vectorIntersectWithMesh)(spot1, scene3D.getObjectByName('floor')) && addSpotLight('0xffffff', 0.8, spot1, spot1, spotlightDis);
193
- (0, _objectsUtils.vectorIntersectWithMesh)(spot2, scene3D.getObjectByName('floor')) && addSpotLight('0xffffff', 0.8, spot2, spot2, spotlightDis);
194
- (0, _objectsUtils.vectorIntersectWithMesh)(spot3, scene3D.getObjectByName('floor')) && addSpotLight('0xffffff', 0.8, spot3, spot3, spotlightDis);
195
- (0, _objectsUtils.vectorIntersectWithMesh)(spot4, scene3D.getObjectByName('floor')) && addSpotLight('0xffffff', 0.8, spot4, spot4, spotlightDis);
196
- }
197
- }
198
- }
199
-
200
- // Load data
201
- this.setState({
202
- isLoading: true
203
- });
204
- if (self.props.downloadFlag) {
205
- this.setState({
206
- waitForRender: 0
207
- });
208
-
209
- // set loading bar
210
- switch (self.props.state.mode) {
211
- case _constants.MODE_ELEVATION_VIEW:
212
- self.props.setIsLoadingElevation('front', true);
213
- break;
214
- case _constants.MODE_3D_VIEW:
215
- self.props.setIsLoading3D(true);
216
- break;
217
- }
218
- }
219
- var _parseData = (0, _sceneCreator.parseData)(scene, actions, this.context.catalog, camera, this.renderer, state.mode),
220
- promise = _parseData.promise,
221
- planData = _parseData.planData;
222
- promise.then(function () {
223
- var objToRemove = [];
224
- planData.plan.traverse(function (obj) {
225
- if (obj.geometry === null) {
226
- objToRemove.push(obj);
227
- }
228
- });
229
- objToRemove.forEach(function (obj) {
230
- obj.removeFromParent();
231
- });
232
- var bbox = new Three.Box3().setFromObject(planData.plan);
233
- if (!(0, _helper.isElevationView)(state.mode)) {
234
- cameraControls.fitToBox(bbox);
235
- }
236
- setupLight(scene3D, planData.boundingBox);
237
- self.setState({
238
- waitForRender: 1
239
- });
240
- setTimeout(function () {
241
- self.setState({
242
- isLoading: false
243
- });
244
- self.renderer.domElement.style.display = 'block';
245
- }, 1500);
246
- });
247
- var area = scene.getIn(['layers', scene.selectedLayer, 'areas']);
248
- var layer = scene.getIn(['layers', scene.selectedLayer]);
249
- var areas = [],
250
- lights = [];
251
- var snapBox = null;
252
-
253
- // Check for data
254
- var msg = '';
255
- scene.layers.forEach(function (layer) {
256
- if (layer.id === scene.selectedLayer || layer.visible) {
257
- layer.items.forEach(function (item) {
258
- if (item.doorStyle === null) {
259
- if (!msg.includes(item.name + "'s doorStyle is null.")) msg += item.name + "'s doorStyle is null.\n";
260
- }
261
- });
262
- }
263
- });
264
- if (msg !== '') {
265
- confirm(msg);
266
- }
267
- init();
268
- render();
269
-
270
- // area lightning(wall lightning)/////
271
-
272
- area.forEach(function (data) {
273
- areas.push(data);
274
- });
275
- var _loop = function _loop() {
276
- var aVertices = [];
277
- var lines = [];
278
- var height = 100;
279
- areas[i].vertices.forEach(function (data) {
280
- aVertices.push(data);
281
- });
282
- layer.lines.forEach(function (data) {
283
- lines.push(data);
284
- });
285
- var _loop3 = function _loop3() {
286
- var data = lines[_i17];
287
- var realVec = [];
288
- data.vertices.forEach(function (vec) {
289
- realVec.push(vec);
290
- });
291
- if (aVertices.includes(realVec[0]) && aVertices.includes(realVec[1])) {
292
- height = (0, _convertUnits["default"])(layer.ceilHeight).from(layer.unit).to(_constants.UNIT_CENTIMETER);
293
- // height = data.properties.getIn(['height', 'length']);
294
- return 1; // break
295
- }
296
- };
297
- for (var _i17 = 0; _i17 < lines.length; _i17++) {
298
- if (_loop3()) break;
299
- }
300
- var vertices = [];
301
- areas[i].vertices.forEach(function (datas) {
302
- var vertex = scene.getIn(['layers', scene.selectedLayer, 'vertices', datas]);
303
- vertices.push(vertex);
304
- });
305
- vertices.push(vertices[0]);
306
- var fLen = vertices.length - 1;
307
- for (var _i18 = 0; _i18 < fLen; _i18++) {
308
- var sX = vertices[_i18].x;
309
- var sY = vertices[_i18].y;
310
- var eX = vertices[_i18 + 1].x;
311
- var eY = vertices[_i18 + 1].y;
312
- var len = Math.sqrt((eX - sX) * (eX - sX) + (eY - sY) * (eY - sY));
313
- for (var cLen = 200; cLen < len; cLen += 200) {
314
- var cX = sX + (eX - sX) * cLen / len;
315
- var cY = sY + (eY - sY) * cLen / len;
316
- var endLen = Math.sqrt((eX - cX) * (eX - cX) + (eY - cY) * (eY - cY));
317
- if (endLen <= 100) continue;
318
- var vec2 = new Three.Vector2(cX - sX, cY - sY);
319
- var angle = vec2.angle() + Math.PI / 2;
320
- cX = Math.cos(angle) * 30 + cX;
321
- cY = Math.sin(angle) * 30 + cY;
322
- var spotLight = new Three.SpotLight(0xeeeeee, 1.7);
323
- spotLight.angle = 0.76;
324
- spotLight.castShadow = true;
325
- spotLight.penumbra = 1;
326
- spotLight.decay = 1.7;
327
- spotLight.distance = height - 20;
328
- var target = new Three.Object3D();
329
- spotLight.target = target;
330
- lights.push({
331
- light: spotLight,
332
- target: target,
333
- x: cX,
334
- y: cY,
335
- height: height
336
- });
337
- }
338
- }
339
- };
340
- for (var i = 0; i < areas.length; i++) {
341
- _loop();
342
- }
343
- // //////////////////////////
344
-
345
- // OBJECT PICKING
346
- var toIntersect = [planData.plan];
347
- var mouse = new Three.Vector2();
348
- var gridPlane = planData.grid;
349
- var raycaster = new Three.Raycaster();
350
- var selectedObject = {};
351
- var selectedFlag = false;
352
- var currentObject = null;
353
- var isSelected = false;
354
- var bRotate = false;
355
- var bMove = false;
356
- var bMoveUP = false;
357
- /** Transformation matrix of grid */
358
- var gridMatrix = new Three.Matrix4();
359
- var rayDirection = new Three.Vector3();
360
- /** World position of grid plane */
361
- var gridPlanOrigin = new Three.Vector3();
362
- var Point = new Three.Vector2();
363
- var sPoint = new Three.Vector2();
364
-
365
- // SNAP FUNCTION VARIABLE
366
- var snapFlag = false;
367
- var snapAnimI = 0;
368
- var snapDelta = 6;
369
- var t_i = 0;
370
- var targetPoint = new Three.Vector3();
371
- var targetRot = 0;
372
- var targetUVec = new Three.Vector3();
373
- var targetCRotation = 0;
374
- var targetObj = null;
375
- var targetNumber = 0;
376
- var wallSlide = false;
377
- var pinFlag = false;
378
- var sFlag = false; //for all object move
379
- var endPoint = {};
380
- var allItemRect;
381
- var allItemSnap;
382
- var allLines;
383
- var allLineRects;
384
- var allLineSnap;
385
- var allRect;
386
- var allArea;
387
-
388
- // end snap function variable///////////////////////
389
- var backsplashVisible = false;
390
- var holeItems = _export.GeometryUtils.getHoleItems(layer);
391
- var removeSnapBox = function removeSnapBox() {
392
- if (snapBox != null) {
393
- planData.plan.remove(snapBox);
394
- (0, _threeMemoryCleaner.disposeObject)(snapBox);
395
- snapBox = null;
396
- targetObj = null;
397
- snapFlag = false;
398
- }
399
- };
400
- var camToGrid = new Three.Vector3();
401
- var camPos = camera.position;
402
- var mapCursorPosition = function mapCursorPosition(e, altitude) {
403
- camToGrid.subVectors(gridPlanOrigin, camPos);
404
- var camD = camToGrid.y + (altitude ? altitude : 0);
405
- var rayD = rayDirection.y;
406
- var intersectPt = rayDirection.multiplyScalar(camD / rayD).add(camPos);
407
- intersectPt.y = gridPlanOrigin.y;
408
- intersectPt.applyMatrix4(gridMatrix);
409
- return {
410
- x: intersectPt.x,
411
- y: -intersectPt.z
412
- };
413
- };
414
-
415
- /* for Snap Functions*/
416
-
417
- var pointLineDistance = function pointLineDistance(point, line) {
418
- // return distance from point to line and directional point of line
419
- var pX = point.x;
420
- var pY = point.y;
421
- var l1x = line[0].x;
422
- var l1y = line[0].y;
423
- var l2x = line[1].x;
424
- var l2y = line[1].y;
425
- var pLine = new Three.Vector2(l1x - pX, l1y - pY);
426
- var Line = new Three.Vector2(l1x - l2x, l1y - l2y);
427
- var pAngle = pLine.angle();
428
- var lAngle = Line.angle();
429
- var pDistance = pLine.length();
430
- var oDistance = Line.length();
431
- var directDistance = Math.sin(pAngle - lAngle) * pDistance;
432
- var lineDistance = Math.cos(pAngle - lAngle) * pDistance;
433
- var dX = l1x + (l2x - l1x) * lineDistance / oDistance;
434
- var dY = l1y + (l2y - l1y) * lineDistance / oDistance;
435
- var dPoint = {
436
- x: dX,
437
- y: dY
438
- };
439
- return {
440
- distance: directDistance,
441
- point: dPoint
442
- };
443
- };
444
- var getInterSect = function getInterSect(shape1, shape2) {
445
- // return result of intersect of two shape
446
- var count = 0;
447
- for (var _i = 0; _i < shape1.length - 1; _i++) {
448
- var sl1 = {
449
- x: shape1[_i].x,
450
- y: shape1[_i].y
451
- };
452
- var sl2 = {
453
- x: shape1[_i + 1].x,
454
- y: shape1[_i + 1].y
455
- };
456
- for (var j = 0; j < shape2.length - 1; j++) {
457
- var el1 = {
458
- x: shape2[j].x,
459
- y: shape2[j].y
460
- };
461
- var el2 = {
462
- x: shape2[j + 1].x,
463
- y: shape2[j + 1].y
464
- };
465
- var flag = _export.GeometryUtils.getLineInterSect(sl1.x, sl1.y, sl2.x, sl2.y, el1.x, el1.y, el2.x, el2.y);
466
- if (flag) {
467
- count++;
468
- if (count > 1) return true;
469
- }
470
- }
471
- }
472
- return false;
473
- };
474
- this.getRectPoints = function (width, height, pos, rot) {
475
- // return 4 points from it's position, width, height, and rotation info
476
- var rX = width / 2;
477
- var rY = height / 2;
478
- var vertices = [];
479
- var cRot = rot;
480
- var pX = pos.x + Math.cos(cRot) * rX + Math.cos(cRot + Math.PI / 2) * rY;
481
- var pY = pos.y + Math.sin(cRot) * rX + Math.sin(cRot + Math.PI / 2) * rY;
482
- vertices.push({
483
- x: Math.floor(pX + 0.5),
484
- y: Math.floor(pY + 0.5)
485
- });
486
- rX = -rX;
487
- pX = pos.x + Math.cos(cRot) * rX + Math.cos(cRot + Math.PI / 2) * rY;
488
- pY = pos.y + Math.sin(cRot) * rX + Math.sin(cRot + Math.PI / 2) * rY;
489
- vertices.push({
490
- x: Math.floor(pX + 0.5),
491
- y: Math.floor(pY + 0.5)
492
- });
493
- rY = -rY;
494
- pX = pos.x + Math.cos(cRot) * rX + Math.cos(cRot + Math.PI / 2) * rY;
495
- pY = pos.y + Math.sin(cRot) * rX + Math.sin(cRot + Math.PI / 2) * rY;
496
- vertices.push({
497
- x: Math.floor(pX + 0.5),
498
- y: Math.floor(pY + 0.5)
499
- });
500
- rX = -rX;
501
- pX = pos.x + Math.cos(cRot) * rX + Math.cos(cRot + Math.PI / 2) * rY;
502
- pY = pos.y + Math.sin(cRot) * rX + Math.sin(cRot + Math.PI / 2) * rY;
503
- vertices.push({
504
- x: Math.floor(pX + 0.5),
505
- y: Math.floor(pY + 0.5)
506
- });
507
- vertices.push(vertices[0]);
508
- vertices.push(vertices[2]);
509
- return vertices;
510
- };
511
- var prepareSnap = function prepareSnap(layer) {
512
- allLines = _export.GeometryUtils.getAllLines(layer);
513
- allLineRects = _export.GeometryUtils.buildRectFromLines(layer, allLines);
514
- allItemRect = _export.GeometryUtils.getAllItems(_this2.props.state.scene, actions.catalog, allLineRects);
515
- allItemSnap = _export.GeometryUtils.getAllItemSnap(allItemRect);
516
- allLineSnap = _export.GeometryUtils.getAllLineSnap(allLineRects, allItemRect.cur);
517
- allRect = allItemRect.others.concat(allLineRects);
518
- allItemSnap = _export.GeometryUtils.validateSnaps(allItemSnap, allRect);
519
- allLineSnap = _export.GeometryUtils.validateSnaps(allLineSnap, allRect);
520
- allArea = _export.GeometryUtils.getAllArea(layer);
521
- };
522
- var prepareSnapSpec = function prepareSnapSpec(layer) {
523
- allLines = _export.GeometryUtils.getAllLines(layer);
524
- allLineRects = _export.GeometryUtils.buildRectFromLines(layer, allLines);
525
- allItemRect = _export.GeometryUtils.getAllItemSpecified(_this2.props.state.scene, actions.catalog, _constants.WALL_CABINET_LAYOUTPOS);
526
- // allItemSnap = GeometryUtils.getAllItemSnap(allItemRect);
527
- };
528
-
529
- // prepareSnapSpec(layer);
530
- var lineRect = function lineRect(layer) {
531
- var areainfo = [];
532
- layer.areas.forEach(function (area) {
533
- var sz = area.vertices.size;
534
- for (var i = 0; i < sz; i++) {
535
- areainfo.push(area.vertices.get(i));
536
- }
537
- });
538
- var rect = [];
539
- areainfo.forEach(function (area) {
540
- var vert = layer.vertices.get(area);
541
- rect.push(vert.x, vert.y);
542
- });
543
- return rect;
544
- };
545
- this.collisionCheck = function (obj, pos, rot, tObj) {
546
- var _this3 = this;
547
- var item = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : null;
548
- var catalog = arguments.length > 5 ? arguments[5] : undefined;
549
- //collision check from one object to every other object excpet target object
550
- var layer = this.props.state.scene.getIn(['layers', obj.userData.layerId]);
551
- var layoutpos = 'utype';
552
- if (item !== null) {
553
- var catid = item.type;
554
- var cat = catalog.elements[catid];
555
- layoutpos = cat.info.layoutpos;
556
- }
557
- var oPos = new Three.Vector2(pos.clone().x, pos.clone().y);
558
- var sBounding = obj.children[0].userData;
559
- var width = sBounding.max.x - sBounding.min.x;
560
- var depth = sBounding.max.z - sBounding.min.z;
561
- var oVertices = this.getRectPoints(width, depth, oPos.clone(), rot % 360 / 180 * Math.PI);
562
- var datas = [];
563
- layer.items.forEach(function (data) {
564
- datas.push(data);
565
- });
566
- for (var _i2 = 0; _i2 < datas.length; _i2++) {
567
- var data = datas[_i2];
568
- if (data.id == obj.userData.itemId || data.id == tObj.userData.itemId) continue;
569
- var target = planData.sceneGraph.layers[obj.userData.layerId].items[data.id];
570
- if (target === undefined) {
571
- console.log(data.id + ' does not exist in viewer3d/viewer3d.js collisionCheck function');
572
- return false;
573
- }
574
- var _item = layer.items.getIn([data.id]);
575
- var ocatid = _item.type;
576
- var ocat = catalog.elements[ocatid];
577
- var olayoutpos = ocat.info.layoutpos;
578
- if (!(layoutpos === _constants.BASE_CABINET_LAYOUTPOS && olayoutpos === _constants.WALL_CABINET_LAYOUTPOS || layoutpos === _constants.WALL_CABINET_LAYOUTPOS && olayoutpos === _constants.BASE_CABINET_LAYOUTPOS)) {
579
- var tRot = _item.rotation;
580
- var tPos = new Three.Vector2(_item.x, _item.y);
581
- var tBounding = target.children[0].userData;
582
- var twidth = tBounding.max.x - tBounding.min.x;
583
- var tdepth = tBounding.max.z - tBounding.min.z;
584
- var tVertices = this.getRectPoints(twidth, tdepth, tPos.clone(), tRot % 360 / 180 * Math.PI);
585
- if (getInterSect(oVertices, tVertices)) {
586
- return false;
587
- }
588
- }
589
- }
590
- datas = [];
591
- layer.lines.forEach(function (data) {
592
- datas.push(data);
593
- });
594
- var _loop2 = function _loop2() {
595
- var data = datas[_i3];
596
- if (data.id == obj.userData.itemId || data.id == tObj.userData.itemId) return 0; // continue
597
- var item = layer.lines.getIn([data.id]);
598
- // let llayoutpos = catalog.elements[item.type].info.layoutpos;
599
- var vertices = [];
600
- item.vertices.forEach(function (data) {
601
- var vertex = layer.vertices.get(data);
602
- vertices.push({
603
- x: vertex.x,
604
- y: vertex.y
605
- });
606
- });
607
- var vec = new Three.Vector2(vertices[1].x - vertices[0].x, vertices[1].y - vertices[0].y);
608
- var tRot = vec.angle();
609
- var tPos = new Three.Vector2((vertices[0].x + vertices[1].x) / 2, (vertices[0].y + vertices[1].y) / 2);
610
- var tdepth = item.properties.getIn(['thickness', 'length']);
611
- var twidth = Math.sqrt(vec.x * vec.x + vec.y * vec.y);
612
- var tVertices = _this3.getRectPoints(twidth, tdepth, tPos.clone(), tRot);
613
- if (getInterSect(oVertices, tVertices)) {
614
- return {
615
- v: false
616
- };
617
- }
618
- },
619
- _ret;
620
- for (var _i3 = 0; _i3 < datas.length; _i3++) {
621
- _ret = _loop2();
622
- if (_ret === 0) continue;
623
- if (_ret) return _ret.v;
624
- }
625
- return true;
626
- };
627
- this.collisionHoleCheck = function (obj, pos, rot, tObj) {
628
- var item = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : null;
629
- var catalog = arguments.length > 5 ? arguments[5] : undefined;
630
- var layer = this.props.state.scene.getIn(['layers', obj.userData.layerId]);
631
- var currentItem;
632
- if (item !== null) {
633
- var catid = item.type;
634
- var cat = catalog.elements[catid];
635
- currentItem = {
636
- selectedItem: item,
637
- cat: cat
638
- };
639
- }
640
- var oPos = new Three.Vector2(pos.clone().x, pos.clone().y);
641
- var sBounding = obj.children[0].userData;
642
- var width = sBounding.max.x - sBounding.min.x;
643
- var depth = sBounding.max.z - sBounding.min.z;
644
- var oVertices = this.getRectPoints(width, depth, oPos.clone(), rot % 360 / 180 * Math.PI);
645
- var datas = [];
646
- layer.items.forEach(function (data) {
647
- datas.push(data);
648
- });
649
- for (var _i4 = 0; _i4 < datas.length; _i4++) {
650
- var data = datas[_i4];
651
- if (data.id == obj.userData.itemId || data.id == tObj.userData.itemId) continue;
652
- var target = planData.sceneGraph.layers[obj.userData.layerId].items[data.id];
653
- if (target === undefined) {
654
- console.log(data.id + ' does not exist in viewer3d/viewer3d.js collisionCheck function');
655
- return false;
656
- }
657
- var _item2 = layer.items.getIn([data.id]);
658
- var ocatid = _item2.type;
659
- var ocat = catalog.elements[ocatid];
660
- if (!ocat) ocat = catalog.elements[(0, _utils.returnReplaceableDeepSearchType)(ocatid)];
661
- var otherItem = {
662
- item: _item2,
663
- cat: ocat
664
- };
665
- if (_export.GeometryUtils.needSnap(currentItem, otherItem) && otherItem.cat.type != 'cabinet') {
666
- var tRot = _item2.rotation;
667
- var tPos = new Three.Vector2(_item2.x, _item2.y);
668
- var tBounding = target.children[0].userData;
669
- var twidth = tBounding.max.x - tBounding.min.x;
670
- var tdepth = tBounding.max.z - tBounding.min.z;
671
- var tVertices = this.getRectPoints(twidth, tdepth, tPos.clone(), tRot % 360 / 180 * Math.PI);
672
- if (getInterSect(oVertices, tVertices)) {
673
- return false;
674
- }
675
- }
676
- }
677
- var holes = [];
678
- layer.lines.forEach(function (line) {
679
- line.holes.forEach(function (holeID) {
680
- var hole = layer.holes.get(holeID);
681
- holes.push(hole);
682
- });
683
- });
684
- var i = 0;
685
- for (; i < holes.length; i++) {
686
- var _tPos = new Three.Vector2(holes[i].x, holes[i].y);
687
- var _twidth = holes[i].properties.getIn(['width', 'length']);
688
- var theight = holes[i].properties.getIn(['thickness', 'length']);
689
- var trot = holes[i].rotation;
690
- var _tVertices = this.getRectPoints(_twidth, theight, _tPos.clone(), trot);
691
- if (getInterSect(oVertices, _tVertices)) {
692
- return false;
693
- }
694
- }
695
- return true;
696
- };
697
- this.collisionSlide = function (item3D, originPos, layer, sVertices, tPos, item) {
698
- var items = [];
699
- var cur_category = '';
700
- var catalog = actions.catalog;
701
- if (layer.selected.items.size > 0) {
702
- var selectedItem = layer.getIn(['items', layer.selected.items.get(0)]);
703
- var catid = selectedItem.type;
704
- var cat = catalog.elements[catid];
705
- if (cat === undefined || cat === null) cat = catalog.getIn(['elements', catid]);
706
- cur_category = cat.obj.category;
707
- }
708
- layer.items.forEach(function (data) {
709
- if (data.id == selectedObject.itemID) {
710
- return;
711
- }
712
- items.push(data.toJS());
713
- });
714
- var oPos = new Three.Vector2(originPos.x, -originPos.z);
715
-
716
- // sort from distance
717
- for (var _i5 = 0; _i5 < items.length - 1; _i5++) {
718
- for (var j = _i5 + 1; j < items.length; j++) {
719
- if ((0, _geometry.verticesDistance)(oPos, new Three.Vector2(items[_i5].x, items[_i5].y)) > (0, _geometry.verticesDistance)(oPos, new Three.Vector2(items[j].x, items[j].y))) {
720
- var exchange = items[j];
721
- items[j] = items[_i5];
722
- items[_i5] = exchange;
723
- }
724
- }
725
- }
726
- var i = 0;
727
- for (; i < items.length; i++) {
728
- if (!items[i]) return;
729
- var _target = planData.sceneGraph.layers[selectedObject.layerID].items[items[i].id];
730
- if (_target === undefined) {
731
- return false;
732
- }
733
- var _targetData = layer.items.getIn([items[i].id]);
734
- var _tRot = _targetData.rotation;
735
- var _tPos2 = new Three.Vector2(_targetData.x, _targetData.y);
736
- var _tBounding = _target.children[0].userData;
737
- var _twidth2 = _tBounding.max.x - _tBounding.min.x;
738
- var _tdepth = _tBounding.max.z - _tBounding.min.z;
739
- var _tVertices2 = this.getRectPoints(_twidth2, _tdepth, _tPos2.clone(), _tRot % 360 / 180 * Math.PI);
740
- if (getInterSect(sVertices, _tVertices2)) {
741
- break;
742
- }
743
- }
744
- if (items.length == 0 || !items[i]) return;
745
- var target = planData.sceneGraph.layers[selectedObject.layerID].items[items[i].id];
746
- var targetData = layer.items.getIn([items[i].id]);
747
- var targetPos = new Three.Vector2(targetData.x, targetData.y);
748
- var tRot = targetData.rotation;
749
- var tBounding = target.children[0].userData;
750
- var twidth = tBounding.max.x - tBounding.min.x;
751
- var tdepth = tBounding.max.z - tBounding.min.z;
752
- var tVertices = this.getRectPoints(twidth, tdepth, targetPos.clone(), tRot % 360 / 180 * Math.PI);
753
- // ////////////////////////
754
- var vArray = [];
755
- var dteArray = [];
756
- var lineArray = [];
757
- var vdistanceArray = [];
758
- var cVecArray = [];
759
- var inFlag = false;
760
- for (var _i6 = 0; _i6 < 4; _i6++) {
761
- var v1 = tVertices[_i6];
762
- var v2 = tVertices[_i6 + 1];
763
- var data = pointLineDistance({
764
- x: tPos.x,
765
- y: tPos.y
766
- }, [{
767
- x: v1.x,
768
- y: v1.y
769
- }, {
770
- x: v2.x,
771
- y: v2.y
772
- }]);
773
- dteArray.push(data.distance);
774
- vArray.push(data.point);
775
- lineArray.push([v1, v2]);
776
- }
777
- // if tPos in target object
778
- var tPosDistance = Math.abs(pointLineDistance(tPos, lineArray[0]).distance) + Math.abs(pointLineDistance(tPos, lineArray[2]).distance);
779
- var realDistance = new Three.Vector2(lineArray[1][0].x - lineArray[1][1].x, lineArray[1][0].y - lineArray[1][1].y).length();
780
- var tPosDistance1 = Math.abs(pointLineDistance(tPos, lineArray[1]).distance) + Math.abs(pointLineDistance(tPos, lineArray[3]).distance);
781
- var realDistance1 = new Three.Vector2(lineArray[0][0].x - lineArray[0][1].x, lineArray[0][0].y - lineArray[0][1].y).length();
782
- if (Math.abs(Math.abs(tPosDistance) - Math.abs(realDistance)) < 0.01 && Math.abs(Math.abs(tPosDistance1) - Math.abs(realDistance1)) < 0.01) inFlag = true;
783
- // ////////////////////
784
- var key = 0;
785
- // sort distance from origin point
786
- for (var _j = 0; _j < dteArray.length - 1; _j++) {
787
- for (var k = _j + 1; k < dteArray.length; k++) {
788
- if (Math.abs(dteArray[_j]) > Math.abs(dteArray[k])) {
789
- var temp = dteArray[k];
790
- dteArray[_j] = dteArray[k];
791
- dteArray[k] = temp;
792
- var temp1 = vArray[k];
793
- vArray[_j] = vArray[k];
794
- vArray[k] = temp1;
795
- var temp2 = lineArray[k];
796
- lineArray[_j] = lineArray[k];
797
- lineArray[k] = temp2;
798
- }
799
- }
800
- }
801
- // //////////////////////////////
802
- for (var _i7 = 0; _i7 < 4; _i7++) {
803
- var _data = pointLineDistance(sVertices[_i7], lineArray[key]);
804
- vdistanceArray.push(_data.distance);
805
- cVecArray.push({
806
- x: _data.point.x - sVertices[_i7].x,
807
- y: _data.point.y - sVertices[_i7].y
808
- });
809
- }
810
- for (var _j2 = 0; _j2 < vdistanceArray.length; _j2++) {
811
- var tX = tPos.x + cVecArray[_j2].x;
812
- var tY = tPos.y + cVecArray[_j2].y;
813
- if (this.collisionCheck(item3D, new Three.Vector2(tX, tY), item.rotation, {
814
- userData: {
815
- itemId: null
816
- }
817
- }, item, this.context.catalog)) {
818
- item3D.position.set(tX, originPos.y, -tY);
819
- sPoint.set(tX, tY);
820
- break;
821
- }
822
- }
823
- };
824
- this.snap = function (obj, layer) {
825
- // snap operation
826
- var target = obj.userData.target;
827
- for (; target.parent != null;) {
828
- if (target.name == 'pivot') break;
829
- target = target.parent;
830
- }
831
- var source = obj.parent.parent.parent;
832
- if (target.userData.type == 'item') {
833
- var sRot = layer.getIn(['items', source.userData.itemId]).rotation;
834
- var tRot = layer.getIn(['items', target.userData.itemId]) ? layer.getIn(['items', target.userData.itemId]).rotation : 0;
835
- var item = layer.getIn(['items', source.userData.itemId]);
836
- var layoutType = item.layoutpos;
837
- var altitudeLength = (0, _convertUnits["default"])(item.properties.getIn(['altitude', '_length'])).from('in').to('cm');
838
- var sBounding = source.children[0].userData;
839
- var tBounding = target.children[0].userData;
840
- var tPos = target.position.clone();
841
- var width = sBounding.max.x - sBounding.min.x;
842
- var height = sBounding.max.y - sBounding.min.y;
843
- var depth = sBounding.max.z - sBounding.min.z;
844
- var snapBoxGeom = new Three.BoxGeometry(width, height, depth);
845
- var snapBoxObj = new Three.Mesh(snapBoxGeom, new Three.MeshBasicMaterial({
846
- // color: 0x2cde6b,
847
- // opacity: 0.7,
848
- transparent: true,
849
- blending: Three.MultiplyBlending
850
- }));
851
- var removeSnapBoxObj = function removeSnapBoxObj() {
852
- if (snapBoxObj) {
853
- planData.plan.remove(snapBoxObj);
854
- (0, _threeMemoryCleaner.disposeObject)(snapBoxObj);
855
- }
856
- snapFlag = false;
857
- };
858
- var box = new Three.BoxHelper(snapBoxObj, 0xffffff);
859
- box.material.linewidth = 2;
860
- box.material.depthTest = false;
861
- box.renderOrder = 200;
862
- snapBoxObj.add(box);
863
- snapBoxObj.position.set(source.position.x, layoutType === _constants.WALL_CABINET_LAYOUTPOS ? altitudeLength + source.position.y + height / 2 : source.position.y + height / 2, source.position.z);
864
- snapBoxObj.rotation.set(source.rotation.x, source.rotation.y, source.rotation.z);
865
- snapBoxObj.name = 'TransformBox';
866
- planData.plan.add(snapBoxObj);
867
- var deltaX = (tBounding.max.x - tBounding.min.x) / 2 + (sBounding.max.x - sBounding.min.x) / 2;
868
- var deltaZ = (tBounding.max.z - tBounding.min.z) / 2 - (sBounding.max.z - sBounding.min.z) / 2;
869
- var sPos = snapBoxObj.position.clone();
870
- // avaliable snap place///////////////
871
- var tPoses = [];
872
- var pX = tPos.x + deltaX * Math.cos(tRot / 180 * Math.PI) + deltaZ * Math.sin(tRot / 180 * Math.PI);
873
- var pZ = tPos.z - deltaX * Math.sin(tRot / 180 * Math.PI) + deltaZ * Math.cos(tRot / 180 * Math.PI);
874
- tPoses.push(new Three.Vector3(pX, 0, pZ));
875
- deltaX = -deltaX;
876
- pX = tPos.x + deltaX * Math.cos(tRot / 180 * Math.PI) + deltaZ * Math.sin(tRot / 180 * Math.PI);
877
- pZ = tPos.z - deltaX * Math.sin(tRot / 180 * Math.PI) + deltaZ * Math.cos(tRot / 180 * Math.PI);
878
- tPoses.push(new Three.Vector3(pX, 0, pZ));
879
- deltaX = (tBounding.max.x - tBounding.min.x) / 2 - (sBounding.max.x - sBounding.min.x) / 2;
880
- deltaZ = -(tBounding.max.z - tBounding.min.z) / 2 - (sBounding.max.z - sBounding.min.z) / 2;
881
- pX = tPos.x + deltaX * Math.cos(tRot / 180 * Math.PI) + deltaZ * Math.sin(tRot / 180 * Math.PI);
882
- pZ = tPos.z - deltaX * Math.sin(tRot / 180 * Math.PI) + deltaZ * Math.cos(tRot / 180 * Math.PI);
883
- tPoses.push(new Three.Vector3(pX, 0, pZ));
884
- deltaX = -deltaX;
885
- pX = tPos.x + deltaX * Math.cos(tRot / 180 * Math.PI) + deltaZ * Math.sin(tRot / 180 * Math.PI);
886
- pZ = tPos.z - deltaX * Math.sin(tRot / 180 * Math.PI) + deltaZ * Math.cos(tRot / 180 * Math.PI);
887
- tPoses.push(new Three.Vector3(pX, 0, pZ));
888
- var distance = Math.sqrt((sPos.x - tPoses[0].x) * (sPos.x - tPoses[0].x) + (sPos.z - tPoses[0].z) * (sPos.z - tPoses[0].z));
889
- var tNum = 1;
890
- tPos = tPoses[0].clone();
891
- for (var _i8 = 1; _i8 < tPoses.length; _i8++) {
892
- var curDis = Math.sqrt((sPos.x - tPoses[_i8].x) * (sPos.x - tPoses[_i8].x) + (sPos.z - tPoses[_i8].z) * (sPos.z - tPoses[_i8].z));
893
- if (curDis < distance) {
894
- distance = curDis;
895
- tNum = _i8 + 1;
896
- tPos = tPoses[_i8].clone();
897
- }
898
- }
899
- // //////////////////////////////////
900
- if (targetObj != null && targetObj.userData.itemId == target.userData.itemId && tNum == targetNumber) {
901
- removeSnapBoxObj();
902
- return;
903
- } else {
904
- removeSnapBox();
905
- }
906
- // //////////////////////////////////
907
- if (tNum >= 3) tRot += 180;
908
- snapAnimI = 0;
909
- t_i = 0;
910
- targetObj = target;
911
- targetNumber = tNum;
912
- targetRot = tRot;
913
- targetPoint = tPos;
914
- snapBox = snapBoxObj;
915
- var cx = sPos.x - tPos.x;
916
- var cz = sPos.z - tPos.z;
917
- targetUVec = new Three.Vector3(cx, 0, cz);
918
- targetCRotation = (tRot - sRot) % 360 / 180 * Math.PI;
919
- } else {
920
- var _item3 = layer.getIn(['items', source.userData.itemId]);
921
- if (holeItems.length && selectedObj) {
922
- var _i9;
923
- for (_i9 = 0; _i9 < holeItems.length; _i9++) {
924
- var hole = holeItems[_i9];
925
- if (Math.abs(Math.sin(selectedObj.rotRad)) === 1) {
926
- if (_item3.y + selectedObj.size.width / 2 >= hole.y - hole.width / 2 && _item3.y - selectedObj.size.width / 2 <= hole.y + hole.width / 2 && (selectedObj.rotRad == 0 || selectedObj.rotRad == -Math.PI / 2 ? _item3.x <= hole.x && _item3.x + selectedObj.size.height >= hole.x : _item3.x >= hole.x && _item3.x - selectedObj.size.height <= hole.x)) break;
927
- } else {
928
- if (_item3.x + selectedObj.size.width / 2 >= hole.x - hole.width / 2 && _item3.x - selectedObj.size.width / 2 <= hole.x + hole.width / 2 && (selectedObj.rotRad == 0 || selectedObj.rotRad == -Math.PI / 2 ? _item3.y <= hole.y && _item3.y + selectedObj.size.height >= hole.y : _item3.y >= hole.y && _item3.y - selectedObj.size.height <= hole.y)) break;
929
- }
930
- }
931
- if (_i9 != holeItems.length) return;
932
- }
933
- if (target.userData.type == 'hole') {
934
- snapFlag = false;
935
- return;
936
- } else {
937
- var _layoutType = _item3.layoutpos;
938
- var _altitudeLength = (0, _convertUnits["default"])(_item3.properties.getIn(['altitude', '_length'])).from('in').to('cm');
939
- var _sBounding = source.children[0].userData;
940
- var _width = _sBounding.max.x - _sBounding.min.x;
941
- var _height = _sBounding.max.y - _sBounding.min.y;
942
- var _depth = _sBounding.max.z - _sBounding.min.z;
943
- var _snapBoxGeom = new Three.BoxGeometry(_width, _height, _depth);
944
- var _snapBoxObj = new Three.Mesh(_snapBoxGeom, new Three.MeshBasicMaterial({
945
- // color: 0x2cde6b,
946
- // opacity: 0.7,
947
- transparent: true,
948
- blending: Three.MultiplyBlending
949
- }));
950
- var _removeSnapBoxObj = function _removeSnapBoxObj() {
951
- if (_snapBoxObj) {
952
- planData.plan.remove(_snapBoxObj);
953
- (0, _threeMemoryCleaner.disposeObject)(_snapBoxObj);
954
- }
955
- snapFlag = false;
956
- };
957
- var _box = new Three.BoxHelper(_snapBoxObj, 0xffffff);
958
- _box.material.linewidth = 2;
959
- _box.material.depthTest = false;
960
- _box.renderOrder = 100;
961
- _snapBoxObj.add(_box);
962
- _snapBoxObj.position.set(source.position.x, _layoutType === _constants.WALL_CABINET_LAYOUTPOS ? _altitudeLength + source.position.y + _height / 2 : source.position.y + _height / 2, source.position.z);
963
- _snapBoxObj.rotation.set(source.rotation.x, source.rotation.y, source.rotation.z);
964
- _snapBoxObj.name = 'TransformBox';
965
- planData.plan.add(_snapBoxObj);
966
- var snapLine = layer.getIn(['lines', target.userData.lineId]);
967
- // let snapLineThickness = snapLine.properties.getIn([
968
- // 'thickness',
969
- // 'length'
970
- // ]);
971
- var snapLineThickness = 10.64;
972
- var vertices = [];
973
- if (snapLine === undefined) return;
974
- snapLine.vertices.forEach(function (data) {
975
- var vec = layer.getIn(['vertices', data]);
976
- vertices.push(vec);
977
- });
978
- var iX = source.position.clone().x;
979
- var iY = -source.position.clone().z;
980
- var lineVec = new Three.Vector2(vertices[1].x - vertices[0].x, vertices[1].y - vertices[0].y);
981
- var oLength = Math.sqrt(lineVec.x * lineVec.x + lineVec.y * lineVec.y);
982
- lineVec.normalize();
983
- var vec2 = new Three.Vector2(iX - vertices[0].x, iY - vertices[0].y);
984
- var vec2Legnth = Math.sqrt(vec2.x * vec2.x + vec2.y * vec2.y);
985
- var angle = Math.abs(lineVec.angle() - vec2.angle());
986
- angle = angle > Math.PI ? 2 * Math.PI - angle : angle;
987
- var lineLength = Math.cos(angle) * vec2Legnth;
988
- var transLength = 0;
989
- if (lineLength < 100) {
990
- transLength = -lineLength + (snapLineThickness + _width) / 2;
991
- }
992
- if (lineLength > oLength - 100) {
993
- transLength = -lineLength - (snapLineThickness + _width) / 2 + oLength;
994
- }
995
- var directPoint = new Three.Vector2(lineVec.x * lineLength + vertices[0].x, lineVec.y * lineLength + vertices[0].y);
996
- var directLine = new Three.Vector2(directPoint.x - iX, directPoint.y - iY);
997
- var dLength = Math.sqrt((iX - directPoint.x) * (iX - directPoint.x) + (iY - directPoint.y) * (iY - directPoint.y));
998
- var reduceLen = (snapLineThickness + _depth) / 2;
999
- var scale = (dLength - reduceLen) / dLength;
1000
- var _tPos3 = new Three.Vector2(iX + (directPoint.x - iX) * scale + lineVec.x * transLength, iY + (directPoint.y - iY) * scale + lineVec.y * transLength);
1001
- var realAngle = directLine.angle() - Math.PI / 2;
1002
- var _tRot2 = realAngle * 180 / Math.PI;
1003
- var _sPos = new Three.Vector2(iX, iY);
1004
- var _sRot = _item3.rotation;
1005
- var _tNum = 0;
1006
- // //////////////////////////////////////
1007
- // check part////
1008
- var result = this.collisionCheck(source, _tPos3, _tRot2, target, _item3, this.context.catalog);
1009
- // console.log('result', result);
1010
- if (result == false) {
1011
- _removeSnapBoxObj();
1012
- removeSnapBox();
1013
- return;
1014
- }
1015
- // ////////////////
1016
- if (targetObj === target && snapBox !== null) {
1017
- _removeSnapBoxObj();
1018
- snapAnimI = 20;
1019
- targetPoint = new Three.Vector3(_tPos3.x, 0, -_tPos3.y);
1020
- var _sourcePos = snapBox.position.clone();
1021
- var _cx = _sourcePos.x - targetPoint.x;
1022
- var _cz = _sourcePos.z - targetPoint.z;
1023
- targetUVec = new Three.Vector3(_cx, 0, _cz);
1024
- targetRot = _tRot2;
1025
- targetCRotation = (_tRot2 - _sRot) % 360 / 180 * Math.PI;
1026
- snapFlag = false;
1027
- return;
1028
- } else {
1029
- removeSnapBox();
1030
- }
1031
- // //////////////////////////////////////
1032
- snapAnimI = 0;
1033
- t_i = 0;
1034
- targetObj = target;
1035
- targetNumber = _tNum;
1036
- targetRot = _tRot2;
1037
- targetPoint = new Three.Vector3(_tPos3.x, 0, -_tPos3.y);
1038
- snapBox = _snapBoxObj;
1039
- var sourcePos = snapBox.position.clone();
1040
- var _cx2 = sourcePos.x - targetPoint.x;
1041
- var _cz2 = sourcePos.z - targetPoint.z;
1042
- targetUVec = new Three.Vector3(_cx2, 0, _cz2);
1043
- targetRot = _tRot2;
1044
- targetCRotation = (_tRot2 - _sRot) % 360 / 180 * Math.PI;
1045
- }
1046
- }
1047
- };
1048
-
1049
- /*end of snap functions*/
1050
- var selectedObj = null;
1051
- var firstMove = false;
1052
- var prevX, prevY;
1053
- var selObj = null;
1054
- var createToolObject = function createToolObject() {
1055
- var canvas = document.createElement('canvas');
1056
- canvas.width = 100;
1057
- canvas.height = 200;
1058
- canvas.style.width = 50 + 'px';
1059
- canvas.style.height = 100 + 'px';
1060
- var ctx = canvas.getContext('2d');
1061
- ctx.fillStyle = '#FFFFFF';
1062
- ctx.strokeStyle = '#000000';
1063
- ctx.beginPath();
1064
- ctx.arc(50, 50, 40, 0, 4 * Math.PI);
1065
- ctx.fill();
1066
- ctx.stroke();
1067
- var img1 = new Image();
1068
- img1.crossOrigin = 'anonymous';
1069
- img1.src = '/assets/img/svg/3d_item_rotation.svg';
1070
- img1.onload = function () {
1071
- ctx.drawImage(img1, 16, 16, 68, 68);
1072
- };
1073
- ctx.beginPath();
1074
- ctx.arc(50, 150, 40, 0, 4 * Math.PI);
1075
- ctx.fill();
1076
- ctx.stroke();
1077
- var img2 = new Image();
1078
- img2.crossOrigin = 'anonymous';
1079
- img2.src = '/assets/img/svg/3d_item_move.svg';
1080
- img2.onload = function () {
1081
- ctx.drawImage(img2, 16, 116, 68, 68);
1082
- };
1083
- return canvas;
1084
- };
1085
- var clockWise = true;
1086
- var lastAngle = 0;
1087
- var createAngleObject = function createAngleObject(rotate) {
1088
- var canvas = document.createElement('canvas');
1089
- canvas.width = 100;
1090
- canvas.height = 100;
1091
- canvas.style.width = 100 + 'px';
1092
- canvas.style.height = 100 + 'px';
1093
- var ctx = canvas.getContext('2d');
1094
- ctx.strokeStyle = '#FFFFFF';
1095
- ctx.lineWidth = 10;
1096
- ctx.beginPath();
1097
- ctx.arc(50, 50, 45, 0, 2 * Math.PI);
1098
- ctx.stroke();
1099
- ctx.strokeStyle = _constants.SECONDARY_PURPLE_COLOR;
1100
- ctx.lineWidth = 6;
1101
- ctx.beginPath();
1102
- if (lastAngle < 15 && lastAngle > -15) {
1103
- if (rotate >= 0) {
1104
- clockWise = false;
1105
- } else {
1106
- clockWise = true;
1107
- }
1108
- if (lastAngle === 0) {
1109
- if (rotate > -180) {
1110
- clockWise = true;
1111
- } else {
1112
- clockWise = false;
1113
- }
1114
- }
1115
- }
1116
- ctx.arc(50, 50, 45, 0, rotate / 180.0 * Math.PI, clockWise);
1117
- ctx.stroke();
1118
- lastAngle = rotate;
1119
- return canvas;
1120
- };
1121
- var toolTexture = new Three.Texture(createToolObject());
1122
- toolTexture.needsUpdate = true;
1123
- var toolObj = new Three.Sprite(new Three.SpriteMaterial({
1124
- map: toolTexture,
1125
- sizeAttenuation: true
1126
- }));
1127
- toolObj.material.transparent = true;
1128
- toolObj.material.depthTest = false;
1129
- toolObj.scale.set(20, 40, 20);
1130
- toolObj.renderOrder = 3;
1131
- toolObj.name = 'toolObj';
1132
- var angleTexture = new Three.Texture(createAngleObject(0));
1133
- angleTexture.needsUpdate = true;
1134
- var angleObj = new Three.Sprite(new Three.SpriteMaterial({
1135
- map: angleTexture,
1136
- sizeAttenuation: false
1137
- }));
1138
- angleObj.scale.set(0.075, 0.075, 0.075);
1139
- angleObj.material.transparent = true;
1140
- angleObj.material.depthTest = false;
1141
- angleObj.renderOrder = 3;
1142
- angleObj.name = 'angleObj';
1143
-
1144
- /**
1145
- * Calculate plane point of mouse with `event` & `altitude`
1146
- * * Calculate mouse.x & mouse.y
1147
- * * Set raycaster from camera & Set raycaster direction
1148
- * * Calculate Point & dispatch an action
1149
- */
1150
- var getPoint = function getPoint(e, alti) {
1151
- mouse.x = e.offsetX / _this2.width * 2 - 1;
1152
- mouse.y = -e.offsetY / _this2.height * 2 + 1;
1153
- raycaster.setFromCamera(mouse, camera);
1154
- rayDirection = raycaster.ray.direction;
1155
- Point = mapCursorPosition(e, alti);
1156
- _this2.context.projectActions.updateMouseCoord(Point);
1157
- };
1158
- var getIntersectWallPoint = function getIntersectWallPoint(e) {
1159
- mouse.x = e.offsetX / _this2.width * 2 - 1;
1160
- mouse.y = -e.offsetY / _this2.height * 2 + 1;
1161
- raycaster.setFromCamera(mouse, camera);
1162
- rayDirection = raycaster.ray.direction;
1163
- var lines = planData.sceneGraph.layers[scene.selectedLayer].lines;
1164
- var keys = Object.keys(lines);
1165
- var arrMesh = [];
1166
- keys.forEach(function (key) {
1167
- lines[key].children[0].children.forEach(function (mesh) {
1168
- if (mesh.name == 'soul' && mesh.visible) arrMesh.push(mesh);
1169
- });
1170
- });
1171
- if (arrMesh.length > 0) {
1172
- var intersects = raycaster.intersectObjects(arrMesh);
1173
- if (intersects.length > 0) {
1174
- var intersectPt = intersects[0].point;
1175
- intersectPt.applyMatrix4(gridMatrix);
1176
- Point = {
1177
- x: intersectPt.x,
1178
- y: -intersectPt.z
1179
- };
1180
- _this2.context.projectActions.updateMouseCoord(Point);
1181
- return true;
1182
- }
1183
- }
1184
- return false;
1185
- };
1186
- var updateSelectedObject = function updateSelectedObject() {
1187
- // update the selected object
1188
- var selectedLayerId = _this2.props.state.scene.selectedLayer;
1189
- var selItemId = _this2.props.state.scene.getIn(['layers', selectedLayerId, 'selected', 'items']).toJS()[0];
1190
- selectedObject = {
1191
- layerID: selectedLayerId,
1192
- itemID: selItemId
1193
- };
1194
- };
1195
- this.mouseDownEvent = function (event) {
1196
- gridPlanOrigin = gridPlane.position;
1197
- gridMatrix.copy(gridPlane.matrixWorld).invert();
1198
- var altitude = 0;
1199
- if (allItemRect && allItemRect.cur && allItemRect.cur.itemInfo !== undefined) {
1200
- var properties = allItemRect.cur.itemInfo.properties;
1201
- altitude = properties.getIn(['altitude', '_length']);
1202
- var unit = properties.getIn(['altitude', '_unit']) || 'in';
1203
- altitude = (0, _convertUnits["default"])(altitude).from(unit).to(_this2.props.state.scene.unit);
1204
- }
1205
- getPoint(event, altitude);
1206
- var state = _this2.props.state;
1207
- _this2.lastMousePosition.x = mouse.x;
1208
- _this2.lastMousePosition.y = mouse.y;
1209
- var layer = state.scene.getIn(['layers', state.scene.selectedLayer]);
1210
- var sCount = layer.selected.areas.size + layer.selected.holes.size + layer.selected.items.size + layer.selected.lines.size;
1211
- if (sCount <= 0) {
1212
- isSelected = false;
1213
- } else if (sCount >= 0 && selectedObject && 'holeID' in selectedObject) {
1214
- isSelected = true;
1215
- }
1216
- prevX = Point.x;
1217
- prevY = Point.y;
1218
-
1219
- /**
1220
- * 0 - rotate
1221
- * 1 - move up/down
1222
- * 2 - move x/y
1223
- * 3 - camera rotate
1224
- */
1225
- var transflag = 3;
1226
- raycaster.setFromCamera(mouse, camera);
1227
- var meshes = [];
1228
- toIntersect.forEach(function (object) {
1229
- if (!object) return;
1230
- object.traverse(function (o) {
1231
- if (o.isMesh) meshes.push(o);
1232
- });
1233
- });
1234
- var intersects = raycaster.intersectObjects(meshes, true);
1235
- var toolIntersects = raycaster.intersectObjects([toolObj], true);
1236
-
1237
- // This code is excuted when click the tool object(rotation or move icon).
1238
- if (toolIntersects.length > 0) {
1239
- updateSelectedObject();
1240
- // it determines whether mouse is over on rotation icon or move icon.
1241
- var distance = Math.sqrt(Math.pow((toolIntersects[0].uv.x - 0.5) * 50, 2) + Math.pow((toolIntersects[0].uv.y - 0.25) * 100, 2));
1242
- // move icon selected
1243
- if (distance <= 20) {
1244
- transflag = 2;
1245
- } else {
1246
- distance = Math.sqrt(Math.pow((toolIntersects[0].uv.x - 0.5) * 50, 2) + Math.pow((toolIntersects[0].uv.y - 0.75) * 100, 2));
1247
- // rotation icon selected
1248
- if (distance <= 20) {
1249
- transflag = 0;
1250
- }
1251
- }
1252
- }
1253
- if (intersects.length > 0) {
1254
- var _i0 = 0,
1255
- length = intersects.length;
1256
- for (_i0 = 0; _i0 < length; _i0++) {
1257
- if (intersects[_i0].object.type !== 'BoxHelper' &&
1258
- // intersects[i].object.type === OBJTYPE_MESH &&
1259
- intersects[_i0].object.name !== 'lineText' && intersects[_i0].object.name !== 'soul' && !intersects[_i0].object.name.includes('WarningBox')) break;
1260
- }
1261
- if (intersects[_i0] !== undefined) {
1262
- if (intersects[_i0].object.name.indexOf('transUp') != -1) transflag = 1;
1263
- if (intersects[_i0].object.name.indexOf('transHole') != -1) transflag = 2;
1264
- } else {
1265
- console.log('intersects[i] is undefined in viewer3d/viewer3d.js');
1266
- }
1267
- }
1268
- if (_this2.props.state.mode == _constants.MODE_DRAWING_ITEM_3D) return;
1269
- if (isSelected) {
1270
- !_this2.props.downloadFlag && _this2.props.setToolbar('');
1271
- if (intersects.length > 0 && !isNaN(intersects[0].distance)) {
1272
- var _i1;
1273
- for (_i1 = 0; _i1 < intersects.length; _i1++) {
1274
- if (intersects[_i1].object instanceof Three.Mesh && intersects[_i1].object.name != 'TransformBox' && intersects[_i1].object.type != 'Line' && intersects[_i1].object.name != 'lineText' && intersects[_i1].object.name != 'countertops' && intersects[_i1].object.type != 'BoxHelper' && intersects[_i1].object.name != 'floor' && intersects[_i1].object.name != 'backFace' && intersects[_i1].object.name != 'soul' && !intersects[_i1].object.name.includes('backsplash') && !intersects[_i1].object.name.includes('WarningBox')) break;
1275
- }
1276
- if (intersects[_i1] === undefined) {
1277
- if (transflag !== 0 && transflag !== 2) {
1278
- isSelected = false;
1279
- _this2.context.projectActions.unselectAll();
1280
- scene3D.remove(toolObj);
1281
- _this2.context.itemsActions.removeReplacingSupport();
1282
- return;
1283
- }
1284
- }
1285
- if (selectedObject !== undefined) {
1286
- var selectedItem = planData.sceneGraph.layers[selectedObject.layerID].items[selectedObject.itemID];
1287
- sPoint.set(Point.x, Point.y);
1288
- if (transflag == 0) {
1289
- scene3D.remove(toolObj);
1290
- var alti = 0;
1291
- if (allItemRect && allItemRect.cur && allItemRect.cur.itemInfo !== undefined) {
1292
- var _properties = allItemRect.cur.itemInfo.properties;
1293
- alti = _properties.getIn(['altitude', '_length']);
1294
- var _unit = _properties.getIn(['altitude', '_unit']) || 'in';
1295
- alti = (0, _convertUnits["default"])(alti).from(_unit).to(_this2.props.state.scene.unit);
1296
- }
1297
- getPoint({
1298
- offsetX: event.offsetX - 50,
1299
- offsetY: event.offsetY
1300
- }, alti);
1301
- if ((0, _util.isUndefined)(selectedItem)) return;
1302
- var selItem = _this2.props.state.scene.layers.get(selectedObject.layerID).items.get(selectedObject.itemID);
1303
- lastAngle = 0;
1304
- angleObj.position.set(planData.plan.position.x + Point.x, selItem.category === 'lighting' ? -planData.plan.position.y - selItem.properties.get('height').get('length') : selItem.properties.get('altitude').get('length') + planData.plan.position.y, planData.plan.position.z - Point.y);
1305
- angleTexture.image = createAngleObject(0);
1306
- angleTexture.needsUpdate = true;
1307
- scene3D.add(angleObj);
1308
- _this2.setState({
1309
- angleObj: angleObj
1310
- });
1311
- var centerPos = Point;
1312
- getPoint(event, alti);
1313
- _this2.context.itemsActions.beginRotatingItem3D(selectedObject.layerID, selectedObject.itemID, Point.x, Point.y, centerPos.x, centerPos.y);
1314
- bRotate = true;
1315
- } else if (transflag == 1) {
1316
- bMoveUP = true;
1317
- } else if (transflag == 2) {
1318
- switch (true) {
1319
- case 'holeID' in selectedObject:
1320
- _this2.context.holesActions.beginDraggingHole3D(selectedObject.layerID, selectedObject.holeID, Point.x, Point.y);
1321
- break;
1322
- default:
1323
- _this2.context.itemsActions.beginDraggingItem3D(selectedObject.layerID, selectedObject.itemID, Point.x, Point.y);
1324
- break;
1325
- }
1326
- bMove = true;
1327
- scene3D.remove(toolObj);
1328
- }
1329
- for (_i1 = 0; _i1 < intersects.length; _i1++) {
1330
- if (selectedItem != undefined && intersects[_i1].object.parent && intersects[_i1].object.parent.parent.userData.itemId === selectedItem.userData.itemId) selectedFlag = true;
1331
- }
1332
- if (selectedFlag || toolIntersects.length > 0 && !(0, _helper.isElevationView)(mode)) {
1333
- cameraControls.mouseButtons.left = _cameraControls["default"].ACTION.NONE;
1334
- selectedFlag = false;
1335
- } else {
1336
- isSelected = false;
1337
- _this2.context.projectActions.unselectAll();
1338
- scene3D.remove(toolObj);
1339
- _this2.context.itemsActions.removeReplacingSupport();
1340
- }
1341
- }
1342
- } else {
1343
- isSelected = false;
1344
- _this2.context.projectActions.unselectAll();
1345
- scene3D.remove(toolObj);
1346
- _this2.context.itemsActions.removeReplacingSupport();
1347
- return;
1348
- }
1349
- }
1350
- };
1351
- this.mouseUpEvent = function (event) {
1352
- var _selObj$object, _selObj$object2;
1353
- firstMove = 0;
1354
- var altitude = 0;
1355
- if (allItemRect && allItemRect.cur && allItemRect.cur.itemInfo !== undefined) {
1356
- var properties = allItemRect.cur.itemInfo.properties;
1357
- altitude = properties.getIn(['altitude', '_length']);
1358
- var unit = properties.getIn(['altitude', '_unit']) || 'in';
1359
- altitude = (0, _convertUnits["default"])(altitude).from(unit).to(_this2.props.state.scene.unit);
1360
- }
1361
- scene3D.remove(angleObj);
1362
- scene3D.remove(toolObj);
1363
- if (!_this2.props.downloadFlag && !_this2.props.state.mode.includes('ING')) {
1364
- _this2.props.setToolbar('');
1365
- }
1366
- getPoint(event, altitude);
1367
- if (_this2.props.state.mode == _constants.MODE_DRAWING_ITEM_3D) {
1368
- if (Point.x > _this2.props.state.scene.width) Point.x = _this2.props.state.width;
1369
- if (Point.y > _this2.props.state.scene.height) Point.y = _this2.props.state.height;
1370
- if (Point.x < 0) Point.x = 0;
1371
- if (Point.y < 0) Point.y = 0;
1372
- if (snapBox == null) {
1373
- actions.itemsActions.endDrawingItem(_this2.props.state.scene.selectedLayer, sPoint.x, sPoint.y);
1374
- } else {
1375
- actions.itemsActions.updateDraggingItemChanged(targetPoint.x, -targetPoint.z, selectedObject.layerID, selectedObject.itemID);
1376
- _this2.context.itemsActions.updateRotatingItemChanged(targetRot, selectedObject.layerID, selectedObject.itemID);
1377
- removeSnapBox();
1378
- actions.itemsActions.endDrawingItem(_this2.props.state.scene.selectedLayer, Point.x, Point.y);
1379
- }
1380
- bMove = false;
1381
- return;
1382
- }
1383
- if (_this2.props.state.mode == _constants.MODE_DRAGGING_ITEM_3D) {
1384
- _this2.context.itemsActions.endDraggingItem3D();
1385
- }
1386
- if (_this2.props.state.mode == _constants.MODE_ROTATING_ITEM_3D) {
1387
- _this2.context.itemsActions.endRotatingItem3D(sPoint.x, sPoint.y);
1388
- }
1389
- if (_this2.props.state.mode == _constants.MODE_DRAWING_HOLE_3D) {
1390
- gridPlanOrigin = gridPlane.position;
1391
- gridMatrix.copy(gridPlane.matrixWorld).invert();
1392
- camPos = camera.position;
1393
- if (!getIntersectWallPoint(event)) return;
1394
- actions.holesActions.endDrawingHole3D(_this2.props.state.scene.selectedLayer, Point.x, Point.y);
1395
- bMove = false;
1396
- return;
1397
- }
1398
- event.preventDefault();
1399
- if (event.button === 0) {
1400
- cameraControls.mouseButtons.left = _cameraControls["default"].ACTION.ROTATE;
1401
- mouse.x = event.offsetX / _this2.width * 2 - 1;
1402
- mouse.y = -(event.offsetY / _this2.height) * 2 + 1;
1403
- raycaster.setFromCamera(mouse, camera);
1404
- rayDirection = raycaster.ray.direction;
1405
- rayDirection = rayDirection.normalize();
1406
- var meshes = [];
1407
- toIntersect.forEach(function (object) {
1408
- if (!object) return;
1409
- object.traverse(function (o) {
1410
- if (o.isMesh) meshes.push(o);
1411
- });
1412
- });
1413
- var intersects = raycaster.intersectObjects(meshes, true);
1414
- var _i10;
1415
- if (intersects.length > 0 && !isNaN(intersects[0].distance)) {
1416
- for (_i10 = 0; _i10 < intersects.length; _i10++) {
1417
- if (intersects[_i10].object.name === 'warningObj') break;
1418
- }
1419
- if (intersects[_i10] !== undefined) {
1420
- var distance = Math.sqrt(Math.pow((intersects[_i10].uv.x - 0.5) * 50, 2) + Math.pow((intersects[_i10].uv.y - 0.25) * 100, 2));
1421
- if (distance <= 20) {
1422
- if (!bMove && !bRotate) {
1423
- isSelected = false;
1424
- _this2.context.projectActions.unselectAll();
1425
- scene3D.remove(toolObj);
1426
- _this2.context.itemsActions.removeReplacingSupport();
1427
- var replaceInfo = intersects[_i10].object.parent.parent.userData;
1428
- _this2.context.itemsActions.selectItem(replaceInfo.layerId, replaceInfo.itemId);
1429
- !_this2.props.downloadFlag && _this2.props.replaceCabinet(true);
1430
- return;
1431
- }
1432
- }
1433
- }
1434
- }
1435
- !_this2.props.downloadFlag && _this2.props.replaceCabinet(false);
1436
- if (intersects.length > 0 && !isNaN(intersects[0].distance)) {
1437
- for (_i10 = 0; _i10 < intersects.length; _i10++) {
1438
- if (intersects[_i10].object instanceof Three.Mesh && intersects[_i10].object.name != 'TransformBox' && intersects[_i10].object.type != 'Line' && intersects[_i10].object.name != 'lineText' && intersects[_i10].object.name != 'countertops' && intersects[_i10].object.type != 'BoxHelper' && intersects[_i10].object.name != 'soul' && !intersects[_i10].object.name.includes('backsplash') && !intersects[_i10].object.name.includes('WarningBox')) break;
1439
- }
1440
- }
1441
- gridMatrix.copy(gridPlane.matrixWorld).invert();
1442
- if (Math.abs(mouse.x - _this2.lastMousePosition.x) <= 0.02 && Math.abs(mouse.y - _this2.lastMousePosition.y) <= 0.02 || bMove) {
1443
- if (intersects.length > 0 && !isNaN(intersects[0].distance)) {
1444
- if (intersects[_i10] === undefined) {
1445
- if (!bMove) {
1446
- isSelected = false;
1447
- _this2.context.projectActions.unselectAll();
1448
- scene3D.remove(toolObj);
1449
- _this2.context.itemsActions.removeReplacingSupport();
1450
- return;
1451
- }
1452
- }
1453
- if (!bMove) {
1454
- selectedObject = intersects[_i10].object.interact && intersects[_i10].object.interact();
1455
- }
1456
- if (selectedObject !== undefined && 'itemID' in selectedObject) {
1457
- currentObject = intersects[_i10].object;
1458
- for (; currentObject.parent != null;) {
1459
- if (currentObject.name == 'pivot') break;
1460
- currentObject = currentObject.parent;
1461
- }
1462
- isSelected = true;
1463
- setTimeout(function () {
1464
- (0, _sceneCreator.getDistances)(layer);
1465
- var selectedItem = planData.sceneGraph.layers[selectedObject.layerID].items[selectedObject.itemID];
1466
- if ((0, _util.isUndefined)(selectedItem)) return;
1467
- var selItem = _this2.props.state.scene.layers.get(selectedObject.layerID).items.get(selectedObject.itemID);
1468
- var itemPos = selectedItem.position.clone();
1469
- if (intersects[_i10].object.parent && intersects[_i10].object.parent.parent.userData.itemId === selectedItem.userData.itemId) {
1470
- toolObj.position.set(intersects[_i10].point.x, intersects[_i10].point.y, intersects[_i10].point.z);
1471
- } else {
1472
- toolObj.position.set(planData.plan.position.x + itemPos.x, selItem.category === 'lighting' ? -planData.plan.position.y - selItem.properties.get('height').get('length') : planData.plan.position.y + selectedItem.children[0].position.y, planData.plan.position.z + itemPos.z);
1473
- }
1474
- scene3D.add(toolObj);
1475
- _this2.setState({
1476
- toolObj: toolObj
1477
- });
1478
- // showItemButtons(layer.getIn(['items', selectedObject.itemID]), currentObject, event, camera, this.renderer);
1479
- var pointArray = [],
1480
- cnt = 0;
1481
- pointArray.push([_sceneCreator.fVLine[0].userData.distance, 90]);
1482
- pointArray.push([_sceneCreator.fVLine[1].userData.distance, -90]);
1483
- pointArray.push([_sceneCreator.fVLine[2].userData.distance, 180]);
1484
- pointArray.push([_sceneCreator.fVLine[3].userData.distance, 0]);
1485
- pointArray.forEach(function (pointElement, index) {
1486
- if (pointElement[0] == undefined) pointArray[index][0] = 0;
1487
- });
1488
- pointArray.forEach(function (pointElement) {
1489
- if (pointElement[0] == 0) cnt++;
1490
- });
1491
- if (cnt == 4 || cnt == 3) {
1492
- pointArray[0][0] = 100;
1493
- pointArray[1][0] = 100;
1494
- }
1495
- actions.itemsActions.storeDistArray(layer.id, selectedObject.itemID, pointArray);
1496
- });
1497
- } else {
1498
- if (selectedObject) {
1499
- switch (true) {
1500
- case 'holeID' in selectedObject:
1501
- if (selObj !== null && selObj !== void 0 && (_selObj$object = selObj.object) !== null && _selObj$object !== void 0 && _selObj$object.name.includes('transHole')) {
1502
- actions.holesActions.endDraggingHole3D(sPoint.x, sPoint.y);
1503
- }
1504
- break;
1505
- case 'lineID' in selectedObject:
1506
- if (selObj !== null && selObj !== void 0 && (_selObj$object2 = selObj.object) !== null && _selObj$object2 !== void 0 && _selObj$object2.name.includes('transHole')) {
1507
- actions.holesActions.endDraggingHole3D(sPoint.x, sPoint.y);
1508
- }
1509
- break;
1510
- default:
1511
- break;
1512
- }
1513
- }
1514
- isSelected = false;
1515
- }
1516
- } else {
1517
- isSelected = false;
1518
- _this2.context.projectActions.unselectAll();
1519
- switch (true) {
1520
- case 'holeID' in selectedObject:
1521
- actions.holesActions.endDraggingHole3D(sPoint.x, sPoint.y);
1522
- break;
1523
- default:
1524
- _this2.context.itemsActions.removeReplacingSupport();
1525
- break;
1526
- }
1527
- }
1528
- bMove = false;
1529
- bRotate = false;
1530
- bMoveUP = false;
1531
- if (isSelected) {
1532
- prepareSnap(layer);
1533
- selectedObj = allItemRect.cur;
1534
- }
1535
- } else {
1536
- (0, _sceneCreator.visibleTransformBox)(false);
1537
- var alti = 0;
1538
- if (allItemRect && allItemRect.cur && allItemRect.cur.itemInfo !== undefined) {
1539
- var _properties2 = allItemRect.cur.itemInfo.properties;
1540
- alti = _properties2.getIn(['altitude', '_length']);
1541
- var _unit2 = _properties2.getIn(['altitude', '_unit']) || 'in';
1542
- alti = (0, _convertUnits["default"])(alti).from(_unit2).to(_this2.props.state.scene.unit);
1543
- }
1544
- getPoint(event, alti);
1545
- if (bRotate) {
1546
- var _intersects$_i;
1547
- var selectedItem = planData.sceneGraph.layers[selectedObject.layerID].items[selectedObject.itemID];
1548
- if ((0, _util.isUndefined)(selectedItem)) return;
1549
- var selItem = _this2.props.state.scene.layers.get(selectedObject.layerID).items.get(selectedObject.itemID);
1550
- var itemPos = selectedItem.position.clone();
1551
- if (((_intersects$_i = intersects[_i10]) === null || _intersects$_i === void 0 || (_intersects$_i = _intersects$_i.object) === null || _intersects$_i === void 0 || (_intersects$_i = _intersects$_i.parent) === null || _intersects$_i === void 0 || (_intersects$_i = _intersects$_i.parent) === null || _intersects$_i === void 0 || (_intersects$_i = _intersects$_i.userData) === null || _intersects$_i === void 0 ? void 0 : _intersects$_i.itemId) === selectedItem.userData.itemId) {
1552
- toolObj.position.set(intersects[_i10].point.x, intersects[_i10].point.y, intersects[_i10].point.z);
1553
- } else {
1554
- toolObj.position.set(planData.plan.position.x + itemPos.x, selItem.category === 'lighting' ? -planData.plan.position.y - selItem.properties.get('height').get('length') : planData.plan.position.y + selectedItem.children[0].position.y, planData.plan.position.z + itemPos.z);
1555
- }
1556
- scene3D.add(toolObj);
1557
- _this2.setState({
1558
- toolObj: toolObj
1559
- });
1560
- _this2.context.itemsActions.endRotatingItem3D(Point.x, Point.y);
1561
- bRotate = false;
1562
- }
1563
- if (bMove) {
1564
- bMove = false;
1565
- var _selectedItem = planData.sceneGraph.layers[selectedObject.layerID].items[selectedObject.itemID];
1566
- if ((0, _util.isUndefined)(_selectedItem)) return;
1567
- var _selItem = _this2.props.state.scene.layers.get(selectedObject.layerID).items.get(selectedObject.itemID);
1568
- var _itemPos = _selectedItem.position.clone();
1569
- if (intersects[_i10].object.parent.parent.userData.itemId === _selectedItem.userData.itemId) {
1570
- toolObj.position.set(intersects[_i10].point.x, intersects[_i10].point.y, intersects[_i10].point.z);
1571
- } else {
1572
- toolObj.position.set(planData.plan.position.x + _itemPos.x, _selItem.category === 'lighting' ? -planData.plan.position.y - _selItem.properties.get('height').get('length') : planData.plan.position.y + _selectedItem.children[0].position.y, planData.plan.position.z + _itemPos.z);
1573
- }
1574
- scene3D.add(toolObj);
1575
- _this2.setState({
1576
- toolObj: toolObj
1577
- });
1578
- if (snapBox == null) {
1579
- var item3D = planData.sceneGraph.layers[selectedObject.layerID].items[selectedObject.itemID];
1580
- if (!item3D) return;
1581
- item3D.visible = true;
1582
- var originPos = item3D.position.clone();
1583
- setTimeout(function () {
1584
- _this2.context.itemsActions.updateDraggingItemChanged(originPos.x, -originPos.z, selectedObject.layerID, selectedObject.itemID);
1585
- }, 50);
1586
- } else {
1587
- _this2.context.itemsActions.updateDraggingItemChanged(targetPoint.x, -targetPoint.z, selectedObject.layerID, selectedObject.itemID);
1588
- _this2.context.itemsActions.updateRotatingItemChanged(targetRot, selectedObject.layerID, selectedObject.itemID);
1589
- var _item3D = planData.sceneGraph.layers[selectedObject.layerID].items[selectedObject.itemID];
1590
- _item3D.position.x = targetPoint.x;
1591
- _item3D.position.z = targetPoint.z;
1592
- _item3D.visible = true;
1593
- }
1594
- }
1595
- if (bMoveUP) {
1596
- bMoveUP = false;
1597
- }
1598
- }
1599
- removeSnapBox();
1600
- actions.sceneActions.updateMovingState(true);
1601
- if (isSelected === true) {
1602
- prepareSnap(layer);
1603
- selectedObj = allItemRect.cur;
1604
- }
1605
- }
1606
- };
1607
- this.mouseMoveEvent = function (event) {
1608
- event.preventDefault();
1609
- backsplashVisible = false;
1610
- var altitude = 0;
1611
- if (allItemRect && allItemRect.cur && allItemRect.cur.itemInfo !== undefined) {
1612
- var properties = allItemRect.cur.itemInfo.properties;
1613
- altitude = properties.getIn(['altitude', '_length']);
1614
- var unit = properties.getIn(['altitude', '_unit']) || 'in';
1615
- altitude = (0, _convertUnits["default"])(altitude).from(unit).to(_this2.props.state.scene.unit);
1616
- }
1617
- if (_this2.props.state.mode === _constants.MODE_DRAWING_HOLE_3D) {
1618
- gridPlanOrigin = gridPlane.position;
1619
- gridMatrix.copy(gridPlane.matrixWorld).invert();
1620
- camPos = camera.position;
1621
- if (!getIntersectWallPoint(event)) return;
1622
- var drawingSupport = _this2.props.state.drawingSupport;
1623
- if (!drawingSupport.has('currentID')) {
1624
- _this2.context.holesActions.updateDrawingHole3D(_this2.props.state.scene.selectedLayer, Point.x, Point.y);
1625
- sPoint.set(Point.x, Point.y);
1626
- } else {
1627
- var layerID = _this2.props.state.scene.selectedLayer;
1628
- var holeID = _this2.props.state.drawingSupport.get('currentID');
1629
- (0, _sceneCreator.deleteSpecifiedMeshObjects)('WarningBox' + holeID);
1630
- prepareSnap(layer);
1631
-
1632
- // let {nx, ny, rot} = GeometryUtils.calcSnap(allItemRect, allItemSnap, allLineRects, allLineSnap, allRect, Point.x, Point.y, allArea);
1633
- var nx = Point.x;
1634
- var ny = Point.y;
1635
- actions.holesActions.updateDrawingHole3D(layerID, nx, ny);
1636
- sPoint.set(nx, ny);
1637
- }
1638
- }
1639
- if (_this2.props.state.mode === _constants.MODE_DRAWING_ITEM_3D) {
1640
- // We need to set cam position since when MODE_DRAWING_ITEM_3D mouse down event
1641
- // is not emited so cam position is not valid
1642
- gridPlanOrigin = gridPlane.position;
1643
- gridMatrix.copy(gridPlane.matrixWorld).invert();
1644
- camPos = camera.position;
1645
- getPoint(event, altitude);
1646
- if (Point.x > _this2.props.state.scene.width || Point.x < 0 || Point.y > _this2.props.state.scene.height || Point.y < 0) return;
1647
- var _drawingSupport = _this2.props.state.drawingSupport;
1648
- if (!_drawingSupport.has('currentID')) {
1649
- _this2.context.itemsActions.updateDrawingItem(_this2.props.state.scene.selectedLayer, Point.x, Point.y);
1650
- sPoint.set(Point.x, Point.y);
1651
- } else {
1652
- var _layerID = _this2.props.state.scene.selectedLayer;
1653
- var itemID = _this2.props.state.drawingSupport.get('currentID');
1654
- selectedObject = {
1655
- layerID: _layerID,
1656
- itemID: itemID
1657
- };
1658
- var mX = Point.x - sPoint.x;
1659
- var mY = Point.y - sPoint.y;
1660
- var item3D = planData.sceneGraph.layers[selectedObject.layerID].items[selectedObject.itemID];
1661
- var _layer = _this2.props.state.scene.getIn(['layers', selectedObject.layerID]);
1662
- (0, _sceneCreator.deleteSpecifiedMeshObjects)('TransformBox');
1663
- (0, _sceneCreator.deleteSpecifiedMeshObjects)('WarningBox' + itemID);
1664
- prepareSnap(_layer);
1665
- var item = _layer.items.getIn([selectedObject.itemID]);
1666
- if (item.counterTop.uri == '') item.counterTop.uri = _layer.counterTop.uri;
1667
- var sRot = item.rotation;
1668
- if (!item3D) return;
1669
- var originPos = item3D.position.clone();
1670
- var tPos = new Three.Vector2(mX + originPos.x, mY - originPos.z);
1671
- var sBounding = item3D.children[0].userData;
1672
- var swidth = sBounding.max.x - sBounding.min.x;
1673
- var sdepth = sBounding.max.z - sBounding.min.z;
1674
- var sVertices = _this2.getRectPoints(swidth, sdepth, tPos.clone(), sRot % 360 / 180 * Math.PI);
1675
- var _GeometryUtils$calcSn = _export.GeometryUtils.calcSnap(allItemRect, allItemSnap, allLineRects, allLineSnap, allRect, Point.x, Point.y, allArea),
1676
- _nx = _GeometryUtils$calcSn.nx,
1677
- _ny = _GeometryUtils$calcSn.ny,
1678
- rot = _GeometryUtils$calcSn.rot;
1679
- var nPos = new Three.Vector2(_nx, _ny);
1680
- if (!_this2.collisionHoleCheck(item3D, nPos, item.rotation, {
1681
- userData: {
1682
- itemId: null
1683
- }
1684
- }, item, _this2.context.catalog)) {
1685
- _this2.collisionSlide(item3D, originPos, _layer, sVertices, tPos, item);
1686
- //return;
1687
- }
1688
- var polygonPoint = lineRect(_layer);
1689
- if (polygonPoint.length > 0) {
1690
- var PolygonSect = _export.GeometryUtils.ContainsPoint(polygonPoint, _nx, _ny);
1691
- if (!PolygonSect) {
1692
- var _GeometryUtils$calcCr = _export.GeometryUtils.calcCreateSnap(allItemRect, allItemSnap, allLineRects, allLineSnap, allRect, Point.x, Point.y, polygonPoint),
1693
- cx = _GeometryUtils$calcCr.cx,
1694
- cy = _GeometryUtils$calcCr.cy,
1695
- crot = _GeometryUtils$calcCr.crot;
1696
- _nx = cx;
1697
- _ny = cy;
1698
- rot = crot;
1699
- }
1700
- }
1701
- var polygon = lineRect(_layer);
1702
- if (polygon.length > 0) {
1703
- var Sect = _export.GeometryUtils.ContainsPoint(polygon, _nx, _ny);
1704
- if (!Sect) return;
1705
- }
1706
- actions.itemsActions.updateDraggingItemChanged(_nx, _ny, selectedObject.layerID, selectedObject.itemID);
1707
- actions.itemsActions.updateRotatingItemChanged(rot, selectedObject.layerID, selectedObject.itemID);
1708
- sPoint.set(_nx, _ny);
1709
- (0, _sceneCreator.getDistances)(_layer);
1710
- var pointArray = [],
1711
- cnt = 0;
1712
- pointArray.push([_sceneCreator.fVLine[0].userData.distance, 90]);
1713
- pointArray.push([_sceneCreator.fVLine[1].userData.distance, -90]);
1714
- pointArray.push([_sceneCreator.fVLine[2].userData.distance, 180]);
1715
- pointArray.push([_sceneCreator.fVLine[3].userData.distance, 0]);
1716
- pointArray.forEach(function (pointElement, index) {
1717
- if (pointElement[0] == undefined) pointArray[index][0] = 0;
1718
- });
1719
- pointArray.forEach(function (pointElement) {
1720
- if (pointElement[0] == 0) cnt++;
1721
- });
1722
- if (cnt == 4 || cnt == 3) {
1723
- pointArray[0][0] = 100;
1724
- pointArray[1][0] = 100;
1725
- }
1726
- actions.itemsActions.storeDistArray(_layer.id, item.id, pointArray);
1727
- var minDis = _sceneCreator.fVLine[0].userData.distance;
1728
- var snapObj = _sceneCreator.fVLine[0];
1729
- var iPos = item3D.position.clone();
1730
- var snapDis = Math.sqrt((iPos.x - targetPoint.x) * (iPos.x - targetPoint.x) + (iPos.z - targetPoint.z) * (iPos.z - targetPoint.z));
1731
- if (snapDis >= 100 && snapObj != null) {
1732
- removeSnapBox();
1733
- backsplashVisible = false;
1734
- //console.log('1 snap no');
1735
- }
1736
- for (var _i11 = 1; _i11 < _sceneCreator.fVLine.length; _i11++) {
1737
- if (minDis > _sceneCreator.fVLine[_i11].userData.distance) {
1738
- minDis = _sceneCreator.fVLine[_i11].userData.distance;
1739
- snapObj = _sceneCreator.fVLine[_i11];
1740
- }
1741
- }
1742
- if (snapBox == null) {
1743
- snapFlag = false;
1744
- }
1745
- actions.sceneActions.updateMovingState(false);
1746
- if (minDis < snapDelta && !snapFlag) {
1747
- _this2.snap(snapObj, _layer);
1748
- snapFlag = true;
1749
- //console.log('1 snap Yes')
1750
- (0, _sceneCreator.getDistances)(_layer, true);
1751
- var _i12 = 0;
1752
- for (_i12 = 0; _i12 < _sceneCreator.fVLine.length; _i12++) {
1753
- if (_sceneCreator.fVLine[_i12].userData.distance < snapDelta) {
1754
- break;
1755
- }
1756
- }
1757
- if (_i12 === _sceneCreator.fVLine.length) backsplashVisible = false;else backsplashVisible = true;
1758
- }
1759
- actions.itemsActions.setBacksplashVisible(selectedObject.itemID, backsplashVisible);
1760
- }
1761
- }
1762
- if (bRotate) {
1763
- getPoint(event, altitude);
1764
- _this2.context.itemsActions.updateRotatingItem(Point.x, Point.y);
1765
- var _layer2 = _this2.props.state.scene.getIn(['layers', selectedObject.layerID]);
1766
- var _item4 = _layer2.items.getIn([selectedObject.itemID]);
1767
- var orginRot = _this2.props.state.rotatingSupport.get('originRotation');
1768
- angleTexture.image = createAngleObject((orginRot < 0 ? 360 - orginRot : orginRot) - _item4.rotation);
1769
- angleTexture.needsUpdate = true;
1770
- (0, _sceneCreator.deleteSpecifiedMeshObjects)('WarningBox' + selectedObject.itemID);
1771
- (0, _sceneCreator.deleteSpecifiedMeshObjects)('backsplash' + selectedObject.itemID);
1772
- actions.sceneActions.updateMovingState(false);
1773
- }
1774
- if (bMoveUP) {
1775
- _this2.context.itemsActions.updateItemsAltitude(selectedObject.layerID, selectedObject.itemID, event.movementY);
1776
- }
1777
- if (bMove) {
1778
- if ('holeID' in selectedObject) {
1779
- gridPlanOrigin = gridPlane.position;
1780
- gridMatrix.copy(gridPlane.matrixWorld).invert();
1781
- camPos = camera.position;
1782
- if (!getIntersectWallPoint(event)) return;
1783
- var draggingSupport = _this2.props.state.draggingSupport;
1784
- if (!draggingSupport.has('currentID')) {
1785
- _this2.context.holesActions.updateDraggingHole(Point.x, Point.y);
1786
- sPoint.set(Point.x, Point.y);
1787
- } else {
1788
- var _holeID = _this2.props.state.draggingSupport.get('currentID');
1789
- (0, _sceneCreator.deleteSpecifiedMeshObjects)('WarningBox' + _holeID);
1790
- var _nx2 = Point.x;
1791
- var _ny2 = Point.y;
1792
- actions.holesActions.updateDraggingHole(_nx2, _ny2);
1793
- sPoint.set(_nx2, _ny2);
1794
- }
1795
- } else {
1796
- var _item3D2 = planData.sceneGraph.layers[selectedObject.layerID].items[selectedObject.itemID];
1797
- if (_item3D2 === undefined) return;
1798
- var _layer3 = _this2.props.state.scene.getIn(['layers', _item3D2.userData.layerId]);
1799
- var _item5 = _layer3.items.getIn([selectedObject.itemID]);
1800
- if (_item5.counterTop.uri == '') _item5.counterTop.uri = _layer3.counterTop.uri;
1801
- var _sRot2 = _item5.rotation;
1802
- var _mX = Point.x - sPoint.x;
1803
- var _mY = Point.y - sPoint.y;
1804
- (0, _sceneCreator.deleteSpecifiedMeshObjects)('WarningBox' + selectedObject.itemID);
1805
- (0, _sceneCreator.deleteSpecifiedMeshObjects)('backsplash' + selectedObject.itemID);
1806
- prepareSnap(_layer3);
1807
- getPoint(event, altitude);
1808
- var _originPos = _item3D2.position.clone();
1809
- var _tPos4 = new Three.Vector2(_mX + _originPos.x, _mY - _originPos.z);
1810
- var _sBounding2 = _item3D2.children[0].userData;
1811
- var _swidth = _sBounding2.max.x - _sBounding2.min.x;
1812
- var _sdepth = _sBounding2.max.z - _sBounding2.min.z;
1813
- var _sVertices = _this2.getRectPoints(_swidth, _sdepth, _tPos4.clone(), _sRot2 % 360 / 180 * Math.PI);
1814
- var _GeometryUtils$calcSn2 = _export.GeometryUtils.calcSnap(allItemRect, allItemSnap, allLineRects, allLineSnap, allRect, Point.x, Point.y, allArea),
1815
- _nx3 = _GeometryUtils$calcSn2.nx,
1816
- _ny3 = _GeometryUtils$calcSn2.ny,
1817
- _rot = _GeometryUtils$calcSn2.rot;
1818
- var _nPos = new Three.Vector2(_nx3, _ny3);
1819
- if (!_this2.collisionHoleCheck(_item3D2, _nPos, _item5.rotation, {
1820
- userData: {
1821
- itemId: null
1822
- }
1823
- }, _item5, _this2.context.catalog)) {
1824
- _this2.collisionSlide(_item3D2, _originPos, _layer3, _sVertices, _tPos4, _item5);
1825
- //return;
1826
- }
1827
- var _polygonPoint = lineRect(_layer3);
1828
- if (_polygonPoint.length > 0) {
1829
- var _PolygonSect = _export.GeometryUtils.ContainsPoint(_polygonPoint, _nx3, _ny3);
1830
- if (!_PolygonSect) {
1831
- var _GeometryUtils$calcCr2 = _export.GeometryUtils.calcCreateSnap(allItemRect, allItemSnap, allLineRects, allLineSnap, allRect, Point.x, Point.y, _polygonPoint),
1832
- _cx3 = _GeometryUtils$calcCr2.cx,
1833
- _cy = _GeometryUtils$calcCr2.cy,
1834
- _crot = _GeometryUtils$calcCr2.crot;
1835
- _nx3 = _cx3;
1836
- _ny3 = _cy;
1837
- _rot = _crot;
1838
- }
1839
- }
1840
- var _polygon = lineRect(_layer3);
1841
- if (_polygon.length > 0) {
1842
- var _Sect = _export.GeometryUtils.ContainsPoint(_polygon, _nx3, _ny3);
1843
- if (!_Sect) return;
1844
- }
1845
- actions.itemsActions.updateDraggingItemChanged(_nx3, _ny3, selectedObject.layerID, selectedObject.itemID);
1846
- actions.itemsActions.updateRotatingItemChanged(_rot, selectedObject.layerID, selectedObject.itemID);
1847
- sPoint.set(_nx3, _ny3);
1848
- (0, _sceneCreator.getDistances)(_layer3);
1849
- var _pointArray = [],
1850
- _cnt = 0;
1851
- _pointArray.push([_sceneCreator.fVLine[0].userData.distance, 90]);
1852
- _pointArray.push([_sceneCreator.fVLine[1].userData.distance, -90]);
1853
- _pointArray.push([_sceneCreator.fVLine[2].userData.distance, 180]);
1854
- _pointArray.push([_sceneCreator.fVLine[3].userData.distance, 0]);
1855
- _pointArray.forEach(function (pointElement, index) {
1856
- if (pointElement[0] == undefined) _pointArray[index][0] = 0;
1857
- });
1858
- _pointArray.forEach(function (pointElement) {
1859
- if (pointElement[0] == 0) _cnt++;
1860
- });
1861
- if (_cnt == 4 || _cnt == 3) {
1862
- _pointArray[0][0] = 100;
1863
- _pointArray[1][0] = 100;
1864
- }
1865
- actions.itemsActions.storeDistArray(_layer3.id, _item5.id, _pointArray);
1866
- var _minDis = _sceneCreator.fVLine[0].userData.distance;
1867
- var _snapObj = _sceneCreator.fVLine[0];
1868
- var _iPos = _item3D2.position.clone();
1869
- var _snapDis = Math.sqrt((_iPos.x - targetPoint.x) * (_iPos.x - targetPoint.x) + (_iPos.z - targetPoint.z) * (_iPos.z - targetPoint.z));
1870
- if (_snapDis >= 100 && _snapObj != null) {
1871
- removeSnapBox();
1872
- backsplashVisible = false;
1873
- //console.log('1 snap no');
1874
- }
1875
- for (var _i13 = 1; _i13 < _sceneCreator.fVLine.length; _i13++) {
1876
- if (_minDis > _sceneCreator.fVLine[_i13].userData.distance) {
1877
- _minDis = _sceneCreator.fVLine[_i13].userData.distance;
1878
- _snapObj = _sceneCreator.fVLine[_i13];
1879
- }
1880
- }
1881
- if (snapBox == null) {
1882
- snapFlag = false;
1883
- }
1884
- actions.sceneActions.updateMovingState(false);
1885
- if (_minDis < snapDelta && !snapFlag) {
1886
- _this2.snap(_snapObj, _layer3);
1887
- snapFlag = true;
1888
- //console.log('1 snap Yes')
1889
- (0, _sceneCreator.getDistances)(_layer3, true);
1890
- var _i14 = 0;
1891
- for (_i14 = 0; _i14 < _sceneCreator.fVLine.length; _i14++) {
1892
- if (_sceneCreator.fVLine[_i14].userData.distance < snapDelta) {
1893
- break;
1894
- }
1895
- }
1896
- if (_i14 === _sceneCreator.fVLine.length) backsplashVisible = false;else backsplashVisible = true;
1897
- }
1898
- actions.itemsActions.setBacksplashVisible(selectedObject.itemID, backsplashVisible);
1899
- }
1900
- }
1901
- if (!bMove && !bRotate && !bMoveUP) {
1902
- var curPos = {
1903
- x: event.offsetX / _this2.width * 2 - 1,
1904
- y: -(event.offsetY / _this2.height) * 2 + 1
1905
- };
1906
- raycaster.setFromCamera(curPos, camera);
1907
- rayDirection = raycaster.ray.direction;
1908
- rayDirection = rayDirection.normalize();
1909
- var meshes = (0, _objectsUtils.getAllMeshes)(toIntersect);
1910
- var intersects = raycaster.intersectObjects(meshes, true);
1911
- var _i15;
1912
- if (intersects.length > 0 && !isNaN(intersects[0].distance)) {
1913
- for (_i15 = 0; _i15 < intersects.length; _i15++) {
1914
- if (intersects[_i15].object.name === 'warningObj') break;
1915
- }
1916
- if (intersects[_i15] !== undefined) {
1917
- var distance = Math.sqrt(Math.pow((intersects[_i15].uv.x - 0.5) * 50, 2) + Math.pow((intersects[_i15].uv.y - 0.75) * 100, 2));
1918
- if (distance <= 20) {
1919
- var infoPos = {
1920
- x: 0,
1921
- y: 0
1922
- };
1923
- if (event.offsetY > 150) {
1924
- infoPos.y = event.offsetY - 60;
1925
- } else {
1926
- infoPos.y = event.offsetY + 10;
1927
- }
1928
- if (event.offsetX > _this2.width - 650) {
1929
- infoPos.x = event.offsetX - 650;
1930
- } else {
1931
- infoPos.x = event.offsetX;
1932
- }
1933
- document.getElementById('warning_box_2d').style.display = 'flex';
1934
- document.getElementById('warning_box_2d').style.top = "".concat(infoPos.y, "px");
1935
- document.getElementById('warning_box_2d').style.left = "".concat(infoPos.x, "px");
1936
- return;
1937
- }
1938
- }
1939
- }
1940
- }
1941
- document.getElementById('warning_box_2d').style.display = 'none';
1942
- };
1943
- this.onkeydown = function (event) {
1944
- if (_this2.props.keyDownEnable && !(0, _helper.isElevationView)(state.mode)) {
1945
- switch (event.keyCode) {
1946
- case 27:
1947
- // escape key
1948
- isSelected = false;
1949
- _this2.context.projectActions.unselectAll();
1950
- _this2.context.itemsActions.removeReplacingSupport();
1951
- _this2.context.itemsActions.setMoveStatus(false);
1952
- _this2.context.itemsActions.setRotateStatus(false);
1953
- bMoveUP = false;
1954
- removeSnapBox();
1955
- break;
1956
- case 65:
1957
- // w (move forward)
1958
- pivot.rotation.y -= 0.03;
1959
- break;
1960
- case 68:
1961
- // s (move backward)
1962
- pivot.rotation.y += 0.03;
1963
- break;
1964
- case 83:
1965
- // a (look left)
1966
- pivot.rotation.x += 0.03;
1967
- break;
1968
- case 87:
1969
- // d (look left)
1970
- pivot.rotation.x -= 0.03;
1971
- break;
1972
- case 37:
1973
- // left (move forward)
1974
- planData.plan.position.x += 10;
1975
- planData.grid.position.x += 10;
1976
- break;
1977
- case 38:
1978
- // Up (move backward)
1979
- planData.plan.position.y += 10;
1980
- planData.grid.position.y += 10;
1981
- break;
1982
- case 39:
1983
- // right arrow (look left)
1984
- planData.plan.position.x -= 10;
1985
- planData.grid.position.x -= 10;
1986
- break;
1987
- case 40:
1988
- // down arrow (look left)
1989
- planData.plan.position.y -= 10;
1990
- planData.grid.position.y -= 10;
1991
- break;
1992
- }
1993
- }
1994
- };
1995
- this.handleKeyDown = function (event) {
1996
- _this2.onkeydown(event);
1997
- };
1998
-
1999
- // Renderer & Event listener
2000
-
2001
- this.renderer.setClearColor(new Three.Color(SharedStyle.COLORS.white)); // 3D background color
2002
- this.renderer.setSize(this.width, this.height);
2003
- if (!this.props.downloadFlag) {
2004
- this.renderer.domElement.addEventListener('mousedown', this.mouseDownEvent);
2005
- this.renderer.domElement.addEventListener('mouseup', this.mouseUpEvent);
2006
- this.renderer.domElement.addEventListener('mousemove', this.mouseMoveEvent);
2007
- window.addEventListener('keydown', this.onkeydown);
2008
- window.SPKeyDown = this.handleKeyDown;
2009
- window.tDKeyDown = this.handleKeyDown;
2010
- }
2011
-
2012
- // Add the output of the renderer to the html element
2013
- var canvasWrapper = _reactDom["default"].findDOMNode(this.refs.canvasWrapper);
2014
- canvasWrapper && canvasWrapper.appendChild(this.renderer.domElement);
2015
-
2016
- //
2017
-
2018
- if (scene.getIn(['layers', scene.selectedLayer, 'selected', 'items']).size != 0) {
2019
- // if selected Object
2020
- isSelected = true;
2021
- selectedObject.layerID = scene.selectedLayer;
2022
- selectedObject.itemID = scene.getIn(['layers', scene.selectedLayer, 'selected', 'items']).toJS()[0];
2023
- setTimeout(function () {
2024
- try {
2025
- currentObject = planData.sceneGraph.layers[selectedObject.layerID].items[selectedObject.itemID];
2026
- if ((0, _util.isUndefined)(currentObject)) return;
2027
- var selItem = _this2.props.state.scene.layers.get(selectedObject.layerID).items.get(selectedObject.itemID);
2028
- var itemPos = currentObject.position.clone();
2029
- toolObj.position.set(planData.plan.position.x + itemPos.x, selItem.category === 'lighting' ? -planData.plan.position.y - selItem.properties.get('height').get('length') : planData.plan.position.y + currentObject.children[0].position.y, planData.plan.position.z + itemPos.z);
2030
- scene3D.add(toolObj);
2031
- _this2.setState({
2032
- toolObj: toolObj
2033
- });
2034
- } catch (err) {
2035
- console.log('selectedObject : ' + JSON.stringify(selectedObject) + '\nError: ' + err);
2036
- }
2037
- }, 2000);
2038
- }
2039
-
2040
- // Scene functions
2041
-
2042
- function init() {
2043
- clock = new Three.Clock();
2044
- scene3D = new Three.Scene();
2045
- if ((0, _helper.isElevationView)(state.mode)) scene3D.background = new Three.Color(0xffffff);
2046
- // change color about v1: 0x8791AB, v2: 0xC2C2C2, v3: 0xC3CADC
2047
- else scene3D.background = new Three.Color(0xc3cadc); // change color about v1: 0x8791AB, v2: 0xC2C2C2, v3: 0xC3CADC
2048
- // scene3D.fog = new Three.Fog(0xC3CADC, 2000, 3500);
2049
- window.scene3D = scene3D;
2050
- // Camera
2051
- if ((0, _helper.isElevationView)(state.mode)) {
2052
- // In elevation view, set Orthographic camera's position, angle and rotation about selected line
2053
- var layers = scene.layers;
2054
- var selectedLayer = layers.get(scene.selectedLayer);
2055
- var ceilHeight = (0, _convertUnits["default"])(selectedLayer.ceilHeight).from(selectedLayer.unit).to(scene.unit);
2056
- var lines = [];
2057
- var selectedLine = selectedLayer.lines.get(selectedLayer.selected.lines.toJS()[0]);
2058
- var vertex0 = selectedLayer.vertices.get(selectedLine.vertices.get(0));
2059
- var vertex1 = selectedLayer.vertices.get(selectedLine.vertices.get(1));
2060
- var x1 = vertex0.x,
2061
- y1 = vertex0.y;
2062
- var x2 = vertex1.x,
2063
- y2 = vertex1.y;
2064
- if (_export.GeometryUtils.compareVertices(vertex0, vertex1) >= 0 && vertex0.x !== vertex1.x) {
2065
- x1 = vertex1.x;
2066
- y1 = vertex1.y;
2067
- x2 = vertex0.x;
2068
- y2 = vertex0.y;
2069
- }
2070
- selectedLayer.lines.toArray().forEach(function (line) {
2071
- if (line.id === selectedLine) {
2072
- var data = line.toJS();
2073
- data = _objectSpread(_objectSpread({}, data), {}, {
2074
- l0: {
2075
- x: x1,
2076
- y: y1
2077
- },
2078
- l1: {
2079
- x: x2,
2080
- y: y2
2081
- }
2082
- });
2083
- lines.push(data);
2084
- }
2085
- });
2086
- var lineLength = _export.GeometryUtils.pointsDistance(x1, y1, x2, y2);
2087
- self.setState({
2088
- lineLength: lineLength
2089
- });
2090
- var cameraRect = (0, _helper.handleCamRect)(self.width, self.height, ceilHeight, lineLength);
2091
- camera = new Three.OrthographicCamera(-cameraRect.width / 2, cameraRect.width / 2, cameraRect.height / 2, -cameraRect.height / 2, 1, 1000);
2092
- var angle = Math.atan((y1 - y2) / (x1 - x2));
2093
- var r = 300;
2094
- if (Math.abs(angle) === Math.PI / 2) {
2095
- camera.position.set((x1 + x2) / 2 - Math.sin(angle) * r, ceilHeight / 2, -((y1 + y2) / 2 - Math.cos(angle) * r));
2096
- camera.rotation.set(0, -angle, 0);
2097
- } else if (vertex0.x > vertex1.x) {
2098
- camera.position.set((x1 + x2) / 2 + Math.sin(angle + Math.PI) * r, ceilHeight / 2, -((y1 + y2) / 2 - Math.cos(angle + Math.PI) * r));
2099
- camera.rotation.set(0, angle + Math.PI, 0);
2100
- } else {
2101
- camera.position.set((x1 + x2) / 2 + Math.sin(angle) * r, ceilHeight / 2, -((y1 + y2) / 2 - Math.cos(angle) * r));
2102
- camera.rotation.set(0, angle, 0);
2103
- }
2104
- } else {
2105
- var aspectRatio = self.width / self.height;
2106
- camera = new Three.PerspectiveCamera(45, aspectRatio, 1, 300000);
2107
- camera.position.set(0, 0, 1);
2108
- }
2109
- camera.layers.enable(1);
2110
- function loadENV() {
2111
- new _RGBELoader.RGBELoader().load('/assets/brown_photostudio_02_1k.hdr', function (texture) {
2112
- texture.mapping = Three.EquirectangularReflectionMapping;
2113
- scene3D.environment = texture;
2114
- texture.dispose();
2115
- });
2116
- }
2117
- // Camera Controls
2118
- if (!(0, _helper.isElevationView)(state.mode)) {
2119
- cameraControls = new _cameraControls["default"](camera, self.renderer.domElement);
2120
- cameraControls.dollyToCursor = true;
2121
- cameraControls.infinityDolly = true;
2122
- cameraControls.minDistance = 50;
2123
- cameraControls.maxDistance = Infinity;
2124
- cameraControls.zoomSpeed = 1;
2125
- loadENV();
2126
- }
2127
- scene3D.add(planData.plan);
2128
- scene3D.add(planData.grid);
2129
- scene3D.add(camera);
2130
- if ((0, _helper.isElevationView)(state.mode)) {
2131
- planData.cam.add(camera);
2132
- scene3D.add(planData.cam);
2133
- } else {
2134
- pivot = new Three.Object3D();
2135
- pivot.add(camera);
2136
- scene3D.add(pivot);
2137
- }
2138
-
2139
- // LIGHT
2140
-
2141
- var light = new Three.AmbientLight(0xbfbfbf, 0.9); // soft white light
2142
- }
2143
- function render() {
2144
- var delta = clock.getDelta(); // Get time delta for smooth updates
2145
- if (!(0, _helper.isElevationView)(state.mode)) cameraControls.update(delta);
2146
- for (var _i16 = 0; _i16 < lights.length; _i16++) {
2147
- lights[_i16].light.position.set(planData.plan.position.x + lights[_i16].x, planData.plan.position.y + lights[_i16].height - 10, planData.plan.position.z - lights[_i16].y);
2148
- lights[_i16].target.position.set(planData.plan.position.x + lights[_i16].x, planData.plan.position.y, planData.plan.position.z - lights[_i16].y);
2149
- }
2150
- camera.updateMatrix();
2151
- camera.updateMatrixWorld();
2152
- for (var elemID in planData.sceneGraph.LODs) {
2153
- planData.sceneGraph.LODs[elemID].update(camera);
2154
- }
2155
- if (snapBox !== null) {
2156
- if (snapAnimI >= 15) {
2157
- if ('x' in targetPoint) snapBox.position.set(targetPoint.x, snapBox.position.y, targetPoint.z);
2158
- snapFlag = false;
2159
- t_i++;
2160
- } else {
2161
- if (snapAnimI == 0) {
2162
- targetCRotation = (targetRot / 180 * Math.PI - snapBox.rotation.y + Math.PI) * 180 / Math.PI % 360;
2163
- if (targetCRotation > 180) targetCRotation -= 360;
2164
- if (targetCRotation < -180) targetCRotation += 360;
2165
- targetCRotation = targetCRotation / 180 * Math.PI;
2166
- }
2167
- if (snapAnimI < 10) {
2168
- snapBox.rotateY(targetCRotation / 10);
2169
- } else {
2170
- snapBox.position.set(snapBox.position.clone().x - targetUVec.x / 10, snapBox.position.clone().y - targetUVec.y / 10, snapBox.position.clone().z - targetUVec.z / 10);
2171
- }
2172
- snapAnimI++;
2173
- }
2174
- }
2175
- if (t_i === 20) {
2176
- //stop snap after 5s
2177
- removeSnapBox();
2178
- }
2179
-
2180
- // hide hole if wall is not visible
2181
- var layerID = self.props.state.scene.selectedLayer;
2182
- var layer = self.props.state.scene.layers.get(layerID);
2183
- layer.holes.forEach(function (data) {
2184
- var line = planData.sceneGraph.layers[layerID].lines[data.line];
2185
- var hole = planData.sceneGraph.layers[layerID].holes[data.id];
2186
- if (line instanceof Three.Object3D && !line.isMesh) {
2187
- line = line.children[0].children[0];
2188
- // index(faces) of the line
2189
- var indexAttribute = line.geometry.getIndex();
2190
- var firstFaceIndices = undefined;
2191
- if (indexAttribute && indexAttribute.length > 0) {
2192
- [indexAttribute.getX(0), indexAttribute.getX(1), indexAttribute.getX(2)], _readOnlyError("firstFaceIndices");
2193
- }
2194
- if (firstFaceIndices == undefined) return;
2195
- // normal vector of the line
2196
- var normalAttribute = line.geometry.attributes.normal;
2197
- var normal = new Three.Vector3().fromBufferAttribute(normalAttribute, 0).clone();
2198
- normal = normal.applyMatrix4(line.matrixWorld).sub(new Three.Vector3(0, 0, 0).applyMatrix4(line.matrixWorld)).normalize();
2199
- var vertices = layer.lines.get(data.line).vertices.toJS();
2200
- var vertex1 = layer.vertices.get(vertices[0]);
2201
- var vertex2 = layer.vertices.get(vertices[1]);
2202
- var cX = (vertex1.x + vertex2.x) / 2;
2203
- var cY = (vertex1.y + vertex2.y) / 2;
2204
- var posVec = new Three.Vector3(cX, 150, -cY);
2205
- posVec = posVec.add(planData.plan.position.clone());
2206
- var cameraLine = camera.position.clone().sub(posVec);
2207
- if (hole) {
2208
- hole.traverse(function (child) {
2209
- if (child.isMesh) {
2210
- child.material.opacity = cameraLine.dot(normal) > 0 ? 1 : 0;
2211
- child.material.transparent = cameraLine.dot(normal) > 0 ? false : true;
2212
- child.material.needsUpdate = true;
2213
- }
2214
- });
2215
- }
2216
- }
2217
- // /////////////////////////////////////
2218
- });
2219
- if (scene3D && camera) {
2220
- if (planData.elevationGroup) {
2221
- planData.elevationGroup.visible = true;
2222
- self.renderer.render(scene3D, camera);
2223
- self.renderer.autoClearDepth = false;
2224
- planData.elevationGroup.visible = false;
2225
- // console.log('---originalScene:', scene3D)
2226
- self.renderer.render(scene3D, camera);
2227
- self.renderer.autoClearDepth = true;
2228
- } else {
2229
- self.renderer.render(scene3D, camera);
2230
- }
2231
- }
2232
- self.renderingID = requestAnimationFrame(render);
2233
- if (self.props.downloadFlag) {
2234
- if (self.state.waitForRender > 0) {
2235
- self.state.waitForRender++;
2236
- if (self.state.waitForRender > 2) {
2237
- self.setState({
2238
- isLoading: false,
2239
- waitForRender: 0
2240
- });
2241
- if ((0, _helper.isElevationView)(self.props.state.mode)) {
2242
- setTimeout(function () {
2243
- self.props.setIsLoadingElevation('front', false);
2244
- }, 100);
2245
- }
2246
- self.renderer.domElement.style.display = 'block';
2247
- }
2248
- }
2249
- }
2250
- }
2251
-
2252
- //
2253
-
2254
- window.planData = planData;
2255
- this.planData = planData;
2256
- this.camera = camera;
2257
- this.cameraControls = cameraControls;
2258
- this.scene3D = scene3D;
2259
- prepareSnap(layer);
2260
- }
2261
- }, {
2262
- key: "componentWillUnmount",
2263
- value: function componentWillUnmount() {
2264
- cancelAnimationFrame(this.renderingID);
2265
- if (!(0, _helper.isElevationView)(this.props.state.mode)) {
2266
- if (this.cameraControls !== undefined) this.cameraControls.dispose();
2267
- }
2268
- if (!this.props.downloadFlag) {
2269
- this.renderer.domElement.removeEventListener('mousedown', this.mouseDownEvent);
2270
- this.renderer.domElement.removeEventListener('mouseup', this.mouseUpEvent);
2271
- }
2272
- (0, _threeMemoryCleaner.disposeScene)(this.scene3D);
2273
- this.scene3D.remove(this.planData.plan);
2274
- this.scene3D.remove(this.planData.grid);
2275
- this.scene3D = null;
2276
- this.planData = null;
2277
- this.camera = null;
2278
- this.cameraControls = null;
2279
- this.renderer.renderLists.dispose();
2280
- }
2281
- }, {
2282
- key: "componentWillReceiveProps",
2283
- value: function componentWillReceiveProps(nextProps) {
2284
- var _this4 = this;
2285
- if (this.props.downloadFlag && (0, _immutablediff["default"])(this.props.state, nextProps.state).toJS().length == 0 || (0, _helper.isEmpty)(nextProps.state.scene)) return;
2286
- var width = nextProps.width,
2287
- height = nextProps.height;
2288
- var selectedLayer = nextProps.state.getIn(['scene', 'layers', nextProps.state.scene.selectedLayer]);
2289
- var ceilHeight = (0, _convertUnits["default"])(selectedLayer.ceilHeight).from(selectedLayer.unit).to(nextProps.state.scene.unit);
2290
- var actions = {
2291
- areaActions: this.context.areaActions,
2292
- holesActions: this.context.holesActions,
2293
- itemsActions: this.context.itemsActions,
2294
- sceneActions: this.context.sceneActions,
2295
- linesActions: this.context.linesActions,
2296
- projectActions: this.context.projectActions,
2297
- catalog: this.context.catalog
2298
- };
2299
- var isLoadingCabinet = nextProps.state.scene.isLoadingCabinet;
2300
- if (this.state.isLoadingCabinet !== isLoadingCabinet) this.setState({
2301
- isLoadingCabinet: isLoadingCabinet
2302
- });
2303
- this.width = width;
2304
- this.height = height;
2305
- var allLines;
2306
- var allLineRects;
2307
- var allItemRect;
2308
-
2309
- // handle camera setting
2310
- switch (this.props.state.mode) {
2311
- case _constants.MODE_ELEVATION_VIEW:
2312
- // when Elevation mode (camera: Orthographic)
2313
- var cameraRect = (0, _helper.handleCamRect)(width, height, ceilHeight, this.state.lineLength);
2314
- // camera size
2315
- this.camera.left = -cameraRect.width / 2;
2316
- this.camera.right = cameraRect.width / 2;
2317
- this.camera.top = cameraRect.height / 2;
2318
- this.camera.bottom = -cameraRect.height / 2;
2319
- //camera position
2320
- this.camera.position.y = ceilHeight / 2;
2321
- break;
2322
- case _constants.MODE_3D_VIEW:
2323
- // when 3D mode (camera: Perspective)
2324
- this.camera.aspect = width / height;
2325
- break;
2326
- }
2327
- this.camera.updateProjectionMatrix();
2328
- var data = nextProps.state.scene;
2329
- var layer = data.getIn(['layers', data.selectedLayer]);
2330
- var self = this;
2331
- function implementBacksplash() {
2332
- if ((0, _helper.isElevationView)(self.props.state.mode)) return; // apply backsplash when just 3D_mode, not elevation_mode
2333
- var allItems = _export.GeometryUtils.getAllItemSpecified(nextProps.state.scene, actions.catalog, _constants.BASE_CABINET_LAYOUTPOS);
2334
- var i,
2335
- items = [];
2336
- for (i = 0; i < allItems.others.length; i++) items.push(allItems.others[i]);
2337
- if (allItems.cur) items.push(allItems.cur);
2338
- for (i = 0; i < items.length; i++) {
2339
- var calcRect = _export.GeometryUtils.getCalcRectFromItem3D(items[i]);
2340
- var visible = _export.GeometryUtils.isSnappedLine(calcRect, allLineRects);
2341
- actions.itemsActions.setBacksplashVisible(items[i].itemInfo.id, visible);
2342
- (0, _sceneCreator.createBacksplash)(items[i], nextProps.state.scene.getIn(['layers', nextProps.state.scene.selectedLayer]), planData, nextProps.state.scene);
2343
- }
2344
- }
2345
- function implementWarningBox() {
2346
- var holeItems = _export.GeometryUtils.getHoleItems(layer);
2347
- var i,
2348
- items = [];
2349
- for (i = 0; i < allItemRect.others.length; i++) items.push(allItemRect.others[i]);
2350
- if (allItemRect.cur) items.push(allItemRect.cur);
2351
- for (i = 0; i < items.length; i++) (0, _sceneCreator.checkCabinetOverlap)({
2352
- x: items[i].pos.x,
2353
- y: items[i].pos.y
2354
- }, items[i], holeItems, planData);
2355
- }
2356
- var prepareSnapSpec = function prepareSnapSpec(layer) {
2357
- allLines = _export.GeometryUtils.getAllLines(layer);
2358
- allLineRects = _export.GeometryUtils.buildRectFromLines(layer, allLines);
2359
- allItemRect = _export.GeometryUtils.getAllItemSpecified(_this4.props.state.scene, actions.catalog, [_constants.WALL_CABINET_LAYOUTPOS, _constants.TALL_CABINET_LAYOUTPOS]);
2360
- };
2361
- var layer1 = this.props.state.scene.getIn(['layers', data.selectedLayer]);
2362
- if (this.state.showflag) {
2363
- prepareSnapSpec(layer);
2364
- implementBacksplash();
2365
- implementWarningBox();
2366
- this.setState({
2367
- showflag: false
2368
- });
2369
- }
2370
- if (nextProps.state.scene !== this.props.state.scene || nextProps.state.doorStyle && nextProps.state.doorStyle.get('name') !== this.props.state.doorStyle.get('name')) {
2371
- var changedValues = (0, _immutablediff["default"])(this.props.state.scene, nextProps.state.scene);
2372
- prepareSnapSpec(layer);
2373
- if (nextProps.state.doorStyle && nextProps.state.doorStyle.get('name') === this.props.state.doorStyle.get('name')) {
2374
- self.setState({
2375
- isLoading: true
2376
- });
2377
- if (self.props.downloadFlag) {
2378
- self.setState({
2379
- waitForRender: 0
2380
- });
2381
- switch (self.props.state.mode) {
2382
- case _constants.MODE_ELEVATION_VIEW:
2383
- self.props.setIsLoadingElevation('front', true);
2384
- break;
2385
- case _constants.MODE_3D_VIEW:
2386
- self.props.setIsLoading3D(true);
2387
- break;
2388
- }
2389
- }
2390
- self.renderer.domElement.style.display = 'none';
2391
- }
2392
- if (nextProps.state.scene.showfg == true) {
2393
- implementBacksplash();
2394
- implementWarningBox();
2395
- } else {
2396
- (0, _sceneCreator.deleteSpecifiedMeshObjects)('TransformBox');
2397
- }
2398
- var _this$state = this.state,
2399
- toolObj = _this$state.toolObj,
2400
- angleObj = _this$state.angleObj;
2401
- var _updateScene = (0, _sceneCreator.updateScene)(this.planData, nextProps.state.scene, this.props.state.scene, changedValues.toJS(), actions, this.context.catalog, nextProps.state.mode, toolObj, angleObj, nextProps.state.draggingSupport),
2402
- promise = _updateScene.promise;
2403
- self.setState();
2404
- promise.then(function (p1Value) {
2405
- self.setState({
2406
- isLoading: false
2407
- });
2408
- self.props.downloadFlag && self.setState({
2409
- waitForRender: 1
2410
- });
2411
- self.renderer.domElement.style.display = 'block';
2412
- });
2413
- if (nextProps.state.getIn(['scene', 'isEndDragging'])) {
2414
- nextProps.state.setIn(['scene', 'isEndDragging'], false);
2415
- }
2416
- }
2417
- this.renderer.setSize(width, height);
2418
- }
2419
- }, {
2420
- key: "render",
2421
- value: function render() {
2422
- var _this$state2 = this.state,
2423
- isLoading = _this$state2.isLoading,
2424
- isLoadingCabinet = _this$state2.isLoadingCabinet;
2425
- if (isLoading) {
2426
- if (this.props.downloadFlag) {
2427
- this.renderer.domElement.style.display = 'none';
2428
- return /*#__PURE__*/_react["default"].createElement("div", {
2429
- style: {
2430
- alignItems: ' center',
2431
- width: this.props.width,
2432
- height: this.props.height,
2433
- display: 'inline-flex',
2434
- justifyContent: 'center'
2435
- }
2436
- }, /*#__PURE__*/_react["default"].createElement("img", {
2437
- style: {
2438
- width: '70px',
2439
- height: '70px',
2440
- animation: 'spin 2s linear infinite'
2441
- },
2442
- src: '/assets/img/loading_large.gif',
2443
- alt: "img"
2444
- }));
2445
- } else {
2446
- document.getElementById('front') && (document.getElementById('front').style.display = 'none');
2447
- document.getElementById('error').style.display = 'none';
2448
- this.renderer.domElement.style.display = 'none';
2449
- return /*#__PURE__*/_react["default"].createElement("div", {
2450
- style: {
2451
- textAlign: 'center',
2452
- width: '100%'
2453
- }
2454
- }, /*#__PURE__*/_react["default"].createElement("img", {
2455
- style: {
2456
- animation: 'spin 2s linear infinite',
2457
- marginTop: "22%"
2458
- },
2459
- src: '/assets/img/loading_large.gif',
2460
- alt: "img"
2461
- }));
2462
- }
2463
- } else if (isLoadingCabinet) {
2464
- this.renderer.domElement.style.pointerEvents = 'none';
2465
- document.getElementById('front') && (document.getElementById('front').style.display = 'none');
2466
- this.renderer.domElement.style.opacity = '0.4';
2467
- return /*#__PURE__*/_react["default"].createElement("div", {
2468
- style: {
2469
- textAlign: 'center',
2470
- width: '100%'
2471
- }
2472
- }, /*#__PURE__*/_react["default"].createElement("img", {
2473
- style: {
2474
- animation: 'spin 2s linear infinite',
2475
- position: "absolute",
2476
- top: "50%"
2477
- },
2478
- src: '/assets/img/loading_large.gif',
2479
- alt: "img"
2480
- }));
2481
- } else {
2482
- !this.props.downloadFlag && (document.getElementById('error').style.display = 'block');
2483
- this.renderer.domElement.style.pointerEvents = 'auto';
2484
- this.renderer.domElement.style.opacity = '1';
2485
- !this.props.downloadFlag && document.getElementById('front') && (document.getElementById('front').style.display = 'block');
2486
- return /*#__PURE__*/_react["default"].createElement('div', {
2487
- ref: 'canvasWrapper'
2488
- });
2489
- }
2490
- }
2491
- }]);
2492
- }(_react["default"].Component);
2493
- Scene3DViewer.propTypes = {
2494
- state: _propTypes["default"].object.isRequired,
2495
- width: _propTypes["default"].number.isRequired,
2496
- height: _propTypes["default"].number.isRequired,
2497
- replaceCabinet: _propTypes["default"].func.isRequired
2498
- };
2499
- Scene3DViewer.contextTypes = {
2500
- areaActions: _propTypes["default"].object.isRequired,
2501
- holesActions: _propTypes["default"].object.isRequired,
2502
- itemsActions: _propTypes["default"].object.isRequired,
2503
- linesActions: _propTypes["default"].object.isRequired,
2504
- sceneActions: _propTypes["default"].object.isRequired,
2505
- projectActions: _propTypes["default"].object.isRequired,
2506
- catalog: _propTypes["default"].object
2507
- };
2508
- //# sourceMappingURL=viewer3d.js.map