kitchen-simulator 5.0.0-test.5 → 5.0.0-test.7

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