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

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 (1098) hide show
  1. package/es/KitchenConfigurator.js +1 -1
  2. package/es/KitchenConfigurator.js.map +1 -1
  3. package/package.json +8 -13
  4. package/lib/@history.js +0 -11
  5. package/lib/@history.js.map +0 -1
  6. package/lib/AppContext.js +0 -11
  7. package/lib/AppContext.js.map +0 -1
  8. package/lib/KitchenConfigurator.js +0 -1353
  9. package/lib/KitchenConfigurator.js.map +0 -1
  10. package/lib/KitchenConfiguratorApp.js +0 -539
  11. package/lib/KitchenConfiguratorApp.js.map +0 -1
  12. package/lib/actions/area-actions.js +0 -22
  13. package/lib/actions/area-actions.js.map +0 -1
  14. package/lib/actions/export.js +0 -44
  15. package/lib/actions/export.js.map +0 -1
  16. package/lib/actions/groups-actions.js +0 -108
  17. package/lib/actions/groups-actions.js.map +0 -1
  18. package/lib/actions/holes-actions.js +0 -141
  19. package/lib/actions/holes-actions.js.map +0 -1
  20. package/lib/actions/items-actions.js +0 -365
  21. package/lib/actions/items-actions.js.map +0 -1
  22. package/lib/actions/lines-actions.js +0 -98
  23. package/lib/actions/lines-actions.js.map +0 -1
  24. package/lib/actions/project-actions.js +0 -333
  25. package/lib/actions/project-actions.js.map +0 -1
  26. package/lib/actions/scene-actions.js +0 -44
  27. package/lib/actions/scene-actions.js.map +0 -1
  28. package/lib/actions/user-actions.js +0 -69
  29. package/lib/actions/user-actions.js.map +0 -1
  30. package/lib/actions/vertices-actions.js +0 -36
  31. package/lib/actions/vertices-actions.js.map +0 -1
  32. package/lib/actions/viewer2d-actions.js +0 -74
  33. package/lib/actions/viewer2d-actions.js.map +0 -1
  34. package/lib/actions/viewer3d-actions.js +0 -33
  35. package/lib/actions/viewer3d-actions.js.map +0 -1
  36. package/lib/catalog/areas/area/planner-element.js +0 -47
  37. package/lib/catalog/areas/area/planner-element.js.map +0 -1
  38. package/lib/catalog/catalog.js +0 -283
  39. package/lib/catalog/catalog.js.map +0 -1
  40. package/lib/catalog/factories/area-factory-3d.js +0 -192
  41. package/lib/catalog/factories/area-factory-3d.js.map +0 -1
  42. package/lib/catalog/factories/area-factory.js +0 -90
  43. package/lib/catalog/factories/area-factory.js.map +0 -1
  44. package/lib/catalog/factories/export.js +0 -26
  45. package/lib/catalog/factories/export.js.map +0 -1
  46. package/lib/catalog/factories/wall-factory-3d.js +0 -213
  47. package/lib/catalog/factories/wall-factory-3d.js.map +0 -1
  48. package/lib/catalog/factories/wall-factory.js +0 -279
  49. package/lib/catalog/factories/wall-factory.js.map +0 -1
  50. package/lib/catalog/holes/door-closet/planner-element.js +0 -232
  51. package/lib/catalog/holes/door-closet/planner-element.js.map +0 -1
  52. package/lib/catalog/holes/door-double/planner-element.js +0 -325
  53. package/lib/catalog/holes/door-double/planner-element.js.map +0 -1
  54. package/lib/catalog/holes/door-exterior/planner-element.js +0 -225
  55. package/lib/catalog/holes/door-exterior/planner-element.js.map +0 -1
  56. package/lib/catalog/holes/door-interior/planner-element.js +0 -237
  57. package/lib/catalog/holes/door-interior/planner-element.js.map +0 -1
  58. package/lib/catalog/holes/door-panic/planner-element.js +0 -513
  59. package/lib/catalog/holes/door-panic/planner-element.js.map +0 -1
  60. package/lib/catalog/holes/door-panic-double/planner-element.js +0 -473
  61. package/lib/catalog/holes/door-panic-double/planner-element.js.map +0 -1
  62. package/lib/catalog/holes/door-sliding/planner-element.js +0 -235
  63. package/lib/catalog/holes/door-sliding/planner-element.js.map +0 -1
  64. package/lib/catalog/holes/doorway-framed/planner-element.js +0 -155
  65. package/lib/catalog/holes/doorway-framed/planner-element.js.map +0 -1
  66. package/lib/catalog/holes/doorway-frameless/planner-element.js +0 -114
  67. package/lib/catalog/holes/doorway-frameless/planner-element.js.map +0 -1
  68. package/lib/catalog/holes/window-clear/planner-element.js +0 -176
  69. package/lib/catalog/holes/window-clear/planner-element.js.map +0 -1
  70. package/lib/catalog/holes/window-cross/planner-element.js +0 -175
  71. package/lib/catalog/holes/window-cross/planner-element.js.map +0 -1
  72. package/lib/catalog/holes/window-double-hung/planner-element.js +0 -313
  73. package/lib/catalog/holes/window-double-hung/planner-element.js.map +0 -1
  74. package/lib/catalog/holes/window-vertical/planner-element.js +0 -286
  75. package/lib/catalog/holes/window-vertical/planner-element.js.map +0 -1
  76. package/lib/catalog/lines/wall/planner-element.js +0 -77
  77. package/lib/catalog/lines/wall/planner-element.js.map +0 -1
  78. package/lib/catalog/molding/molding-dcm/planner-element.js +0 -39
  79. package/lib/catalog/molding/molding-dcm/planner-element.js.map +0 -1
  80. package/lib/catalog/molding/molding-fbm/planner-element.js +0 -39
  81. package/lib/catalog/molding/molding-fbm/planner-element.js.map +0 -1
  82. package/lib/catalog/molding/molding-lrm/planner-element.js +0 -39
  83. package/lib/catalog/molding/molding-lrm/planner-element.js.map +0 -1
  84. package/lib/catalog/properties/export.js +0 -82
  85. package/lib/catalog/properties/export.js.map +0 -1
  86. package/lib/catalog/properties/property-checkbox.js +0 -79
  87. package/lib/catalog/properties/property-checkbox.js.map +0 -1
  88. package/lib/catalog/properties/property-color.js +0 -47
  89. package/lib/catalog/properties/property-color.js.map +0 -1
  90. package/lib/catalog/properties/property-enum.js +0 -63
  91. package/lib/catalog/properties/property-enum.js.map +0 -1
  92. package/lib/catalog/properties/property-hidden.js +0 -27
  93. package/lib/catalog/properties/property-hidden.js.map +0 -1
  94. package/lib/catalog/properties/property-lenght-measure.js +0 -109
  95. package/lib/catalog/properties/property-lenght-measure.js.map +0 -1
  96. package/lib/catalog/properties/property-length-measure.js +0 -93
  97. package/lib/catalog/properties/property-length-measure.js.map +0 -1
  98. package/lib/catalog/properties/property-length-measure_hole.js +0 -109
  99. package/lib/catalog/properties/property-length-measure_hole.js.map +0 -1
  100. package/lib/catalog/properties/property-number.js +0 -56
  101. package/lib/catalog/properties/property-number.js.map +0 -1
  102. package/lib/catalog/properties/property-read-only.js +0 -34
  103. package/lib/catalog/properties/property-read-only.js.map +0 -1
  104. package/lib/catalog/properties/property-string.js +0 -56
  105. package/lib/catalog/properties/property-string.js.map +0 -1
  106. package/lib/catalog/properties/property-toggle.js +0 -47
  107. package/lib/catalog/properties/property-toggle.js.map +0 -1
  108. package/lib/catalog/properties/shared-property-style.js +0 -21
  109. package/lib/catalog/properties/shared-property-style.js.map +0 -1
  110. package/lib/catalog/utils/FuseUtils.js +0 -89
  111. package/lib/catalog/utils/FuseUtils.js.map +0 -1
  112. package/lib/catalog/utils/exporter.js +0 -156
  113. package/lib/catalog/utils/exporter.js.map +0 -1
  114. package/lib/catalog/utils/geom-utils.js +0 -206
  115. package/lib/catalog/utils/geom-utils.js.map +0 -1
  116. package/lib/catalog/utils/item-loader.js +0 -1534
  117. package/lib/catalog/utils/item-loader.js.map +0 -1
  118. package/lib/catalog/utils/load-obj.js +0 -100
  119. package/lib/catalog/utils/load-obj.js.map +0 -1
  120. package/lib/catalog/utils/mtl-loader.js +0 -360
  121. package/lib/catalog/utils/mtl-loader.js.map +0 -1
  122. package/lib/catalog/utils/obj-loader.js +0 -479
  123. package/lib/catalog/utils/obj-loader.js.map +0 -1
  124. package/lib/class/FuseUtils.js +0 -89
  125. package/lib/class/FuseUtils.js.map +0 -1
  126. package/lib/class/area.js +0 -151
  127. package/lib/class/area.js.map +0 -1
  128. package/lib/class/export.js +0 -97
  129. package/lib/class/export.js.map +0 -1
  130. package/lib/class/group.js +0 -446
  131. package/lib/class/group.js.map +0 -1
  132. package/lib/class/guide.js +0 -68
  133. package/lib/class/guide.js.map +0 -1
  134. package/lib/class/hole.js +0 -935
  135. package/lib/class/hole.js.map +0 -1
  136. package/lib/class/item.js +0 -1894
  137. package/lib/class/item.js.map +0 -1
  138. package/lib/class/layer.js +0 -673
  139. package/lib/class/layer.js.map +0 -1
  140. package/lib/class/line.js +0 -1296
  141. package/lib/class/line.js.map +0 -1
  142. package/lib/class/project.js +0 -829
  143. package/lib/class/project.js.map +0 -1
  144. package/lib/class/vertex.js +0 -272
  145. package/lib/class/vertex.js.map +0 -1
  146. package/lib/components/atoms/Snackbar/index.js +0 -57
  147. package/lib/components/atoms/Snackbar/index.js.map +0 -1
  148. package/lib/components/atoms/radio-button/index.js +0 -33
  149. package/lib/components/atoms/radio-button/index.js.map +0 -1
  150. package/lib/components/atoms/radio-button/styles.js +0 -12
  151. package/lib/components/atoms/radio-button/styles.js.map +0 -1
  152. package/lib/components/button/MainButton.js +0 -98
  153. package/lib/components/button/MainButton.js.map +0 -1
  154. package/lib/components/button/ToggleMeasureButton.js +0 -63
  155. package/lib/components/button/ToggleMeasureButton.js.map +0 -1
  156. package/lib/components/catalog-view/catalog-breadcrumb.js +0 -61
  157. package/lib/components/catalog-view/catalog-breadcrumb.js.map +0 -1
  158. package/lib/components/catalog-view/catalog-item.js +0 -233
  159. package/lib/components/catalog-view/catalog-item.js.map +0 -1
  160. package/lib/components/catalog-view/catalog-list.js +0 -189
  161. package/lib/components/catalog-view/catalog-list.js.map +0 -1
  162. package/lib/components/catalog-view/catalog-page-item.js +0 -137
  163. package/lib/components/catalog-view/catalog-page-item.js.map +0 -1
  164. package/lib/components/catalog-view/catalog-turn-back-page-item.js +0 -113
  165. package/lib/components/catalog-view/catalog-turn-back-page-item.js.map +0 -1
  166. package/lib/components/configurator/custom-configurator.js +0 -101
  167. package/lib/components/configurator/custom-configurator.js.map +0 -1
  168. package/lib/components/configurator/project-configurator.js +0 -138
  169. package/lib/components/configurator/project-configurator.js.map +0 -1
  170. package/lib/components/content.js +0 -132
  171. package/lib/components/content.js.map +0 -1
  172. package/lib/components/export.js +0 -90
  173. package/lib/components/export.js.map +0 -1
  174. package/lib/components/firstsetting/button/styles.js +0 -34
  175. package/lib/components/firstsetting/button/styles.js.map +0 -1
  176. package/lib/components/firstsetting/export.js +0 -16
  177. package/lib/components/firstsetting/export.js.map +0 -1
  178. package/lib/components/firstsetting/firstsetting-content-button.js +0 -224
  179. package/lib/components/firstsetting/firstsetting-content-button.js.map +0 -1
  180. package/lib/components/firstsetting/firstsetting-toggle-button.js +0 -133
  181. package/lib/components/firstsetting/firstsetting-toggle-button.js.map +0 -1
  182. package/lib/components/firstsetting/firstsetting.js +0 -633
  183. package/lib/components/firstsetting/firstsetting.js.map +0 -1
  184. package/lib/components/footerbar/button/ControlButton.js +0 -79
  185. package/lib/components/footerbar/button/ControlButton.js.map +0 -1
  186. package/lib/components/footerbar/button/DirectionButton.js +0 -76
  187. package/lib/components/footerbar/button/DirectionButton.js.map +0 -1
  188. package/lib/components/footerbar/button/DirectionPanSpinButton.js +0 -57
  189. package/lib/components/footerbar/button/DirectionPanSpinButton.js.map +0 -1
  190. package/lib/components/footerbar/button/ToggleButton.js +0 -83
  191. package/lib/components/footerbar/button/ToggleButton.js.map +0 -1
  192. package/lib/components/footerbar/button/ToggleConvertButton.js +0 -80
  193. package/lib/components/footerbar/button/ToggleConvertButton.js.map +0 -1
  194. package/lib/components/footerbar/button/ToggleMeasureButton.js +0 -59
  195. package/lib/components/footerbar/button/ToggleMeasureButton.js.map +0 -1
  196. package/lib/components/footerbar/button/styles.js +0 -29
  197. package/lib/components/footerbar/button/styles.js.map +0 -1
  198. package/lib/components/footerbar/export.js +0 -16
  199. package/lib/components/footerbar/export.js.map +0 -1
  200. package/lib/components/footerbar/footer-content-button.js +0 -224
  201. package/lib/components/footerbar/footer-content-button.js.map +0 -1
  202. package/lib/components/footerbar/footer-toggle-button.js +0 -133
  203. package/lib/components/footerbar/footer-toggle-button.js.map +0 -1
  204. package/lib/components/footerbar/footerbar.js +0 -808
  205. package/lib/components/footerbar/footerbar.js.map +0 -1
  206. package/lib/components/footerbar/styles.js +0 -41
  207. package/lib/components/footerbar/styles.js.map +0 -1
  208. package/lib/components/header/button/MenuButton.js +0 -77
  209. package/lib/components/header/button/MenuButton.js.map +0 -1
  210. package/lib/components/header/button/SaveButton.js +0 -57
  211. package/lib/components/header/button/SaveButton.js.map +0 -1
  212. package/lib/components/header/button/styles.js +0 -68
  213. package/lib/components/header/button/styles.js.map +0 -1
  214. package/lib/components/header/export.js +0 -12
  215. package/lib/components/header/export.js.map +0 -1
  216. package/lib/components/header/header.js +0 -556
  217. package/lib/components/header/header.js.map +0 -1
  218. package/lib/components/header/styles.js +0 -47
  219. package/lib/components/header/styles.js.map +0 -1
  220. package/lib/components/login/Login.js +0 -94
  221. package/lib/components/login/Login.js.map +0 -1
  222. package/lib/components/login/LoginForm/index.js +0 -140
  223. package/lib/components/login/LoginForm/index.js.map +0 -1
  224. package/lib/components/login/Register.js +0 -104
  225. package/lib/components/login/Register.js.map +0 -1
  226. package/lib/components/login/RegisterForm/index.js +0 -237
  227. package/lib/components/login/RegisterForm/index.js.map +0 -1
  228. package/lib/components/login/jwtService.js +0 -239
  229. package/lib/components/login/jwtService.js.map +0 -1
  230. package/lib/components/molecules/slider/index.js +0 -22
  231. package/lib/components/molecules/slider/index.js.map +0 -1
  232. package/lib/components/molecules/slider/styles.js +0 -2
  233. package/lib/components/molecules/slider/styles.js.map +0 -1
  234. package/lib/components/myprojects/export.js +0 -12
  235. package/lib/components/myprojects/export.js.map +0 -1
  236. package/lib/components/myprojects/index.js +0 -453
  237. package/lib/components/myprojects/index.js.map +0 -1
  238. package/lib/components/myprojects/styles.js +0 -31
  239. package/lib/components/myprojects/styles.js.map +0 -1
  240. package/lib/components/sidebar/custom-accordion.js +0 -45
  241. package/lib/components/sidebar/custom-accordion.js.map +0 -1
  242. package/lib/components/sidebar/export.js +0 -50
  243. package/lib/components/sidebar/export.js.map +0 -1
  244. package/lib/components/sidebar/panel-element-editor/attributes-editor/attributes-editor.js +0 -74
  245. package/lib/components/sidebar/panel-element-editor/attributes-editor/attributes-editor.js.map +0 -1
  246. package/lib/components/sidebar/panel-element-editor/attributes-editor/confirm-popup.js +0 -124
  247. package/lib/components/sidebar/panel-element-editor/attributes-editor/confirm-popup.js.map +0 -1
  248. package/lib/components/sidebar/panel-element-editor/attributes-editor/hole-attributes-editor.js +0 -135
  249. package/lib/components/sidebar/panel-element-editor/attributes-editor/hole-attributes-editor.js.map +0 -1
  250. package/lib/components/sidebar/panel-element-editor/attributes-editor/item-attributes-editor.js +0 -260
  251. package/lib/components/sidebar/panel-element-editor/attributes-editor/item-attributes-editor.js.map +0 -1
  252. package/lib/components/sidebar/panel-element-editor/attributes-editor/line-attributes-editor.js +0 -84
  253. package/lib/components/sidebar/panel-element-editor/attributes-editor/line-attributes-editor.js.map +0 -1
  254. package/lib/components/sidebar/panel-element-editor/element-editor.js +0 -884
  255. package/lib/components/sidebar/panel-element-editor/element-editor.js.map +0 -1
  256. package/lib/components/sidebar/panel-element-editor/multi-elements-editor.js +0 -2
  257. package/lib/components/sidebar/panel-element-editor/multi-elements-editor.js.map +0 -1
  258. package/lib/components/sidebar/panel-element-editor/panel-element-editor.js +0 -56
  259. package/lib/components/sidebar/panel-element-editor/panel-element-editor.js.map +0 -1
  260. package/lib/components/sidebar/panel-element-editor/panel-multi-elements-editor.js +0 -125
  261. package/lib/components/sidebar/panel-element-editor/panel-multi-elements-editor.js.map +0 -1
  262. package/lib/components/sidebar/panel-group-editor.js +0 -218
  263. package/lib/components/sidebar/panel-group-editor.js.map +0 -1
  264. package/lib/components/sidebar/panel-groups.js +0 -274
  265. package/lib/components/sidebar/panel-groups.js.map +0 -1
  266. package/lib/components/sidebar/panel-guides.js +0 -192
  267. package/lib/components/sidebar/panel-guides.js.map +0 -1
  268. package/lib/components/sidebar/panel-layer-elements.js +0 -258
  269. package/lib/components/sidebar/panel-layer-elements.js.map +0 -1
  270. package/lib/components/sidebar/panel-layers.js +0 -347
  271. package/lib/components/sidebar/panel-layers.js.map +0 -1
  272. package/lib/components/sidebar/panel.js +0 -110
  273. package/lib/components/sidebar/panel.js.map +0 -1
  274. package/lib/components/sidebar/sidebar.js +0 -117
  275. package/lib/components/sidebar/sidebar.js.map +0 -1
  276. package/lib/components/sidebar/toolbar-panel.js +0 -171
  277. package/lib/components/sidebar/toolbar-panel.js.map +0 -1
  278. package/lib/components/sign/export.js +0 -18
  279. package/lib/components/sign/export.js.map +0 -1
  280. package/lib/components/sign/main/index.js +0 -567
  281. package/lib/components/sign/main/index.js.map +0 -1
  282. package/lib/components/sign/main/styles.js +0 -27
  283. package/lib/components/sign/main/styles.js.map +0 -1
  284. package/lib/components/style/button.js +0 -121
  285. package/lib/components/style/button.js.map +0 -1
  286. package/lib/components/style/cancel-button.js +0 -30
  287. package/lib/components/style/cancel-button.js.map +0 -1
  288. package/lib/components/style/content-container.js +0 -41
  289. package/lib/components/style/content-container.js.map +0 -1
  290. package/lib/components/style/content-title.js +0 -38
  291. package/lib/components/style/content-title.js.map +0 -1
  292. package/lib/components/style/delete-button.js +0 -35
  293. package/lib/components/style/delete-button.js.map +0 -1
  294. package/lib/components/style/export.js +0 -122
  295. package/lib/components/style/export.js.map +0 -1
  296. package/lib/components/style/form-block.js +0 -32
  297. package/lib/components/style/form-block.js.map +0 -1
  298. package/lib/components/style/form-color-input.js +0 -35
  299. package/lib/components/style/form-color-input.js.map +0 -1
  300. package/lib/components/style/form-label.js +0 -34
  301. package/lib/components/style/form-label.js.map +0 -1
  302. package/lib/components/style/form-number-input.js +0 -197
  303. package/lib/components/style/form-number-input.js.map +0 -1
  304. package/lib/components/style/form-number-input_2.js +0 -214
  305. package/lib/components/style/form-number-input_2.js.map +0 -1
  306. package/lib/components/style/form-select.js +0 -30
  307. package/lib/components/style/form-select.js.map +0 -1
  308. package/lib/components/style/form-slider.js +0 -53
  309. package/lib/components/style/form-slider.js.map +0 -1
  310. package/lib/components/style/form-submit-button.js +0 -36
  311. package/lib/components/style/form-submit-button.js.map +0 -1
  312. package/lib/components/style/form-text-input.js +0 -84
  313. package/lib/components/style/form-text-input.js.map +0 -1
  314. package/lib/components/toolbar/button/ControlButton.js +0 -76
  315. package/lib/components/toolbar/button/ControlButton.js.map +0 -1
  316. package/lib/components/toolbar/button/DirectionButton.js +0 -57
  317. package/lib/components/toolbar/button/DirectionButton.js.map +0 -1
  318. package/lib/components/toolbar/button/RightButton.js +0 -140
  319. package/lib/components/toolbar/button/RightButton.js.map +0 -1
  320. package/lib/components/toolbar/button/ToggleButton.js +0 -66
  321. package/lib/components/toolbar/button/ToggleButton.js.map +0 -1
  322. package/lib/components/toolbar/button/index.js +0 -94
  323. package/lib/components/toolbar/button/index.js.map +0 -1
  324. package/lib/components/toolbar/button/styles.js +0 -21
  325. package/lib/components/toolbar/button/styles.js.map +0 -1
  326. package/lib/components/toolbar/components/DoorStyleMenu.js +0 -112
  327. package/lib/components/toolbar/components/DoorStyleMenu.js.map +0 -1
  328. package/lib/components/toolbar/components/Pricing.js +0 -110
  329. package/lib/components/toolbar/components/Pricing.js.map +0 -1
  330. package/lib/components/toolbar/components/ReviewForQuote.js +0 -485
  331. package/lib/components/toolbar/components/ReviewForQuote.js.map +0 -1
  332. package/lib/components/toolbar/export.js +0 -50
  333. package/lib/components/toolbar/export.js.map +0 -1
  334. package/lib/components/toolbar/main/Alert.js +0 -132
  335. package/lib/components/toolbar/main/Alert.js.map +0 -1
  336. package/lib/components/toolbar/main/TakePictureModal.js +0 -109
  337. package/lib/components/toolbar/main/TakePictureModal.js.map +0 -1
  338. package/lib/components/toolbar/main/confirm-popup.js +0 -95
  339. package/lib/components/toolbar/main/confirm-popup.js.map +0 -1
  340. package/lib/components/toolbar/main/index.js +0 -4619
  341. package/lib/components/toolbar/main/index.js.map +0 -1
  342. package/lib/components/toolbar/main/myComponents.js +0 -125
  343. package/lib/components/toolbar/main/myComponents.js.map +0 -1
  344. package/lib/components/toolbar/main/styles.js +0 -73
  345. package/lib/components/toolbar/main/styles.js.map +0 -1
  346. package/lib/components/toolbar/plugin-item.js +0 -156
  347. package/lib/components/toolbar/plugin-item.js.map +0 -1
  348. package/lib/components/toolbar/popup/appliance/appliance-category/index.js +0 -86
  349. package/lib/components/toolbar/popup/appliance/appliance-category/index.js.map +0 -1
  350. package/lib/components/toolbar/popup/appliance/choose-appliance/index.js +0 -85
  351. package/lib/components/toolbar/popup/appliance/choose-appliance/index.js.map +0 -1
  352. package/lib/components/toolbar/popup/appliance/index.js +0 -89
  353. package/lib/components/toolbar/popup/appliance/index.js.map +0 -1
  354. package/lib/components/toolbar/popup/autosaveprompt/index.js +0 -99
  355. package/lib/components/toolbar/popup/autosaveprompt/index.js.map +0 -1
  356. package/lib/components/toolbar/popup/autosaveprompt/styles.js +0 -16
  357. package/lib/components/toolbar/popup/autosaveprompt/styles.js.map +0 -1
  358. package/lib/components/toolbar/popup/cabinet/cabinet-category/index.js +0 -86
  359. package/lib/components/toolbar/popup/cabinet/cabinet-category/index.js.map +0 -1
  360. package/lib/components/toolbar/popup/cabinet/choose-product/index.js +0 -107
  361. package/lib/components/toolbar/popup/cabinet/choose-product/index.js.map +0 -1
  362. package/lib/components/toolbar/popup/cabinet/index.js +0 -91
  363. package/lib/components/toolbar/popup/cabinet/index.js.map +0 -1
  364. package/lib/components/toolbar/popup/doorStyle/choose-style/index.js +0 -59
  365. package/lib/components/toolbar/popup/doorStyle/choose-style/index.js.map +0 -1
  366. package/lib/components/toolbar/popup/doorStyle/index.js +0 -68
  367. package/lib/components/toolbar/popup/doorStyle/index.js.map +0 -1
  368. package/lib/components/toolbar/popup/doorStyle/style-category/index.js +0 -152
  369. package/lib/components/toolbar/popup/doorStyle/style-category/index.js.map +0 -1
  370. package/lib/components/toolbar/popup/downloadsummary/downloadSummaryContext.js +0 -9
  371. package/lib/components/toolbar/popup/downloadsummary/downloadSummaryContext.js.map +0 -1
  372. package/lib/components/toolbar/popup/downloadsummary/downloadSummaryTemp.js +0 -128
  373. package/lib/components/toolbar/popup/downloadsummary/downloadSummaryTemp.js.map +0 -1
  374. package/lib/components/toolbar/popup/downloadsummary/index.js +0 -572
  375. package/lib/components/toolbar/popup/downloadsummary/index.js.map +0 -1
  376. package/lib/components/toolbar/popup/downloadsummary/show2D/show2DView.js +0 -60
  377. package/lib/components/toolbar/popup/downloadsummary/show2D/show2DView.js.map +0 -1
  378. package/lib/components/toolbar/popup/downloadsummary/show2D/viewer2DDownLoad.js +0 -200
  379. package/lib/components/toolbar/popup/downloadsummary/show2D/viewer2DDownLoad.js.map +0 -1
  380. package/lib/components/toolbar/popup/downloadsummary/show3D/show3DView.js +0 -254
  381. package/lib/components/toolbar/popup/downloadsummary/show3D/show3DView.js.map +0 -1
  382. package/lib/components/toolbar/popup/downloadsummary/show3D/viewer3DDownLoad.js +0 -1762
  383. package/lib/components/toolbar/popup/downloadsummary/show3D/viewer3DDownLoad.js.map +0 -1
  384. package/lib/components/toolbar/popup/downloadsummary/showCabinetInfo.js +0 -96
  385. package/lib/components/toolbar/popup/downloadsummary/showCabinetInfo.js.map +0 -1
  386. package/lib/components/toolbar/popup/downloadsummary/showElevation/showElevationView.js +0 -125
  387. package/lib/components/toolbar/popup/downloadsummary/showElevation/showElevationView.js.map +0 -1
  388. package/lib/components/toolbar/popup/downloadsummary/showElevation/viewer3DElevationDownload.js +0 -1713
  389. package/lib/components/toolbar/popup/downloadsummary/showElevation/viewer3DElevationDownload.js.map +0 -1
  390. package/lib/components/toolbar/popup/downloadsummary/showElevation/viewerElevationDownload.js +0 -184
  391. package/lib/components/toolbar/popup/downloadsummary/showElevation/viewerElevationDownload.js.map +0 -1
  392. package/lib/components/toolbar/popup/downloadsummary/showWarranty.js +0 -115
  393. package/lib/components/toolbar/popup/downloadsummary/showWarranty.js.map +0 -1
  394. package/lib/components/toolbar/popup/downloadsummary/styles.js +0 -47
  395. package/lib/components/toolbar/popup/downloadsummary/styles.js.map +0 -1
  396. package/lib/components/toolbar/popup/finishingtouch/category/index.js +0 -44
  397. package/lib/components/toolbar/popup/finishingtouch/category/index.js.map +0 -1
  398. package/lib/components/toolbar/popup/finishingtouch/index.js +0 -54
  399. package/lib/components/toolbar/popup/finishingtouch/index.js.map +0 -1
  400. package/lib/components/toolbar/popup/finishingtouch/material-edit.js +0 -163
  401. package/lib/components/toolbar/popup/finishingtouch/material-edit.js.map +0 -1
  402. package/lib/components/toolbar/popup/finishingtouch/product/index.js +0 -65
  403. package/lib/components/toolbar/popup/finishingtouch/product/index.js.map +0 -1
  404. package/lib/components/toolbar/popup/floorplan/choose-floor/confirm-popup.js +0 -124
  405. package/lib/components/toolbar/popup/floorplan/choose-floor/confirm-popup.js.map +0 -1
  406. package/lib/components/toolbar/popup/floorplan/choose-floor/index.js +0 -255
  407. package/lib/components/toolbar/popup/floorplan/choose-floor/index.js.map +0 -1
  408. package/lib/components/toolbar/popup/floorplan/choose-floor/styles.js +0 -20
  409. package/lib/components/toolbar/popup/floorplan/choose-floor/styles.js.map +0 -1
  410. package/lib/components/toolbar/popup/floorplan/floor-category/index.js +0 -99
  411. package/lib/components/toolbar/popup/floorplan/floor-category/index.js.map +0 -1
  412. package/lib/components/toolbar/popup/floorplan/index.js +0 -56
  413. package/lib/components/toolbar/popup/floorplan/index.js.map +0 -1
  414. package/lib/components/toolbar/popup/index.js +0 -195
  415. package/lib/components/toolbar/popup/index.js.map +0 -1
  416. package/lib/components/toolbar/popup/newproject/index.js +0 -75
  417. package/lib/components/toolbar/popup/newproject/index.js.map +0 -1
  418. package/lib/components/toolbar/popup/newproject/styles.js +0 -16
  419. package/lib/components/toolbar/popup/newproject/styles.js.map +0 -1
  420. package/lib/components/toolbar/popup/product/appliance.js +0 -73
  421. package/lib/components/toolbar/popup/product/appliance.js.map +0 -1
  422. package/lib/components/toolbar/popup/product/cabinetproduct.js +0 -33
  423. package/lib/components/toolbar/popup/product/cabinetproduct.js.map +0 -1
  424. package/lib/components/toolbar/popup/product/doorstyle.js +0 -59
  425. package/lib/components/toolbar/popup/product/doorstyle.js.map +0 -1
  426. package/lib/components/toolbar/popup/product/doorstyleproduct.js +0 -59
  427. package/lib/components/toolbar/popup/product/doorstyleproduct.js.map +0 -1
  428. package/lib/components/toolbar/popup/product/floor.js +0 -59
  429. package/lib/components/toolbar/popup/product/floor.js.map +0 -1
  430. package/lib/components/toolbar/popup/product/floorproduct.js +0 -68
  431. package/lib/components/toolbar/popup/product/floorproduct.js.map +0 -1
  432. package/lib/components/toolbar/popup/product/index.js +0 -59
  433. package/lib/components/toolbar/popup/product/index.js.map +0 -1
  434. package/lib/components/toolbar/popup/product/primary.js +0 -71
  435. package/lib/components/toolbar/popup/product/primary.js.map +0 -1
  436. package/lib/components/toolbar/popup/product/productline.js +0 -128
  437. package/lib/components/toolbar/popup/product/productline.js.map +0 -1
  438. package/lib/components/toolbar/popup/product/reviewItem.js +0 -346
  439. package/lib/components/toolbar/popup/product/reviewItem.js.map +0 -1
  440. package/lib/components/toolbar/popup/product/reviewMolding.js +0 -291
  441. package/lib/components/toolbar/popup/product/reviewMolding.js.map +0 -1
  442. package/lib/components/toolbar/popup/product/styles.js +0 -79
  443. package/lib/components/toolbar/popup/product/styles.js.map +0 -1
  444. package/lib/components/toolbar/popup/savedesign/FullPictureForm.js +0 -169
  445. package/lib/components/toolbar/popup/savedesign/FullPictureForm.js.map +0 -1
  446. package/lib/components/toolbar/popup/savedesign/index.js +0 -516
  447. package/lib/components/toolbar/popup/savedesign/index.js.map +0 -1
  448. package/lib/components/toolbar/popup/savedesign/styles.js +0 -26
  449. package/lib/components/toolbar/popup/savedesign/styles.js.map +0 -1
  450. package/lib/components/toolbar/popup/setDoorStyleOption/index.js +0 -64
  451. package/lib/components/toolbar/popup/setDoorStyleOption/index.js.map +0 -1
  452. package/lib/components/toolbar/popup/styles.js +0 -104
  453. package/lib/components/toolbar/popup/styles.js.map +0 -1
  454. package/lib/components/toolbar/popup/submitforquote/AddToCartOptions.js +0 -166
  455. package/lib/components/toolbar/popup/submitforquote/AddToCartOptions.js.map +0 -1
  456. package/lib/components/toolbar/popup/submitforquote/CustomerRequestsForm.js +0 -93
  457. package/lib/components/toolbar/popup/submitforquote/CustomerRequestsForm.js.map +0 -1
  458. package/lib/components/toolbar/popup/submitforquote/SkipDesignerReview.js +0 -45
  459. package/lib/components/toolbar/popup/submitforquote/SkipDesignerReview.js.map +0 -1
  460. package/lib/components/toolbar/popup/submitforquote/StepDots.js +0 -40
  461. package/lib/components/toolbar/popup/submitforquote/StepDots.js.map +0 -1
  462. package/lib/components/toolbar/popup/submitforquote/cart-choice.js +0 -141
  463. package/lib/components/toolbar/popup/submitforquote/cart-choice.js.map +0 -1
  464. package/lib/components/toolbar/popup/submitforquote/doorstyle-menus.js +0 -50
  465. package/lib/components/toolbar/popup/submitforquote/doorstyle-menus.js.map +0 -1
  466. package/lib/components/toolbar/popup/submitforquote/index.js +0 -698
  467. package/lib/components/toolbar/popup/submitforquote/index.js.map +0 -1
  468. package/lib/components/toolbar/popup/submitforquote/styles.js +0 -38
  469. package/lib/components/toolbar/popup/submitforquote/styles.js.map +0 -1
  470. package/lib/components/toolbar/popup/submitprompt/index.js +0 -79
  471. package/lib/components/toolbar/popup/submitprompt/index.js.map +0 -1
  472. package/lib/components/toolbar/popup/submitprompt/styles.js +0 -16
  473. package/lib/components/toolbar/popup/submitprompt/styles.js.map +0 -1
  474. package/lib/components/toolbar/toolbar-button.js +0 -111
  475. package/lib/components/toolbar/toolbar-button.js.map +0 -1
  476. package/lib/components/toolbar/toolbar-load-button.js +0 -36
  477. package/lib/components/toolbar/toolbar-load-button.js.map +0 -1
  478. package/lib/components/toolbar/toolbar-save-button.js +0 -34
  479. package/lib/components/toolbar/toolbar-save-button.js.map +0 -1
  480. package/lib/components/tutorial-view/Modal.js +0 -503
  481. package/lib/components/tutorial-view/Modal.js.map +0 -1
  482. package/lib/components/tutorial-view/styles.js +0 -13
  483. package/lib/components/tutorial-view/styles.js.map +0 -1
  484. package/lib/components/viewer2d/area.js +0 -90
  485. package/lib/components/viewer2d/area.js.map +0 -1
  486. package/lib/components/viewer2d/export.js +0 -122
  487. package/lib/components/viewer2d/export.js.map +0 -1
  488. package/lib/components/viewer2d/grids/grid-horizontal-streak.js +0 -45
  489. package/lib/components/viewer2d/grids/grid-horizontal-streak.js.map +0 -1
  490. package/lib/components/viewer2d/grids/grid-streak.js +0 -45
  491. package/lib/components/viewer2d/grids/grid-streak.js.map +0 -1
  492. package/lib/components/viewer2d/grids/grid-vertical-streak.js +0 -45
  493. package/lib/components/viewer2d/grids/grid-vertical-streak.js.map +0 -1
  494. package/lib/components/viewer2d/grids/grids.js +0 -45
  495. package/lib/components/viewer2d/grids/grids.js.map +0 -1
  496. package/lib/components/viewer2d/group.js +0 -63
  497. package/lib/components/viewer2d/group.js.map +0 -1
  498. package/lib/components/viewer2d/item.js +0 -522
  499. package/lib/components/viewer2d/item.js.map +0 -1
  500. package/lib/components/viewer2d/layer.js +0 -172
  501. package/lib/components/viewer2d/layer.js.map +0 -1
  502. package/lib/components/viewer2d/line.js +0 -899
  503. package/lib/components/viewer2d/line.js.map +0 -1
  504. package/lib/components/viewer2d/ruler.js +0 -108
  505. package/lib/components/viewer2d/ruler.js.map +0 -1
  506. package/lib/components/viewer2d/rulerDist.js +0 -154
  507. package/lib/components/viewer2d/rulerDist.js.map +0 -1
  508. package/lib/components/viewer2d/rulerX.js +0 -159
  509. package/lib/components/viewer2d/rulerX.js.map +0 -1
  510. package/lib/components/viewer2d/rulerY.js +0 -161
  511. package/lib/components/viewer2d/rulerY.js.map +0 -1
  512. package/lib/components/viewer2d/scene.js +0 -148
  513. package/lib/components/viewer2d/scene.js.map +0 -1
  514. package/lib/components/viewer2d/snap.js +0 -84
  515. package/lib/components/viewer2d/snap.js.map +0 -1
  516. package/lib/components/viewer2d/state.js +0 -88
  517. package/lib/components/viewer2d/state.js.map +0 -1
  518. package/lib/components/viewer2d/utils.js +0 -174
  519. package/lib/components/viewer2d/utils.js.map +0 -1
  520. package/lib/components/viewer2d/vertex.js +0 -76
  521. package/lib/components/viewer2d/vertex.js.map +0 -1
  522. package/lib/components/viewer2d/viewer2d.js +0 -1409
  523. package/lib/components/viewer2d/viewer2d.js.map +0 -1
  524. package/lib/components/viewer3d/camera-controls-module/camera-controls.module.js +0 -2598
  525. package/lib/components/viewer3d/camera-controls-module/camera-controls.module.js.map +0 -1
  526. package/lib/components/viewer3d/dcm.js +0 -408
  527. package/lib/components/viewer3d/dcm.js.map +0 -1
  528. package/lib/components/viewer3d/fbm.js +0 -421
  529. package/lib/components/viewer3d/fbm.js.map +0 -1
  530. package/lib/components/viewer3d/front3D.js +0 -76
  531. package/lib/components/viewer3d/front3D.js.map +0 -1
  532. package/lib/components/viewer3d/grid-creator.js +0 -35
  533. package/lib/components/viewer3d/grid-creator.js.map +0 -1
  534. package/lib/components/viewer3d/grids/grid-horizontal-streak.js +0 -45
  535. package/lib/components/viewer3d/grids/grid-horizontal-streak.js.map +0 -1
  536. package/lib/components/viewer3d/grids/grid-streak.js +0 -36
  537. package/lib/components/viewer3d/grids/grid-streak.js.map +0 -1
  538. package/lib/components/viewer3d/grids/grid-vertical-streak.js +0 -45
  539. package/lib/components/viewer3d/grids/grid-vertical-streak.js.map +0 -1
  540. package/lib/components/viewer3d/libs/first-person-controls.js +0 -75
  541. package/lib/components/viewer3d/libs/first-person-controls.js.map +0 -1
  542. package/lib/components/viewer3d/libs/helvetiker_regular.typeface.js +0 -1288
  543. package/lib/components/viewer3d/libs/helvetiker_regular.typeface.js.map +0 -1
  544. package/lib/components/viewer3d/libs/mtl-loader.js +0 -360
  545. package/lib/components/viewer3d/libs/mtl-loader.js.map +0 -1
  546. package/lib/components/viewer3d/libs/obj-loader.js +0 -465
  547. package/lib/components/viewer3d/libs/obj-loader.js.map +0 -1
  548. package/lib/components/viewer3d/libs/orbit-controls.js +0 -701
  549. package/lib/components/viewer3d/libs/orbit-controls.js.map +0 -1
  550. package/lib/components/viewer3d/libs/pointer-lock-controls.js +0 -48
  551. package/lib/components/viewer3d/libs/pointer-lock-controls.js.map +0 -1
  552. package/lib/components/viewer3d/lrm.js +0 -312
  553. package/lib/components/viewer3d/lrm.js.map +0 -1
  554. package/lib/components/viewer3d/model.js +0 -715
  555. package/lib/components/viewer3d/model.js.map +0 -1
  556. package/lib/components/viewer3d/pointer-lock-navigation.js +0 -123
  557. package/lib/components/viewer3d/pointer-lock-navigation.js.map +0 -1
  558. package/lib/components/viewer3d/ruler-utils/itemRect.js +0 -69
  559. package/lib/components/viewer3d/ruler-utils/itemRect.js.map +0 -1
  560. package/lib/components/viewer3d/ruler-utils/layer3D.js +0 -503
  561. package/lib/components/viewer3d/ruler-utils/layer3D.js.map +0 -1
  562. package/lib/components/viewer3d/ruler-utils/ruler3D.js +0 -235
  563. package/lib/components/viewer3d/ruler-utils/ruler3D.js.map +0 -1
  564. package/lib/components/viewer3d/ruler-utils/scene3D.js +0 -70
  565. package/lib/components/viewer3d/ruler-utils/scene3D.js.map +0 -1
  566. package/lib/components/viewer3d/ruler-utils/state3D.js +0 -26
  567. package/lib/components/viewer3d/ruler-utils/state3D.js.map +0 -1
  568. package/lib/components/viewer3d/scene-creator.js +0 -3641
  569. package/lib/components/viewer3d/scene-creator.js.map +0 -1
  570. package/lib/components/viewer3d/three-memory-cleaner.js +0 -61
  571. package/lib/components/viewer3d/three-memory-cleaner.js.map +0 -1
  572. package/lib/components/viewer3d/viewer3d-first-person.js +0 -321
  573. package/lib/components/viewer3d/viewer3d-first-person.js.map +0 -1
  574. package/lib/components/viewer3d/viewer3d.js +0 -2508
  575. package/lib/components/viewer3d/viewer3d.js.map +0 -1
  576. package/lib/components/wizardstep/button/styles.js +0 -67
  577. package/lib/components/wizardstep/button/styles.js.map +0 -1
  578. package/lib/components/wizardstep/export.js +0 -12
  579. package/lib/components/wizardstep/export.js.map +0 -1
  580. package/lib/components/wizardstep/index.js +0 -978
  581. package/lib/components/wizardstep/index.js.map +0 -1
  582. package/lib/components/wizardstep/styles.js +0 -68
  583. package/lib/components/wizardstep/styles.js.map +0 -1
  584. package/lib/components/wizardstep/wizardstep-content-button.js +0 -224
  585. package/lib/components/wizardstep/wizardstep-content-button.js.map +0 -1
  586. package/lib/components/wizardstep/wizardstep-toggle-button.js +0 -133
  587. package/lib/components/wizardstep/wizardstep-toggle-button.js.map +0 -1
  588. package/lib/constants.js +0 -646
  589. package/lib/constants.js.map +0 -1
  590. package/lib/hooks/useCheckCart.js +0 -60
  591. package/lib/hooks/useCheckCart.js.map +0 -1
  592. package/lib/hooks/useGetPricesBySku.js +0 -81
  593. package/lib/hooks/useGetPricesBySku.js.map +0 -1
  594. package/lib/hooks/useValidateToken.js +0 -207
  595. package/lib/hooks/useValidateToken.js.map +0 -1
  596. package/lib/index.js +0 -102
  597. package/lib/index.js.map +0 -1
  598. package/lib/models.js +0 -518
  599. package/lib/models.js.map +0 -1
  600. package/lib/plugins/SVGLoader.js +0 -1418
  601. package/lib/plugins/SVGLoader.js.map +0 -1
  602. package/lib/plugins/autosave.js +0 -40
  603. package/lib/plugins/autosave.js.map +0 -1
  604. package/lib/plugins/console-debugger.js +0 -45
  605. package/lib/plugins/console-debugger.js.map +0 -1
  606. package/lib/plugins/export.js +0 -34
  607. package/lib/plugins/export.js.map +0 -1
  608. package/lib/plugins/keyboard.js +0 -108
  609. package/lib/plugins/keyboard.js.map +0 -1
  610. package/lib/reducers/areas-reducer.js +0 -19
  611. package/lib/reducers/areas-reducer.js.map +0 -1
  612. package/lib/reducers/export.js +0 -98
  613. package/lib/reducers/export.js.map +0 -1
  614. package/lib/reducers/groups-reducer.js +0 -45
  615. package/lib/reducers/groups-reducer.js.map +0 -1
  616. package/lib/reducers/holes-reducer.js +0 -69
  617. package/lib/reducers/holes-reducer.js.map +0 -1
  618. package/lib/reducers/items-reducer.js +0 -147
  619. package/lib/reducers/items-reducer.js.map +0 -1
  620. package/lib/reducers/lines-reducer.js +0 -52
  621. package/lib/reducers/lines-reducer.js.map +0 -1
  622. package/lib/reducers/project-reducer.js +0 -136
  623. package/lib/reducers/project-reducer.js.map +0 -1
  624. package/lib/reducers/reducer.js +0 -27
  625. package/lib/reducers/reducer.js.map +0 -1
  626. package/lib/reducers/scene-reducer.js +0 -35
  627. package/lib/reducers/scene-reducer.js.map +0 -1
  628. package/lib/reducers/user-reducer.js +0 -48
  629. package/lib/reducers/user-reducer.js.map +0 -1
  630. package/lib/reducers/vertices-reducer.js +0 -26
  631. package/lib/reducers/vertices-reducer.js.map +0 -1
  632. package/lib/reducers/viewer2d-reducer.js +0 -83
  633. package/lib/reducers/viewer2d-reducer.js.map +0 -1
  634. package/lib/reducers/viewer3d-reducer.js +0 -64
  635. package/lib/reducers/viewer3d-reducer.js.map +0 -1
  636. package/lib/shared-style.js +0 -73
  637. package/lib/shared-style.js.map +0 -1
  638. package/lib/styles/export.js +0 -14
  639. package/lib/styles/export.js.map +0 -1
  640. package/lib/translator/en.js +0 -111
  641. package/lib/translator/en.js.map +0 -1
  642. package/lib/translator/it.js +0 -86
  643. package/lib/translator/it.js.map +0 -1
  644. package/lib/translator/ru.js +0 -86
  645. package/lib/translator/ru.js.map +0 -1
  646. package/lib/translator/translator.js +0 -91
  647. package/lib/translator/translator.js.map +0 -1
  648. package/lib/utils/browser.js +0 -41
  649. package/lib/utils/browser.js.map +0 -1
  650. package/lib/utils/email-validator.js +0 -11
  651. package/lib/utils/email-validator.js.map +0 -1
  652. package/lib/utils/export.js +0 -57
  653. package/lib/utils/export.js.map +0 -1
  654. package/lib/utils/geometry.js +0 -2329
  655. package/lib/utils/geometry.js.map +0 -1
  656. package/lib/utils/get-edges-of-subgraphs.js +0 -29
  657. package/lib/utils/get-edges-of-subgraphs.js.map +0 -1
  658. package/lib/utils/graph-cycles.js +0 -241
  659. package/lib/utils/graph-cycles.js.map +0 -1
  660. package/lib/utils/graph-inner-cycles.js +0 -55
  661. package/lib/utils/graph-inner-cycles.js.map +0 -1
  662. package/lib/utils/graph.js +0 -152
  663. package/lib/utils/graph.js.map +0 -1
  664. package/lib/utils/helper.js +0 -360
  665. package/lib/utils/helper.js.map +0 -1
  666. package/lib/utils/history.js +0 -37
  667. package/lib/utils/history.js.map +0 -1
  668. package/lib/utils/id-broker.js +0 -26
  669. package/lib/utils/id-broker.js.map +0 -1
  670. package/lib/utils/logger.js +0 -15
  671. package/lib/utils/logger.js.map +0 -1
  672. package/lib/utils/math.js +0 -58
  673. package/lib/utils/math.js.map +0 -1
  674. package/lib/utils/molding.js +0 -864
  675. package/lib/utils/molding.js.map +0 -1
  676. package/lib/utils/name-generator.js +0 -24
  677. package/lib/utils/name-generator.js.map +0 -1
  678. package/lib/utils/objects-utils.js +0 -61
  679. package/lib/utils/objects-utils.js.map +0 -1
  680. package/lib/utils/phone-validator.js +0 -11
  681. package/lib/utils/phone-validator.js.map +0 -1
  682. package/lib/utils/process-black-list.js +0 -25
  683. package/lib/utils/process-black-list.js.map +0 -1
  684. package/lib/utils/react-if.js +0 -25
  685. package/lib/utils/react-if.js.map +0 -1
  686. package/lib/utils/snap-scene.js +0 -106
  687. package/lib/utils/snap-scene.js.map +0 -1
  688. package/lib/utils/snap.js +0 -250
  689. package/lib/utils/snap.js.map +0 -1
  690. package/lib/utils/threeCSG.es6.js +0 -504
  691. package/lib/utils/threeCSG.es6.js.map +0 -1
  692. package/lib/version.js +0 -8
  693. package/lib/version.js.map +0 -1
  694. package/src/@history.js +0 -3
  695. package/src/AppContext.js +0 -5
  696. package/src/KitchenConfigurator.jsx +0 -1517
  697. package/src/KitchenConfiguratorApp.jsx +0 -443
  698. package/src/actions/area-actions.js +0 -15
  699. package/src/actions/export.js +0 -38
  700. package/src/actions/groups-actions.js +0 -102
  701. package/src/actions/holes-actions.js +0 -152
  702. package/src/actions/items-actions.js +0 -393
  703. package/src/actions/lines-actions.js +0 -103
  704. package/src/actions/project-actions.js +0 -391
  705. package/src/actions/scene-actions.js +0 -44
  706. package/src/actions/user-actions.js +0 -75
  707. package/src/actions/vertices-actions.js +0 -34
  708. package/src/actions/viewer2d-actions.js +0 -79
  709. package/src/actions/viewer3d-actions.js +0 -32
  710. package/src/catalog/areas/area/planner-element.jsx +0 -43
  711. package/src/catalog/areas/area/textures/ceramic-tile.jpg +0 -0
  712. package/src/catalog/areas/area/textures/grass.jpg +0 -0
  713. package/src/catalog/areas/area/textures/parquet.jpg +0 -0
  714. package/src/catalog/areas/area/textures/strand-porcelain.jpg +0 -0
  715. package/src/catalog/areas/area/textures/tile1.jpg +0 -0
  716. package/src/catalog/back.png +0 -0
  717. package/src/catalog/catalog.js +0 -258
  718. package/src/catalog/doors.png +0 -0
  719. package/src/catalog/doorways.png +0 -0
  720. package/src/catalog/envMap/nx.hdr +0 -0
  721. package/src/catalog/envMap/ny.hdr +0 -0
  722. package/src/catalog/envMap/nz.hdr +0 -0
  723. package/src/catalog/envMap/px.hdr +0 -0
  724. package/src/catalog/envMap/py.hdr +0 -0
  725. package/src/catalog/envMap/pz.hdr +0 -0
  726. package/src/catalog/factories/area-factory-3d.js +0 -252
  727. package/src/catalog/factories/area-factory.jsx +0 -102
  728. package/src/catalog/factories/export.js +0 -9
  729. package/src/catalog/factories/wall-factory-3d.js +0 -296
  730. package/src/catalog/factories/wall-factory.jsx +0 -321
  731. package/src/catalog/holes/door-closet/planner-element.jsx +0 -251
  732. package/src/catalog/holes/door-double/door_double.png +0 -0
  733. package/src/catalog/holes/door-double/planner-element.jsx +0 -391
  734. package/src/catalog/holes/door-exterior/planner-element.jsx +0 -245
  735. package/src/catalog/holes/door-interior/planner-element.jsx +0 -256
  736. package/src/catalog/holes/door-panic/panicDoor.png +0 -0
  737. package/src/catalog/holes/door-panic/planner-element.jsx +0 -594
  738. package/src/catalog/holes/door-panic-double/panicDoorDouble.png +0 -0
  739. package/src/catalog/holes/door-panic-double/planner-element.jsx +0 -574
  740. package/src/catalog/holes/door-sliding/planner-element.jsx +0 -256
  741. package/src/catalog/holes/doorway-framed/planner-element.jsx +0 -169
  742. package/src/catalog/holes/doorway-frameless/planner-element.jsx +0 -116
  743. package/src/catalog/holes/gate/gate.jpg +0 -0
  744. package/src/catalog/holes/window-clear/planner-element.jsx +0 -181
  745. package/src/catalog/holes/window-clear/texture.png +0 -0
  746. package/src/catalog/holes/window-cross/planner-element.jsx +0 -180
  747. package/src/catalog/holes/window-cross/texture.png +0 -0
  748. package/src/catalog/holes/window-double-hung/planner-element.jsx +0 -366
  749. package/src/catalog/holes/window-double-hung/texture.png +0 -0
  750. package/src/catalog/holes/window-vertical/planner-element.jsx +0 -290
  751. package/src/catalog/holes/window-vertical/texture.png +0 -0
  752. package/src/catalog/lines/wall/planner-element.jsx +0 -73
  753. package/src/catalog/lines/wall/textures/bricks-normal.jpg +0 -0
  754. package/src/catalog/lines/wall/textures/bricks-normal2.jpg +0 -0
  755. package/src/catalog/lines/wall/textures/bricks.jpg +0 -0
  756. package/src/catalog/lines/wall/textures/bricks2.jpg +0 -0
  757. package/src/catalog/lines/wall/textures/bricks3.jpg +0 -0
  758. package/src/catalog/lines/wall/textures/morden-normal.jpg +0 -0
  759. package/src/catalog/lines/wall/textures/morden.jpg +0 -0
  760. package/src/catalog/lines/wall/textures/painted-normal.jpg +0 -0
  761. package/src/catalog/lines/wall/textures/painted.jpg +0 -0
  762. package/src/catalog/lines/wall/textures/plaster-normal.jpg +0 -0
  763. package/src/catalog/lines/wall/textures/plaster.jpg +0 -0
  764. package/src/catalog/lines/wall/wall.png +0 -0
  765. package/src/catalog/molding/molding-dcm/planner-element.jsx +0 -35
  766. package/src/catalog/molding/molding-dcm/texture.png +0 -0
  767. package/src/catalog/molding/molding-fbm/planner-element.jsx +0 -35
  768. package/src/catalog/molding/molding-fbm/texture.png +0 -0
  769. package/src/catalog/molding/molding-lrm/planner-element.jsx +0 -35
  770. package/src/catalog/molding/molding-lrm/texture.png +0 -0
  771. package/src/catalog/properties/export.js +0 -33
  772. package/src/catalog/properties/property-checkbox.jsx +0 -123
  773. package/src/catalog/properties/property-color.jsx +0 -52
  774. package/src/catalog/properties/property-enum.jsx +0 -87
  775. package/src/catalog/properties/property-hidden.jsx +0 -22
  776. package/src/catalog/properties/property-lenght-measure.jsx +0 -113
  777. package/src/catalog/properties/property-length-measure.jsx +0 -129
  778. package/src/catalog/properties/property-length-measure_hole.jsx +0 -110
  779. package/src/catalog/properties/property-number.jsx +0 -63
  780. package/src/catalog/properties/property-read-only.jsx +0 -37
  781. package/src/catalog/properties/property-string.jsx +0 -59
  782. package/src/catalog/properties/property-toggle.jsx +0 -51
  783. package/src/catalog/properties/shared-property-style.js +0 -13
  784. package/src/catalog/utils/FuseUtils.js +0 -61
  785. package/src/catalog/utils/exporter.js +0 -173
  786. package/src/catalog/utils/geom-utils.js +0 -301
  787. package/src/catalog/utils/item-loader.jsx +0 -2122
  788. package/src/catalog/utils/load-obj.js +0 -113
  789. package/src/catalog/utils/mtl-loader.js +0 -462
  790. package/src/catalog/utils/obj-loader.js +0 -544
  791. package/src/catalog/windows.png +0 -0
  792. package/src/class/FuseUtils.js +0 -61
  793. package/src/class/area.js +0 -159
  794. package/src/class/export.js +0 -37
  795. package/src/class/group.js +0 -565
  796. package/src/class/guide.js +0 -44
  797. package/src/class/hole.js +0 -1359
  798. package/src/class/item.js +0 -2050
  799. package/src/class/layer.js +0 -926
  800. package/src/class/line.js +0 -1780
  801. package/src/class/project.js +0 -875
  802. package/src/class/vertex.js +0 -409
  803. package/src/components/atoms/Snackbar/index.jsx +0 -43
  804. package/src/components/atoms/radio-button/index.jsx +0 -20
  805. package/src/components/atoms/radio-button/styles.js +0 -56
  806. package/src/components/button/MainButton.jsx +0 -157
  807. package/src/components/button/ToggleMeasureButton.jsx +0 -65
  808. package/src/components/catalog-view/catalog-breadcrumb.jsx +0 -53
  809. package/src/components/catalog-view/catalog-item.jsx +0 -229
  810. package/src/components/catalog-view/catalog-list.jsx +0 -173
  811. package/src/components/catalog-view/catalog-page-item.jsx +0 -110
  812. package/src/components/catalog-view/catalog-turn-back-page-item.jsx +0 -80
  813. package/src/components/configurator/custom-configurator.jsx +0 -77
  814. package/src/components/configurator/project-configurator.jsx +0 -120
  815. package/src/components/content.jsx +0 -136
  816. package/src/components/export.js +0 -36
  817. package/src/components/firstsetting/button/styles.js +0 -223
  818. package/src/components/firstsetting/export.js +0 -9
  819. package/src/components/firstsetting/firstsetting-content-button.jsx +0 -198
  820. package/src/components/firstsetting/firstsetting-toggle-button.jsx +0 -101
  821. package/src/components/firstsetting/firstsetting.jsx +0 -814
  822. package/src/components/footerbar/button/ControlButton.jsx +0 -43
  823. package/src/components/footerbar/button/DirectionButton.jsx +0 -54
  824. package/src/components/footerbar/button/DirectionPanSpinButton.jsx +0 -36
  825. package/src/components/footerbar/button/ToggleButton.jsx +0 -58
  826. package/src/components/footerbar/button/ToggleConvertButton.jsx +0 -48
  827. package/src/components/footerbar/button/ToggleMeasureButton.jsx +0 -33
  828. package/src/components/footerbar/button/styles.js +0 -217
  829. package/src/components/footerbar/export.js +0 -9
  830. package/src/components/footerbar/footer-content-button.jsx +0 -198
  831. package/src/components/footerbar/footer-toggle-button.jsx +0 -101
  832. package/src/components/footerbar/footerbar.jsx +0 -1103
  833. package/src/components/footerbar/styles.js +0 -263
  834. package/src/components/header/button/MenuButton.jsx +0 -46
  835. package/src/components/header/button/SaveButton.jsx +0 -54
  836. package/src/components/header/button/styles.js +0 -181
  837. package/src/components/header/export.js +0 -5
  838. package/src/components/header/header.jsx +0 -631
  839. package/src/components/header/header.style.css +0 -47
  840. package/src/components/header/styles.js +0 -320
  841. package/src/components/login/Login.js +0 -77
  842. package/src/components/login/LoginForm/index.js +0 -108
  843. package/src/components/login/Register.js +0 -83
  844. package/src/components/login/RegisterForm/index.js +0 -171
  845. package/src/components/login/jwtService.js +0 -201
  846. package/src/components/login/style.css +0 -158
  847. package/src/components/login/style.scss +0 -260
  848. package/src/components/molecules/slider/index.jsx +0 -15
  849. package/src/components/molecules/slider/styles.js +0 -0
  850. package/src/components/molecules/slider/styles.scss +0 -3
  851. package/src/components/myprojects/export.js +0 -5
  852. package/src/components/myprojects/index.jsx +0 -445
  853. package/src/components/myprojects/styles.js +0 -241
  854. package/src/components/sidebar/custom-accordion.jsx +0 -48
  855. package/src/components/sidebar/export.js +0 -15
  856. package/src/components/sidebar/panel-element-editor/attributes-editor/attributes-editor.jsx +0 -73
  857. package/src/components/sidebar/panel-element-editor/attributes-editor/confirm-popup.jsx +0 -101
  858. package/src/components/sidebar/panel-element-editor/attributes-editor/hole-attributes-editor.jsx +0 -149
  859. package/src/components/sidebar/panel-element-editor/attributes-editor/item-attributes-editor.jsx +0 -316
  860. package/src/components/sidebar/panel-element-editor/attributes-editor/line-attributes-editor.jsx +0 -108
  861. package/src/components/sidebar/panel-element-editor/element-editor.jsx +0 -1070
  862. package/src/components/sidebar/panel-element-editor/multi-elements-editor.jsx +0 -0
  863. package/src/components/sidebar/panel-element-editor/panel-element-editor.jsx +0 -104
  864. package/src/components/sidebar/panel-element-editor/panel-multi-elements-editor.jsx +0 -155
  865. package/src/components/sidebar/panel-group-editor.jsx +0 -272
  866. package/src/components/sidebar/panel-groups.jsx +0 -310
  867. package/src/components/sidebar/panel-guides.jsx +0 -192
  868. package/src/components/sidebar/panel-layer-elements.jsx +0 -298
  869. package/src/components/sidebar/panel-layers.jsx +0 -381
  870. package/src/components/sidebar/panel.jsx +0 -71
  871. package/src/components/sidebar/sidebar.jsx +0 -106
  872. package/src/components/sidebar/toolbar-panel.jsx +0 -139
  873. package/src/components/sign/export.js +0 -7
  874. package/src/components/sign/main/index.jsx +0 -523
  875. package/src/components/sign/main/styles.js +0 -163
  876. package/src/components/style/button.jsx +0 -95
  877. package/src/components/style/cancel-button.jsx +0 -20
  878. package/src/components/style/content-container.jsx +0 -29
  879. package/src/components/style/content-title.jsx +0 -20
  880. package/src/components/style/delete-button.jsx +0 -23
  881. package/src/components/style/export.jsx +0 -48
  882. package/src/components/style/form-block.jsx +0 -13
  883. package/src/components/style/form-color-input.jsx +0 -27
  884. package/src/components/style/form-label.jsx +0 -15
  885. package/src/components/style/form-number-input.jsx +0 -196
  886. package/src/components/style/form-number-input_2.jsx +0 -191
  887. package/src/components/style/form-select.jsx +0 -38
  888. package/src/components/style/form-slider.jsx +0 -36
  889. package/src/components/style/form-submit-button.jsx +0 -23
  890. package/src/components/style/form-text-input.jsx +0 -65
  891. package/src/components/toolbar/button/ControlButton.jsx +0 -41
  892. package/src/components/toolbar/button/DirectionButton.jsx +0 -34
  893. package/src/components/toolbar/button/RightButton.jsx +0 -103
  894. package/src/components/toolbar/button/ToggleButton.jsx +0 -41
  895. package/src/components/toolbar/button/index.jsx +0 -55
  896. package/src/components/toolbar/button/styles.js +0 -127
  897. package/src/components/toolbar/components/DoorStyleMenu.jsx +0 -103
  898. package/src/components/toolbar/components/Pricing.jsx +0 -126
  899. package/src/components/toolbar/components/ReviewForQuote.jsx +0 -635
  900. package/src/components/toolbar/export.js +0 -21
  901. package/src/components/toolbar/main/Alert.js +0 -122
  902. package/src/components/toolbar/main/TakePictureModal.jsx +0 -104
  903. package/src/components/toolbar/main/confirm-popup.jsx +0 -99
  904. package/src/components/toolbar/main/index.jsx +0 -5687
  905. package/src/components/toolbar/main/lShaped.json +0 -311
  906. package/src/components/toolbar/main/longNarrow.json +0 -238
  907. package/src/components/toolbar/main/myComponents.js +0 -123
  908. package/src/components/toolbar/main/oRectangle.json +0 -220
  909. package/src/components/toolbar/main/rectangle.json +0 -238
  910. package/src/components/toolbar/main/style.css +0 -107
  911. package/src/components/toolbar/main/styles.js +0 -696
  912. package/src/components/toolbar/plugin-item.jsx +0 -123
  913. package/src/components/toolbar/popup/appliance/appliance-category/index.jsx +0 -73
  914. package/src/components/toolbar/popup/appliance/choose-appliance/index.jsx +0 -102
  915. package/src/components/toolbar/popup/appliance/index.jsx +0 -83
  916. package/src/components/toolbar/popup/autosaveprompt/index.jsx +0 -150
  917. package/src/components/toolbar/popup/autosaveprompt/styles.css +0 -64
  918. package/src/components/toolbar/popup/autosaveprompt/styles.js +0 -40
  919. package/src/components/toolbar/popup/cabinet/cabinet-category/index.jsx +0 -73
  920. package/src/components/toolbar/popup/cabinet/choose-product/index.jsx +0 -119
  921. package/src/components/toolbar/popup/cabinet/index.jsx +0 -85
  922. package/src/components/toolbar/popup/doorStyle/choose-style/index.jsx +0 -63
  923. package/src/components/toolbar/popup/doorStyle/index.jsx +0 -71
  924. package/src/components/toolbar/popup/doorStyle/style-category/index.jsx +0 -139
  925. package/src/components/toolbar/popup/downloadsummary/downloadSummaryContext.js +0 -2
  926. package/src/components/toolbar/popup/downloadsummary/downloadSummaryTemp.jsx +0 -157
  927. package/src/components/toolbar/popup/downloadsummary/index.jsx +0 -643
  928. package/src/components/toolbar/popup/downloadsummary/show2D/show2DView.jsx +0 -51
  929. package/src/components/toolbar/popup/downloadsummary/show2D/viewer2DDownLoad.jsx +0 -175
  930. package/src/components/toolbar/popup/downloadsummary/show3D/show3DView.jsx +0 -283
  931. package/src/components/toolbar/popup/downloadsummary/show3D/viewer3DDownLoad.jsx +0 -2257
  932. package/src/components/toolbar/popup/downloadsummary/showCabinetInfo.js +0 -93
  933. package/src/components/toolbar/popup/downloadsummary/showElevation/showElevationView.jsx +0 -132
  934. package/src/components/toolbar/popup/downloadsummary/showElevation/viewer3DElevationDownload.jsx +0 -2198
  935. package/src/components/toolbar/popup/downloadsummary/showElevation/viewerElevationDownload.jsx +0 -152
  936. package/src/components/toolbar/popup/downloadsummary/showWarranty.jsx +0 -149
  937. package/src/components/toolbar/popup/downloadsummary/styles.css +0 -177
  938. package/src/components/toolbar/popup/downloadsummary/styles.js +0 -453
  939. package/src/components/toolbar/popup/finishingtouch/category/index.jsx +0 -34
  940. package/src/components/toolbar/popup/finishingtouch/index.jsx +0 -58
  941. package/src/components/toolbar/popup/finishingtouch/material-edit.jsx +0 -112
  942. package/src/components/toolbar/popup/finishingtouch/product/index.jsx +0 -116
  943. package/src/components/toolbar/popup/floorplan/choose-floor/confirm-popup.jsx +0 -101
  944. package/src/components/toolbar/popup/floorplan/choose-floor/index.jsx +0 -254
  945. package/src/components/toolbar/popup/floorplan/choose-floor/lShaped.json +0 -311
  946. package/src/components/toolbar/popup/floorplan/choose-floor/longNarrow.json +0 -238
  947. package/src/components/toolbar/popup/floorplan/choose-floor/oRectangle.json +0 -220
  948. package/src/components/toolbar/popup/floorplan/choose-floor/rectangle.json +0 -238
  949. package/src/components/toolbar/popup/floorplan/choose-floor/styles.js +0 -86
  950. package/src/components/toolbar/popup/floorplan/floor-category/index.jsx +0 -109
  951. package/src/components/toolbar/popup/floorplan/index.jsx +0 -60
  952. package/src/components/toolbar/popup/index.jsx +0 -241
  953. package/src/components/toolbar/popup/newproject/index.jsx +0 -59
  954. package/src/components/toolbar/popup/newproject/styles.css +0 -64
  955. package/src/components/toolbar/popup/newproject/styles.js +0 -41
  956. package/src/components/toolbar/popup/product/appliance.jsx +0 -54
  957. package/src/components/toolbar/popup/product/cabinetproduct.jsx +0 -15
  958. package/src/components/toolbar/popup/product/doorstyle.jsx +0 -58
  959. package/src/components/toolbar/popup/product/doorstyleproduct.jsx +0 -47
  960. package/src/components/toolbar/popup/product/floor.jsx +0 -36
  961. package/src/components/toolbar/popup/product/floorproduct.jsx +0 -42
  962. package/src/components/toolbar/popup/product/index.jsx +0 -36
  963. package/src/components/toolbar/popup/product/primary.jsx +0 -77
  964. package/src/components/toolbar/popup/product/productline.jsx +0 -93
  965. package/src/components/toolbar/popup/product/reviewItem.jsx +0 -427
  966. package/src/components/toolbar/popup/product/reviewMolding.jsx +0 -310
  967. package/src/components/toolbar/popup/product/style.css +0 -54
  968. package/src/components/toolbar/popup/product/styles.js +0 -260
  969. package/src/components/toolbar/popup/savedesign/FullPictureForm.jsx +0 -146
  970. package/src/components/toolbar/popup/savedesign/index.jsx +0 -495
  971. package/src/components/toolbar/popup/savedesign/savedesign.style.css +0 -16
  972. package/src/components/toolbar/popup/savedesign/styles.js +0 -151
  973. package/src/components/toolbar/popup/setDoorStyleOption/index.jsx +0 -87
  974. package/src/components/toolbar/popup/styles.js +0 -909
  975. package/src/components/toolbar/popup/submitforquote/AddToCartOptions.jsx +0 -192
  976. package/src/components/toolbar/popup/submitforquote/CustomerRequestsForm.jsx +0 -96
  977. package/src/components/toolbar/popup/submitforquote/SkipDesignerReview.jsx +0 -54
  978. package/src/components/toolbar/popup/submitforquote/StepDots.jsx +0 -25
  979. package/src/components/toolbar/popup/submitforquote/cart-choice.jsx +0 -116
  980. package/src/components/toolbar/popup/submitforquote/doorstyle-menus.js +0 -38
  981. package/src/components/toolbar/popup/submitforquote/index.jsx +0 -698
  982. package/src/components/toolbar/popup/submitforquote/styles.css +0 -105
  983. package/src/components/toolbar/popup/submitforquote/styles.js +0 -294
  984. package/src/components/toolbar/popup/submitprompt/index.jsx +0 -89
  985. package/src/components/toolbar/popup/submitprompt/styles.css +0 -64
  986. package/src/components/toolbar/popup/submitprompt/styles.js +0 -42
  987. package/src/components/toolbar/toolbar-button.jsx +0 -90
  988. package/src/components/toolbar/toolbar-load-button.jsx +0 -36
  989. package/src/components/toolbar/toolbar-save-button.jsx +0 -32
  990. package/src/components/tutorial-view/Modal.jsx +0 -584
  991. package/src/components/tutorial-view/style.css +0 -111
  992. package/src/components/tutorial-view/styles.js +0 -65
  993. package/src/components/viewer2d/area.jsx +0 -98
  994. package/src/components/viewer2d/export.js +0 -48
  995. package/src/components/viewer2d/grids/grid-horizontal-streak.jsx +0 -40
  996. package/src/components/viewer2d/grids/grid-streak.jsx +0 -32
  997. package/src/components/viewer2d/grids/grid-vertical-streak.jsx +0 -41
  998. package/src/components/viewer2d/grids/grids.jsx +0 -30
  999. package/src/components/viewer2d/group.jsx +0 -57
  1000. package/src/components/viewer2d/item.jsx +0 -618
  1001. package/src/components/viewer2d/layer.jsx +0 -214
  1002. package/src/components/viewer2d/line.jsx +0 -1358
  1003. package/src/components/viewer2d/ruler.jsx +0 -136
  1004. package/src/components/viewer2d/rulerDist.jsx +0 -192
  1005. package/src/components/viewer2d/rulerX.jsx +0 -141
  1006. package/src/components/viewer2d/rulerY.jsx +0 -138
  1007. package/src/components/viewer2d/scene.jsx +0 -94
  1008. package/src/components/viewer2d/snap.jsx +0 -118
  1009. package/src/components/viewer2d/state.jsx +0 -77
  1010. package/src/components/viewer2d/utils.js +0 -195
  1011. package/src/components/viewer2d/vertex.jsx +0 -76
  1012. package/src/components/viewer2d/viewer2d.jsx +0 -1830
  1013. package/src/components/viewer3d/camera-controls-module/camera-controls.module.js +0 -3078
  1014. package/src/components/viewer3d/dcm.js +0 -226
  1015. package/src/components/viewer3d/fbm.js +0 -383
  1016. package/src/components/viewer3d/front3D.jsx +0 -63
  1017. package/src/components/viewer3d/grid-creator.js +0 -25
  1018. package/src/components/viewer3d/grids/grid-horizontal-streak.js +0 -41
  1019. package/src/components/viewer3d/grids/grid-streak.js +0 -34
  1020. package/src/components/viewer3d/grids/grid-vertical-streak.js +0 -42
  1021. package/src/components/viewer3d/libs/first-person-controls.js +0 -70
  1022. package/src/components/viewer3d/libs/helvetiker_regular.typeface.js +0 -1265
  1023. package/src/components/viewer3d/libs/mtl-loader.js +0 -462
  1024. package/src/components/viewer3d/libs/obj-loader.js +0 -653
  1025. package/src/components/viewer3d/libs/orbit-controls.js +0 -945
  1026. package/src/components/viewer3d/libs/pointer-lock-controls.js +0 -67
  1027. package/src/components/viewer3d/lrm.js +0 -358
  1028. package/src/components/viewer3d/model.js +0 -830
  1029. package/src/components/viewer3d/pointer-lock-navigation.js +0 -140
  1030. package/src/components/viewer3d/ruler-utils/itemRect.jsx +0 -91
  1031. package/src/components/viewer3d/ruler-utils/layer3D.jsx +0 -528
  1032. package/src/components/viewer3d/ruler-utils/ruler3D.jsx +0 -218
  1033. package/src/components/viewer3d/ruler-utils/scene3D.jsx +0 -87
  1034. package/src/components/viewer3d/ruler-utils/state3D.jsx +0 -25
  1035. package/src/components/viewer3d/scene-creator.js +0 -5172
  1036. package/src/components/viewer3d/three-memory-cleaner.js +0 -65
  1037. package/src/components/viewer3d/viewer3d-first-person.js +0 -395
  1038. package/src/components/viewer3d/viewer3d.js +0 -3376
  1039. package/src/components/wizardstep/button/styles.js +0 -677
  1040. package/src/components/wizardstep/export.js +0 -5
  1041. package/src/components/wizardstep/index.jsx +0 -1372
  1042. package/src/components/wizardstep/styles.js +0 -688
  1043. package/src/components/wizardstep/wizardstep-content-button.jsx +0 -198
  1044. package/src/components/wizardstep/wizardstep-toggle-button.jsx +0 -101
  1045. package/src/constants.js +0 -731
  1046. package/src/hooks/useCheckCart.js +0 -38
  1047. package/src/hooks/useGetPricesBySku.js +0 -59
  1048. package/src/hooks/useValidateToken.js +0 -181
  1049. package/src/index.js +0 -32
  1050. package/src/models.js +0 -541
  1051. package/src/plugins/SVGLoader.js +0 -1991
  1052. package/src/plugins/autosave.js +0 -39
  1053. package/src/plugins/console-debugger.js +0 -36
  1054. package/src/plugins/export.js +0 -11
  1055. package/src/plugins/keyboard.js +0 -194
  1056. package/src/reducers/areas-reducer.js +0 -13
  1057. package/src/reducers/export.js +0 -39
  1058. package/src/reducers/groups-reducer.js +0 -73
  1059. package/src/reducers/holes-reducer.js +0 -125
  1060. package/src/reducers/items-reducer.js +0 -286
  1061. package/src/reducers/lines-reducer.js +0 -96
  1062. package/src/reducers/project-reducer.js +0 -239
  1063. package/src/reducers/reducer.js +0 -59
  1064. package/src/reducers/scene-reducer.js +0 -41
  1065. package/src/reducers/user-reducer.js +0 -30
  1066. package/src/reducers/vertices-reducer.js +0 -34
  1067. package/src/reducers/viewer2d-reducer.js +0 -81
  1068. package/src/reducers/viewer3d-reducer.js +0 -65
  1069. package/src/shared-style.js +0 -72
  1070. package/src/styles/export.js +0 -7
  1071. package/src/styles/tabs.css +0 -40
  1072. package/src/translator/en.js +0 -106
  1073. package/src/translator/it.js +0 -80
  1074. package/src/translator/ru.js +0 -80
  1075. package/src/translator/translator.js +0 -81
  1076. package/src/utils/browser.js +0 -36
  1077. package/src/utils/email-validator.js +0 -5
  1078. package/src/utils/export.js +0 -39
  1079. package/src/utils/geometry.js +0 -2572
  1080. package/src/utils/get-edges-of-subgraphs.js +0 -29
  1081. package/src/utils/graph-cycles.js +0 -259
  1082. package/src/utils/graph-inner-cycles.js +0 -49
  1083. package/src/utils/graph.js +0 -147
  1084. package/src/utils/helper.js +0 -431
  1085. package/src/utils/history.js +0 -37
  1086. package/src/utils/id-broker.js +0 -9
  1087. package/src/utils/logger.js +0 -8
  1088. package/src/utils/math.js +0 -51
  1089. package/src/utils/molding.js +0 -973
  1090. package/src/utils/name-generator.js +0 -5
  1091. package/src/utils/objects-utils.js +0 -56
  1092. package/src/utils/phone-validator.js +0 -4
  1093. package/src/utils/process-black-list.js +0 -10
  1094. package/src/utils/react-if.jsx +0 -20
  1095. package/src/utils/snap-scene.js +0 -102
  1096. package/src/utils/snap.js +0 -184
  1097. package/src/utils/threeCSG.es6.js +0 -578
  1098. package/src/version.js +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"item-loader.js","names":["_convertUnits","_interopRequireDefault","require","_immutable","_react","_interopRequireWildcard","Three","SceneCreator","_constants","_models","GeomUtils","_loadObj","_helper","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","_typeof","has","get","set","_t2","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","Symbol","iterator","constructor","prototype","ownKeys","keys","getOwnPropertySymbols","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","value","configurable","writable","_toPrimitive","toPrimitive","TypeError","String","Number","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","a","_arrayLikeToArray","toString","slice","name","Array","from","test","l","u","next","done","isArray","paramsCounter","envMap","roughness","metalness","exposure","params","metalness_glossy","paramsModel","cachedObject","render2DItem","element","layer","scene","sizeinfo","layoutpos","is_corner","shape_svg","_useState","useState","_useState2","hover","setHover","x","y","rotation","el_DSN","doorStylesKeys","_element","toJS","doorStyle","undefined","doorStyles","includes","is_euro_cds","door_style_name","width","depth","el_euro_length","el_euro_width","el_euro_length_unit","el_euro_width_unit","el_is_euro_cds","el_euro_shape_svg","euro_length","euro_width","euro_shape_svg","tempWidth","properties","tempDepth","unit","originalWidth","convert","to","originalDepth","newWidth","newDepth","padding","SHAPE_SVG_PADDING","UNIT_INCH","UNIT_CENTIMETER","angle","textRotation","Math","sin","PI","color","BASE_CABINET_LAYOUTPOS","TALL_CABINET_LAYOUTPOS","WALL_CABINET_LAYOUTPOS","splitStr","txtContent","lineCount","rowCount","type","objSKU","obj","sku_number","dcId","Map","id","skuItem","skuArray","find","el","door_color_id","sku","key","createElement","dy","transform","concat","style","fontWeight","fontSize","textAnchor","fill","display","stroke","selected","strokeWidth","rendered","svg_url","svg_width","svg_depth","url","SHAPE_SVG_WIDTH","SHAPE_SVG_DEPTH","padding_width","padding_depth","onMouseOver","event","onMouseOut","preserveAspectRatio","pointerEvents","href","height","visibility","cds","cd","itemID","getIn","opacity","postion","STATUS_WARNING_LIGHT_COLOR","STATUS_WARNING_COLOR","points","loadTexture","texture","TextureLoader","load","colorSpace","SRGBColorSpace","wrapS","MirroredRepeatWrapping","wrapT","applyTexture","material","map","needsUpdate","RepeatWrapping","repeat","normal","normalMap","uri","normalScale","Vector2","normalScaleX","normalScaleY","lengthRepeatScale","heightRepeatScale","assignUVs","geometry","computeBoundingBox","_geometry$boundingBox","boundingBox","min","max","offset","Vector3","z","range","faceVertexUvs","faces","face","v1","vertices","v2","b","v3","c","uvsNeedUpdate","render3DItem","structure_json","mode","fromJS","handle_gltf","setIn","newHeight","mainName","structure","model","placeholders","glossness","handleMaterial","counterTop","tempDoorStyles","tempPlaceholders","tPlaceholders","cabinet_door_style_id","tempStructure","animation","userData","onLoadItem","object","areaMaterial","MeshStandardMaterial","side","DoubleSide","interiortexture","object1","newAltitude","newUnit","scale","baseBox3FromObject","door_animate_offset","matchStr","children","child","door_match","match","_child$children$","rotate_match_text","flip_doorhandle","isDoubleDoor","it","_it$name","_it$children","_child$name","_child$name2","_object1$children","_t0$name","_t0$children","tname","endsWith","replace","tmp","item","t0","filterStr","tposArr","_item$name","tpos0","_it$position$x","_it$position","_it$position$y","_it$position2","_tpos0$position$x","_tpos0$position","position","isCorner","_it$position$x2","_it$position3","_it$position$y2","_it$position4","_tpos0$position$x2","_tpos0$position2","center","scalevec","posVec","radius","sqrt","moveBox","BoxGeometry","controlGeom","rotGeom","rotGeoms","upwardsGeom","vLineGeom","BufferGeometry","setAttribute","BufferAttribute","Float32Array","vLineGeom1","vertices1","vLineGeom2","vertices2","vLineGeom3","vertices3","rotFillObj","Mesh","rotFill","MeshPhongMaterial","Color","convertLinearToSRGB","colorWrite","rotStrokeObj","Line","rotStroke","LineBasicMaterial","upObj","MeshBasicMaterial","mBox","transparent","SHADE_DARK_PURPLE_COLOR","vLine","vLine1","vLine2","vLine3","renderOrder","depthTest","uVec","translateY","translateOnAxis","rotFillObj1","clone","rotStrokeObj1","rotateY","asrtObj","Group","add","visible","setTimeout","getDistances","updateDoorHandleMesh","traverse","OBJTYPE_MESH","MeshPhysicalMaterial","transmission","thickness","transparency","startsWith","reflectivity","open_doors","object_match","isDoor","offsetData","animateDoor","translateDrawer","JSON","stringify","objGroup","Promise","resolve","loadGLTFs","phsArray","placeholderStructure","j","phData","phs","split","temp","k","placeholderphs","floor","splitedData","m","unshift","indexOf","uData","datas","urlData","submodule","size","replaceUrlData","normalMapData","loadUrl","loadGLTF","then","normalUrl","mat2","receiveShadow","examplecolor","parseInt","castShadow","addEdgesToMesh","OBJTYPE_GROUP","prim","parent","placeholder","_parent","rotateZ","reason","console","log","error","countTopMap","interiorMap","countT","mat3","mat4","emptyBoxHolder","render3DApplianceItem","applianceMaterial","newWidthUnit","newHeightUnit","newDepthUnit","Box3","setFromObject","textureLoader","mat","ARROW_COLOR","emissive","render3DLightingItem","objectHeight","objectYPos","inChild","boxEdge","EdgesGeometry","boxEdgeMaterial","boxEdgeLine","LineSegments"],"sources":["../../../src/catalog/utils/item-loader.jsx"],"sourcesContent":["import convert from 'convert-units';\r\nimport { fromJS, Map } from 'immutable';\r\nimport React, { useState } from 'react';\r\nimport * as Three from 'three';\r\nimport * as SceneCreator from '../../../src/components/viewer3d/scene-creator';\r\nimport {\r\n ARROW_COLOR,\r\n BASE_CABINET_LAYOUTPOS,\r\n OBJTYPE_GROUP,\r\n OBJTYPE_MESH,\r\n SHADE_DARK_PURPLE_COLOR,\r\n SHAPE_SVG_DEPTH,\r\n SHAPE_SVG_PADDING,\r\n SHAPE_SVG_WIDTH,\r\n STATUS_WARNING_COLOR,\r\n STATUS_WARNING_LIGHT_COLOR,\r\n TALL_CABINET_LAYOUTPOS,\r\n UNIT_CENTIMETER,\r\n UNIT_INCH,\r\n WALL_CABINET_LAYOUTPOS\r\n} from '../../../src/constants';\r\nimport { Item } from '../../../src/models';\r\nimport * as GeomUtils from './geom-utils';\r\nimport { loadGLTF } from './load-obj';\r\nimport { animateDoor, translateDrawer } from '../../../src/utils/helper';\r\n\r\n// env Map ///////////////\r\nconst paramsCounter = {\r\n envMap: 'HDR',\r\n roughness: 0.6,\r\n metalness: 0.3,\r\n exposure: 1\r\n // debug: true\r\n};\r\nconst params = {\r\n envMap: 'HDR',\r\n roughness: 0.9,\r\n metalness: 0.1,\r\n metalness_glossy: 0.2,\r\n exposure: 1.0\r\n // debug: false\r\n};\r\n\r\nconst paramsModel = {\r\n envMap: 'HDR',\r\n roughness: 0.9,\r\n metalness: 0.2,\r\n exposure: 1.0\r\n // debug: false\r\n};\r\n\r\n// /////////////////////////\r\n\r\nlet cachedObject = {}; // cached Object for quickly load-3d\r\n\r\n// render 2d function//////\r\nexport function render2DItem(\r\n element,\r\n layer,\r\n scene,\r\n sizeinfo,\r\n layoutpos,\r\n is_corner,\r\n shape_svg\r\n) {\r\n const [hover, setHover] = useState(false);\r\n let { x, y, rotation } = element;\r\n let el_DSN = 'el_DSN',\r\n doorStylesKeys = [];\r\n let _element = element.toJS();\r\n if (_element.doorStyle !== undefined) {\r\n if (_element.doorStyle.doorStyles !== undefined) {\r\n doorStylesKeys = Object.keys(_element.doorStyle.doorStyles);\r\n }\r\n }\r\n if (\r\n (doorStylesKeys.includes('euro_length') ||\r\n doorStylesKeys.includes('euro_width') ||\r\n doorStylesKeys.includes('euro_shape_svg')) &&\r\n _element.doorStyle.doorStyles.is_euro_cds\r\n ) {\r\n el_DSN = _element.doorStyle.door_style_name;\r\n } else {\r\n el_DSN = 'el_DSN';\r\n }\r\n let width,\r\n depth,\r\n el_euro_length,\r\n el_euro_width,\r\n el_euro_length_unit,\r\n el_euro_width_unit,\r\n el_is_euro_cds,\r\n el_euro_shape_svg;\r\n if (doorStylesKeys.length > 0) {\r\n el_euro_length = _element.doorStyle.doorStyles.euro_length;\r\n el_euro_width = _element.doorStyle.doorStyles.euro_width;\r\n el_is_euro_cds = _element.doorStyle.doorStyles.is_euro_cds;\r\n el_euro_shape_svg = _element.doorStyle.doorStyles.euro_shape_svg;\r\n }\r\n if (el_euro_length === undefined && el_euro_width === undefined) {\r\n el_DSN = 'el_DSN';\r\n }\r\n if (el_DSN === 'Euro & Frameless') {\r\n // sizeinfo[\"depth\"] = el_euro_length;\r\n // sizeinfo[\"width\"] = el_euro_width;\r\n }\r\n let tempWidth = element.properties.get('width');\r\n let tempDepth = element.properties.get('depth');\r\n width = tempWidth && {\r\n length: tempWidth.get('_length'),\r\n unit: tempWidth.get('_unit')\r\n };\r\n depth = tempDepth && {\r\n length: tempDepth.get('_length'),\r\n unit: tempDepth.get('_unit')\r\n };\r\n let originalWidth = convert(sizeinfo.width).from('in').to('cm');\r\n let originalDepth = convert(sizeinfo.depth).from('in').to('cm');\r\n let newWidth = convert(width.length).from(width.unit).to('cm');\r\n let newDepth = convert(depth.length).from(depth.unit).to('cm');\r\n let padding = convert(SHAPE_SVG_PADDING).from(UNIT_INCH).to(UNIT_CENTIMETER);\r\n let angle = element.rotation + 90;\r\n let textRotation = 0;\r\n if (Math.sin((angle * Math.PI) / 180) < 0) {\r\n textRotation = 180;\r\n }\r\n let color = '#eee';\r\n if (layoutpos == BASE_CABINET_LAYOUTPOS) {\r\n color = '#3f8db3';\r\n }\r\n if (layoutpos == TALL_CABINET_LAYOUTPOS) {\r\n color = '#93b3be';\r\n }\r\n if (layoutpos == WALL_CABINET_LAYOUTPOS) {\r\n color = '#48b08dcc';\r\n }\r\n\r\n const splitStr = [];\r\n const txtContent = [];\r\n const lineCount = 0; //parseInt(((newWidth) / 8 - 0.51).toFixed(), 10) - 1;\r\n const rowCount = 0; //parseInt((element.type.length / lineCount - 0.51).toFixed(), 10);\r\n\r\n // Get type\r\n let type = element.type;\r\n let objSKU = this.obj.sku_number;\r\n if (objSKU.length !== 0) {\r\n let dcId,\r\n doorStyle = element.doorStyle;\r\n if (doorStyle instanceof Map) {\r\n dcId = doorStyle.get('id');\r\n } else {\r\n dcId = doorStyle.id;\r\n }\r\n let skuItem = this.obj.skuArray.find(el => el.door_color_id === dcId);\r\n if (skuItem !== undefined) {\r\n type = skuItem.sku;\r\n }\r\n }\r\n\r\n if (rowCount > 0) {\r\n for (let x = 0; x < rowCount; x++) {\r\n splitStr.push(type.slice(lineCount * x, lineCount * (x + 1)));\r\n }\r\n }\r\n splitStr.push(type.slice(lineCount * rowCount));\r\n splitStr.forEach((el, key) => {\r\n txtContent.push(\r\n <text\r\n key={'text' + key}\r\n x=\"0\"\r\n y={newDepth / 2 - 12}\r\n dy={16 * key}\r\n transform={`translate(${newWidth / 2}, ${\r\n newDepth / 2 + 5\r\n }) scale(1,-1) rotate(${textRotation})`}\r\n // textLength={newWidth - 10}\r\n // lengthAdjust=\"spacingAndGlyphs\"\r\n style={{\r\n fontWeight: 500,\r\n fontSize: '7px',\r\n textAnchor: 'middle',\r\n fill: '#FFF',\r\n display: 'block'\r\n }}\r\n >\r\n {el}\r\n </text>\r\n );\r\n });\r\n let style = {\r\n stroke: element.selected ? '#565658' : '#565658',\r\n strokeWidth: '2px',\r\n fill: color\r\n };\r\n // let arrow_style = { stroke: element.selected ? '#0096fd' : null, strokeWidth: \"2px\", fill: \"#84e1ce\" };\r\n\r\n let rendered = null;\r\n\r\n if (shape_svg || el_euro_shape_svg) {\r\n let svg_url, svg_width, svg_depth;\r\n if (typeof shape_svg == 'string' || typeof el_euro_shape_svg == 'string') {\r\n if (el_DSN === 'Euro & Frameless' && el_is_euro_cds) {\r\n svg_url = el_euro_shape_svg;\r\n svg_width = newWidth;\r\n svg_depth = newDepth;\r\n } else {\r\n svg_url = shape_svg;\r\n svg_width = originalWidth;\r\n svg_depth = originalDepth;\r\n }\r\n } else {\r\n // if (el_DSN === \"Euro & Frameless\" && el_is_euro_cds) {\r\n // // svg_url = el_euro_shape_svg.url;\r\n // } else {\r\n // }\r\n svg_url = shape_svg.url;\r\n svg_width = convert(SHAPE_SVG_WIDTH).from(UNIT_INCH).to(UNIT_CENTIMETER);\r\n svg_depth = convert(SHAPE_SVG_DEPTH).from(UNIT_INCH).to(UNIT_CENTIMETER);\r\n }\r\n\r\n let padding_width = (padding * newWidth) / svg_width;\r\n let padding_depth = (padding * newDepth) / svg_depth;\r\n\r\n rendered = (\r\n <g\r\n onMouseOver={event => {\r\n setHover(true);\r\n }}\r\n onMouseOut={event => {\r\n setHover(false);\r\n }}\r\n transform={`translate(${x},${y})`}\r\n >\r\n <g transform={`rotate(${rotation})`}>\r\n <g\r\n transform={`translate(${-newWidth / 2 - padding_width},${\r\n -newDepth / 2 - padding_depth\r\n })`}\r\n >\r\n <image\r\n preserveAspectRatio=\"none\"\r\n style={{ pointerEvents: 'none' }}\r\n href={svg_url}\r\n width={`${newWidth + 2 * padding_width}`}\r\n height={`${newDepth + 2 * padding_depth}`}\r\n transform={`scale(1, -1)`}\r\n x=\"0\"\r\n y={`${-newDepth - 2 * padding_depth}`}\r\n />\r\n <rect\r\n x={`${padding_width}`}\r\n y={`${padding_depth}`}\r\n width={`${newWidth}`}\r\n height={`${newDepth}`}\r\n visibility={\r\n element.toJS().doorStyle.doorStyles !== undefined\r\n ? element.toJS().doorStyle.doorStyles &&\r\n element.toJS().doorStyle.doorStyles.cds &&\r\n element.toJS().doorStyle.doorStyles.cds.length != 0 &&\r\n element\r\n .toJS()\r\n .doorStyle.doorStyles.cds.filter(\r\n cd => cd.itemID == element.getIn(['itemID'])\r\n )\r\n ? 'hidden'\r\n : 'visible'\r\n : 'hidden'\r\n }\r\n style={{\r\n pointerEvents: 'all',\r\n opacity: 0.7,\r\n postion: 'relative'\r\n }}\r\n fill={STATUS_WARNING_LIGHT_COLOR}\r\n stroke={STATUS_WARNING_COLOR}\r\n strokeWidth=\"2px\"\r\n ></rect>\r\n <g transform={`translate(${padding_width},${padding_depth})`}>\r\n {txtContent}\r\n </g>\r\n </g>\r\n </g>\r\n </g>\r\n );\r\n } else {\r\n rendered = (\r\n <g\r\n onMouseOver={event => {\r\n setHover(true);\r\n }}\r\n onMouseOut={event => {\r\n setHover(false);\r\n }}\r\n transform={`translate(${x},${y})`}\r\n >\r\n <g transform={`rotate(${rotation})`}>\r\n <g transform={`translate(${-newWidth / 2},${-newDepth / 2})`}>\r\n {newDepth > 15 ? (\r\n [\r\n <rect\r\n key=\"base\"\r\n x=\"0\"\r\n y=\"12\"\r\n width={newWidth}\r\n height={newDepth - 12}\r\n style={style}\r\n />,\r\n <polygon\r\n key=\"door\"\r\n style={style}\r\n points={`0,9 ${newWidth},9 ${newWidth},6 ${newWidth - 5},6 ${\r\n newWidth - 5\r\n },3 ${newWidth - 2},3 ${newWidth - 2} 0 ${newWidth - 10} 0 ${\r\n newWidth - 10\r\n },3 ${newWidth - 7},3 ${newWidth - 7},6 0 6`}\r\n />\r\n ]\r\n ) : (\r\n <rect\r\n key=\"base\"\r\n x=\"0\"\r\n y=\"0\"\r\n width={newWidth}\r\n height={newDepth}\r\n style={style}\r\n />\r\n )}\r\n {/* {<text key=\"text\"\r\n x=\"0\"\r\n y=\"0\"\r\n // dx=\"10\"\r\n // dy=\"10\"\r\n transform={`translate(${newWidth / 2}, ${newDepth / 2 + 5}) scale(1,-1) rotate(${textRotation})`}\r\n // textLength={newWidth - 10}\r\n // lengthAdjust=\"spacingAndGlyphs\"\r\n style={{ fontWeight:800, fontSize:'16px', textAnchor: \"middle\", fill:'#FFF', display: hover || element.selected? 'block' : 'none'}}>\r\n {element.type}\r\n </text>} */}\r\n {txtContent}\r\n {/* { element.selected &&\r\n (<g key=\"duplicated\" style={{cursor:'pointer'}}>\r\n <image transform={`scale(1,-1)`} href=\"/assets/img/svg/duplicate_object_left.svg\" x={-10} y={-newDepth/2 - 15} height=\"20\" width=\"20\" />\r\n <image transform={`scale(1,-1)`} href=\"/assets/img/svg/duplicate_object_right.svg\" x={newWidth - 10} y={-newDepth / 2 - 15} height=\"20\" width=\"20\" />\r\n </g>)\r\n } */}\r\n </g>\r\n </g>\r\n {/* { element.selected &&\r\n (\r\n <g key=\"action\" transform={`translate(${-newWidth / 2},${newDepth / 2})`} style={{cursor:'pointer'}}>\r\n <image transform={`rotate(180, 10 ,15) `} href=\"/assets/img/svg/2d_delete_object1.svg\" x=\"0\" y=\"5\" height=\"20\" width=\"20\" data-part='remove'/>\r\n <image transform={`rotate(180, ${newWidth - 10} ,15)`} href=\"/assets/img/svg/duplicate_object_right.svg\" x={newWidth-20} y=\"5\" height=\"20\" width=\"20\" data-part='duplicate'/>\r\n </g>\r\n )\r\n } */}\r\n </g>\r\n );\r\n }\r\n\r\n return rendered;\r\n}\r\n// end of render 2d function /////////////////////////\r\n\r\nexport function loadTexture(url) {\r\n let texture = new Three.TextureLoader().load(url);\r\n texture.colorSpace = Three.SRGBColorSpace;\r\n texture.wrapS = Three.MirroredRepeatWrapping;\r\n texture.wrapT = Three.MirroredRepeatWrapping;\r\n return texture;\r\n}\r\n\r\nconst applyTexture = (material, texture, length, height) => {\r\n if (texture) {\r\n material.map = texture;\r\n material.needsUpdate = true;\r\n material.map.wrapS = Three.RepeatWrapping;\r\n material.map.wrapT = Three.RepeatWrapping;\r\n material.map.repeat.set(length * 0.01, height * 0.01);\r\n\r\n if (texture.normal) {\r\n material.normalMap = loadTexture(texture.normal.uri);\r\n material.normalScale = new Vector2(\r\n texture.normal.normalScaleX,\r\n texture.normal.normalScaleY\r\n );\r\n material.normalMap.wrapS = Three.RepeatWrapping;\r\n material.normalMap.wrapT = Three.RepeatWrapping;\r\n material.normalMap.repeat.set(\r\n length * texture.normal.lengthRepeatScale,\r\n height * texture.normal.heightRepeatScale\r\n );\r\n }\r\n }\r\n};\r\n\r\nconst assignUVs = geometry => {\r\n geometry.computeBoundingBox();\r\n\r\n let { min, max } = geometry.boundingBox;\r\n\r\n let offset = new Three.Vector3(0 - min.x, 0 - min.y, 0 - min.z);\r\n let range = new Three.Vector3(max.x - min.x, max.y - min.y, max.z - min.z);\r\n geometry.faceVertexUvs[0] = geometry.faces.map(face => {\r\n let v1 = geometry.vertices[face.a];\r\n let v2 = geometry.vertices[face.b];\r\n let v3 = geometry.vertices[face.c];\r\n\r\n return [\r\n new Three.Vector3(\r\n (v1.x + offset.x) / range.x,\r\n (v1.y + offset.y) / range.y,\r\n (v1.z + offset.z) / range.z\r\n ),\r\n new Three.Vector3(\r\n (v2.x + offset.x) / range.x,\r\n (v2.y + offset.y) / range.y,\r\n (v1.z + offset.z) / range.z\r\n ),\r\n new Three.Vector3(\r\n (v3.x + offset.x) / range.x,\r\n (v3.y + offset.y) / range.y,\r\n (v1.z + offset.z) / range.z\r\n )\r\n ];\r\n });\r\n\r\n geometry.uvsNeedUpdate = true;\r\n};\r\n\r\n/**\r\n * Render 3D Item\r\n * @param {Item} element Rendering item\r\n * @param sizeinfo Dimesion of the item\r\n * @param structure_json Structure of the item such as place holders and meshes, etc\r\n */\r\nexport function render3DItem(\r\n element,\r\n layer,\r\n scene,\r\n sizeinfo,\r\n structure_json,\r\n is_corner,\r\n mode = null\r\n) {\r\n if (element.doorStyle.constructor !== Map) {\r\n element = element.set('doorStyle', fromJS(element.doorStyle));\r\n }\r\n\r\n if (element.doorStyle.toJS().handle_gltf !== '') {\r\n // Check element has doorHandle\r\n for (var i = 1; i < 10; i++) {\r\n element = element.setIn(\r\n ['doorStyle', 'doorStyles', 'door_handle_' + i + '_gltf'],\r\n element.doorStyle.toJS().handle_gltf\r\n );\r\n element = element.setIn(\r\n ['doorStyle', 'doorStyles', 'fixed_drawer_door_handle_' + i + '_gltf'],\r\n element.doorStyle.toJS().handle_gltf\r\n );\r\n element = element.setIn(\r\n ['doorStyle', 'doorStyles', 'drawer_door_handle_' + i + '_gltf'],\r\n element.doorStyle.toJS().handle_gltf\r\n );\r\n }\r\n }\r\n let width = { length: sizeinfo.width, unit: 'in' };\r\n let depth = { length: sizeinfo.depth, unit: 'in' };\r\n let height = { length: sizeinfo.height, unit: 'in' };\r\n let newWidth = convert(width.length).from(width.unit).to('in');\r\n let newDepth = convert(depth.length).from(depth.unit).to('in');\r\n let newHeight = convert(height.length).from(height.unit).to('in');\r\n let mainName = ''; // to get name structure//\r\n if (element.properties.get('width'))\r\n newWidth = element.getIn(['properties', 'width', '_length']);\r\n if (element.properties.get('depth'))\r\n newDepth = element.getIn(['properties', 'depth', '_length']);\r\n if (element.properties.get('height'))\r\n newHeight = element.getIn(['properties', 'height', '_length']);\r\n\r\n var structure = structure_json;\r\n // structure.push({name:'model', url: '/assets/model/DCM.gltf'});\r\n structure.model = '/assets/model/DCM.gltf';\r\n var placeholders = structure.placeholders;\r\n let doorStyles = null;\r\n let color = 0xffffff,\r\n glossness = 1,\r\n handleMaterial = {};\r\n let counterTop = element.counterTop;\r\n if (layer.toJS().counterTop.uri) {\r\n counterTop.uri = layer.toJS().counterTop.uri;\r\n }\r\n\r\n if ('name' in element.doorStyle) {\r\n doorStyles = new Map(element.doorStyle.doorStyles);\r\n color = element.doorStyle.color;\r\n glossness = element.doorStyle.glossness;\r\n handleMaterial.metalness = element.doorStyle.metalness;\r\n handleMaterial.roughness = element.doorStyle.roughness;\r\n } else if (element.doorStyle != null && element.doorStyle) {\r\n doorStyles = element.doorStyle.get('doorStyles');\r\n color = element.doorStyle.get('color');\r\n glossness = element.doorStyle.get('glossness');\r\n handleMaterial.metalness = element.doorStyle.get('metalness');\r\n handleMaterial.roughness = element.doorStyle.get('roughness');\r\n }\r\n if (color === undefined) color = '#ffffff';\r\n if (glossness === undefined) glossness = 1;\r\n const tempDoorStyles = doorStyles.toJS();\r\n let tempPlaceholders = structure.tempPlaceholders;\r\n var tPlaceholders = tempPlaceholders.find(el => {\r\n return el.id === tempDoorStyles.cabinet_door_style_id;\r\n });\r\n if (tPlaceholders !== undefined) {\r\n placeholders = tPlaceholders.placeholders;\r\n const tempStructure = {\r\n ...tPlaceholders.structure,\r\n animation: structure.animation,\r\n placeholders: structure.placeholders,\r\n tempPlaceholders: structure.tempPlaceholders,\r\n model: structure.model\r\n };\r\n structure = tempStructure;\r\n }\r\n let userData = structure.animation;\r\n // ///////////////////////////\r\n let onLoadItem = object => {\r\n var areaMaterial = new Three.MeshStandardMaterial();\r\n areaMaterial.side = Three.DoubleSide;\r\n // areaMaterial.envMap = textureCube;\r\n if (doorStyles != null)\r\n if (doorStyles.get('base') != undefined) {\r\n let normalMap = doorStyles.get('base');\r\n let interiortexture = loadTexture(normalMap);\r\n applyTexture(areaMaterial, interiortexture, 100, 100);\r\n }\r\n let object1 = object;\r\n let newAltitude = element.properties.get('altitude').get('_length');\r\n let newUnit = element.properties.get('altitude').get('_unit') || 'in';\r\n newAltitude = convert(newAltitude).from(newUnit).to(scene.unit);\r\n let _element = element.toJS();\r\n if (!_element.doorStyle.doorStyles.is_euro_cds) {\r\n object1.scale.set(\r\n (100 * newWidth) / sizeinfo.width,\r\n (100 * newHeight) / sizeinfo.height,\r\n (100 * newDepth) / sizeinfo.depth\r\n );\r\n } else {\r\n object1.scale.set(100, 100, 100);\r\n }\r\n // Normalize the origin of the object\r\n let boundingBox = GeomUtils.baseBox3FromObject(object1);\r\n object1.userData = boundingBox;\r\n let door_animate_offset = {};\r\n const matchStr = /\\d_(door[^LR1-9]*)(_[LR])?(_[1-9])?$/;\r\n object1.children.forEach(child => {\r\n let door_match = child.name.match(matchStr);\r\n if (door_match && door_match.length > 2) {\r\n let rotate_match_text = element.properties.toJS().flip_doorhandle\r\n ? 'rotate_L'\r\n : 'rotate_R';\r\n if (door_match[2] === '_L') {\r\n rotate_match_text = element.properties.toJS().flip_doorhandle\r\n ? 'rotate_R'\r\n : 'rotate_L';\r\n }\r\n let isDoubleDoor = door_match && door_match[2] !== undefined;\r\n child.children[0]?.children.forEach(it => {\r\n if (\r\n it?.name?.includes('handle') &&\r\n it.children?.length &&\r\n is_corner === 1 &&\r\n isDoubleDoor\r\n ) {\r\n const tname = child?.name?.endsWith('_L')\r\n ? child.name.replace('_L', '_R')\r\n : child?.name?.replace('_R', '_L');\r\n\r\n const tmp =\r\n object1?.children?.filter(item => item?.name === tname) || [];\r\n const t0 = tmp[0];\r\n const filterStr = t0?.name?.endsWith('_L')\r\n ? 'rotate_L'\r\n : 'rotate_R';\r\n\r\n const tposArr =\r\n t0?.children?.[0]?.children?.filter(item =>\r\n item?.name?.endsWith(filterStr)\r\n ) || [];\r\n const tpos0 = tposArr[0];\r\n\r\n if (it.name.includes('base_end')) {\r\n door_animate_offset[child.name] = {\r\n x: -2 * (it.position?.x ?? 0) - 0.12,\r\n y: it.position?.y ?? 0,\r\n z: -(tpos0?.position?.x ?? 0) + 0.12,\r\n isCorner: true\r\n };\r\n } else {\r\n door_animate_offset[child.name] = {\r\n x: -(it.position?.x ?? 0) - 0.04,\r\n y: it.position?.y ?? 0,\r\n z: 2 * (tpos0?.position?.x ?? 0) - 0.01,\r\n isCorner: true\r\n };\r\n }\r\n } else if (\r\n it.name.endsWith(rotate_match_text) &&\r\n door_animate_offset[child.name] == undefined\r\n ) {\r\n door_animate_offset[child.name] = {\r\n x: it.position.x,\r\n y: it.position.y,\r\n z: it.position.z,\r\n isCorner: false\r\n };\r\n }\r\n });\r\n }\r\n });\r\n object1.userData.door_animate_offset = door_animate_offset;\r\n object1.userData.animation = userData;\r\n\r\n let center = [\r\n (boundingBox.max.x - boundingBox.min.x) / 2 + boundingBox.min.x,\r\n (boundingBox.max.y - boundingBox.min.y) / 2 + boundingBox.min.y,\r\n (boundingBox.max.z - boundingBox.min.z) / 2 + boundingBox.min.z\r\n ];\r\n object1.position.x -= center[0];\r\n object1.position.y -=\r\n center[1] - (boundingBox.max.y - boundingBox.min.y) / 2;\r\n object1.position.z -= center[2];\r\n object1.position.y += newAltitude;\r\n\r\n if (element.selected) {\r\n // if object is selected\r\n // save object transform info///\r\n let scalevec = new Three.Vector3(\r\n object1.scale.x,\r\n object1.scale.y,\r\n object1.scale.z\r\n );\r\n let posVec = new Three.Vector3(\r\n object1.position.x,\r\n object1.position.y,\r\n object1.position.z\r\n );\r\n\r\n object.scale.set(\r\n (1 * newWidth) / sizeinfo.width,\r\n (1 * newHeight) / sizeinfo.height,\r\n (1 * newDepth) / sizeinfo.depth\r\n );\r\n object1.position.set(0, 0, 0);\r\n object1.rotation.set(0, 0, 0);\r\n\r\n //let box = new Three.BoxHelper(object, 0xffffff);\r\n //box.material.lineWidth = 5;\r\n //box.renderOrder = 1000;\r\n //box.material.depthTest = false;\r\n //object.add(box);\r\n let boundingBox = GeomUtils.baseBox3FromObject(object);\r\n let max = boundingBox.max;\r\n let min = boundingBox.min;\r\n let radius =\r\n Math.sqrt(\r\n (boundingBox.max.x - boundingBox.min.x) *\r\n (boundingBox.max.x - boundingBox.min.x) +\r\n (boundingBox.max.z - boundingBox.min.z) *\r\n (boundingBox.max.z - boundingBox.min.z)\r\n ) / 2;\r\n let moveBox = new Three.BoxGeometry(\r\n max.x - min.x,\r\n max.y - min.y,\r\n max.z - min.z\r\n );\r\n\r\n // translate Object\r\n let controlGeom = GeomUtils.controlGeom();\r\n\r\n // rotate Object //////////\r\n let rotGeom = GeomUtils.rotGeoms(radius + 0.05);\r\n // //////////////////////////////////\r\n\r\n // upwards Geometry/////////// Move up Object\r\n let upwardsGeom = GeomUtils.upwardsGeom();\r\n\r\n // vertical line - 4 lines around object//////////////////////////\r\n let vLineGeom = new Three.BufferGeometry();\r\n\r\n let vertices = [\r\n (max.x - min.x) / 2 + min.x,\r\n 0,\r\n max.z,\r\n (max.x - min.x) / 2 + min.x,\r\n 0,\r\n max.z + 1.3\r\n ];\r\n\r\n vLineGeom.setAttribute(\r\n 'position',\r\n new Three.BufferAttribute(new Float32Array(vertices), 3)\r\n );\r\n\r\n let vLineGeom1 = new Three.BufferGeometry();\r\n\r\n let vertices1 = [\r\n (max.x - min.x) / 2 + min.x,\r\n 0,\r\n min.z,\r\n (max.x - min.x) / 2 + min.x,\r\n 0,\r\n min.z - 1.3\r\n ];\r\n\r\n vLineGeom1.setAttribute(\r\n 'position',\r\n new Three.BufferAttribute(new Float32Array(vertices1), 3)\r\n );\r\n\r\n let vLineGeom2 = new Three.BufferGeometry();\r\n\r\n let vertices2 = [\r\n max.x,\r\n 0,\r\n max.z - (max.z - min.z) / 2,\r\n max.x + 1.3,\r\n 0,\r\n max.z - (max.z - min.z) / 2\r\n ];\r\n\r\n vLineGeom2.setAttribute(\r\n 'position',\r\n new Three.BufferAttribute(new Float32Array(vertices2), 3)\r\n );\r\n\r\n let vLineGeom3 = new Three.BufferGeometry();\r\n\r\n let vertices3 = [\r\n min.x,\r\n 0,\r\n max.z - (max.z - min.z) / 2,\r\n min.x - 1.3,\r\n 0,\r\n max.z - (max.z - min.z) / 2\r\n ];\r\n\r\n vLineGeom3.setAttribute(\r\n 'position',\r\n new Three.BufferAttribute(new Float32Array(vertices3), 3)\r\n );\r\n // ///////////////////////////////////////\r\n\r\n // set names of transform object\r\n let rotFillObj = new Three.Mesh(\r\n rotGeom.rotFill,\r\n new Three.MeshPhongMaterial({\r\n color: new Three.Color(0x000000).convertLinearToSRGB(),\r\n side: Three.DoubleSide,\r\n colorWrite: true\r\n })\r\n );\r\n let rotStrokeObj = new Three.Line(\r\n rotGeom.rotStroke,\r\n new Three.LineBasicMaterial({\r\n color: new Three.Color(0xffffff).convertLinearToSRGB(),\r\n colorWrite: true\r\n })\r\n );\r\n rotFillObj.name = 'rotate';\r\n\r\n let upObj = new Three.Mesh(\r\n upwardsGeom,\r\n new Three.MeshBasicMaterial({\r\n color: new Three.Color(0xffffff).convertLinearToSRGB(),\r\n side: Three.DoubleSide\r\n })\r\n );\r\n upObj.name = 'transUp';\r\n\r\n let mBox = new Three.Mesh(\r\n moveBox,\r\n new Three.MeshBasicMaterial({\r\n color: new Three.Color(0xdd6699).convertLinearToSRGB(),\r\n side: Three.DoubleSide,\r\n transparent: true,\r\n opacity: 0.4\r\n })\r\n );\r\n\r\n let color = new Three.Color(\r\n SHADE_DARK_PURPLE_COLOR\r\n ).convertLinearToSRGB();\r\n let vLine = new Three.Line(\r\n vLineGeom,\r\n new Three.LineBasicMaterial({ color })\r\n );\r\n let vLine1 = new Three.Line(\r\n vLineGeom1,\r\n new Three.LineBasicMaterial({ color })\r\n );\r\n let vLine2 = new Three.Line(\r\n vLineGeom2,\r\n new Three.LineBasicMaterial({ color })\r\n );\r\n let vLine3 = new Three.Line(\r\n vLineGeom3,\r\n new Three.LineBasicMaterial({ color })\r\n );\r\n vLine.renderOrder = 1;\r\n vLine1.renderOrder = 1;\r\n vLine2.renderOrder = 1;\r\n vLine3.renderOrder = 1;\r\n vLine.material.transparent = true;\r\n vLine1.material.transparent = true;\r\n vLine2.material.transparent = true;\r\n vLine3.material.transparent = true;\r\n vLine.material.depthTest = false;\r\n vLine1.material.depthTest = false;\r\n vLine2.material.depthTest = false;\r\n vLine3.material.depthTest = false;\r\n // translate vector to center of object\r\n let uVec = new Three.Vector3(\r\n -posVec.x / scalevec.x,\r\n -posVec.y / scalevec.y,\r\n -posVec.z / scalevec.z\r\n );\r\n\r\n vLine.translateY(0.1);\r\n vLine1.translateY(0.1);\r\n vLine2.translateY(0.1);\r\n vLine3.translateY(0.1);\r\n\r\n //rotObj.translateOnAxis(uVec, 1);\r\n upObj.translateOnAxis(uVec, 1);\r\n upObj.translateY(max.y - min.y);\r\n\r\n mBox.name = 'TransformBox';\r\n mBox.translateOnAxis(\r\n new Three.Vector3(uVec.x, uVec.y + (max.y - min.y) / 2, uVec.z),\r\n 1\r\n );\r\n mBox.scale.set(1.01, 1.01, 1.01);\r\n\r\n // other side rotate object\r\n let rotFillObj1 = rotFillObj.clone();\r\n let rotStrokeObj1 = rotStrokeObj.clone();\r\n rotFillObj1.rotateY(Math.PI);\r\n rotStrokeObj1.rotateY(Math.PI);\r\n rotFillObj.translateY(0.1);\r\n rotFillObj1.translateY(0.1);\r\n rotStrokeObj.translateY(0.1);\r\n rotStrokeObj1.translateY(0.1);\r\n\r\n // assets Objects group includes rotate objects...\r\n let asrtObj = new Three.Group();\r\n // asrtObj.add(rotFillObj);\r\n // asrtObj.add(rotFillObj1);\r\n // asrtObj.add(rotStrokeObj);\r\n // asrtObj.add(rotStrokeObj1);\r\n //asrtObj.add(upObj);\r\n asrtObj.add(vLine);\r\n asrtObj.add(vLine1);\r\n asrtObj.add(vLine2);\r\n asrtObj.add(vLine3);\r\n mBox.visible = false;\r\n asrtObj.add(mBox);\r\n asrtObj.scale.set(1 / object.scale.x, object.scale.y, 1 / object.scale.z);\r\n //asrtObj.translateY(newAltitude / scalevec.y);\r\n asrtObj.name = 'TransformGizmo';\r\n // add assets Objects Group\r\n object1.add(asrtObj);\r\n\r\n // recover objects transform\r\n object1.position.x = posVec.x;\r\n object1.position.y = posVec.y;\r\n object1.position.z = posVec.z;\r\n object1.scale.set(scalevec.x, scalevec.y, scalevec.z);\r\n setTimeout(() => {\r\n SceneCreator.getDistances(layer);\r\n }, 100);\r\n }\r\n\r\n let flip_doorhandle = element.properties.get('flip_doorhandle');\r\n if (flip_doorhandle) {\r\n SceneCreator.updateDoorHandleMesh(element, object1, true);\r\n }\r\n\r\n object1.traverse(obj => {\r\n if (obj.type === OBJTYPE_MESH) {\r\n const { name } = obj;\r\n if (name.match(/_door_.*_glass_/)) {\r\n let material = new Three.MeshPhysicalMaterial({\r\n roughness: 0,\r\n transmission: 1,\r\n thickness: 0.5, // Add refraction!\r\n transparency: 0.8\r\n });\r\n obj.material = material;\r\n } else if (name.startsWith('sink_')) {\r\n // texture = loadTexture('/assets/img/texture/steel.jpg');\r\n\r\n let material;\r\n // Get color from name\r\n if (name.includes('black') || name.includes('white')) {\r\n let color;\r\n if (name.includes('black')) {\r\n color = new Three.Color(0x555555).convertLinearToSRGB();\r\n } else {\r\n color = 0xffffff;\r\n }\r\n material = new Three.MeshPhysicalMaterial({\r\n roughness: 0.5,\r\n metalness: 0,\r\n // transmission: 1,\r\n transparent: true,\r\n opacity: 1,\r\n thickness: 0.5, // Add refraction!\r\n // transparency: 0.8,\r\n color: color,\r\n side: Three.DoubleSide\r\n });\r\n } else {\r\n // if (name.includes('chrome')) {\r\n material = new Three.MeshPhysicalMaterial({\r\n roughness: 0.2,\r\n metalness: 1,\r\n reflectivity: 0.5,\r\n color: new Three.Color(0xdddddd).convertLinearToSRGB()\r\n });\r\n }\r\n obj.material = material;\r\n }\r\n }\r\n if (element.toJS().properties.open_doors) {\r\n let open_doors = element.toJS().properties.open_doors;\r\n let object_match =\r\n obj.name.match(/\\d_(interior_drawer[^LR1-9]*)(_[LR1-9])?$/) ||\r\n obj.name.match(matchStr);\r\n if (object_match && object_match.length > 2) {\r\n const isDoor = object_match[1] === 'door';\r\n if (isDoor) {\r\n const offsetData = object1.userData.door_animate_offset[obj.name];\r\n // Open Door\r\n animateDoor(\r\n offsetData,\r\n obj,\r\n open_doors,\r\n element.toJS(),\r\n is_corner,\r\n 'Opened2D'\r\n );\r\n } else {\r\n // Open Drawer\r\n translateDrawer(element.toJS(), obj, open_doors, 'Opened2D');\r\n }\r\n }\r\n }\r\n });\r\n\r\n return object1;\r\n };\r\n // keys in structure\r\n let keys = Object.keys(structure);\r\n // if exist in cached Objects\r\n if (\r\n element.type +\r\n color +\r\n 'doorStyle' +\r\n JSON.stringify(doorStyles.toJS()) +\r\n element.counterTop.uri in\r\n cachedObject\r\n ) {\r\n let objGroup =\r\n cachedObject[\r\n element.type + color + 'doorStyle' + JSON.stringify(doorStyles.toJS())\r\n ].clone();\r\n return Promise.resolve(onLoadItem(objGroup.clone()));\r\n }\r\n\r\n // base Object/////\r\n let objGroup = null;\r\n\r\n let loadGLTFs = function (i) {\r\n if (keys[i] === 'animation') {\r\n // if animation info\r\n i++;\r\n return loadGLTFs(i);\r\n }\r\n if (keys[i] === 'placeholders') {\r\n // if placeholders group\r\n i++;\r\n return loadGLTFs(i);\r\n }\r\n if (i === keys.length) {\r\n // if end of keys\r\n cachedObject[\r\n element.type + color + 'doorStyle' + JSON.stringify(doorStyles.toJS())\r\n ] = objGroup.clone(); //register to cachedObject\r\n return onLoadItem(\r\n cachedObject[\r\n element.type + color + 'doorStyle' + JSON.stringify(doorStyles.toJS())\r\n ].clone()\r\n );\r\n }\r\n if (keys[i] === 'base') {\r\n // if base Objects\r\n i++;\r\n return loadGLTFs(i);\r\n }\r\n\r\n let phsArray = [];\r\n let placeholderStructure = placeholders[keys[i]];\r\n if (placeholderStructure == undefined || placeholderStructure.length == 0) {\r\n i++;\r\n return loadGLTFs(i);\r\n }\r\n\r\n for (let j = 0; j < placeholderStructure.length; j++) {\r\n let phData = placeholderStructure[j];\r\n let phs = phData.split('/');\r\n\r\n let temp = phData.split('/');\r\n // placeholder remake////////////////\r\n for (let k = 0; k < phs.length; k++) {\r\n if (phs[k] in placeholders) {\r\n let placeholderphs = placeholders[phs[k]];\r\n let key = placeholderStructure.length / placeholderphs.length;\r\n phs[k] = placeholderphs[Math.floor(j / key)];\r\n let splitedData = phs[k].split('/');\r\n\r\n if (splitedData.length > 1) {\r\n phs[k] = splitedData[splitedData.length - 1];\r\n\r\n for (let m = splitedData.length - 2; m >= 0; m--) {\r\n phs.unshift(splitedData[m]);\r\n temp.unshift(splitedData[m]);\r\n }\r\n }\r\n\r\n k = -1;\r\n continue;\r\n }\r\n if (phs[k].indexOf('ph') == -1) {\r\n let url = structure[temp[k - 1]];\r\n\r\n if (\r\n temp[k - 1] +\r\n '_doorStyle' +\r\n element.type +\r\n 'doorStyle' +\r\n JSON.stringify(doorStyles.toJS()) in\r\n structure\r\n ) {\r\n if (\r\n structure[\r\n temp[k - 1] +\r\n '_doorStyle' +\r\n element.type +\r\n 'doorStyle' +\r\n JSON.stringify(doorStyles.toJS())\r\n ] != null\r\n ) {\r\n url =\r\n structure[\r\n temp[k - 1] +\r\n '_doorStyle' +\r\n element.type +\r\n 'doorStyle' +\r\n JSON.stringify(doorStyles.toJS())\r\n ];\r\n }\r\n }\r\n if (typeof url == Array) url = url[0];\r\n\r\n let uData = url.split('/');\r\n uData = uData[uData.length - 1];\r\n uData = uData.slice(0, -5);\r\n let datas = uData.split('_');\r\n uData = datas[1];\r\n\r\n for (let i = 2; i < datas.length; i++) {\r\n uData += '_';\r\n uData += datas[i];\r\n }\r\n\r\n uData = mainName.replace('main', uData);\r\n phs[k] = 'ph_' + uData + '_' + phs[k];\r\n }\r\n }\r\n phsArray.push(phs);\r\n }\r\n let url = structure[keys[i]];\r\n let normalMap = '';\r\n let urlData = url.split('/');\r\n for (let j = 0; j < element.submodule.size; j++) {\r\n let replaceUrlData = element.submodule.get(j).split('/');\r\n if (urlData.includes(replaceUrlData[replaceUrlData.length - 2])) {\r\n url = element.submodule.get(j);\r\n break;\r\n }\r\n }\r\n\r\n for (let j = 0; j < element.normalMap.size; j++) {\r\n let normalMapData = element.normalMap.get(j).split('/');\r\n if (urlData.includes(normalMapData[normalMapData.length - 2])) {\r\n normalMap = element.normalMap.get(j);\r\n break;\r\n }\r\n }\r\n\r\n // replace submodule gltf file\r\n // if (placeholderTree.length > 0) {\r\n if (phsArray.length > 0) {\r\n // let loadUrl = dirName + url;\r\n let loadUrl = url;\r\n\r\n if (doorStyles.get(keys[i] + '_gltf') != undefined) {\r\n loadUrl = doorStyles.get(keys[i] + '_gltf');\r\n structure[\r\n keys[i] +\r\n '_doorStyle' +\r\n element.type +\r\n 'doorStyle' +\r\n JSON.stringify(doorStyles.toJS())\r\n ] = loadUrl;\r\n } else {\r\n structure[\r\n keys[i] +\r\n '_doorStyle' +\r\n element.type +\r\n 'doorStyle' +\r\n JSON.stringify(doorStyles.toJS())\r\n ] = null;\r\n }\r\n return loadGLTF(loadUrl)\r\n .then(\r\n object => {\r\n if (normalMap !== '') {\r\n let normalUrl =\r\n normalMap.split('.')[0] + '-normal.' + normalMap.split('.')[1];\r\n let t = loadTexture(normalMap);\r\n let m = loadTexture(normalUrl);\r\n let mat2 = new Three.MeshStandardMaterial({\r\n metalness:\r\n glossness === 1 ? params.metalness : params.metalness_glossy,\r\n roughness: glossness || params.roughness\r\n });\r\n mat2.map = t;\r\n mat2.normalMap = m;\r\n // mat2.envMap = textureCube;\r\n for (let j = 0; j < object.children.length; j++) {\r\n if (object.children[j].type === OBJTYPE_MESH) {\r\n object.children[j].material = mat2;\r\n object.children[j].receiveShadow = true;\r\n }\r\n }\r\n }\r\n\r\n // set Door Style////\r\n if (doorStyles != null)\r\n if (doorStyles.get(keys[i]) != undefined) {\r\n // let normalMap = \"catalog/items/doorstyle/\" + doorStyles.get(keys[i]);\r\n let normalMap = doorStyles.get(keys[i]);\r\n let mat2;\r\n if (normalMap === '') {\r\n const examplecolor = new Three.Color(\r\n parseInt(color.slice(1), 16)\r\n ).convertLinearToSRGB();\r\n mat2 = new Three.MeshStandardMaterial({\r\n color: examplecolor,\r\n metalness:\r\n glossness === 1\r\n ? params.metalness\r\n : params.metalness_glossy,\r\n roughness: glossness || params.roughness\r\n });\r\n } else {\r\n let t = loadTexture(normalMap);\r\n mat2 = new Three.MeshStandardMaterial({\r\n // NOTE : this is for cabinets (wood) frontface\r\n metalness: 0.1,\r\n roughness: 0.5\r\n // metalness: glossness === 1 ? params.metalness : params.metalness_glossy,\r\n // roughness: glossness || params.roughness\r\n });\r\n mat2.map = t;\r\n }\r\n // mat2.envMap = textureCube;\r\n for (let j = 0; j < object.children.length; j++) {\r\n if (object.children[j].type === OBJTYPE_MESH) {\r\n object.children[j].material = mat2;\r\n object.children[j].receiveShadow = true;\r\n object.children[j].castShadow = true;\r\n !object.children[j].name.includes('handle') &&\r\n addEdgesToMesh(object.children[j]);\r\n } else if (\r\n !object.children[j].name.startsWith('ph_') &&\r\n object.children[j].type === OBJTYPE_GROUP\r\n ) {\r\n object.children[j].traverse(prim => {\r\n prim.material = mat2;\r\n prim.receiveShadow = true;\r\n });\r\n }\r\n }\r\n } else {\r\n let mat2 = new Three.MeshStandardMaterial({\r\n metalness:\r\n glossness === 1\r\n ? params.metalness\r\n : params.metalness_glossy,\r\n roughness: glossness || params.roughness\r\n });\r\n // mat2.envMap = textureCube;\r\n for (let j = 0; j < object.children.length; j++) {\r\n if (object.children[j].type === OBJTYPE_MESH) {\r\n object.children[j].material = mat2;\r\n object.children[j].receiveShadow = true;\r\n }\r\n }\r\n }\r\n\r\n for (let i = 0; i < phsArray.length; i++) {\r\n let phs = phsArray[i];\r\n let parent = objGroup;\r\n for (let j = 0; j < phs.length; j++) {\r\n let placeholder = phs[j];\r\n for (let k = 0; k < parent?.children.length; k++) {\r\n if (j != phs.length - 1) {\r\n if (parent.children[k].name == placeholder) {\r\n parent = parent.children[k].children[0];\r\n break;\r\n }\r\n } else {\r\n if (parent.children[k].name == placeholder) {\r\n var tmp = object.clone();\r\n if (\r\n placeholder.includes('drawer_door') &&\r\n placeholder.includes('_handle')\r\n ) {\r\n tmp.rotateZ(Math.PI / 2);\r\n }\r\n if (\r\n placeholder.includes('_handle') &&\r\n tmp.children[0].type === OBJTYPE_MESH\r\n ) {\r\n // NOTE: change metalness of handle\r\n tmp.children[0].material.metalness = 1;\r\n // handleMaterial.metalness || 0.2;\r\n tmp.children[0].material.roughness =\r\n handleMaterial.roughness || 0.1;\r\n //tmp.children[0].material.map = loadTexture('catalog/areas/area/textures/grass.jpg');\r\n }\r\n parent.children[k].add(tmp);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n },\r\n reason => {\r\n console.log('loadGLTF failed for reason:', reason);\r\n }\r\n )\r\n .then(() => {\r\n i++;\r\n return loadGLTFs(i);\r\n });\r\n }\r\n };\r\n return loadGLTF(structure['base'])\r\n .then(\r\n object => {\r\n object.name = 'MainObject';\r\n object.receiveShadow = true;\r\n objGroup = object;\r\n if (doorStyles != null)\r\n if (doorStyles.get('base') != undefined) {\r\n let normalMap = doorStyles.get('base');\r\n if (counterTop.uri === undefined) {\r\n try {\r\n counterTop = counterTop.toJS();\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n }\r\n if (\r\n counterTop.uri === undefined &&\r\n layer.toJS().counterTop.uri !== undefined\r\n ) {\r\n counterTop.uri = layer.toJS().counterTop.uri;\r\n }\r\n let countTopMap = counterTop.uri;\r\n let interiorMap = doorStyles.get('interior');\r\n let countT = loadTexture(countTopMap);\r\n countT.wrapS = Three.RepeatWrapping;\r\n countT.wrapT = Three.RepeatWrapping;\r\n countT.repeat.set(1, 1);\r\n const examplecolor = new Three.Color(\r\n parseInt(color.slice(1), 16)\r\n ).convertLinearToSRGB();\r\n let mat2 = null,\r\n mat3 = null,\r\n mat4 = null;\r\n\r\n if (normalMap === '') {\r\n mat2 = new Three.MeshStandardMaterial({\r\n color: examplecolor,\r\n metalness:\r\n glossness === 1 ? params.metalness : params.metalness_glossy,\r\n roughness: glossness || params.roughness\r\n });\r\n } else {\r\n mat2 = new Three.MeshStandardMaterial({\r\n // TODO: changes in metalness and roughness of base_main (cabinet wood)\r\n metalness: 0.1,\r\n roughness: 0.5\r\n // metalness: glossness === 1 ? params.metalness : params.metalness_glossy,\r\n // roughness: glossness || params.roughness\r\n });\r\n }\r\n // mat2.envMap = textureCube;\r\n\r\n if (normalMap !== '') {\r\n let t = loadTexture(normalMap);\r\n mat2.map = t;\r\n }\r\n\r\n if (normalMap === '') {\r\n mat3 = new Three.MeshStandardMaterial({\r\n // color: examplecolor,\r\n metalness: counterTop.metalness,\r\n roughness: counterTop.roughness\r\n });\r\n } else {\r\n mat3 = new Three.MeshStandardMaterial({\r\n // metalness: counterTop.metalness,\r\n // roughness: counterTop.roughness\r\n metalness: 0.3,\r\n roughness: 0.8\r\n });\r\n }\r\n mat3.map = countT;\r\n // mat3.envMap = textureCube;\r\n mat4 = new Three.MeshStandardMaterial({\r\n metalness: params.metalness,\r\n roughness: params.roughness\r\n });\r\n mat4.map = loadTexture(interiorMap);\r\n for (let j = 0; j < object.children.length; j++) {\r\n if (object.children[j].name.includes('main')) {\r\n }\r\n if (object.children[j].name.includes('countertop')) {\r\n object.children[j].material = mat3;\r\n object.children[j].receiveShadow = true;\r\n object.children[j].castShadow = true;\r\n addEdgesToMesh(object.children[j]);\r\n } else if (object.children[j].name.includes('_interior_')) {\r\n object.children[j].material = mat4;\r\n } else if (object.children[j].type === OBJTYPE_MESH) {\r\n object.children[j].material = mat2;\r\n object.children[j].receiveShadow = true;\r\n object.children[j].castShadow = true;\r\n }\r\n }\r\n }\r\n },\r\n reason => {\r\n console.log('loadGLTF failed for reason:', reason);\r\n objGroup = GeomUtils.emptyBoxHolder(newWidth, newHeight, newDepth);\r\n }\r\n )\r\n .then(() => {\r\n return loadGLTFs(0);\r\n });\r\n}\r\n\r\n// render 3d appliance function ////////////////////////////////\r\nexport function render3DApplianceItem(\r\n element,\r\n layer,\r\n scene,\r\n sizeinfo,\r\n structure_json,\r\n mode = null\r\n) {\r\n let structure = structure_json;\r\n let { applianceMaterial } = element;\r\n if (applianceMaterial.metalness == undefined)\r\n applianceMaterial = applianceMaterial.toJS();\r\n let onLoadItem = object => {\r\n let newAltitude = element.properties.get('altitude').get('_length');\r\n let newUnit = element.properties.get('altitude').get('_unit') || 'in';\r\n newAltitude = convert(newAltitude).from(newUnit).to(scene.unit);\r\n\r\n let newWidth = element.properties.get('width').get('_length');\r\n let newWidthUnit = element.properties.get('width').get('_unit') || 'in';\r\n newWidth = convert(newWidth).from(newWidthUnit).to('in');\r\n\r\n let newHeight = element.properties.get('height').get('_length');\r\n let newHeightUnit = element.properties.get('height').get('_unit') || 'in';\r\n newHeight = convert(newHeight).from(newHeightUnit).to('in');\r\n\r\n let newDepth = element.properties.get('depth').get('_length');\r\n let newDepthUnit = element.properties.get('depth').get('_unit') || 'in';\r\n newDepth = convert(newDepth).from(newDepthUnit).to('in');\r\n\r\n object.scale.set(\r\n (100 * newWidth) / sizeinfo.width,\r\n (100 * newHeight) / sizeinfo.height,\r\n (100 * newDepth) / sizeinfo.depth\r\n );\r\n // Normalize the origin of the object\r\n let boundingBox = new Three.Box3().setFromObject(object);\r\n object.userData = boundingBox;\r\n\r\n let center = [\r\n (boundingBox.max.x - boundingBox.min.x) / 2 + boundingBox.min.x,\r\n (boundingBox.max.y - boundingBox.min.y) / 2 + boundingBox.min.y,\r\n (boundingBox.max.z - boundingBox.min.z) / 2 + boundingBox.min.z\r\n ];\r\n object.position.x -= center[0];\r\n object.position.y -=\r\n center[1] - (boundingBox.max.y - boundingBox.min.y) / 2;\r\n object.position.z -= center[2];\r\n object.position.y += newAltitude;\r\n\r\n object.traverse(obj => {\r\n if (obj.type === OBJTYPE_MESH) {\r\n const { name } = obj;\r\n let texture,\r\n textureLoader = new Three.TextureLoader();\r\n if (name.includes('_black')) {\r\n obj.material.roughness = 0.4;\r\n obj.material.metalness = 1.0;\r\n obj.material.color = new Three.Color(0, 0, 0);\r\n obj.castShadow = true;\r\n obj.receiveShadow = true;\r\n return object;\r\n } else if (name.includes('_wood')) {\r\n texture = loadTexture('/assets/img/texture/wood.jpg');\r\n } else if (name.includes('_glass')) {\r\n // texture = loadTexture('/assets/img/texture/glass.jpg');\r\n const material = new Three.MeshPhysicalMaterial({\r\n transparent: true,\r\n opacity: 0.5,\r\n roughness: 0,\r\n transmission: 1,\r\n thickness: 0.5, // Add refraction!\r\n transparency: 0.8\r\n });\r\n obj.material = material;\r\n obj.castShadow = true;\r\n obj.receiveShadow = true;\r\n return object;\r\n } else if (name.includes('_steel')) {\r\n // texture = loadTexture('/assets/img/texture/steel.jpg');\r\n const material = new Three.MeshPhysicalMaterial({\r\n roughness: 0.2,\r\n metalness: 0.5,\r\n reflectivity: 0.5,\r\n color: new Three.Color(0xdddddd).convertLinearToSRGB()\r\n });\r\n obj.material = material;\r\n obj.castShadow = true;\r\n obj.receiveShadow = true;\r\n return object;\r\n }\r\n\r\n let mat = new Three.MeshStandardMaterial({\r\n metalness: 0.1,\r\n roughness: 0.9,\r\n map: texture\r\n });\r\n obj.material = mat;\r\n }\r\n });\r\n\r\n if (element.selected) {\r\n // if object is selected\r\n // save object transform info///\r\n let scalevec = new Three.Vector3(\r\n object.scale.x,\r\n object.scale.y,\r\n object.scale.z\r\n );\r\n let posVec = new Three.Vector3(\r\n object.position.x,\r\n object.position.y,\r\n object.position.z\r\n );\r\n\r\n object.scale.set(\r\n (1 * newWidth) / sizeinfo.width,\r\n (1 * newHeight) / sizeinfo.height,\r\n (1 * newDepth) / sizeinfo.depth\r\n );\r\n object.position.set(0, 0, 0);\r\n object.rotation.set(0, 0, 0);\r\n let boundingBox = new Three.Box3().setFromObject(object);\r\n let max = boundingBox.max;\r\n let min = boundingBox.min;\r\n let radius =\r\n Math.sqrt(\r\n (boundingBox.max.x - boundingBox.min.x) *\r\n (boundingBox.max.x - boundingBox.min.x) +\r\n (boundingBox.max.z - boundingBox.min.z) *\r\n (boundingBox.max.z - boundingBox.min.z)\r\n ) / 2;\r\n let moveBox = new Three.BoxGeometry(\r\n max.x - min.x,\r\n max.y - min.y,\r\n max.z - min.z\r\n );\r\n\r\n // translate Object\r\n let controlGeom = GeomUtils.controlGeom();\r\n // ////////////////////////\r\n\r\n // rotate Object //////////\r\n let rotGeom = GeomUtils.rotGeoms(radius + 0.05);\r\n // //////////////////////////////////\r\n\r\n // upwards Geometry/////////// Move up Object\r\n let upwardsGeom = GeomUtils.upwardsGeom();\r\n // ///////////////////////////////////////\r\n\r\n // vertical line - 4 lines around object//////////////////////////\r\n let vLineGeom = new Three.BufferGeometry();\r\n let vertices = [\r\n (max.x - min.x) / 2 + min.x,\r\n 0,\r\n min.z,\r\n (max.x - min.x) / 2 + min.x,\r\n 0,\r\n min.z + 1.3\r\n ];\r\n\r\n vLineGeom.setAttribute(\r\n 'position',\r\n new Three.BufferAttribute(new Float32Array(vertices), 3)\r\n );\r\n\r\n let vLineGeom1 = new Three.BufferGeometry();\r\n\r\n let vertices1 = [\r\n (max.x - min.x) / 2 + min.x,\r\n 0,\r\n min.z,\r\n (max.x - min.x) / 2 + min.x,\r\n 0,\r\n min.z - 1.3\r\n ];\r\n\r\n vLineGeom1.setAttribute(\r\n 'position',\r\n new Three.BufferAttribute(new Float32Array(vertices1), 3)\r\n );\r\n\r\n let vLineGeom2 = new Three.BufferGeometry();\r\n let vertices2 = [\r\n max.x,\r\n 0,\r\n max.z - (max.z - min.z) / 2,\r\n max.x + 1.3,\r\n 0,\r\n max.z - (max.z - min.z) / 2\r\n ];\r\n\r\n vLineGeom1.setAttribute(\r\n 'position',\r\n new Three.BufferAttribute(new Float32Array(vertices2), 3)\r\n );\r\n\r\n let vLineGeom3 = new Three.BufferGeometry();\r\n let vertices3 = [\r\n min.x,\r\n 0,\r\n max.z - (max.z - min.z) / 2,\r\n min.x - 1.3,\r\n 0,\r\n max.z - (max.z - min.z) / 2\r\n ];\r\n\r\n vLineGeom1.setAttribute(\r\n 'position',\r\n new Three.BufferAttribute(new Float32Array(vertices3), 3)\r\n );\r\n // ///////////////////////////////////////\r\n\r\n // set names of transform object\r\n let rotFillObj = new Three.Mesh(\r\n rotGeom.rotFill,\r\n new Three.MeshPhongMaterial({\r\n color: 0x000000,\r\n side: Three.DoubleSide,\r\n colorWrite: true\r\n })\r\n );\r\n let rotStrokeObj = new Three.Line(\r\n rotGeom.rotStroke,\r\n new Three.LineBasicMaterial({ color: 0xffffff, colorWrite: true })\r\n );\r\n rotFillObj.name = 'rotate';\r\n\r\n let upObj = new Three.Mesh(\r\n upwardsGeom,\r\n new Three.MeshBasicMaterial({ color: 0xffffff, side: Three.DoubleSide })\r\n );\r\n upObj.name = 'transUp';\r\n\r\n let mBox = new Three.Mesh(\r\n moveBox,\r\n new Three.MeshBasicMaterial({\r\n color: new Three.Color(0xdd6699).convertLinearToSRGB(),\r\n side: Three.DoubleSide,\r\n transparent: true,\r\n opacity: 0.4\r\n })\r\n );\r\n\r\n let color = new Three.Color(ARROW_COLOR).convertLinearToSRGB();\r\n let vLine = new Three.Line(\r\n vLineGeom,\r\n new Three.LineBasicMaterial({ color })\r\n );\r\n let vLine1 = new Three.Line(\r\n vLineGeom1,\r\n new Three.LineBasicMaterial({ color })\r\n );\r\n let vLine2 = new Three.Line(\r\n vLineGeom2,\r\n new Three.LineBasicMaterial({ color })\r\n );\r\n let vLine3 = new Three.Line(\r\n vLineGeom3,\r\n new Three.LineBasicMaterial({ color })\r\n );\r\n\r\n vLine.renderOrder = 1;\r\n vLine1.renderOrder = 1;\r\n vLine2.renderOrder = 1;\r\n vLine3.renderOrder = 1;\r\n vLine.material.transparent = true;\r\n vLine1.material.transparent = true;\r\n vLine2.material.transparent = true;\r\n vLine3.material.transparent = true;\r\n vLine.material.depthTest = false;\r\n vLine1.material.depthTest = false;\r\n vLine2.material.depthTest = false;\r\n vLine3.material.depthTest = false;\r\n // translate vector to center of object\r\n let uVec = new Three.Vector3(\r\n -posVec.x / scalevec.x,\r\n -posVec.y / scalevec.y,\r\n -posVec.z / scalevec.z\r\n );\r\n\r\n vLine.translateY(0.1);\r\n vLine1.translateY(0.1);\r\n vLine2.translateY(0.1);\r\n vLine3.translateY(0.1);\r\n\r\n upObj.translateOnAxis(uVec, 1);\r\n upObj.translateY(max.y - min.y + 0.05);\r\n\r\n mBox.name = 'TransformBox';\r\n mBox.translateOnAxis(\r\n new Three.Vector3(uVec.x, uVec.y + (max.y - min.y) / 2, uVec.z),\r\n 1\r\n );\r\n mBox.scale.set(1.01, 1.01, 1.01);\r\n\r\n // other side rotate object\r\n let rotFillObj1 = rotFillObj.clone();\r\n let rotStrokeObj1 = rotStrokeObj.clone();\r\n rotFillObj1.rotateY(Math.PI);\r\n rotStrokeObj1.rotateY(Math.PI);\r\n rotFillObj.translateY(0.1);\r\n rotFillObj1.translateY(0.1);\r\n rotStrokeObj.translateY(0.1);\r\n rotStrokeObj1.translateY(0.1);\r\n\r\n // assets Objects group includes rotate objects...\r\n let asrtObj = new Three.Group();\r\n // asrtObj.add(rotFillObj);\r\n // asrtObj.add(rotFillObj1);\r\n // asrtObj.add(rotStrokeObj);\r\n // asrtObj.add(rotStrokeObj1);\r\n asrtObj.add(vLine);\r\n asrtObj.add(vLine1);\r\n asrtObj.add(vLine2);\r\n asrtObj.add(vLine3);\r\n mBox.visible = false;\r\n asrtObj.add(mBox);\r\n asrtObj.scale.set(1 / object.scale.x, object.scale.y, 1 / object.scale.z);\r\n // asrtObj.translateY(newAltitude / scalevec.y);\r\n asrtObj.name = 'TransformGizmo';\r\n // add assets Objects Group\r\n object.add(asrtObj);\r\n\r\n // recover objects transform\r\n object.position.x = posVec.x;\r\n object.position.y = posVec.y;\r\n object.position.z = posVec.z;\r\n object.scale.set(scalevec.x, scalevec.y, scalevec.z);\r\n }\r\n\r\n return object;\r\n };\r\n\r\n // keys in structure\r\n let keys = Object.keys(structure);\r\n\r\n // if exist in cached Objects\r\n if (element.type in cachedObject) {\r\n let objGroup = cachedObject[element.type].clone();\r\n return Promise.resolve(onLoadItem(objGroup.clone()));\r\n }\r\n\r\n // base Object/////\r\n let objGroup = null;\r\n\r\n let loadGLTFs = function (i) {\r\n if (i === keys.length) {\r\n // if end of keys\r\n cachedObject[element.type] = objGroup.clone(); //register to cachedObject\r\n return onLoadItem(cachedObject[element.type].clone());\r\n }\r\n if (keys[i] === 'base') {\r\n // if base Objects\r\n i++;\r\n return loadGLTFs(i);\r\n }\r\n };\r\n\r\n // load base to start //\r\n // return loadGLTF(dirName + structure[\"base\"])\r\n return loadGLTF(structure['base'])\r\n .then(\r\n object => {\r\n // let textureURL = `${API_SERVER_URL}/uploads/assets/default/steel.jpg`;\r\n // let texture = loadTexture(textureURL);\r\n // texture.wrapS = Three.MirroredRepeatWrapping;\r\n // texture.wrapT = Three.MirroredRepeatWrapping;\r\n\r\n object.name = 'MainObject';\r\n // NOTE: changed appliance emissive color to black\r\n let mat2 = new Three.MeshStandardMaterial({\r\n emissive: new Three.Color(0x0d0d0d).convertLinearToSRGB(),\r\n metalness: applianceMaterial.metalness,\r\n roughness: applianceMaterial.roughness\r\n });\r\n // mat2.envMap = textureCube;\r\n object.material = mat2;\r\n\r\n for (let j = 0; j < object.children.length; j++) {\r\n if (object.children[j].type === OBJTYPE_MESH) {\r\n object.children[j].material = mat2;\r\n object.children[j].receiveShadow = true;\r\n object.children[j].castShadow = true; // change\r\n }\r\n }\r\n objGroup = object;\r\n },\r\n reason => {\r\n console.log('loadGLTF failed for reason:', reason);\r\n objGroup = GeomUtils.emptyBoxHolder(newWidth, newHeight, newDepth);\r\n }\r\n )\r\n .then(() => {\r\n return loadGLTFs(0);\r\n });\r\n}\r\n// render 3d appliance function ////////////////////////////////\r\nexport function render3DLightingItem(\r\n element,\r\n layer,\r\n scene,\r\n sizeinfo,\r\n structure_json,\r\n mode = null\r\n) {\r\n let structure = structure_json;\r\n let onLoadItem = object => {\r\n let width = { length: sizeinfo.width, unit: 'in' };\r\n let depth = { length: sizeinfo.depth, unit: 'in' };\r\n let height = { length: sizeinfo.height, unit: 'in' };\r\n let newWidth = convert(width.length).from(width.unit).to('cm');\r\n let newDepth = convert(depth.length).from(depth.unit).to('cm');\r\n let newHeight = convert(height.length).from(height.unit).to('cm');\r\n\r\n let newAltitude = element.properties.get('altitude').get('_length');\r\n let newUnit = element.properties.get('altitude').get('_unit') || 'in';\r\n newAltitude = convert(newAltitude).from(newUnit).to(scene.unit);\r\n\r\n //object.scale.set(newWidth, newHeight, newDepth);\r\n object.scale.set(100, 100, 100);\r\n // Normalize the origin of the object\r\n let boundingBox = new Three.Box3().setFromObject(object);\r\n object.userData = boundingBox;\r\n\r\n let objectHeight = boundingBox.max.y - boundingBox.min.y;\r\n let objectYPos = boundingBox.min.y;\r\n\r\n let center = [\r\n (boundingBox.max.x - boundingBox.min.x) / 2 + boundingBox.min.x,\r\n (boundingBox.max.y - boundingBox.min.y) / 2 + boundingBox.min.y,\r\n (boundingBox.max.z - boundingBox.min.z) / 2 + boundingBox.min.z\r\n ];\r\n\r\n object.position.x = center[0];\r\n object.position.y = newHeight + newAltitude - boundingBox.max.y;\r\n object.position.z = center[2];\r\n\r\n if (element.selected) {\r\n // if object is selected\r\n // save object transform info///\r\n let scalevec = new Three.Vector3(\r\n object.scale.x,\r\n object.scale.y,\r\n object.scale.z\r\n );\r\n let posVec = new Three.Vector3(\r\n object.position.x,\r\n object.position.y,\r\n object.position.z\r\n );\r\n\r\n object.scale.set(1, 1, 1);\r\n object.position.set(0, 0, 0);\r\n object.rotation.set(0, 0, 0);\r\n\r\n //let box = new Three.BoxHelper(object, 0xffffff);\r\n //box.material.lineWidth = 5;\r\n //box.renderOrder = 1000;\r\n //box.material.depthTest = false;\r\n //object.add(box);\r\n let boundingBox = new Three.Box3().setFromObject(object);\r\n let max = boundingBox.max;\r\n let min = boundingBox.min;\r\n let radius =\r\n Math.sqrt(\r\n (boundingBox.max.x - boundingBox.min.x) *\r\n (boundingBox.max.x - boundingBox.min.x) +\r\n (boundingBox.max.z - boundingBox.min.z) *\r\n (boundingBox.max.z - boundingBox.min.z)\r\n ) / 2;\r\n let moveBox = new Three.BoxGeometry(\r\n max.x - min.x,\r\n max.y - min.y,\r\n max.z - min.z\r\n );\r\n\r\n // translate Object\r\n let controlGeom = GeomUtils.controlGeom();\r\n\r\n // rotate Object //////////\r\n let rotGeom = GeomUtils.rotGeoms(radius + 0.05);\r\n // //////////////////////////////////\r\n\r\n // upwards Geometry/////////// Move up Object\r\n let upwardsGeom = GeomUtils.upwardsGeom();\r\n\r\n // vertical line - 4 lines around object//////////////////////////\r\n let vLineGeom = new Three.BufferGeometry();\r\n let vertices = [\r\n (max.x - min.x) / 2 + min.x,\r\n 0,\r\n min.z,\r\n (max.x - min.x) / 2 + min.x,\r\n 0,\r\n min.z + 1.3\r\n ];\r\n\r\n vLineGeom.setAttribute(\r\n 'position',\r\n new Three.BufferAttribute(new Float32Array(vertices), 3)\r\n );\r\n\r\n let vLineGeom1 = new Three.BufferGeometry();\r\n let vertices1 = [\r\n (max.x - min.x) / 2 + min.x,\r\n 0,\r\n min.z,\r\n (max.x - min.x) / 2 + min.x,\r\n 0,\r\n min.z - 1.3\r\n ];\r\n\r\n vLineGeom1.setAttribute(\r\n 'position',\r\n new Three.BufferAttribute(new Float32Array(vertices1), 3)\r\n );\r\n\r\n let vLineGeom2 = new Three.BufferGeometry();\r\n let vertices2 = [\r\n min.x,\r\n 0,\r\n max.z - (max.z - min.z) / 2,\r\n min.x + 1.3,\r\n 0,\r\n max.z - (max.z - min.z) / 2\r\n ];\r\n\r\n vLineGeom2.setAttribute(\r\n 'position',\r\n new Three.BufferAttribute(new Float32Array(vertices2), 3)\r\n );\r\n\r\n let vLineGeom3 = new Three.BufferGeometry();\r\n let vertices3 = [\r\n min.x,\r\n 0,\r\n max.z - (max.z - min.z) / 2,\r\n min.x - 1.3,\r\n 0,\r\n max.z - (max.z - min.z) / 2\r\n ];\r\n\r\n vLineGeom3.setAttribute(\r\n 'position',\r\n new Three.BufferAttribute(new Float32Array(vertices3), 3)\r\n );\r\n // ///////////////////////////////////////\r\n\r\n // set names of transform object\r\n let rotFillObj = new Three.Mesh(\r\n rotGeom.rotFill,\r\n new Three.MeshPhongMaterial({\r\n color: 0x000000,\r\n side: Three.DoubleSide,\r\n colorWrite: true\r\n })\r\n );\r\n let rotStrokeObj = new Three.Line(\r\n rotGeom.rotStroke,\r\n new Three.LineBasicMaterial({ color: 0xffffff, colorWrite: true })\r\n );\r\n rotFillObj.name = 'rotate';\r\n\r\n let upObj = new Three.Mesh(\r\n upwardsGeom,\r\n new Three.MeshBasicMaterial({ color: 0xffffff, side: Three.DoubleSide })\r\n );\r\n upObj.name = 'transUp';\r\n\r\n let mBox = new Three.Mesh(\r\n moveBox,\r\n new Three.MeshBasicMaterial({\r\n color: 0xdd6699,\r\n side: Three.DoubleSide,\r\n transparent: true,\r\n opacity: 0.4\r\n })\r\n );\r\n\r\n let color = new Three.Color(ARROW_COLOR).convertLinearToSRGB();\r\n let vLine = new Three.Line(\r\n vLineGeom,\r\n new Three.LineBasicMaterial({ color })\r\n );\r\n let vLine1 = new Three.Line(\r\n vLineGeom1,\r\n new Three.LineBasicMaterial({ color })\r\n );\r\n let vLine2 = new Three.Line(\r\n vLineGeom2,\r\n new Three.LineBasicMaterial({ color })\r\n );\r\n let vLine3 = new Three.Line(\r\n vLineGeom3,\r\n new Three.LineBasicMaterial({ color })\r\n );\r\n vLine.renderOrder = 1;\r\n vLine1.renderOrder = 1;\r\n vLine2.renderOrder = 1;\r\n vLine3.renderOrder = 1;\r\n vLine.material.transparent = true;\r\n vLine1.material.transparent = true;\r\n vLine2.material.transparent = true;\r\n vLine3.material.transparent = true;\r\n vLine.material.depthTest = false;\r\n vLine1.material.depthTest = false;\r\n vLine2.material.depthTest = false;\r\n vLine3.material.depthTest = false;\r\n // translate vector to center of object\r\n let uVec = new Three.Vector3(\r\n -posVec.x / scalevec.x,\r\n -posVec.y / scalevec.y,\r\n -posVec.z / scalevec.z\r\n );\r\n\r\n vLine.translateY(1.6);\r\n vLine1.translateY(1.6);\r\n vLine2.translateY(1.6);\r\n vLine3.translateY(1.6);\r\n\r\n //rotObj.translateOnAxis(uVec, 1);\r\n upObj.translateOnAxis(uVec, 1);\r\n upObj.translateY(max.y - min.y);\r\n\r\n mBox.name = 'TransformBox';\r\n mBox.translateOnAxis(\r\n new Three.Vector3(uVec.x, uVec.y + (max.y - min.y) / 2, uVec.z),\r\n 1\r\n );\r\n mBox.scale.set(1.01, 1.01, 1.01);\r\n\r\n // other side rotate object\r\n let rotFillObj1 = rotFillObj.clone();\r\n let rotStrokeObj1 = rotStrokeObj.clone();\r\n rotFillObj1.rotateY(Math.PI);\r\n rotStrokeObj1.rotateY(Math.PI);\r\n rotFillObj.translateY(1.6);\r\n rotFillObj1.translateY(1.6);\r\n rotStrokeObj.translateY(1.6);\r\n rotStrokeObj1.translateY(1.6);\r\n\r\n // assets Objects group includes rotate objects...\r\n let asrtObj = new Three.Group();\r\n // asrtObj.add(rotFillObj);\r\n // asrtObj.add(rotFillObj1);\r\n // asrtObj.add(rotStrokeObj);\r\n // asrtObj.add(rotStrokeObj1);\r\n //asrtObj.add(upObj);\r\n asrtObj.add(vLine);\r\n asrtObj.add(vLine1);\r\n asrtObj.add(vLine2);\r\n asrtObj.add(vLine3);\r\n mBox.visible = false;\r\n asrtObj.add(mBox);\r\n asrtObj.scale.set(1, 1, 1);\r\n //asrtObj.translateY(newAltitude / scalevec.y);\r\n asrtObj.name = 'TransformGizmo';\r\n // add assets Objects Group\r\n object.add(asrtObj);\r\n\r\n // recover objects transform\r\n object.position.x = posVec.x;\r\n object.position.y = posVec.y;\r\n object.position.z = posVec.z;\r\n object.scale.set(scalevec.x, scalevec.y, scalevec.z);\r\n setTimeout(() => {\r\n SceneCreator.getDistances(layer);\r\n }, 100);\r\n }\r\n return object;\r\n };\r\n\r\n // keys in structure\r\n let keys = Object.keys(structure);\r\n\r\n // if exist in cached Objects\r\n if (element.type in cachedObject) {\r\n let objGroup = cachedObject[element.type].clone();\r\n return Promise.resolve(onLoadItem(objGroup.clone()));\r\n }\r\n\r\n // base Object/////\r\n let objGroup = null;\r\n\r\n let loadGLTFs = function (i) {\r\n if (i === keys.length) {\r\n // if end of keys\r\n cachedObject[element.type] = objGroup.clone(); //register to cachedObject\r\n return onLoadItem(cachedObject[element.type].clone());\r\n }\r\n if (keys[i] === 'base') {\r\n // if base Objects\r\n i++;\r\n return loadGLTFs(i);\r\n }\r\n };\r\n\r\n // load base to start //\r\n // return loadGLTF(dirName + structure[\"base\"])\r\n return loadGLTF(structure['base'])\r\n .then(\r\n object => {\r\n // let textureURL = `${API_SERVER_URL}/uploads/assets/default/steel.jpg`;\r\n // let texture = loadTexture(textureURL);\r\n // texture.wrapS = Three.MirroredRepeatWrapping;\r\n // texture.wrapT = Three.MirroredRepeatWrapping;\r\n\r\n object.name = 'MainObject';\r\n let mat2 = new Three.MeshStandardMaterial({\r\n emissive: new Three.Color(0x666666).convertLinearToSRGB(),\r\n metalness: 0.7,\r\n roughness: 0.3\r\n });\r\n // mat2.envMap = textureCube;\r\n object.material = mat2;\r\n\r\n for (let j = 0; j < object.children.length; j++) {\r\n if (object.children[j].type === OBJTYPE_MESH) {\r\n object.children[j].material = mat2;\r\n object.children[j].receiveShadow = true;\r\n }\r\n }\r\n objGroup = object;\r\n },\r\n reason => {\r\n console.log('loadGLTF failed for reason:', reason);\r\n objGroup = GeomUtils.emptyBoxHolder(newWidth, newHeight, newDepth);\r\n }\r\n )\r\n .then(() => {\r\n return loadGLTFs(0);\r\n });\r\n}\r\n\r\nexport function addEdgesToMesh(inChild) {\r\n let boxEdge = new Three.EdgesGeometry(inChild.geometry, 10);\r\n let boxEdgeMaterial = new Three.LineBasicMaterial({\r\n color: 0x000000,\r\n transparent: true,\r\n opacity: 0.09\r\n });\r\n let boxEdgeLine = new Three.LineSegments(boxEdge, boxEdgeMaterial);\r\n // inChild.add(boxEdgeLine);\r\n}\r\n"],"mappings":"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","ignoreList":[]}
@@ -1,100 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.loadGLTF = loadGLTF;
7
- exports.loadObjWithMaterial = loadObjWithMaterial;
8
- exports.scaleObject = scaleObject;
9
- var _three = require("three");
10
- var _MTLLoader = require("three/examples/jsm/loaders/MTLLoader.js");
11
- var _OBJLoader = require("three/examples/jsm/loaders/OBJLoader.js");
12
- var _GLTFLoader = require("three/examples/jsm/loaders/GLTFLoader.js");
13
- var _DRACOLoader = require("three/examples/jsm/loaders/DRACOLoader.js");
14
- var _constants = require("../../../src/constants");
15
- function loadObjWithMaterial(mtlFile, objFile, imgPath) {
16
- var manager = new _three.LoadingManager();
17
- var mtlLoader = new _MTLLoader.MTLLoader(manager);
18
- // mtlLoader.setPath(imgPath);
19
- var url = mtlFile;
20
- return new Promise(function (resolve, reject) {
21
- mtlLoader.load(url, function (materials) {
22
- materials.preload();
23
- var objLoader = new _OBJLoader.OBJLoader();
24
- objLoader.setMaterials(materials);
25
- objLoader.load(objFile, function (object) {
26
- return resolve(object);
27
- });
28
- });
29
- });
30
- }
31
- function loadGLTF(url) {
32
- if (url == undefined) {
33
- return Promise.reject('No url is passed');
34
- }
35
- var baseURL = _three.LoaderUtils.extractUrlBase(url);
36
- var manager = new _three.LoadingManager();
37
-
38
- // Intercept and override relative URLs.
39
- manager.setURLModifier(function (url, path) {
40
- // URIs in a glTF file may be escaped, or not. Assume that assetMap is
41
- // from an un-escaped source, and decode all URIs before lookups.
42
- // See: https://github.com/donmccurdy/three-gltf-viewer/issues/146
43
- var normalizedURL = decodeURI(url).replace(baseURL, '').replace(/^(\.?\/)/, '');
44
-
45
- // if (assetMap.has(normalizedURL)) {
46
- // const blob = assetMap.get(normalizedURL);
47
- // const blobURL = URL.createObjectURL(blob);
48
- // blobURLs.push(blobURL);
49
- // return blobURL;
50
- // }
51
- return (path || '') + url;
52
- });
53
- var loader = new _GLTFLoader.GLTFLoader(manager);
54
- loader.setCrossOrigin('anonymous');
55
- var dracoLoader = new _DRACOLoader.DRACOLoader();
56
- dracoLoader.setDecoderPath('/assets/draco/');
57
- loader.setDRACOLoader(dracoLoader);
58
- return new Promise(function (resolve, reject) {
59
- loader.load(url, function (gltf) {
60
- resolve(gltf.scene);
61
- }, function (xhr) {
62
- // console.log("xhr", xhr);
63
- // called while loading is progressing
64
- // console.log( `${( xhr.loaded / xhr.total * 100 )}% loaded` );
65
- }, function (error) {
66
- // console.log("error", error);
67
- // called when loading has errors
68
- // console.error( '2= An error happened', error );
69
- reject(error);
70
- });
71
- });
72
- }
73
- function scaleObject(object, defaultSizeArray, scaleSizeArray) {
74
- var boundingBox = new _three.Box3().setFromObject(object);
75
- var initialSizeArray = boundingBox.getSize(new _three.Vector3()).toArray();
76
- for (var i = 0; i < 3; i++) {
77
- scaleSizeArray[i] -= defaultSizeArray[i];
78
- defaultSizeArray[i] /= initialSizeArray[i];
79
- }
80
- object.children.forEach(function (child) {
81
- if (child.type == _constants.OBJTYPE_MESH && child.geometry instanceof _three.BufferGeometry) {
82
- var position = child.geometry.attributes.position;
83
- var new_pos = position.array.map(function (v, i, a) {
84
- var j = i % 3;
85
- var absv = Math.abs(v);
86
- v = v * defaultSizeArray[j];
87
- if (absv > initialSizeArray[j] / 6) {
88
- v += (v > 0 ? 1 : -1) * scaleSizeArray[j] / 2;
89
- }
90
- return v;
91
- });
92
- var new_geom = child.geometry.clone().setAttribute('position', new _three.BufferAttribute(new_pos, 3));
93
- new_geom.computeBoundingBox();
94
- new_geom.computeBoundingSphere();
95
- child.geometry.dispose();
96
- child.geometry = new_geom;
97
- }
98
- });
99
- }
100
- //# sourceMappingURL=load-obj.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"load-obj.js","names":["_three","require","_MTLLoader","_OBJLoader","_GLTFLoader","_DRACOLoader","_constants","loadObjWithMaterial","mtlFile","objFile","imgPath","manager","LoadingManager","mtlLoader","MTLLoader","url","Promise","resolve","reject","load","materials","preload","objLoader","OBJLoader","setMaterials","object","loadGLTF","undefined","baseURL","LoaderUtils","extractUrlBase","setURLModifier","path","normalizedURL","decodeURI","replace","loader","GLTFLoader","setCrossOrigin","dracoLoader","DRACOLoader","setDecoderPath","setDRACOLoader","gltf","scene","xhr","error","scaleObject","defaultSizeArray","scaleSizeArray","boundingBox","Box3","setFromObject","initialSizeArray","getSize","Vector3","toArray","i","children","forEach","child","type","OBJTYPE_MESH","geometry","BufferGeometry","position","attributes","new_pos","array","map","v","a","j","absv","Math","abs","new_geom","clone","setAttribute","BufferAttribute","computeBoundingBox","computeBoundingSphere","dispose"],"sources":["../../../src/catalog/utils/load-obj.js"],"sourcesContent":["import {\r\n Box3,\r\n BufferAttribute,\r\n BufferGeometry,\r\n LoaderUtils,\r\n LoadingManager,\r\n Vector3\r\n} from 'three';\r\nimport { MTLLoader } from 'three/examples/jsm/loaders/MTLLoader.js';\r\nimport { OBJLoader } from 'three/examples/jsm/loaders/OBJLoader.js';\r\nimport { GLTFLoader } from 'three/examples/jsm/loaders/GLTFLoader.js';\r\nimport { DRACOLoader } from 'three/examples/jsm/loaders/DRACOLoader.js';\r\nimport { OBJTYPE_MESH } from '../../../src/constants';\r\n\r\nexport function loadObjWithMaterial(mtlFile, objFile, imgPath) {\r\n var manager = new LoadingManager();\r\n let mtlLoader = new MTLLoader(manager);\r\n // mtlLoader.setPath(imgPath);\r\n let url = mtlFile;\r\n return new Promise((resolve, reject) => {\r\n mtlLoader.load(url, materials => {\r\n materials.preload();\r\n let objLoader = new OBJLoader();\r\n objLoader.setMaterials(materials);\r\n objLoader.load(objFile, object => resolve(object));\r\n });\r\n });\r\n}\r\n\r\nexport function loadGLTF(url) {\r\n if (url == undefined) {\r\n return Promise.reject('No url is passed');\r\n }\r\n\r\n const baseURL = LoaderUtils.extractUrlBase(url);\r\n const manager = new LoadingManager();\r\n\r\n // Intercept and override relative URLs.\r\n manager.setURLModifier((url, path) => {\r\n // URIs in a glTF file may be escaped, or not. Assume that assetMap is\r\n // from an un-escaped source, and decode all URIs before lookups.\r\n // See: https://github.com/donmccurdy/three-gltf-viewer/issues/146\r\n const normalizedURL = decodeURI(url)\r\n .replace(baseURL, '')\r\n .replace(/^(\\.?\\/)/, '');\r\n\r\n // if (assetMap.has(normalizedURL)) {\r\n // const blob = assetMap.get(normalizedURL);\r\n // const blobURL = URL.createObjectURL(blob);\r\n // blobURLs.push(blobURL);\r\n // return blobURL;\r\n // }\r\n return (path || '') + url;\r\n });\r\n let loader = new GLTFLoader(manager);\r\n loader.setCrossOrigin('anonymous');\r\n const dracoLoader = new DRACOLoader();\r\n dracoLoader.setDecoderPath('/assets/draco/');\r\n loader.setDRACOLoader(dracoLoader);\r\n return new Promise((resolve, reject) => {\r\n loader.load(\r\n url,\r\n gltf => {\r\n resolve(gltf.scene);\r\n },\r\n xhr => {\r\n // console.log(\"xhr\", xhr);\r\n // called while loading is progressing\r\n // console.log( `${( xhr.loaded / xhr.total * 100 )}% loaded` );\r\n },\r\n error => {\r\n // console.log(\"error\", error);\r\n // called when loading has errors\r\n // console.error( '2= An error happened', error );\r\n reject(error);\r\n }\r\n );\r\n });\r\n}\r\n\r\nexport function scaleObject(object, defaultSizeArray, scaleSizeArray) {\r\n let boundingBox = new Box3().setFromObject(object);\r\n let initialSizeArray = boundingBox.getSize(new Vector3()).toArray();\r\n for (let i = 0; i < 3; i++) {\r\n scaleSizeArray[i] -= defaultSizeArray[i];\r\n defaultSizeArray[i] /= initialSizeArray[i];\r\n }\r\n\r\n object.children.forEach(child => {\r\n if (\r\n child.type == OBJTYPE_MESH &&\r\n child.geometry instanceof BufferGeometry\r\n ) {\r\n let position = child.geometry.attributes.position;\r\n let new_pos = position.array.map((v, i, a) => {\r\n let j = i % 3;\r\n let absv = Math.abs(v);\r\n v = v * defaultSizeArray[j];\r\n if (absv > initialSizeArray[j] / 6) {\r\n v += ((v > 0 ? 1 : -1) * scaleSizeArray[j]) / 2;\r\n }\r\n return v;\r\n });\r\n let new_geom = child.geometry\r\n .clone()\r\n .setAttribute('position', new BufferAttribute(new_pos, 3));\r\n new_geom.computeBoundingBox();\r\n new_geom.computeBoundingSphere();\r\n child.geometry.dispose();\r\n child.geometry = new_geom;\r\n }\r\n });\r\n}\r\n"],"mappings":"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","ignoreList":[]}