kitchen-simulator 5.10.1-react.18 → 5.10.2-react.18

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 (579) hide show
  1. package/es/index.js +3 -627
  2. package/es/index.js.LICENSE.txt +45 -0
  3. package/es/index.js.map +1 -0
  4. package/package.json +9 -5
  5. package/es/@history.js +0 -2
  6. package/es/AppContext.js +0 -6
  7. package/es/LiteKitchenConfigurator.js +0 -474
  8. package/es/LiteRenderer.js +0 -363
  9. package/es/WorkSpace.js +0 -851
  10. package/es/actions/area-actions.js +0 -14
  11. package/es/actions/export.js +0 -23
  12. package/es/actions/groups-actions.js +0 -89
  13. package/es/actions/holes-actions.js +0 -119
  14. package/es/actions/items-actions.js +0 -316
  15. package/es/actions/lines-actions.js +0 -83
  16. package/es/actions/project-actions.js +0 -298
  17. package/es/actions/scene-actions.js +0 -33
  18. package/es/actions/vertices-actions.js +0 -27
  19. package/es/actions/viewer2d-actions.js +0 -58
  20. package/es/actions/viewer3d-actions.js +0 -23
  21. package/es/assets/brown_photostudio_02_1k.hdr +0 -0
  22. package/es/assets/fonts/Rene Bieder Milliard Black Italic.woff +0 -0
  23. package/es/assets/fonts/Rene Bieder Milliard Black.woff +0 -0
  24. package/es/assets/fonts/Rene Bieder Milliard Bold Italic.woff +0 -0
  25. package/es/assets/fonts/Rene Bieder Milliard Bold.woff +0 -0
  26. package/es/assets/fonts/Rene Bieder Milliard Book Italic.woff +0 -0
  27. package/es/assets/fonts/Rene Bieder Milliard Book.woff +0 -0
  28. package/es/assets/fonts/Rene Bieder Milliard ExtraBold Italic.woff +0 -0
  29. package/es/assets/fonts/Rene Bieder Milliard ExtraBold.woff +0 -0
  30. package/es/assets/fonts/Rene Bieder Milliard ExtraLight Italic.woff +0 -0
  31. package/es/assets/fonts/Rene Bieder Milliard ExtraLight.woff +0 -0
  32. package/es/assets/fonts/Rene Bieder Milliard Hairline Italic.woff +0 -0
  33. package/es/assets/fonts/Rene Bieder Milliard Hairline.woff +0 -0
  34. package/es/assets/fonts/Rene Bieder Milliard Heavy Italic.woff +0 -0
  35. package/es/assets/fonts/Rene Bieder Milliard Heavy.woff +0 -0
  36. package/es/assets/fonts/Rene Bieder Milliard Light Italic.woff +0 -0
  37. package/es/assets/fonts/Rene Bieder Milliard Light.woff +0 -0
  38. package/es/assets/fonts/Rene Bieder Milliard Medium Italic.woff +0 -0
  39. package/es/assets/fonts/Rene Bieder Milliard Medium.woff +0 -0
  40. package/es/assets/fonts/Rene Bieder Milliard SemiBold Italic.woff +0 -0
  41. package/es/assets/fonts/Rene Bieder Milliard SemiBold.woff +0 -0
  42. package/es/assets/fonts/Rene Bieder Milliard Thin Italic.woff +0 -0
  43. package/es/assets/fonts/Rene Bieder Milliard Thin.woff +0 -0
  44. package/es/assets/fonts/style.css +0 -177
  45. package/es/assets/gltf/door_closet.bin +0 -0
  46. package/es/assets/gltf/door_closet.fbx +0 -0
  47. package/es/assets/gltf/door_closet.gltf +0 -1
  48. package/es/assets/gltf/door_exterior.bin +0 -0
  49. package/es/assets/gltf/door_exterior.fbx +0 -0
  50. package/es/assets/gltf/door_exterior.gltf +0 -1
  51. package/es/assets/gltf/door_interior.bin +0 -0
  52. package/es/assets/gltf/door_interior.fbx +0 -0
  53. package/es/assets/gltf/door_interior.gltf +0 -1
  54. package/es/assets/gltf/door_sliding.bin +0 -0
  55. package/es/assets/gltf/door_sliding.fbx +0 -0
  56. package/es/assets/gltf/door_sliding.gltf +0 -1
  57. package/es/assets/gltf/doorway_framed.bin +0 -0
  58. package/es/assets/gltf/doorway_framed.fbx +0 -0
  59. package/es/assets/gltf/doorway_framed.gltf +0 -1
  60. package/es/assets/gltf/window_clear.bin +0 -0
  61. package/es/assets/gltf/window_clear.fbx +0 -0
  62. package/es/assets/gltf/window_clear.gltf +0 -1
  63. package/es/assets/gltf/window_cross.bin +0 -0
  64. package/es/assets/gltf/window_cross.fbx +0 -0
  65. package/es/assets/gltf/window_cross.gltf +0 -1
  66. package/es/assets/gltf/window_double_hung.bin +0 -0
  67. package/es/assets/gltf/window_double_hung.fbx +0 -0
  68. package/es/assets/gltf/window_double_hung.gltf +0 -1
  69. package/es/assets/gltf/window_vertical.bin +0 -0
  70. package/es/assets/gltf/window_vertical.fbx +0 -0
  71. package/es/assets/gltf/window_vertical.gltf +0 -1
  72. package/es/assets/img/TKC_thumbnail.png +0 -0
  73. package/es/assets/img/Toggle.png +0 -0
  74. package/es/assets/img/loading/loading.gif +0 -0
  75. package/es/assets/img/loading/loading_1.svg +0 -11
  76. package/es/assets/img/loading_large.gif +0 -0
  77. package/es/assets/img/png/door/closet.png +0 -0
  78. package/es/assets/img/png/door/doorwaysframed.png +0 -0
  79. package/es/assets/img/png/door/doorwaysframeles.png +0 -0
  80. package/es/assets/img/png/door/doorwaysframeless.png +0 -0
  81. package/es/assets/img/png/door/exterior.png +0 -0
  82. package/es/assets/img/png/door/interior.png +0 -0
  83. package/es/assets/img/png/door/sliding.png +0 -0
  84. package/es/assets/img/png/helper/outcome.png +0 -0
  85. package/es/assets/img/png/helper/video_preview_3d.png +0 -0
  86. package/es/assets/img/png/helper/video_preview_start.png +0 -0
  87. package/es/assets/img/project_img.png +0 -0
  88. package/es/assets/img/rta/rta_logo_box_blue.jpg +0 -0
  89. package/es/assets/img/rta/rta_logo_box_blue_ico.jpg +0 -0
  90. package/es/assets/img/rta/rta_logo_box_blue_ico.svg +0 -55
  91. package/es/assets/img/rta/rta_logo_box_darkGray.jpg +0 -0
  92. package/es/assets/img/rta/rta_logo_box_lightblue.png +0 -0
  93. package/es/assets/img/rta/rta_logo_box_lightmaroon.png +0 -0
  94. package/es/assets/img/rta/rta_logo_box_maroon.png +0 -0
  95. package/es/assets/img/rta/rta_logo_box_white.png +0 -0
  96. package/es/assets/img/rta_menu.png +0 -0
  97. package/es/assets/img/step2.jpg +0 -0
  98. package/es/assets/img/step3.jpg +0 -0
  99. package/es/assets/img/step4.jpg +0 -0
  100. package/es/assets/img/step5.jpg +0 -0
  101. package/es/assets/img/step6.jpg +0 -0
  102. package/es/assets/img/step7.jpg +0 -0
  103. package/es/assets/img/step8.jpg +0 -0
  104. package/es/assets/img/svg/2d_delete_object.svg +0 -33
  105. package/es/assets/img/svg/2d_delete_object1.svg +0 -33
  106. package/es/assets/img/svg/2d_lock_object.svg +0 -33
  107. package/es/assets/img/svg/3d_item_move.svg +0 -106
  108. package/es/assets/img/svg/3d_item_rotation.svg +0 -76
  109. package/es/assets/img/svg/3d_item_warning_edit.svg +0 -77
  110. package/es/assets/img/svg/3d_item_warning_info.svg +0 -81
  111. package/es/assets/img/svg/accessories.svg +0 -4
  112. package/es/assets/img/svg/angle_icon.svg +0 -39
  113. package/es/assets/img/svg/blank_div.svg +0 -14
  114. package/es/assets/img/svg/bottombar/2d3d_button.svg +0 -3
  115. package/es/assets/img/svg/bottombar/2d3d_button_active.svg +0 -3
  116. package/es/assets/img/svg/bottombar/2d3d_toggle.svg +0 -4
  117. package/es/assets/img/svg/bottombar/2d3d_toggle_active.svg +0 -4
  118. package/es/assets/img/svg/bottombar/arrow-down.svg +0 -3
  119. package/es/assets/img/svg/bottombar/arrow-left.svg +0 -3
  120. package/es/assets/img/svg/bottombar/arrow-minus.svg +0 -3
  121. package/es/assets/img/svg/bottombar/arrow-plus.svg +0 -11
  122. package/es/assets/img/svg/bottombar/arrow-right.svg +0 -3
  123. package/es/assets/img/svg/bottombar/arrow-up.svg +0 -3
  124. package/es/assets/img/svg/bottombar/collapse.svg +0 -3
  125. package/es/assets/img/svg/bottombar/elevation-back.svg +0 -6
  126. package/es/assets/img/svg/bottombar/elevation-front.svg +0 -6
  127. package/es/assets/img/svg/bottombar/elevation-left.svg +0 -6
  128. package/es/assets/img/svg/bottombar/elevation-right.svg +0 -7
  129. package/es/assets/img/svg/bottombar/elevation.svg +0 -13
  130. package/es/assets/img/svg/bottombar/expand.svg +0 -3
  131. package/es/assets/img/svg/bottombar/help.svg +0 -72
  132. package/es/assets/img/svg/bottombar/incm_toggle.svg +0 -39
  133. package/es/assets/img/svg/bottombar/pan_1.svg +0 -57
  134. package/es/assets/img/svg/bottombar/pan_2.svg +0 -27
  135. package/es/assets/img/svg/bottombar/pan_3.svg +0 -27
  136. package/es/assets/img/svg/bottombar/pan_4.svg +0 -27
  137. package/es/assets/img/svg/bottombar/pan_5.svg +0 -27
  138. package/es/assets/img/svg/bottombar/settings.svg +0 -23
  139. package/es/assets/img/svg/bottombar/spin-down.svg +0 -76
  140. package/es/assets/img/svg/bottombar/spin-left.svg +0 -75
  141. package/es/assets/img/svg/bottombar/spin-right.svg +0 -75
  142. package/es/assets/img/svg/bottombar/spin-up.svg +0 -76
  143. package/es/assets/img/svg/bottombar/spin_1.svg +0 -48
  144. package/es/assets/img/svg/bottombar/spin_2.svg +0 -31
  145. package/es/assets/img/svg/bottombar/spin_3.svg +0 -31
  146. package/es/assets/img/svg/bottombar/spin_4.svg +0 -31
  147. package/es/assets/img/svg/bottombar/spin_5.svg +0 -31
  148. package/es/assets/img/svg/bottombar/zoomin.svg +0 -29
  149. package/es/assets/img/svg/bottombar/zoomout.svg +0 -26
  150. package/es/assets/img/svg/check.svg +0 -10
  151. package/es/assets/img/svg/close.svg +0 -11
  152. package/es/assets/img/svg/color/Black.svg +0 -3
  153. package/es/assets/img/svg/color/Blue.svg +0 -3
  154. package/es/assets/img/svg/color/Brown.svg +0 -9
  155. package/es/assets/img/svg/color/Cream.svg +0 -3
  156. package/es/assets/img/svg/color/Dark.svg +0 -9
  157. package/es/assets/img/svg/color/Gray.svg +0 -3
  158. package/es/assets/img/svg/color/Green.svg +0 -3
  159. package/es/assets/img/svg/color/Light.svg +0 -9
  160. package/es/assets/img/svg/color/Medium.svg +0 -9
  161. package/es/assets/img/svg/color/Unfinished.svg +0 -9
  162. package/es/assets/img/svg/color/White.svg +0 -3
  163. package/es/assets/img/svg/color/White.svg.bak +0 -3
  164. package/es/assets/img/svg/color/stone2.jpg +0 -0
  165. package/es/assets/img/svg/color/wood2.jpg +0 -0
  166. package/es/assets/img/svg/copy.svg +0 -11
  167. package/es/assets/img/svg/delete.svg +0 -3
  168. package/es/assets/img/svg/detail.svg +0 -77
  169. package/es/assets/img/svg/disclaimer/background.svg +0 -758
  170. package/es/assets/img/svg/disclaimer/logo-dots.svg +0 -11
  171. package/es/assets/img/svg/door/Closet.svg +0 -11
  172. package/es/assets/img/svg/door/Exterior.svg +0 -5
  173. package/es/assets/img/svg/door/Framed_dorway.svg +0 -5
  174. package/es/assets/img/svg/door/Frameless_dorway.svg +0 -5
  175. package/es/assets/img/svg/door/Interior.svg +0 -7
  176. package/es/assets/img/svg/door/Sliding.svg +0 -5
  177. package/es/assets/img/svg/doors_closet.svg +0 -47
  178. package/es/assets/img/svg/doors_exterior.svg +0 -25
  179. package/es/assets/img/svg/doors_interior.svg +0 -29
  180. package/es/assets/img/svg/doors_patio.svg +0 -26
  181. package/es/assets/img/svg/duplicate.svg +0 -11
  182. package/es/assets/img/svg/duplicate_object_left.svg +0 -32
  183. package/es/assets/img/svg/duplicate_object_right.svg +0 -32
  184. package/es/assets/img/svg/filtersActive.svg +0 -19
  185. package/es/assets/img/svg/firstsetting/L.svg +0 -3
  186. package/es/assets/img/svg/firstsetting/L2.svg +0 -3
  187. package/es/assets/img/svg/firstsetting/Open.svg +0 -3
  188. package/es/assets/img/svg/firstsetting/Square.svg +0 -3
  189. package/es/assets/img/svg/firstsetting/bar-active.svg +0 -9
  190. package/es/assets/img/svg/firstsetting/bar-normal.svg +0 -3
  191. package/es/assets/img/svg/firstsetting/bullet-current.svg +0 -3
  192. package/es/assets/img/svg/firstsetting/bullet-done.svg +0 -3
  193. package/es/assets/img/svg/firstsetting/bullet-not-done.svg +0 -3
  194. package/es/assets/img/svg/firstsetting/check-active.svg +0 -3
  195. package/es/assets/img/svg/firstsetting/check-normal.svg +0 -3
  196. package/es/assets/img/svg/firstsetting/pencil.svg +0 -11
  197. package/es/assets/img/svg/green_checkmark.svg +0 -27
  198. package/es/assets/img/svg/headerbar/assist.svg +0 -3
  199. package/es/assets/img/svg/headerbar/cart.svg +0 -3
  200. package/es/assets/img/svg/headerbar/check.svg +0 -10
  201. package/es/assets/img/svg/headerbar/consult_designer.svg +0 -45
  202. package/es/assets/img/svg/headerbar/edit_name.svg +0 -26
  203. package/es/assets/img/svg/headerbar/file-dollar.svg +0 -13
  204. package/es/assets/img/svg/headerbar/hamburger_menu.svg +0 -32
  205. package/es/assets/img/svg/headerbar/plus.svg +0 -11
  206. package/es/assets/img/svg/headerbar/review_quote.svg +0 -44
  207. package/es/assets/img/svg/headerbar/ruler-measure.svg +0 -11
  208. package/es/assets/img/svg/headerbar/save.svg +0 -3
  209. package/es/assets/img/svg/headerbar/setting.svg +0 -75
  210. package/es/assets/img/svg/help/check.svg +0 -10
  211. package/es/assets/img/svg/help/search.svg +0 -76
  212. package/es/assets/img/svg/intro/1-start-with-floorplan-whole.svg +0 -27
  213. package/es/assets/img/svg/intro/1-start-with-floorplan.svg +0 -26
  214. package/es/assets/img/svg/intro/2-start-from-scratch-whole.svg +0 -28
  215. package/es/assets/img/svg/intro/2-start-from-scratch.svg +0 -27
  216. package/es/assets/img/svg/intro/3-retrieve-project-whole.svg +0 -19
  217. package/es/assets/img/svg/intro/3-retrieve-project.svg +0 -18
  218. package/es/assets/img/svg/invert.svg +0 -127
  219. package/es/assets/img/svg/lefttoolbar/appliance-active.svg +0 -13
  220. package/es/assets/img/svg/lefttoolbar/appliance.svg +0 -13
  221. package/es/assets/img/svg/lefttoolbar/cabinet-active.svg +0 -10
  222. package/es/assets/img/svg/lefttoolbar/cabinet-category.svg +0 -3
  223. package/es/assets/img/svg/lefttoolbar/cabinet-one.svg +0 -3
  224. package/es/assets/img/svg/lefttoolbar/cabinet.svg +0 -10
  225. package/es/assets/img/svg/lefttoolbar/disigner_assistance.svg +0 -89
  226. package/es/assets/img/svg/lefttoolbar/door-style-active.svg +0 -20
  227. package/es/assets/img/svg/lefttoolbar/door-style.svg +0 -20
  228. package/es/assets/img/svg/lefttoolbar/door.svg +0 -12
  229. package/es/assets/img/svg/lefttoolbar/error_icon.svg +0 -81
  230. package/es/assets/img/svg/lefttoolbar/finishing-active.svg +0 -13
  231. package/es/assets/img/svg/lefttoolbar/finishing.svg +0 -13
  232. package/es/assets/img/svg/lefttoolbar/reviewforquote-active.svg +0 -86
  233. package/es/assets/img/svg/lefttoolbar/reviewforquote.svg +0 -12
  234. package/es/assets/img/svg/lefttoolbar/room-shape-L.svg +0 -3
  235. package/es/assets/img/svg/lefttoolbar/room-shape-active.svg +0 -18
  236. package/es/assets/img/svg/lefttoolbar/room-shape-custom.svg +0 -12
  237. package/es/assets/img/svg/lefttoolbar/room-shape-irregular.svg +0 -3
  238. package/es/assets/img/svg/lefttoolbar/room-shape-open.svg +0 -3
  239. package/es/assets/img/svg/lefttoolbar/room-shape-square.svg +0 -3
  240. package/es/assets/img/svg/lefttoolbar/room-shape.svg +0 -18
  241. package/es/assets/img/svg/lefttoolbar/search.svg +0 -76
  242. package/es/assets/img/svg/lefttoolbar/view_more.svg +0 -86
  243. package/es/assets/img/svg/lefttoolbar/warning_icon.svg +0 -81
  244. package/es/assets/img/svg/lefttoolbar/window.svg +0 -12
  245. package/es/assets/img/svg/logo.svg +0 -11
  246. package/es/assets/img/svg/logo_with_text.svg +0 -25
  247. package/es/assets/img/svg/menubar/login.svg +0 -84
  248. package/es/assets/img/svg/menubar/my_projects.svg +0 -85
  249. package/es/assets/img/svg/menubar/new_project.svg +0 -110
  250. package/es/assets/img/svg/menubar/save_project.svg +0 -84
  251. package/es/assets/img/svg/options.svg +0 -3
  252. package/es/assets/img/svg/positioning.svg +0 -3
  253. package/es/assets/img/svg/rotate.png +0 -0
  254. package/es/assets/img/svg/rotate.svg +0 -17
  255. package/es/assets/img/svg/rotate_object_clockwise.svg +0 -26
  256. package/es/assets/img/svg/rotate_object_counterclockwise.svg +0 -26
  257. package/es/assets/img/svg/toggleFilters.svg +0 -19
  258. package/es/assets/img/svg/toolbar/add_appliances_active.svg +0 -64
  259. package/es/assets/img/svg/toolbar/add_appliances_inactive.svg +0 -52
  260. package/es/assets/img/svg/toolbar/add_button.svg +0 -36
  261. package/es/assets/img/svg/toolbar/add_cabinets_active.svg +0 -59
  262. package/es/assets/img/svg/toolbar/add_cabinets_inactive.svg +0 -49
  263. package/es/assets/img/svg/toolbar/add_items_doors.svg +0 -25
  264. package/es/assets/img/svg/toolbar/add_items_doorways.svg +0 -24
  265. package/es/assets/img/svg/toolbar/add_items_refrigerator.svg +0 -32
  266. package/es/assets/img/svg/toolbar/add_items_windows.svg +0 -28
  267. package/es/assets/img/svg/toolbar/apply_button.svg +0 -38
  268. package/es/assets/img/svg/toolbar/arrow-plus.svg +0 -11
  269. package/es/assets/img/svg/toolbar/backsplash.svg +0 -8
  270. package/es/assets/img/svg/toolbar/cancel_button.svg +0 -37
  271. package/es/assets/img/svg/toolbar/consult_a_designer_button.svg +0 -47
  272. package/es/assets/img/svg/toolbar/countertop.svg +0 -7
  273. package/es/assets/img/svg/toolbar/dcm.png +0 -0
  274. package/es/assets/img/svg/toolbar/dcm_off.svg +0 -12
  275. package/es/assets/img/svg/toolbar/dcm_on.svg +0 -474
  276. package/es/assets/img/svg/toolbar/delete_button.svg +0 -37
  277. package/es/assets/img/svg/toolbar/download.svg +0 -77
  278. package/es/assets/img/svg/toolbar/draw_custom_floor.svg +0 -31
  279. package/es/assets/img/svg/toolbar/edit_button.svg +0 -75
  280. package/es/assets/img/svg/toolbar/email_quote_button.svg +0 -44
  281. package/es/assets/img/svg/toolbar/fbm.png +0 -0
  282. package/es/assets/img/svg/toolbar/finishing_touches_active.svg +0 -54
  283. package/es/assets/img/svg/toolbar/finishing_touches_inactive.svg +0 -42
  284. package/es/assets/img/svg/toolbar/floorstyle.svg +0 -9
  285. package/es/assets/img/svg/toolbar/fmb.png +0 -0
  286. package/es/assets/img/svg/toolbar/fmb_off.svg +0 -12
  287. package/es/assets/img/svg/toolbar/fmb_on.svg +0 -489
  288. package/es/assets/img/svg/toolbar/furnishings_icon.svg +0 -6
  289. package/es/assets/img/svg/toolbar/get_started_button.svg +0 -41
  290. package/es/assets/img/svg/toolbar/handles.svg +0 -5
  291. package/es/assets/img/svg/toolbar/lighting.svg +0 -7
  292. package/es/assets/img/svg/toolbar/lrm.png +0 -0
  293. package/es/assets/img/svg/toolbar/lrm_off.svg +0 -12
  294. package/es/assets/img/svg/toolbar/lrm_on.svg +0 -470
  295. package/es/assets/img/svg/toolbar/make_floorplan_active.svg +0 -66
  296. package/es/assets/img/svg/toolbar/make_floorplan_inactive.svg +0 -52
  297. package/es/assets/img/svg/toolbar/predefined_room_l_shaped.svg +0 -20
  298. package/es/assets/img/svg/toolbar/predefined_room_layout.svg +0 -20
  299. package/es/assets/img/svg/toolbar/predefined_room_long_narrow.svg +0 -20
  300. package/es/assets/img/svg/toolbar/predefined_room_open_l_shape.svg +0 -20
  301. package/es/assets/img/svg/toolbar/predefined_room_open_pentagon.svg +0 -20
  302. package/es/assets/img/svg/toolbar/predefined_room_open_rectangle.svg +0 -20
  303. package/es/assets/img/svg/toolbar/predefined_room_open_rectangle_2.svg +0 -20
  304. package/es/assets/img/svg/toolbar/predefined_room_pentagon.svg +0 -20
  305. package/es/assets/img/svg/toolbar/predefined_room_rectangle.svg +0 -20
  306. package/es/assets/img/svg/toolbar/predefined_room_rectangle_with_alcove.svg +0 -20
  307. package/es/assets/img/svg/toolbar/redo_button.svg +0 -75
  308. package/es/assets/img/svg/toolbar/redo_button1.svg +0 -75
  309. package/es/assets/img/svg/toolbar/review_quote_active.svg +0 -14
  310. package/es/assets/img/svg/toolbar/review_quote_inactive.svg +0 -44
  311. package/es/assets/img/svg/toolbar/save_project_button.svg +0 -44
  312. package/es/assets/img/svg/toolbar/select_doorstyle_active.svg +0 -67
  313. package/es/assets/img/svg/toolbar/select_doorstyle_inactive.svg +0 -57
  314. package/es/assets/img/svg/toolbar/shopping-cart.svg +0 -13
  315. package/es/assets/img/svg/toolbar/style_change_button.svg +0 -47
  316. package/es/assets/img/svg/toolbar/take_picture.svg +0 -75
  317. package/es/assets/img/svg/toolbar/undo_button.svg +0 -76
  318. package/es/assets/img/svg/toolbar/undo_button1.svg +0 -76
  319. package/es/assets/img/svg/toolbar/use_button.svg +0 -37
  320. package/es/assets/img/svg/toolbar/wall_color_icon.svg +0 -6
  321. package/es/assets/img/svg/topbar/edit_active.svg +0 -10
  322. package/es/assets/img/svg/topbar/edit_inactive.svg +0 -10
  323. package/es/assets/img/svg/topbar/redo_active.svg +0 -42
  324. package/es/assets/img/svg/topbar/redo_inactive.svg +0 -23
  325. package/es/assets/img/svg/topbar/select_all_active.svg +0 -50
  326. package/es/assets/img/svg/topbar/select_all_inactive.svg +0 -32
  327. package/es/assets/img/svg/topbar/take_picture_active.svg +0 -51
  328. package/es/assets/img/svg/topbar/take_picture_inactive.svg +0 -26
  329. package/es/assets/img/svg/topbar/undo_active.svg +0 -42
  330. package/es/assets/img/svg/topbar/undo_inactive.svg +0 -23
  331. package/es/assets/img/svg/warning_info_2d.svg +0 -81
  332. package/es/assets/img/svg/window/Clear.svg +0 -3
  333. package/es/assets/img/svg/window/Cross.svg +0 -5
  334. package/es/assets/img/svg/window/Double_hung.svg +0 -4
  335. package/es/assets/img/svg/window/Vertical.svg +0 -4
  336. package/es/assets/img/svg/windows_clear.svg +0 -23
  337. package/es/assets/img/svg/windows_cross.svg +0 -28
  338. package/es/assets/img/svg/windows_double_hung.svg +0 -24
  339. package/es/assets/img/svg/windows_vertical.svg +0 -24
  340. package/es/assets/img/svg/wizardstep/Custom.svg +0 -3
  341. package/es/assets/img/svg/wizardstep/Dashed_line.svg +0 -3
  342. package/es/assets/img/svg/wizardstep/L.svg +0 -3
  343. package/es/assets/img/svg/wizardstep/L2.svg +0 -3
  344. package/es/assets/img/svg/wizardstep/Open.svg +0 -3
  345. package/es/assets/img/svg/wizardstep/Square.svg +0 -3
  346. package/es/assets/img/svg/wizardstep/bar-active.svg +0 -9
  347. package/es/assets/img/svg/wizardstep/bar-normal.svg +0 -3
  348. package/es/assets/img/svg/wizardstep/bullet-current.svg +0 -3
  349. package/es/assets/img/svg/wizardstep/bullet-done.svg +0 -3
  350. package/es/assets/img/svg/wizardstep/bullet-not-done.svg +0 -3
  351. package/es/assets/img/svg/wizardstep/check-active.svg +0 -3
  352. package/es/assets/img/svg/wizardstep/check-normal.svg +0 -3
  353. package/es/assets/img/svg/wizardstep/detail_view.svg +0 -87
  354. package/es/assets/img/svg/wizardstep/pencil.svg +0 -11
  355. package/es/assets/img/svg/wizardstep/tile_view.svg +0 -95
  356. package/es/assets/img/texture/glass.jpg +0 -0
  357. package/es/assets/img/texture/steel.jpg +0 -0
  358. package/es/assets/img/texture/white1px.jpg +0 -0
  359. package/es/assets/img/texture/wood.jpg +0 -0
  360. package/es/assets/model/DCM.bin +0 -0
  361. package/es/assets/model/DCM.fbx +0 -0
  362. package/es/assets/model/DCM.gltf +0 -1
  363. package/es/assets/model/FBM.bin +0 -0
  364. package/es/assets/model/FBM.fbx +0 -0
  365. package/es/assets/model/FBM.gltf +0 -1
  366. package/es/assets/model/LRM.bin +0 -0
  367. package/es/assets/model/LRM.fbx +0 -0
  368. package/es/assets/model/LRM.gltf +0 -1
  369. package/es/assets/rtastore_logo.png +0 -0
  370. package/es/catalog/areas/area/planner-element.js +0 -45
  371. package/es/catalog/back.png +0 -0
  372. package/es/catalog/catalog.js +0 -265
  373. package/es/catalog/doors.png +0 -0
  374. package/es/catalog/doorways.png +0 -0
  375. package/es/catalog/envMap/nx.hdr +0 -0
  376. package/es/catalog/envMap/ny.hdr +0 -0
  377. package/es/catalog/envMap/nz.hdr +0 -0
  378. package/es/catalog/envMap/px.hdr +0 -0
  379. package/es/catalog/envMap/py.hdr +0 -0
  380. package/es/catalog/envMap/pz.hdr +0 -0
  381. package/es/catalog/export.js +0 -0
  382. package/es/catalog/factories/area-factory-3d.js +0 -182
  383. package/es/catalog/factories/area-factory.js +0 -78
  384. package/es/catalog/factories/export.js +0 -7
  385. package/es/catalog/factories/wall-factory-3d.js +0 -202
  386. package/es/catalog/factories/wall-factory.js +0 -267
  387. package/es/catalog/holes/door-closet/planner-element.js +0 -222
  388. package/es/catalog/holes/door-double/door_double.png +0 -0
  389. package/es/catalog/holes/door-double/planner-element.js +0 -315
  390. package/es/catalog/holes/door-exterior/planner-element.js +0 -215
  391. package/es/catalog/holes/door-interior/planner-element.js +0 -227
  392. package/es/catalog/holes/door-panic/panicDoor.png +0 -0
  393. package/es/catalog/holes/door-panic/planner-element.js +0 -503
  394. package/es/catalog/holes/door-panic-double/panicDoorDouble.png +0 -0
  395. package/es/catalog/holes/door-panic-double/planner-element.js +0 -463
  396. package/es/catalog/holes/door-sliding/planner-element.js +0 -225
  397. package/es/catalog/holes/doorway-framed/planner-element.js +0 -145
  398. package/es/catalog/holes/doorway-frameless/planner-element.js +0 -104
  399. package/es/catalog/holes/export.js +0 -13
  400. package/es/catalog/holes/gate/gate.jpg +0 -0
  401. package/es/catalog/holes/window-clear/planner-element.js +0 -166
  402. package/es/catalog/holes/window-clear/texture.png +0 -0
  403. package/es/catalog/holes/window-cross/planner-element.js +0 -165
  404. package/es/catalog/holes/window-cross/texture.png +0 -0
  405. package/es/catalog/holes/window-double-hung/planner-element.js +0 -303
  406. package/es/catalog/holes/window-double-hung/texture.png +0 -0
  407. package/es/catalog/holes/window-vertical/planner-element.js +0 -276
  408. package/es/catalog/holes/window-vertical/texture.png +0 -0
  409. package/es/catalog/lines/wall/planner-element.js +0 -79
  410. package/es/catalog/lines/wall/textures/bricks2.jpg +0 -0
  411. package/es/catalog/lines/wall/textures/bricks3.jpg +0 -0
  412. package/es/catalog/lines/wall/textures/painted-normal.jpg +0 -0
  413. package/es/catalog/molding/molding-dcm/planner-element.js +0 -26
  414. package/es/catalog/molding/molding-dcm/texture.png +0 -0
  415. package/es/catalog/molding/molding-fbm/planner-element.js +0 -26
  416. package/es/catalog/molding/molding-fbm/texture.png +0 -0
  417. package/es/catalog/molding/molding-lrm/planner-element.js +0 -26
  418. package/es/catalog/molding/molding-lrm/texture.png +0 -0
  419. package/es/catalog/properties/export.js +0 -21
  420. package/es/catalog/properties/property-checkbox.js +0 -68
  421. package/es/catalog/properties/property-color.js +0 -39
  422. package/es/catalog/properties/property-enum.js +0 -50
  423. package/es/catalog/properties/property-hidden.js +0 -19
  424. package/es/catalog/properties/property-lenght-measure.js +0 -96
  425. package/es/catalog/properties/property-length-measure.js +0 -80
  426. package/es/catalog/properties/property-length-measure_hole.js +0 -96
  427. package/es/catalog/properties/property-number.js +0 -48
  428. package/es/catalog/properties/property-read-only.js +0 -26
  429. package/es/catalog/properties/property-string.js +0 -48
  430. package/es/catalog/properties/property-toggle.js +0 -39
  431. package/es/catalog/properties/shared-property-style.js +0 -14
  432. package/es/catalog/utils/FuseUtils.js +0 -79
  433. package/es/catalog/utils/exporter.js +0 -161
  434. package/es/catalog/utils/geom-utils.js +0 -189
  435. package/es/catalog/utils/item-loader.js +0 -1602
  436. package/es/catalog/utils/load-obj.js +0 -91
  437. package/es/catalog/utils/mtl-loader.js +0 -357
  438. package/es/catalog/utils/obj-loader.js +0 -476
  439. package/es/catalog/windows.png +0 -0
  440. package/es/class/FuseUtils.js +0 -79
  441. package/es/class/area.js +0 -141
  442. package/es/class/export.js +0 -24
  443. package/es/class/group.js +0 -431
  444. package/es/class/guide.js +0 -58
  445. package/es/class/hole.js +0 -924
  446. package/es/class/item.js +0 -1884
  447. package/es/class/layer.js +0 -663
  448. package/es/class/line.js +0 -1229
  449. package/es/class/project.js +0 -937
  450. package/es/class/vertex.js +0 -198
  451. package/es/components/content.js +0 -135
  452. package/es/components/export.js +0 -9
  453. package/es/components/style/button.js +0 -106
  454. package/es/components/style/cancel-button.js +0 -21
  455. package/es/components/style/content-container.js +0 -30
  456. package/es/components/style/content-title.js +0 -25
  457. package/es/components/style/delete-button.js +0 -24
  458. package/es/components/style/export.js +0 -31
  459. package/es/components/style/form-block.js +0 -20
  460. package/es/components/style/form-color-input.js +0 -26
  461. package/es/components/style/form-label.js +0 -22
  462. package/es/components/style/form-number-input.js +0 -192
  463. package/es/components/style/form-number-input_2.js +0 -238
  464. package/es/components/style/form-select.js +0 -19
  465. package/es/components/style/form-slider.js +0 -60
  466. package/es/components/style/form-submit-button.js +0 -25
  467. package/es/components/style/form-text-input.js +0 -69
  468. package/es/components/viewer2d/area.js +0 -81
  469. package/es/components/viewer2d/export.js +0 -31
  470. package/es/components/viewer2d/grids/grid-horizontal-streak.js +0 -36
  471. package/es/components/viewer2d/grids/grid-streak.js +0 -36
  472. package/es/components/viewer2d/grids/grid-vertical-streak.js +0 -36
  473. package/es/components/viewer2d/grids/grids.js +0 -30
  474. package/es/components/viewer2d/group.js +0 -48
  475. package/es/components/viewer2d/item.js +0 -242
  476. package/es/components/viewer2d/layer.js +0 -164
  477. package/es/components/viewer2d/line.js +0 -997
  478. package/es/components/viewer2d/ruler.js +0 -84
  479. package/es/components/viewer2d/rulerDist.js +0 -102
  480. package/es/components/viewer2d/rulerX.js +0 -142
  481. package/es/components/viewer2d/rulerY.js +0 -144
  482. package/es/components/viewer2d/scene.js +0 -108
  483. package/es/components/viewer2d/snap.js +0 -74
  484. package/es/components/viewer2d/state.js +0 -73
  485. package/es/components/viewer2d/utils.js +0 -193
  486. package/es/components/viewer2d/vertex.js +0 -66
  487. package/es/components/viewer2d/viewer2d.js +0 -1405
  488. package/es/components/viewer3d/camera-controls-module/camera-controls.module.js +0 -2585
  489. package/es/components/viewer3d/dcm.js +0 -401
  490. package/es/components/viewer3d/fbm.js +0 -414
  491. package/es/components/viewer3d/front3D.js +0 -62
  492. package/es/components/viewer3d/grid-creator.js +0 -25
  493. package/es/components/viewer3d/grids/grid-horizontal-streak.js +0 -36
  494. package/es/components/viewer3d/grids/grid-streak.js +0 -27
  495. package/es/components/viewer3d/grids/grid-vertical-streak.js +0 -36
  496. package/es/components/viewer3d/libs/first-person-controls.js +0 -67
  497. package/es/components/viewer3d/libs/helvetiker_regular.typeface.js +0 -1281
  498. package/es/components/viewer3d/libs/mtl-loader.js +0 -357
  499. package/es/components/viewer3d/libs/obj-loader.js +0 -462
  500. package/es/components/viewer3d/libs/orbit-controls.js +0 -697
  501. package/es/components/viewer3d/libs/pointer-lock-controls.js +0 -44
  502. package/es/components/viewer3d/lrm.js +0 -305
  503. package/es/components/viewer3d/model.js +0 -708
  504. package/es/components/viewer3d/pointer-lock-navigation.js +0 -115
  505. package/es/components/viewer3d/ruler-utils/itemRect.js +0 -61
  506. package/es/components/viewer3d/ruler-utils/layer3D.js +0 -495
  507. package/es/components/viewer3d/ruler-utils/ruler3D.js +0 -224
  508. package/es/components/viewer3d/ruler-utils/scene3D.js +0 -59
  509. package/es/components/viewer3d/ruler-utils/state3D.js +0 -18
  510. package/es/components/viewer3d/scene-creator.js +0 -3818
  511. package/es/components/viewer3d/three-memory-cleaner.js +0 -51
  512. package/es/components/viewer3d/viewer3d-first-person.js +0 -311
  513. package/es/components/viewer3d/viewer3d.js +0 -2654
  514. package/es/constants.js +0 -769
  515. package/es/index.html.ejs +0 -264
  516. package/es/models.js +0 -512
  517. package/es/plugins/SVGLoader.js +0 -1414
  518. package/es/plugins/console-debugger.js +0 -34
  519. package/es/plugins/export.js +0 -7
  520. package/es/plugins/keyboard.js +0 -110
  521. package/es/reducers/areas-reducer.js +0 -12
  522. package/es/reducers/export.js +0 -25
  523. package/es/reducers/groups-reducer.js +0 -38
  524. package/es/reducers/holes-reducer.js +0 -62
  525. package/es/reducers/items-reducer.js +0 -143
  526. package/es/reducers/lines-reducer.js +0 -45
  527. package/es/reducers/project-reducer.js +0 -136
  528. package/es/reducers/reducer.js +0 -19
  529. package/es/reducers/scene-reducer.js +0 -28
  530. package/es/reducers/user-reducer.js +0 -41
  531. package/es/reducers/vertices-reducer.js +0 -19
  532. package/es/reducers/viewer2d-reducer.js +0 -77
  533. package/es/reducers/viewer3d-reducer.js +0 -58
  534. package/es/shared-style.js +0 -66
  535. package/es/translator/en.js +0 -104
  536. package/es/translator/it.js +0 -79
  537. package/es/translator/ru.js +0 -79
  538. package/es/translator/translator.js +0 -80
  539. package/es/utils/browser.js +0 -33
  540. package/es/utils/convert-units-lite.js +0 -29
  541. package/es/utils/email-validator.js +0 -4
  542. package/es/utils/export.js +0 -25
  543. package/es/utils/geometry.js +0 -2609
  544. package/es/utils/get-edges-of-subgraphs.js +0 -26
  545. package/es/utils/graph-cycles.js +0 -238
  546. package/es/utils/graph-inner-cycles.js +0 -46
  547. package/es/utils/graph.js +0 -145
  548. package/es/utils/helper.js +0 -436
  549. package/es/utils/history.js +0 -29
  550. package/es/utils/id-broker.js +0 -15
  551. package/es/utils/isolate-event-handler.js +0 -1622
  552. package/es/utils/logger.js +0 -8
  553. package/es/utils/math.js +0 -50
  554. package/es/utils/molding.js +0 -1347
  555. package/es/utils/name-generator.js +0 -17
  556. package/es/utils/objects-utils.js +0 -50
  557. package/es/utils/phone-validator.js +0 -4
  558. package/es/utils/process-black-list.js +0 -15
  559. package/es/utils/react-if.js +0 -18
  560. package/es/utils/ruler.js +0 -58
  561. package/es/utils/snap-scene.js +0 -94
  562. package/es/utils/snap.js +0 -231
  563. package/es/utils/summarizeCart.js +0 -24
  564. package/es/utils/threeCSG.es6.js +0 -494
  565. package/es/version.js +0 -1
  566. /package/es/{catalog/lines/wall/textures/plaster-normal.jpg → 1fc74a85baa030dbc913.jpg} +0 -0
  567. /package/es/{catalog/lines/wall/wall.png → 30a49a74d9bd10068b65.png} +0 -0
  568. /package/es/{catalog/lines/wall/textures/bricks-normal2.jpg → 340a84d3930143a53545.jpg} +0 -0
  569. /package/es/{catalog/lines/wall/textures/morden-normal.jpg → 5c8d36b3e7223934f447.jpg} +0 -0
  570. /package/es/{catalog/lines/wall/textures/bricks-normal.jpg → 81e7a7e6edf162e88b44.jpg} +0 -0
  571. /package/es/{catalog/lines/wall/textures/morden.jpg → 8fe0f1210d8ba435a790.jpg} +0 -0
  572. /package/es/{catalog/lines/wall/textures/bricks.jpg → a07d30a04bda8ee03491.jpg} +0 -0
  573. /package/es/{catalog/lines/wall/textures/painted.jpg → bee3f62687a97bcc3d9f.jpg} +0 -0
  574. /package/es/{catalog/areas/area/textures/strand-porcelain.jpg → c232d250fd899392b1b7.jpg} +0 -0
  575. /package/es/{catalog/areas/area/textures/tile1.jpg → c7ae6f4de09134ebe588.jpg} +0 -0
  576. /package/es/{catalog/lines/wall/textures/plaster.jpg → dad5ee758630256ee702.jpg} +0 -0
  577. /package/es/{catalog/areas/area/textures/grass.jpg → e470a2ce76062955fa98.jpg} +0 -0
  578. /package/es/{catalog/areas/area/textures/parquet.jpg → e5ae13166775e7d071e4.jpg} +0 -0
  579. /package/es/{catalog/areas/area/textures/ceramic-tile.jpg → e8e5de0892f5375460bd.jpg} +0 -0
@@ -1,1602 +0,0 @@
1
- import _typeof from "@babel/runtime/helpers/esm/typeof";
2
- import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
3
- import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
4
- function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
5
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
6
- import { convert } from "../../utils/convert-units-lite";
7
- import { fromJS, Map } from 'immutable';
8
- import React, { useState } from 'react';
9
- import * as Three from 'three';
10
- import * as SceneCreator from "../../components/viewer3d/scene-creator";
11
- import { ARROW_COLOR, BASE_CABINET_LAYOUTPOS, OBJTYPE_GROUP, OBJTYPE_MESH, SHADE_DARK_PURPLE_COLOR, SHAPE_SVG_DEPTH, SHAPE_SVG_PADDING, SHAPE_SVG_WIDTH, STATUS_WARNING_COLOR, STATUS_WARNING_LIGHT_COLOR, TALL_CABINET_LAYOUTPOS, UNIT_CENTIMETER, UNIT_INCH, WALL_CABINET_LAYOUTPOS } from "../../constants";
12
- import { Item } from "../../models";
13
- import * as GeomUtils from "./geom-utils";
14
- import { loadGLTF } from "./load-obj";
15
- import { animateDoor, isEmpty, translateDrawer } from "../../utils/helper";
16
- import { isWarningItem } from "../../components/viewer2d/utils";
17
- var INITIAL_NORMAL_MAP = '';
18
-
19
- // env Map ///////////////
20
- var paramsCounter = {
21
- envMap: 'HDR',
22
- roughness: 0.6,
23
- metalness: 0.3,
24
- exposure: 1
25
- // debug: true
26
- };
27
- var params = {
28
- envMap: 'HDR',
29
- roughness: 0.9,
30
- metalness: 0.1,
31
- metalness_glossy: 0.2,
32
- exposure: 1.0
33
- // debug: false
34
- };
35
- var paramsModel = {
36
- envMap: 'HDR',
37
- roughness: 0.9,
38
- metalness: 0.2,
39
- exposure: 1.0
40
- // debug: false
41
- };
42
- var buttons = [{
43
- name: 'Edit',
44
- thumbnail: '/assets/img/svg/3d_item_warning_edit.svg'
45
- }, {
46
- name: 'Info',
47
- thumbnail: '/assets/img/svg/3d_item_warning_info.svg'
48
- }];
49
-
50
- // /////////////////////////
51
-
52
- var cachedObject = {}; // cached Object for quickly load-3d
53
-
54
- // render 2d function//////
55
- export function render2DItem(element, layer, scene, sizeinfo, layoutpos, is_corner, shape_svg) {
56
- var _useState = useState(false),
57
- _useState2 = _slicedToArray(_useState, 2),
58
- hover = _useState2[0],
59
- setHover = _useState2[1];
60
- var x = element.x,
61
- y = element.y,
62
- rotation = element.rotation;
63
- var el_DSN = 'el_DSN',
64
- doorStylesKeys = [];
65
- var _element = element.toJS();
66
- if (_element.doorStyle !== undefined) {
67
- if (_element.doorStyle.doorStyles !== undefined) {
68
- doorStylesKeys = Object.keys(_element.doorStyle.doorStyles);
69
- }
70
- }
71
- if ((doorStylesKeys.includes('euro_length') || doorStylesKeys.includes('euro_width') || doorStylesKeys.includes('euro_shape_svg')) && _element.doorStyle.doorStyles.is_euro_cds) {
72
- el_DSN = _element.doorStyle.door_style_name;
73
- } else {
74
- el_DSN = 'el_DSN';
75
- }
76
- var width, depth, el_euro_length, el_euro_width, el_euro_length_unit, el_euro_width_unit, el_is_euro_cds, el_euro_shape_svg;
77
- if (doorStylesKeys.length > 0) {
78
- el_euro_length = _element.doorStyle.doorStyles.euro_length;
79
- el_euro_width = _element.doorStyle.doorStyles.euro_width;
80
- el_is_euro_cds = _element.doorStyle.doorStyles.is_euro_cds;
81
- el_euro_shape_svg = _element.doorStyle.doorStyles.euro_shape_svg;
82
- }
83
- if (isEmpty(el_euro_length) && isEmpty(el_euro_width)) {
84
- el_DSN = 'el_DSN';
85
- }
86
- if (el_DSN === 'Euro & Frameless') {
87
- // sizeinfo["depth"] = el_euro_length;
88
- // sizeinfo["width"] = el_euro_width;
89
- }
90
- var tempWidth = element.properties.get('width');
91
- var tempDepth = element.properties.get('depth');
92
- width = tempWidth && {
93
- length: tempWidth.get('_length'),
94
- unit: tempWidth.get('_unit')
95
- };
96
- depth = tempDepth && {
97
- length: tempDepth.get('_length'),
98
- unit: tempDepth.get('_unit')
99
- };
100
- var originalWidth = convert(sizeinfo.width).from('in').to('cm');
101
- var originalDepth = convert(sizeinfo.depth).from('in').to('cm');
102
- var newWidth = convert(width.length).from(width.unit).to('cm');
103
- var newDepth = convert(depth.length).from(depth.unit).to('cm');
104
- var padding = convert(SHAPE_SVG_PADDING).from(UNIT_INCH).to(UNIT_CENTIMETER);
105
- var angle = element.rotation + 90;
106
- var textRotation = 0;
107
- if (Math.sin(angle * Math.PI / 180) < 0) {
108
- textRotation = 180;
109
- }
110
- var color = '#eee';
111
- if (layoutpos == BASE_CABINET_LAYOUTPOS) {
112
- color = '#3f8db3';
113
- }
114
- if (layoutpos == TALL_CABINET_LAYOUTPOS) {
115
- color = '#93b3be';
116
- }
117
- if (layoutpos == WALL_CABINET_LAYOUTPOS) {
118
- color = '#48b08dcc';
119
- }
120
- var splitStr = [];
121
- var txtContent = [];
122
- var lineCount = 0; //parseInt(((newWidth) / 8 - 0.51).toFixed(), 10) - 1;
123
- var rowCount = 0; //parseInt((element.type.length / lineCount - 0.51).toFixed(), 10);
124
-
125
- // Get type
126
- var objSKU = this.obj.sku_number;
127
- if (objSKU.length !== 0) {
128
- var dcId,
129
- doorStyle = element.doorStyle;
130
- if (doorStyle instanceof Map) {
131
- dcId = doorStyle.get('id');
132
- } else {
133
- dcId = doorStyle.id;
134
- }
135
- var skuItem = this.obj.skuArray.find(function (el) {
136
- return el.door_color_id === dcId;
137
- });
138
- if (skuItem !== undefined) {
139
- objSKU = skuItem.sku;
140
- }
141
- }
142
- if (rowCount > 0) {
143
- for (var _x = 0; _x < rowCount; _x++) {
144
- splitStr.push(objSKU.slice(lineCount * _x, lineCount * (_x + 1)));
145
- }
146
- }
147
- splitStr.push(objSKU.slice(lineCount * rowCount));
148
- splitStr.forEach(function (el, key) {
149
- txtContent.push(/*#__PURE__*/React.createElement("text", {
150
- key: 'text' + key,
151
- x: "0",
152
- y: newDepth / 2 - 12,
153
- dy: 16 * key,
154
- transform: "translate(".concat(newWidth / 2, ", ").concat(newDepth / 2 + 5, ") scale(1,-1) rotate(").concat(textRotation, ")")
155
- // textLength={newWidth - 10}
156
- // lengthAdjust="spacingAndGlyphs"
157
- ,
158
- style: {
159
- fontWeight: 500,
160
- fontSize: '7px',
161
- textAnchor: 'middle',
162
- fill: '#FFF',
163
- display: 'block'
164
- }
165
- }, el));
166
- });
167
- var style = {
168
- stroke: element.selected ? '#565658' : '#565658',
169
- strokeWidth: '2px',
170
- fill: color
171
- };
172
- // let arrow_style = { stroke: element.selected ? '#0096fd' : null, strokeWidth: "2px", fill: "#84e1ce" };
173
-
174
- var rendered = null;
175
- var svg_url, svg_width, svg_depth;
176
- if (shape_svg || el_euro_shape_svg) {
177
- if (typeof shape_svg == 'string' || typeof el_euro_shape_svg == 'string') {
178
- if (el_DSN === 'Euro & Frameless' && el_is_euro_cds) {
179
- svg_url = el_euro_shape_svg;
180
- svg_width = newWidth;
181
- svg_depth = newDepth;
182
- } else {
183
- svg_url = shape_svg;
184
- svg_width = originalWidth;
185
- svg_depth = originalDepth;
186
- }
187
- } else {
188
- // if (el_DSN === "Euro & Frameless" && el_is_euro_cds) {
189
- // // svg_url = el_euro_shape_svg.url;
190
- // } else {
191
- // }
192
- svg_url = shape_svg.url;
193
- svg_width = convert(SHAPE_SVG_WIDTH).from(UNIT_INCH).to(UNIT_CENTIMETER);
194
- svg_depth = convert(SHAPE_SVG_DEPTH).from(UNIT_INCH).to(UNIT_CENTIMETER);
195
- }
196
- var padding_width = padding * newWidth / svg_width;
197
- var padding_depth = padding * newDepth / svg_depth;
198
-
199
- // offset of the warning icons(by default, show the icons with width direction and if depth is bigger than width, show with depth direction.)
200
- var transX = svg_width < svg_depth ? 0 : 10;
201
- var transY = svg_width < svg_depth ? 10 : 0;
202
- var warning_buttons = /*#__PURE__*/React.createElement("g", null, /*#__PURE__*/React.createElement("g", {
203
- id: "warning_info_2d",
204
- style: {
205
- cursor: 'pointer',
206
- transform: "translate(".concat(-transX, "px, ").concat(-transY, "px)")
207
- },
208
- onMouseEnter: function onMouseEnter(event) {
209
- var target = event.currentTarget;
210
- var tooltip = document.getElementById('warning_box_2d');
211
- var parent = document.querySelector('#kitchen-simulator-container');
212
- if (!tooltip || !parent) return;
213
- var targetRect = target.getBoundingClientRect();
214
- var parentRect = parent.getBoundingClientRect();
215
- var left = targetRect.left - parentRect.left;
216
- var top = targetRect.top - parentRect.top;
217
- tooltip.style.display = 'flex';
218
- tooltip.style.left = "".concat(left, "px");
219
- tooltip.style.top = "".concat(top - 60, "px");
220
- },
221
- onMouseLeave: function onMouseLeave() {
222
- if (document.getElementById('warning_box_2d')) {
223
- document.getElementById('warning_box_2d').style.display = 'none';
224
- }
225
- }
226
- }, /*#__PURE__*/React.createElement("circle", {
227
- cx: 0,
228
- cy: 0,
229
- r: 8,
230
- fill: "white"
231
- }), /*#__PURE__*/React.createElement("image", {
232
- width: 15,
233
- height: 15,
234
- x: -7.5,
235
- y: -7.5,
236
- style: {
237
- transform: "rotate(".concat(180 - element.rotation, "deg)")
238
- },
239
- href: buttons[1].thumbnail
240
- })), /*#__PURE__*/React.createElement("g", {
241
- style: {
242
- cursor: 'pointer',
243
- transform: "translate(".concat(transX, "px, ").concat(transY, "px)")
244
- },
245
- "data-element-root": true,
246
- "data-prototype": element.prototype,
247
- "data-id": element.id,
248
- "data-selected": element.selected,
249
- "data-layer": layer.id,
250
- "data-part": "warning_edit"
251
- }, /*#__PURE__*/React.createElement("circle", {
252
- cx: 0,
253
- cy: 0,
254
- r: 8,
255
- fill: "white"
256
- }), /*#__PURE__*/React.createElement("image", {
257
- width: 15,
258
- height: 15,
259
- x: -7.5,
260
- y: -7.5,
261
- style: {
262
- transform: "rotate(".concat(90 - element.rotation, "deg)")
263
- },
264
- href: buttons[0].thumbnail
265
- })));
266
-
267
- // show item
268
- rendered = /*#__PURE__*/React.createElement("g", {
269
- "data-element-root": true,
270
- "data-prototype": element.prototype,
271
- "data-id": element.id,
272
- "data-selected": element.selected,
273
- "data-layer": layer.id,
274
- onMouseOver: function onMouseOver(event) {
275
- setHover(true);
276
- },
277
- onMouseOut: function onMouseOut(event) {
278
- setHover(false);
279
- },
280
- transform: "translate(".concat(x, ",").concat(y, ")")
281
- }, /*#__PURE__*/React.createElement("g", {
282
- transform: "rotate(".concat(rotation, ")")
283
- }, /*#__PURE__*/React.createElement("g", {
284
- transform: "translate(".concat(-newWidth / 2 - padding_width, ",").concat(-newDepth / 2 - padding_depth, ")")
285
- }, /*#__PURE__*/React.createElement("image", {
286
- preserveAspectRatio: "none",
287
- style: {
288
- pointerEvents: 'none'
289
- },
290
- href: svg_url,
291
- width: "".concat(newWidth + 2 * padding_width),
292
- height: "".concat(newDepth + 2 * padding_depth),
293
- transform: "scale(1, -1)",
294
- x: "0",
295
- y: "".concat(-newDepth - 2 * padding_depth)
296
- }), /*#__PURE__*/React.createElement("rect", {
297
- x: "".concat(padding_width),
298
- y: "".concat(padding_depth),
299
- width: "".concat(newWidth),
300
- height: "".concat(newDepth),
301
- visibility: 'hidden',
302
- style: {
303
- pointerEvents: 'all',
304
- opacity: 0.7,
305
- postion: 'relative'
306
- }
307
- }), /*#__PURE__*/React.createElement("g", {
308
- transform: "translate(".concat(padding_width, ",").concat(padding_depth, ")")
309
- }, txtContent)), element.category === 'cabinet' && /*#__PURE__*/React.createElement("g", {
310
- visibility: isWarningItem(element) ? 'visible' : 'hidden'
311
- }, warning_buttons)));
312
- } else {
313
- rendered = /*#__PURE__*/React.createElement("g", {
314
- onMouseOver: function onMouseOver(event) {
315
- setHover(true);
316
- },
317
- onMouseOut: function onMouseOut(event) {
318
- setHover(false);
319
- },
320
- transform: "translate(".concat(x, ",").concat(y, ")")
321
- }, /*#__PURE__*/React.createElement("g", {
322
- transform: "rotate(".concat(rotation, ")")
323
- }, /*#__PURE__*/React.createElement("g", {
324
- transform: "translate(".concat(-newWidth / 2, ",").concat(-newDepth / 2, ")")
325
- }, newDepth > 15 ? [/*#__PURE__*/React.createElement("rect", {
326
- key: "base",
327
- x: "0",
328
- y: "12",
329
- width: newWidth,
330
- height: newDepth - 12,
331
- style: style
332
- }), /*#__PURE__*/React.createElement("polygon", {
333
- key: "door",
334
- style: style,
335
- points: "0,9 ".concat(newWidth, ",9 ").concat(newWidth, ",6 ").concat(newWidth - 5, ",6 ").concat(newWidth - 5, ",3 ").concat(newWidth - 2, ",3 ").concat(newWidth - 2, " 0 ").concat(newWidth - 10, " 0 ").concat(newWidth - 10, ",3 ").concat(newWidth - 7, ",3 ").concat(newWidth - 7, ",6 0 6")
336
- })] : /*#__PURE__*/React.createElement("rect", {
337
- key: "base",
338
- x: "0",
339
- y: "0",
340
- width: newWidth,
341
- height: newDepth,
342
- style: style
343
- }), txtContent)));
344
- }
345
- return rendered;
346
- }
347
- // end of render 2d function /////////////////////////
348
-
349
- export function loadTexture(url) {
350
- var texture = new Three.TextureLoader().load(url);
351
- texture.colorSpace = Three.SRGBColorSpace;
352
- texture.wrapS = Three.MirroredRepeatWrapping;
353
- texture.wrapT = Three.MirroredRepeatWrapping;
354
- return texture;
355
- }
356
- var applyTexture = function applyTexture(material, texture, length, height) {
357
- if (texture) {
358
- material.map = texture;
359
- material.needsUpdate = true;
360
- material.map.wrapS = Three.RepeatWrapping;
361
- material.map.wrapT = Three.RepeatWrapping;
362
- material.map.repeat.set(length * 0.01, height * 0.01);
363
- if (texture.normal) {
364
- material.normalMap = loadTexture(texture.normal.uri);
365
- material.normalScale = new Vector2(texture.normal.normalScaleX, texture.normal.normalScaleY);
366
- material.normalMap.wrapS = Three.RepeatWrapping;
367
- material.normalMap.wrapT = Three.RepeatWrapping;
368
- material.normalMap.repeat.set(length * texture.normal.lengthRepeatScale, height * texture.normal.heightRepeatScale);
369
- }
370
- }
371
- };
372
- var assignUVs = function assignUVs(geometry) {
373
- geometry.computeBoundingBox();
374
- var _geometry$boundingBox = geometry.boundingBox,
375
- min = _geometry$boundingBox.min,
376
- max = _geometry$boundingBox.max;
377
- var offset = new Three.Vector3(0 - min.x, 0 - min.y, 0 - min.z);
378
- var range = new Three.Vector3(max.x - min.x, max.y - min.y, max.z - min.z);
379
- geometry.faceVertexUvs[0] = geometry.faces.map(function (face) {
380
- var v1 = geometry.vertices[face.a];
381
- var v2 = geometry.vertices[face.b];
382
- var v3 = geometry.vertices[face.c];
383
- return [new Three.Vector3((v1.x + offset.x) / range.x, (v1.y + offset.y) / range.y, (v1.z + offset.z) / range.z), new Three.Vector3((v2.x + offset.x) / range.x, (v2.y + offset.y) / range.y, (v1.z + offset.z) / range.z), new Three.Vector3((v3.x + offset.x) / range.x, (v3.y + offset.y) / range.y, (v1.z + offset.z) / range.z)];
384
- });
385
- geometry.uvsNeedUpdate = true;
386
- };
387
-
388
- /**
389
- * Render 3D Item
390
- * @param {Item} element Rendering item
391
- * @param sizeinfo Dimesion of the item
392
- * @param structure_json Structure of the item such as place holders and meshes, etc
393
- */
394
- export function render3DItem(element, layer, scene, sizeinfo, structure_json, is_corner) {
395
- var mode = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : null;
396
- if (element.doorStyle.constructor !== Map) {
397
- element = element.set('doorStyle', fromJS(element.doorStyle));
398
- }
399
- if (element.doorStyle.toJS().handle_gltf !== '') {
400
- // Check element has doorHandle
401
- for (var i = 1; i < 10; i++) {
402
- element = element.setIn(['doorStyle', 'doorStyles', 'door_handle_' + i + '_gltf'], element.doorStyle.toJS().handle_gltf);
403
- element = element.setIn(['doorStyle', 'doorStyles', 'fixed_drawer_door_handle_' + i + '_gltf'], element.doorStyle.toJS().handle_gltf);
404
- element = element.setIn(['doorStyle', 'doorStyles', 'drawer_door_handle_' + i + '_gltf'], element.doorStyle.toJS().handle_gltf);
405
- }
406
- }
407
- var width = {
408
- length: sizeinfo.width,
409
- unit: 'in'
410
- };
411
- var depth = {
412
- length: sizeinfo.depth,
413
- unit: 'in'
414
- };
415
- var height = {
416
- length: sizeinfo.height,
417
- unit: 'in'
418
- };
419
- var newWidth = convert(width.length).from(width.unit).to('in');
420
- var newDepth = convert(depth.length).from(depth.unit).to('in');
421
- var newHeight = convert(height.length).from(height.unit).to('in');
422
- var mainName = ''; // to get name structure//
423
- if (element.properties.get('width')) newWidth = element.getIn(['properties', 'width', '_length']);
424
- if (element.properties.get('depth')) newDepth = element.getIn(['properties', 'depth', '_length']);
425
- if (element.properties.get('height')) newHeight = element.getIn(['properties', 'height', '_length']);
426
- var structure = structure_json;
427
- // structure.push({name:'model', url: '/assets/model/DCM.gltf'});
428
- structure.model = '/assets/model/DCM.gltf';
429
- var placeholders = structure.placeholders;
430
- var doorStyles = null;
431
- var color = 0xffffff,
432
- glossness = 1,
433
- handleMaterial = {};
434
- var counterTop = element.counterTop;
435
- if (layer.toJS().counterTop.uri) {
436
- counterTop.uri = layer.toJS().counterTop.uri;
437
- }
438
- if ('name' in element.doorStyle) {
439
- var _element2, _element3, _element4, _element5;
440
- doorStyles = new Map(element.doorStyle.doorStyles);
441
- color = (_element2 = element) === null || _element2 === void 0 || (_element2 = _element2.doorStyle) === null || _element2 === void 0 ? void 0 : _element2.color;
442
- glossness = (_element3 = element) === null || _element3 === void 0 || (_element3 = _element3.doorStyle) === null || _element3 === void 0 ? void 0 : _element3.glossness;
443
- handleMaterial.metalness = (_element4 = element) === null || _element4 === void 0 || (_element4 = _element4.doorStyle) === null || _element4 === void 0 ? void 0 : _element4.metalness;
444
- handleMaterial.roughness = (_element5 = element) === null || _element5 === void 0 || (_element5 = _element5.doorStyle) === null || _element5 === void 0 ? void 0 : _element5.roughness;
445
- } else if (element.doorStyle != null && element.doorStyle) {
446
- var _element6, _element7, _element8, _element9, _element0;
447
- doorStyles = (_element6 = element) === null || _element6 === void 0 || (_element6 = _element6.doorStyle) === null || _element6 === void 0 ? void 0 : _element6.get('doorStyles');
448
- color = (_element7 = element) === null || _element7 === void 0 || (_element7 = _element7.doorStyle) === null || _element7 === void 0 ? void 0 : _element7.get('color');
449
- glossness = (_element8 = element) === null || _element8 === void 0 || (_element8 = _element8.doorStyle) === null || _element8 === void 0 ? void 0 : _element8.get('glossness');
450
- handleMaterial.metalness = (_element9 = element) === null || _element9 === void 0 || (_element9 = _element9.doorStyle) === null || _element9 === void 0 ? void 0 : _element9.get('metalness');
451
- handleMaterial.roughness = (_element0 = element) === null || _element0 === void 0 || (_element0 = _element0.doorStyle) === null || _element0 === void 0 ? void 0 : _element0.get('roughness');
452
- }
453
- if (isEmpty(color)) color = '#ffffff';
454
- if (isEmpty(glossness)) glossness = 1;
455
- var tempDoorStyles = doorStyles.toJS();
456
- var tempPlaceholders = structure.tempPlaceholders;
457
- var tPlaceholders = tempPlaceholders.find(function (el) {
458
- var _tempDoorStyles$cds, _tempDoorStyles$cds$;
459
- if (tempDoorStyles !== null && tempDoorStyles !== void 0 && tempDoorStyles.cabinet_door_style_id) return el.id === (tempDoorStyles === null || tempDoorStyles === void 0 ? void 0 : tempDoorStyles.cabinet_door_style_id);else if ((tempDoorStyles === null || tempDoorStyles === void 0 || (_tempDoorStyles$cds = tempDoorStyles.cds) === null || _tempDoorStyles$cds === void 0 ? void 0 : _tempDoorStyles$cds.length) > 0) return el.id === (tempDoorStyles === null || tempDoorStyles === void 0 || (_tempDoorStyles$cds$ = tempDoorStyles.cds[0]) === null || _tempDoorStyles$cds$ === void 0 ? void 0 : _tempDoorStyles$cds$.cabinet_door_style_id);
460
- return false;
461
- });
462
- if (tPlaceholders !== undefined) {
463
- placeholders = tPlaceholders.placeholders;
464
- var tempStructure = _objectSpread(_objectSpread({}, tPlaceholders.structure), {}, {
465
- animation: structure.animation,
466
- placeholders: structure.placeholders,
467
- tempPlaceholders: structure.tempPlaceholders,
468
- model: structure.model
469
- });
470
- structure = tempStructure;
471
- }
472
- var userData = structure.animation;
473
- // ///////////////////////////
474
- var onLoadItem = function onLoadItem(object) {
475
- var areaMaterial = new Three.MeshStandardMaterial();
476
- areaMaterial.side = Three.DoubleSide;
477
- // areaMaterial.envMap = textureCube;
478
- if (isEmpty(doorStyles)) {
479
- var normalMap = doorStyles.get('base') || INITIAL_NORMAL_MAP;
480
- var interiortexture = loadTexture(normalMap);
481
- applyTexture(areaMaterial, interiortexture, 100, 100);
482
- }
483
- var object1 = object;
484
- var newAltitude = element.properties.get('altitude').get('_length');
485
- var newUnit = element.properties.get('altitude').get('_unit') || 'in';
486
- newAltitude = convert(newAltitude).from(newUnit).to(scene.unit);
487
- var _element = element.toJS();
488
- if (!_element.doorStyle.doorStyles.is_euro_cds) {
489
- object1.scale.set(100 * newWidth / sizeinfo.width, 100 * newHeight / sizeinfo.height, 100 * newDepth / sizeinfo.depth);
490
- } else {
491
- object1.scale.set(100, 100, 100);
492
- }
493
- // Normalize the origin of the object
494
- var boundingBox = GeomUtils.baseBox3FromObject(object1);
495
- object1.userData = boundingBox;
496
- var door_animate_offset = {};
497
- var matchStr = /\d_(door[^LR1-9]*)(_[LR])?(_[1-9])?$/;
498
- object1.children.forEach(function (child) {
499
- var door_match = child.name.match(matchStr);
500
- if (door_match && door_match.length > 2) {
501
- var _child$children$;
502
- var rotate_match_text = element.properties.toJS().flip_doorhandle ? 'rotate_L' : 'rotate_R';
503
- if (door_match[2] === '_L') {
504
- rotate_match_text = element.properties.toJS().flip_doorhandle ? 'rotate_R' : 'rotate_L';
505
- }
506
- var isDoubleDoor = door_match && door_match[2] !== undefined;
507
- (_child$children$ = child.children[0]) === null || _child$children$ === void 0 || _child$children$.children.forEach(function (it) {
508
- var _it$name, _it$children;
509
- if (it !== null && it !== void 0 && (_it$name = it.name) !== null && _it$name !== void 0 && _it$name.includes('handle') && (_it$children = it.children) !== null && _it$children !== void 0 && _it$children.length && is_corner === 1 && isDoubleDoor) {
510
- var _child$name, _child$name2, _object1$children, _t0$name, _t0$children;
511
- var tname = child !== null && child !== void 0 && (_child$name = child.name) !== null && _child$name !== void 0 && _child$name.endsWith('_L') ? child.name.replace('_L', '_R') : child === null || child === void 0 || (_child$name2 = child.name) === null || _child$name2 === void 0 ? void 0 : _child$name2.replace('_R', '_L');
512
- var tmp = (object1 === null || object1 === void 0 || (_object1$children = object1.children) === null || _object1$children === void 0 ? void 0 : _object1$children.filter(function (item) {
513
- return (item === null || item === void 0 ? void 0 : item.name) === tname;
514
- })) || [];
515
- var t0 = tmp[0];
516
- var filterStr = t0 !== null && t0 !== void 0 && (_t0$name = t0.name) !== null && _t0$name !== void 0 && _t0$name.endsWith('_L') ? 'rotate_L' : 'rotate_R';
517
- var tposArr = (t0 === null || t0 === void 0 || (_t0$children = t0.children) === null || _t0$children === void 0 || (_t0$children = _t0$children[0]) === null || _t0$children === void 0 || (_t0$children = _t0$children.children) === null || _t0$children === void 0 ? void 0 : _t0$children.filter(function (item) {
518
- var _item$name;
519
- return item === null || item === void 0 || (_item$name = item.name) === null || _item$name === void 0 ? void 0 : _item$name.endsWith(filterStr);
520
- })) || [];
521
- var tpos0 = tposArr[0];
522
- if (it.name.includes('base_end')) {
523
- var _it$position$x, _it$position, _it$position$y, _it$position2, _tpos0$position$x, _tpos0$position;
524
- door_animate_offset[child.name] = {
525
- x: -2 * ((_it$position$x = (_it$position = it.position) === null || _it$position === void 0 ? void 0 : _it$position.x) !== null && _it$position$x !== void 0 ? _it$position$x : 0) - 0.12,
526
- y: (_it$position$y = (_it$position2 = it.position) === null || _it$position2 === void 0 ? void 0 : _it$position2.y) !== null && _it$position$y !== void 0 ? _it$position$y : 0,
527
- z: -((_tpos0$position$x = tpos0 === null || tpos0 === void 0 || (_tpos0$position = tpos0.position) === null || _tpos0$position === void 0 ? void 0 : _tpos0$position.x) !== null && _tpos0$position$x !== void 0 ? _tpos0$position$x : 0) + 0.12,
528
- isCorner: true
529
- };
530
- } else {
531
- var _it$position$x2, _it$position3, _it$position$y2, _it$position4, _tpos0$position$x2, _tpos0$position2;
532
- door_animate_offset[child.name] = {
533
- x: -((_it$position$x2 = (_it$position3 = it.position) === null || _it$position3 === void 0 ? void 0 : _it$position3.x) !== null && _it$position$x2 !== void 0 ? _it$position$x2 : 0) - 0.04,
534
- y: (_it$position$y2 = (_it$position4 = it.position) === null || _it$position4 === void 0 ? void 0 : _it$position4.y) !== null && _it$position$y2 !== void 0 ? _it$position$y2 : 0,
535
- z: 2 * ((_tpos0$position$x2 = tpos0 === null || tpos0 === void 0 || (_tpos0$position2 = tpos0.position) === null || _tpos0$position2 === void 0 ? void 0 : _tpos0$position2.x) !== null && _tpos0$position$x2 !== void 0 ? _tpos0$position$x2 : 0) - 0.01,
536
- isCorner: true
537
- };
538
- }
539
- } else if (it.name.endsWith(rotate_match_text) && door_animate_offset[child.name] == undefined) {
540
- door_animate_offset[child.name] = {
541
- x: it.position.x,
542
- y: it.position.y,
543
- z: it.position.z,
544
- isCorner: false
545
- };
546
- }
547
- });
548
- }
549
- });
550
- object1.userData.door_animate_offset = door_animate_offset;
551
- object1.userData.animation = userData;
552
- var center = [(boundingBox.max.x - boundingBox.min.x) / 2 + boundingBox.min.x, (boundingBox.max.y - boundingBox.min.y) / 2 + boundingBox.min.y, (boundingBox.max.z - boundingBox.min.z) / 2 + boundingBox.min.z];
553
- object1.position.x -= center[0];
554
- object1.position.y -= center[1] - (boundingBox.max.y - boundingBox.min.y) / 2;
555
- object1.position.z -= center[2];
556
- object1.position.y += newAltitude;
557
- if (element.selected) {
558
- // if object is selected
559
- // save object transform info///
560
- var scalevec = new Three.Vector3(object1.scale.x, object1.scale.y, object1.scale.z);
561
- var posVec = new Three.Vector3(object1.position.x, object1.position.y, object1.position.z);
562
- object.scale.set(1 * newWidth / sizeinfo.width, 1 * newHeight / sizeinfo.height, 1 * newDepth / sizeinfo.depth);
563
- object1.position.set(0, 0, 0);
564
- object1.rotation.set(0, 0, 0);
565
-
566
- //let box = new Three.BoxHelper(object, 0xffffff);
567
- //box.material.lineWidth = 5;
568
- //box.renderOrder = 1000;
569
- //box.material.depthTest = false;
570
- //object.add(box);
571
- var _boundingBox = GeomUtils.baseBox3FromObject(object);
572
- var max = _boundingBox.max;
573
- var min = _boundingBox.min;
574
- var radius = Math.sqrt((_boundingBox.max.x - _boundingBox.min.x) * (_boundingBox.max.x - _boundingBox.min.x) + (_boundingBox.max.z - _boundingBox.min.z) * (_boundingBox.max.z - _boundingBox.min.z)) / 2;
575
- var moveBox = new Three.BoxGeometry(max.x - min.x, max.y - min.y, max.z - min.z);
576
-
577
- // translate Object
578
- var controlGeom = GeomUtils.controlGeom();
579
-
580
- // rotate Object //////////
581
- var rotGeom = GeomUtils.rotGeoms(radius + 0.05);
582
- // //////////////////////////////////
583
-
584
- // upwards Geometry/////////// Move up Object
585
- var upwardsGeom = GeomUtils.upwardsGeom();
586
-
587
- // vertical line - 4 lines around object//////////////////////////
588
- var vLineGeom = new Three.BufferGeometry();
589
- var vertices = [(max.x - min.x) / 2 + min.x, 0, max.z, (max.x - min.x) / 2 + min.x, 0, max.z + 1.3];
590
- vLineGeom.setAttribute('position', new Three.BufferAttribute(new Float32Array(vertices), 3));
591
- var vLineGeom1 = new Three.BufferGeometry();
592
- var vertices1 = [(max.x - min.x) / 2 + min.x, 0, min.z, (max.x - min.x) / 2 + min.x, 0, min.z - 1.3];
593
- vLineGeom1.setAttribute('position', new Three.BufferAttribute(new Float32Array(vertices1), 3));
594
- var vLineGeom2 = new Three.BufferGeometry();
595
- var vertices2 = [max.x, 0, max.z - (max.z - min.z) / 2, max.x + 1.3, 0, max.z - (max.z - min.z) / 2];
596
- vLineGeom2.setAttribute('position', new Three.BufferAttribute(new Float32Array(vertices2), 3));
597
- var vLineGeom3 = new Three.BufferGeometry();
598
- var vertices3 = [min.x, 0, max.z - (max.z - min.z) / 2, min.x - 1.3, 0, max.z - (max.z - min.z) / 2];
599
- vLineGeom3.setAttribute('position', new Three.BufferAttribute(new Float32Array(vertices3), 3));
600
- // ///////////////////////////////////////
601
-
602
- // set names of transform object
603
- var rotFillObj = new Three.Mesh(rotGeom.rotFill, new Three.MeshPhongMaterial({
604
- color: new Three.Color(0x000000).convertLinearToSRGB(),
605
- side: Three.DoubleSide,
606
- colorWrite: true
607
- }));
608
- var rotStrokeObj = new Three.Line(rotGeom.rotStroke, new Three.LineBasicMaterial({
609
- color: new Three.Color(0xffffff).convertLinearToSRGB(),
610
- colorWrite: true
611
- }));
612
- rotFillObj.name = 'rotate';
613
- var upObj = new Three.Mesh(upwardsGeom, new Three.MeshBasicMaterial({
614
- color: new Three.Color(0xffffff).convertLinearToSRGB(),
615
- side: Three.DoubleSide
616
- }));
617
- upObj.name = 'transUp';
618
- var mBox = new Three.Mesh(moveBox, new Three.MeshBasicMaterial({
619
- color: new Three.Color(0xdd6699).convertLinearToSRGB(),
620
- side: Three.DoubleSide,
621
- transparent: true,
622
- opacity: 0.4
623
- }));
624
- var _color = new Three.Color(SHADE_DARK_PURPLE_COLOR).convertLinearToSRGB();
625
- var vLine = new Three.Line(vLineGeom, new Three.LineBasicMaterial({
626
- color: _color
627
- }));
628
- var vLine1 = new Three.Line(vLineGeom1, new Three.LineBasicMaterial({
629
- color: _color
630
- }));
631
- var vLine2 = new Three.Line(vLineGeom2, new Three.LineBasicMaterial({
632
- color: _color
633
- }));
634
- var vLine3 = new Three.Line(vLineGeom3, new Three.LineBasicMaterial({
635
- color: _color
636
- }));
637
- vLine.renderOrder = 1;
638
- vLine1.renderOrder = 1;
639
- vLine2.renderOrder = 1;
640
- vLine3.renderOrder = 1;
641
- vLine.material.transparent = true;
642
- vLine1.material.transparent = true;
643
- vLine2.material.transparent = true;
644
- vLine3.material.transparent = true;
645
- vLine.material.depthTest = false;
646
- vLine1.material.depthTest = false;
647
- vLine2.material.depthTest = false;
648
- vLine3.material.depthTest = false;
649
- // translate vector to center of object
650
- var uVec = new Three.Vector3(-posVec.x / scalevec.x, -posVec.y / scalevec.y, -posVec.z / scalevec.z);
651
- vLine.translateY(_boundingBox.min.y + 0.1);
652
- vLine1.translateY(_boundingBox.min.y + 0.1);
653
- vLine2.translateY(_boundingBox.min.y + 0.1);
654
- vLine3.translateY(_boundingBox.min.y + 0.1);
655
-
656
- //rotObj.translateOnAxis(uVec, 1);
657
- upObj.translateOnAxis(uVec, 1);
658
- upObj.translateY(max.y - min.y);
659
- mBox.name = 'TransformBox';
660
- mBox.translateOnAxis(new Three.Vector3(uVec.x, uVec.y + (max.y - min.y) / 2, uVec.z), 1);
661
- mBox.scale.set(1.01, 1.01, 1.01);
662
-
663
- // other side rotate object
664
- var rotFillObj1 = rotFillObj.clone();
665
- var rotStrokeObj1 = rotStrokeObj.clone();
666
- rotFillObj1.rotateY(Math.PI);
667
- rotStrokeObj1.rotateY(Math.PI);
668
- rotFillObj.translateY(0.1);
669
- rotFillObj1.translateY(0.1);
670
- rotStrokeObj.translateY(0.1);
671
- rotStrokeObj1.translateY(0.1);
672
-
673
- // assets Objects group includes rotate objects...
674
- var asrtObj = new Three.Group();
675
- // asrtObj.add(rotFillObj);
676
- // asrtObj.add(rotFillObj1);
677
- // asrtObj.add(rotStrokeObj);
678
- // asrtObj.add(rotStrokeObj1);
679
- //asrtObj.add(upObj);
680
- asrtObj.add(vLine);
681
- asrtObj.add(vLine1);
682
- asrtObj.add(vLine2);
683
- asrtObj.add(vLine3);
684
- mBox.visible = false;
685
- asrtObj.add(mBox);
686
- asrtObj.scale.set(1 / object.scale.x, object.scale.y, 1 / object.scale.z);
687
- //asrtObj.translateY(newAltitude / scalevec.y);
688
- asrtObj.name = 'TransformGizmo';
689
- // add assets Objects Group
690
- object1.add(asrtObj);
691
-
692
- // recover objects transform
693
- object1.position.x = posVec.x;
694
- object1.position.y = posVec.y;
695
- object1.position.z = posVec.z;
696
- object1.scale.set(scalevec.x, scalevec.y, scalevec.z);
697
- setTimeout(function () {
698
- SceneCreator.getDistances(layer);
699
- }, 100);
700
- }
701
- var flip_doorhandle = element.properties.get('flip_doorhandle');
702
- if (flip_doorhandle) {
703
- SceneCreator.updateDoorHandleMesh(element, object1, true);
704
- }
705
- object1.traverse(function (obj) {
706
- if (obj.type === OBJTYPE_MESH) {
707
- var name = obj.name;
708
- if (name.match(/_door_.*_glass_/)) {
709
- var material = new Three.MeshPhysicalMaterial({
710
- roughness: 0,
711
- transmission: 1,
712
- thickness: 0.5,
713
- // Add refraction!
714
- transparency: 0.8
715
- });
716
- obj.material = material;
717
- } else if (name.startsWith('sink_')) {
718
- // texture = loadTexture('/assets/img/texture/steel.jpg');
719
-
720
- var _material;
721
- // Get color from name
722
- if (name.includes('black') || name.includes('white')) {
723
- var _color2;
724
- if (name.includes('black')) {
725
- _color2 = new Three.Color(0x555555).convertLinearToSRGB();
726
- } else {
727
- _color2 = 0xffffff;
728
- }
729
- _material = new Three.MeshPhysicalMaterial({
730
- roughness: 0.5,
731
- metalness: 0,
732
- // transmission: 1,
733
- transparent: true,
734
- opacity: 1,
735
- thickness: 0.5,
736
- // Add refraction!
737
- // transparency: 0.8,
738
- color: _color2,
739
- side: Three.DoubleSide
740
- });
741
- } else {
742
- // if (name.includes('chrome')) {
743
- _material = new Three.MeshPhysicalMaterial({
744
- roughness: 0.2,
745
- metalness: 1,
746
- reflectivity: 0.5,
747
- color: new Three.Color(0xdddddd).convertLinearToSRGB()
748
- });
749
- }
750
- obj.material = _material;
751
- }
752
- }
753
- if (element.toJS().properties.open_doors) {
754
- var open_doors = element.toJS().properties.open_doors;
755
- var object_match = obj.name.match(/\d_(interior_drawer[^LR1-9]*)(_[LR1-9])?$/) || obj.name.match(matchStr);
756
- if (object_match && object_match.length > 2) {
757
- var isDoor = object_match[1] === 'door';
758
- if (isDoor) {
759
- var offsetData = object1.userData.door_animate_offset[obj.name];
760
- // Open Door
761
- animateDoor(offsetData, obj, open_doors, element.toJS(), is_corner, 'Opened2D');
762
- } else {
763
- // Open Drawer
764
- translateDrawer(element.toJS(), obj, open_doors, 'Opened2D');
765
- }
766
- }
767
- }
768
- });
769
- return object1;
770
- };
771
- // keys in structure
772
- var keys = Object.keys(structure);
773
- // if exist in cached Objects
774
- if (element.type + color + 'doorStyle' + JSON.stringify(doorStyles.toJS()) + element.counterTop.uri in cachedObject) {
775
- var _objGroup = cachedObject[element.type + color + 'doorStyle' + JSON.stringify(doorStyles.toJS())].clone();
776
- return Promise.resolve(onLoadItem(_objGroup.clone()));
777
- }
778
-
779
- // base Object/////
780
- var objGroup = null;
781
- var _loadGLTFs = function loadGLTFs(i) {
782
- if (keys[i] === 'animation') {
783
- // if animation info
784
- i++;
785
- return _loadGLTFs(i);
786
- }
787
- if (keys[i] === 'placeholders') {
788
- // if placeholders group
789
- i++;
790
- return _loadGLTFs(i);
791
- }
792
- if (i === keys.length) {
793
- // if end of keys
794
- cachedObject[element.type + color + 'doorStyle' + JSON.stringify(doorStyles.toJS())] = objGroup.clone(); //register to cachedObject
795
- return onLoadItem(cachedObject[element.type + color + 'doorStyle' + JSON.stringify(doorStyles.toJS())].clone());
796
- }
797
- if (keys[i] === 'base') {
798
- // if base Objects
799
- i++;
800
- return _loadGLTFs(i);
801
- }
802
- var phsArray = [];
803
- var placeholderStructure = placeholders[keys[i]];
804
- if (placeholderStructure == undefined || placeholderStructure.length == 0) {
805
- i++;
806
- return _loadGLTFs(i);
807
- }
808
- for (var j = 0; j < placeholderStructure.length; j++) {
809
- var phData = placeholderStructure[j];
810
- var phs = phData.split('/');
811
- var temp = phData.split('/');
812
- // placeholder remake////////////////
813
- for (var k = 0; k < phs.length; k++) {
814
- if (phs[k] in placeholders) {
815
- var placeholderphs = placeholders[phs[k]];
816
- var key = placeholderStructure.length / placeholderphs.length;
817
- phs[k] = placeholderphs[Math.floor(j / key)];
818
- var splitedData = phs[k].split('/');
819
- if (splitedData.length > 1) {
820
- phs[k] = splitedData[splitedData.length - 1];
821
- for (var m = splitedData.length - 2; m >= 0; m--) {
822
- phs.unshift(splitedData[m]);
823
- temp.unshift(splitedData[m]);
824
- }
825
- }
826
- k = -1;
827
- continue;
828
- }
829
- if (phs[k].indexOf('ph') == -1) {
830
- var _url = structure[temp[k - 1]];
831
- if (temp[k - 1] + '_doorStyle' + element.type + 'doorStyle' + JSON.stringify(doorStyles.toJS()) in structure) {
832
- if (structure[temp[k - 1] + '_doorStyle' + element.type + 'doorStyle' + JSON.stringify(doorStyles.toJS())] != null) {
833
- _url = structure[temp[k - 1] + '_doorStyle' + element.type + 'doorStyle' + JSON.stringify(doorStyles.toJS())];
834
- }
835
- }
836
- if (_typeof(_url) == Array) _url = _url[0];
837
- var uData = _url.split('/');
838
- uData = uData[uData.length - 1];
839
- uData = uData.slice(0, -5);
840
- var datas = uData.split('_');
841
- uData = datas[1];
842
- for (var _i = 2; _i < datas.length; _i++) {
843
- uData += '_';
844
- uData += datas[_i];
845
- }
846
- uData = mainName.replace('main', uData);
847
- phs[k] = 'ph_' + uData + '_' + phs[k];
848
- }
849
- }
850
- phsArray.push(phs);
851
- }
852
- var url = structure[keys[i]];
853
- var normalMap = '';
854
- var urlData = url.split('/');
855
- for (var _j = 0; _j < element.submodule.size; _j++) {
856
- var replaceUrlData = element.submodule.get(_j).split('/');
857
- if (urlData.includes(replaceUrlData[replaceUrlData.length - 2])) {
858
- url = element.submodule.get(_j);
859
- break;
860
- }
861
- }
862
- for (var _j2 = 0; _j2 < element.normalMap.size; _j2++) {
863
- var normalMapData = element.normalMap.get(_j2).split('/');
864
- if (urlData.includes(normalMapData[normalMapData.length - 2])) {
865
- normalMap = element.normalMap.get(_j2);
866
- break;
867
- }
868
- }
869
-
870
- // replace submodule gltf file
871
- // if (placeholderTree.length > 0) {
872
- if (phsArray.length > 0) {
873
- // let loadUrl = dirName + url;
874
- var loadUrl = url;
875
- if (doorStyles.get(keys[i] + '_gltf') != undefined) {
876
- loadUrl = doorStyles.get(keys[i] + '_gltf');
877
- structure[keys[i] + '_doorStyle' + element.type + 'doorStyle' + JSON.stringify(doorStyles.toJS())] = loadUrl;
878
- } else {
879
- structure[keys[i] + '_doorStyle' + element.type + 'doorStyle' + JSON.stringify(doorStyles.toJS())] = null;
880
- }
881
- return loadGLTF(loadUrl).then(function (object) {
882
- if (normalMap !== '') {
883
- var normalUrl = normalMap.split('.')[0] + '-normal.' + normalMap.split('.')[1];
884
- var t = loadTexture(normalMap);
885
- var _m = loadTexture(normalUrl);
886
- var mat2 = new Three.MeshStandardMaterial({
887
- metalness: glossness === 1 ? params.metalness : params.metalness_glossy,
888
- roughness: glossness || params.roughness
889
- });
890
- mat2.map = t;
891
- mat2.normalMap = _m;
892
- // mat2.envMap = textureCube;
893
- for (var _j3 = 0; _j3 < object.children.length; _j3++) {
894
- if (object.children[_j3].type === OBJTYPE_MESH) {
895
- object.children[_j3].material = mat2;
896
- object.children[_j3].receiveShadow = true;
897
- }
898
- }
899
- }
900
-
901
- // set Door Style////
902
- if (doorStyles != null) {
903
- // if (doorStyles.get(keys[i]) != undefined) {
904
- // let normalMap = "catalog/items/doorstyle/" + doorStyles.get(keys[i]);
905
- var _normalMap = doorStyles.get(keys[i]) || INITIAL_NORMAL_MAP;
906
- var _mat;
907
- if (_normalMap === '') {
908
- var examplecolor = new Three.Color(parseInt(color.slice(1), 16)).convertLinearToSRGB();
909
- _mat = new Three.MeshStandardMaterial({
910
- color: examplecolor,
911
- metalness: glossness === 1 ? params.metalness : params.metalness_glossy,
912
- roughness: glossness || params.roughness
913
- });
914
- } else {
915
- var _t = loadTexture(_normalMap);
916
- _mat = new Three.MeshStandardMaterial({
917
- // NOTE : this is for cabinets (wood) frontface
918
- metalness: 0.1,
919
- roughness: 0.5
920
- // metalness: glossness === 1 ? params.metalness : params.metalness_glossy,
921
- // roughness: glossness || params.roughness
922
- });
923
- _mat.map = _t;
924
- }
925
- // mat2.envMap = textureCube;
926
- for (var _j4 = 0; _j4 < object.children.length; _j4++) {
927
- if (object.children[_j4].type === OBJTYPE_MESH) {
928
- object.children[_j4].material = _mat;
929
- object.children[_j4].receiveShadow = true;
930
- object.children[_j4].castShadow = true;
931
- !object.children[_j4].name.includes('handle') && addEdgesToMesh(object.children[_j4]);
932
- } else if (!object.children[_j4].name.startsWith('ph_') && object.children[_j4].type === OBJTYPE_GROUP) {
933
- object.children[_j4].traverse(function (prim) {
934
- prim.material = _mat;
935
- prim.receiveShadow = true;
936
- });
937
- }
938
- }
939
- }
940
- // } else {
941
- // let mat2 = new Three.MeshStandardMaterial({
942
- // metalness:
943
- // glossness === 1
944
- // ? params.metalness
945
- // : params.metalness_glossy,
946
- // roughness: glossness || params.roughness
947
- // });
948
- // // mat2.envMap = textureCube;
949
- // for (let j = 0; j < object.children.length; j++) {
950
- // if (object.children[j].type === OBJTYPE_MESH) {
951
- // object.children[j].material = mat2;
952
- // object.children[j].receiveShadow = true;
953
- // }
954
- // }
955
- // }
956
-
957
- for (var _i2 = 0; _i2 < phsArray.length; _i2++) {
958
- var _phs = phsArray[_i2];
959
- var parent = objGroup;
960
- for (var _j5 = 0; _j5 < _phs.length; _j5++) {
961
- var placeholder = _phs[_j5];
962
- for (var _k = 0; _k < ((_parent = parent) === null || _parent === void 0 ? void 0 : _parent.children.length); _k++) {
963
- var _parent;
964
- if (_j5 != _phs.length - 1) {
965
- if (parent.children[_k].name == placeholder) {
966
- parent = parent.children[_k].children[0];
967
- break;
968
- }
969
- } else {
970
- if (parent.children[_k].name == placeholder) {
971
- var tmp = object.clone();
972
- if (placeholder.includes('drawer_door') && placeholder.includes('_handle')) {
973
- tmp.rotateZ(Math.PI / 2);
974
- }
975
- if (placeholder.includes('_handle') && tmp.children[0].type === OBJTYPE_MESH) {
976
- // NOTE: change metalness of handle
977
- tmp.children[0].material.metalness = 1;
978
- // handleMaterial.metalness || 0.2;
979
- tmp.children[0].material.roughness = handleMaterial.roughness || 0.1;
980
- //tmp.children[0].material.map = loadTexture('catalog/areas/area/textures/grass.jpg');
981
- }
982
- parent.children[_k].add(tmp);
983
- }
984
- }
985
- }
986
- }
987
- }
988
- }, function (reason) {
989
- console.log('loadGLTF failed for reason:', reason);
990
- }).then(function () {
991
- i++;
992
- return _loadGLTFs(i);
993
- });
994
- }
995
- };
996
- return loadGLTF(structure['base']).then(function (object) {
997
- object.name = 'MainObject';
998
- object.receiveShadow = true;
999
- objGroup = object;
1000
- if (!isEmpty(doorStyles)) {
1001
- var _layer$toJS;
1002
- var normalMap = doorStyles.get('base') || INITIAL_NORMAL_MAP;
1003
- if (isEmpty(counterTop.uri) && !isEmpty(layer === null || layer === void 0 || (_layer$toJS = layer.toJS()) === null || _layer$toJS === void 0 ? void 0 : _layer$toJS.counterTop.uri)) {
1004
- counterTop.uri = layer.toJS().counterTop.uri;
1005
- }
1006
- if (isEmpty(counterTop.uri)) {
1007
- //@todo THIS IS A TEMPORARY FIX FOR COUNTERTOP TEXTURE UNDEFINED ISSUE
1008
- counterTop.uri = 'https://media.test.diydesignspace.com/uploads/CountTop/202105074107_5/texture/Unique_Calcatta_texture.jpg';
1009
- }
1010
- var countTopMap = counterTop.uri;
1011
- var interiorMap = doorStyles.get('interior');
1012
- var countT = loadTexture(countTopMap);
1013
- countT.wrapS = Three.RepeatWrapping;
1014
- countT.wrapT = Three.RepeatWrapping;
1015
- countT.repeat.set(1, 1);
1016
- var examplecolor = new Three.Color(parseInt(color.slice(1), 16)).convertLinearToSRGB();
1017
- var mat2 = null,
1018
- mat3 = null,
1019
- mat4 = null;
1020
- if (normalMap === '') {
1021
- mat2 = new Three.MeshStandardMaterial({
1022
- color: examplecolor,
1023
- metalness: glossness === 1 ? params.metalness : params.metalness_glossy,
1024
- roughness: glossness || params.roughness
1025
- });
1026
- } else {
1027
- mat2 = new Three.MeshStandardMaterial({
1028
- // TODO: changes in metalness and roughness of base_main (cabinet wood)
1029
- metalness: 0.1,
1030
- roughness: 0.5
1031
- // metalness: glossness === 1 ? params.metalness : params.metalness_glossy,
1032
- // roughness: glossness || params.roughness
1033
- });
1034
- }
1035
- // mat2.envMap = textureCube;
1036
-
1037
- if (normalMap !== '') {
1038
- var t = loadTexture(normalMap);
1039
- mat2.map = t;
1040
- }
1041
- if (normalMap === '') {
1042
- mat3 = new Three.MeshStandardMaterial({
1043
- // color: examplecolor,
1044
- metalness: counterTop.metalness,
1045
- roughness: counterTop.roughness
1046
- });
1047
- } else {
1048
- mat3 = new Three.MeshStandardMaterial({
1049
- // metalness: counterTop.metalness,
1050
- // roughness: counterTop.roughness
1051
- metalness: 0.3,
1052
- roughness: 0.8
1053
- });
1054
- }
1055
- mat3.map = countT;
1056
- // mat3.envMap = textureCube;
1057
- mat4 = new Three.MeshStandardMaterial({
1058
- metalness: params.metalness,
1059
- roughness: params.roughness
1060
- });
1061
- mat4.map = loadTexture(interiorMap);
1062
- for (var j = 0; j < object.children.length; j++) {
1063
- if (object.children[j].name.includes('main')) {}
1064
- if (object.children[j].name.includes('countertop')) {
1065
- object.children[j].material = mat3;
1066
- object.children[j].receiveShadow = true;
1067
- object.children[j].castShadow = true;
1068
- addEdgesToMesh(object.children[j]);
1069
- } else if (object.children[j].name.includes('_interior_')) {
1070
- object.children[j].material = mat4;
1071
- } else if (object.children[j].type === OBJTYPE_MESH) {
1072
- object.children[j].material = mat2;
1073
- object.children[j].receiveShadow = true;
1074
- object.children[j].castShadow = true;
1075
- }
1076
- }
1077
- }
1078
- }, function (reason) {
1079
- console.log('loadGLTF failed for reason:', reason);
1080
- objGroup = GeomUtils.emptyBoxHolder(newWidth, newHeight, newDepth);
1081
- }).then(function () {
1082
- return _loadGLTFs(0);
1083
- });
1084
- }
1085
-
1086
- // render 3d appliance function ////////////////////////////////
1087
- export function render3DApplianceItem(element, layer, scene, sizeinfo, structure_json) {
1088
- var mode = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : null;
1089
- var structure = structure_json;
1090
- var applianceMaterial = element.applianceMaterial;
1091
- if (applianceMaterial.metalness == undefined) applianceMaterial = applianceMaterial.toJS();
1092
- var onLoadItem = function onLoadItem(object) {
1093
- var newAltitude = element.properties.get('altitude').get('_length');
1094
- var newUnit = element.properties.get('altitude').get('_unit') || 'in';
1095
- newAltitude = convert(newAltitude).from(newUnit).to(scene.unit);
1096
- var newWidth = element.properties.get('width').get('_length');
1097
- var newWidthUnit = element.properties.get('width').get('_unit') || 'in';
1098
- newWidth = convert(newWidth).from(newWidthUnit).to('in');
1099
- var newHeight = element.properties.get('height').get('_length');
1100
- var newHeightUnit = element.properties.get('height').get('_unit') || 'in';
1101
- newHeight = convert(newHeight).from(newHeightUnit).to('in');
1102
- var newDepth = element.properties.get('depth').get('_length');
1103
- var newDepthUnit = element.properties.get('depth').get('_unit') || 'in';
1104
- newDepth = convert(newDepth).from(newDepthUnit).to('in');
1105
- object.scale.set(100 * newWidth / sizeinfo.width, 100 * newHeight / sizeinfo.height, 100 * newDepth / sizeinfo.depth);
1106
- // Normalize the origin of the object
1107
- var boundingBox = new Three.Box3().setFromObject(object);
1108
- object.userData = boundingBox;
1109
- var center = [(boundingBox.max.x - boundingBox.min.x) / 2 + boundingBox.min.x, (boundingBox.max.y - boundingBox.min.y) / 2 + boundingBox.min.y, (boundingBox.max.z - boundingBox.min.z) / 2 + boundingBox.min.z];
1110
- object.position.x -= center[0];
1111
- object.position.y -= center[1] - (boundingBox.max.y - boundingBox.min.y) / 2;
1112
- object.position.z -= center[2];
1113
- object.position.y += newAltitude;
1114
- object.traverse(function (obj) {
1115
- if (obj.type === OBJTYPE_MESH) {
1116
- var name = obj.name;
1117
- var texture,
1118
- textureLoader = new Three.TextureLoader();
1119
- if (name.includes('_black')) {
1120
- obj.material.roughness = 0.4;
1121
- obj.material.metalness = 1.0;
1122
- obj.material.color = new Three.Color(0, 0, 0);
1123
- obj.castShadow = true;
1124
- obj.receiveShadow = true;
1125
- return object;
1126
- } else if (name.includes('_wood')) {
1127
- texture = loadTexture('/assets/img/texture/wood.jpg');
1128
- } else if (name.includes('_glass')) {
1129
- // texture = loadTexture('/assets/img/texture/glass.jpg');
1130
- var material = new Three.MeshPhysicalMaterial({
1131
- transparent: true,
1132
- opacity: 0.5,
1133
- roughness: 0,
1134
- transmission: 1,
1135
- thickness: 0.5,
1136
- // Add refraction!
1137
- transparency: 0.8
1138
- });
1139
- obj.material = material;
1140
- obj.castShadow = true;
1141
- obj.receiveShadow = true;
1142
- return object;
1143
- } else if (name.includes('_steel')) {
1144
- // texture = loadTexture('/assets/img/texture/steel.jpg');
1145
- var _material2 = new Three.MeshPhysicalMaterial({
1146
- roughness: 0.2,
1147
- metalness: 0.5,
1148
- reflectivity: 0.5,
1149
- color: new Three.Color(0xdddddd).convertLinearToSRGB()
1150
- });
1151
- obj.material = _material2;
1152
- obj.castShadow = true;
1153
- obj.receiveShadow = true;
1154
- return object;
1155
- }
1156
- var mat = new Three.MeshStandardMaterial({
1157
- metalness: 0.1,
1158
- roughness: 0.9,
1159
- map: texture
1160
- });
1161
- obj.material = mat;
1162
- }
1163
- });
1164
- if (element.selected) {
1165
- // if object is selected
1166
- // save object transform info///
1167
- var scalevec = new Three.Vector3(object.scale.x, object.scale.y, object.scale.z);
1168
- var posVec = new Three.Vector3(object.position.x, object.position.y, object.position.z);
1169
- object.scale.set(1 * newWidth / sizeinfo.width, 1 * newHeight / sizeinfo.height, 1 * newDepth / sizeinfo.depth);
1170
- object.position.set(0, 0, 0);
1171
- object.rotation.set(0, 0, 0);
1172
- var _boundingBox2 = new Three.Box3().setFromObject(object);
1173
- var max = _boundingBox2.max;
1174
- var min = _boundingBox2.min;
1175
- var radius = Math.sqrt((_boundingBox2.max.x - _boundingBox2.min.x) * (_boundingBox2.max.x - _boundingBox2.min.x) + (_boundingBox2.max.z - _boundingBox2.min.z) * (_boundingBox2.max.z - _boundingBox2.min.z)) / 2;
1176
- var moveBox = new Three.BoxGeometry(max.x - min.x, max.y - min.y, max.z - min.z);
1177
-
1178
- // translate Object
1179
- var controlGeom = GeomUtils.controlGeom();
1180
- // ////////////////////////
1181
-
1182
- // rotate Object //////////
1183
- var rotGeom = GeomUtils.rotGeoms(radius + 0.05);
1184
- // //////////////////////////////////
1185
-
1186
- // upwards Geometry/////////// Move up Object
1187
- var upwardsGeom = GeomUtils.upwardsGeom();
1188
- // ///////////////////////////////////////
1189
-
1190
- // vertical line - 4 lines around object//////////////////////////
1191
- var vLineGeom = new Three.BufferGeometry();
1192
- var vertices = [(max.x - min.x) / 2 + min.x, 0, min.z, (max.x - min.x) / 2 + min.x, 0, min.z + 1.3];
1193
- vLineGeom.setAttribute('position', new Three.BufferAttribute(new Float32Array(vertices), 3));
1194
- var vLineGeom1 = new Three.BufferGeometry();
1195
- var vertices1 = [(max.x - min.x) / 2 + min.x, 0, min.z, (max.x - min.x) / 2 + min.x, 0, min.z - 1.3];
1196
- vLineGeom1.setAttribute('position', new Three.BufferAttribute(new Float32Array(vertices1), 3));
1197
- var vLineGeom2 = new Three.BufferGeometry();
1198
- var vertices2 = [max.x, 0, max.z - (max.z - min.z) / 2, max.x + 1.3, 0, max.z - (max.z - min.z) / 2];
1199
- vLineGeom1.setAttribute('position', new Three.BufferAttribute(new Float32Array(vertices2), 3));
1200
- var vLineGeom3 = new Three.BufferGeometry();
1201
- var vertices3 = [min.x, 0, max.z - (max.z - min.z) / 2, min.x - 1.3, 0, max.z - (max.z - min.z) / 2];
1202
- vLineGeom1.setAttribute('position', new Three.BufferAttribute(new Float32Array(vertices3), 3));
1203
- // ///////////////////////////////////////
1204
-
1205
- // set names of transform object
1206
- var rotFillObj = new Three.Mesh(rotGeom.rotFill, new Three.MeshPhongMaterial({
1207
- color: 0x000000,
1208
- side: Three.DoubleSide,
1209
- colorWrite: true
1210
- }));
1211
- var rotStrokeObj = new Three.Line(rotGeom.rotStroke, new Three.LineBasicMaterial({
1212
- color: 0xffffff,
1213
- colorWrite: true
1214
- }));
1215
- rotFillObj.name = 'rotate';
1216
- var upObj = new Three.Mesh(upwardsGeom, new Three.MeshBasicMaterial({
1217
- color: 0xffffff,
1218
- side: Three.DoubleSide
1219
- }));
1220
- upObj.name = 'transUp';
1221
- var mBox = new Three.Mesh(moveBox, new Three.MeshBasicMaterial({
1222
- color: new Three.Color(0xdd6699).convertLinearToSRGB(),
1223
- side: Three.DoubleSide,
1224
- transparent: true,
1225
- opacity: 0.4
1226
- }));
1227
- var color = new Three.Color(ARROW_COLOR).convertLinearToSRGB();
1228
- var vLine = new Three.Line(vLineGeom, new Three.LineBasicMaterial({
1229
- color: color
1230
- }));
1231
- var vLine1 = new Three.Line(vLineGeom1, new Three.LineBasicMaterial({
1232
- color: color
1233
- }));
1234
- var vLine2 = new Three.Line(vLineGeom2, new Three.LineBasicMaterial({
1235
- color: color
1236
- }));
1237
- var vLine3 = new Three.Line(vLineGeom3, new Three.LineBasicMaterial({
1238
- color: color
1239
- }));
1240
- vLine.renderOrder = 1;
1241
- vLine1.renderOrder = 1;
1242
- vLine2.renderOrder = 1;
1243
- vLine3.renderOrder = 1;
1244
- vLine.material.transparent = true;
1245
- vLine1.material.transparent = true;
1246
- vLine2.material.transparent = true;
1247
- vLine3.material.transparent = true;
1248
- vLine.material.depthTest = false;
1249
- vLine1.material.depthTest = false;
1250
- vLine2.material.depthTest = false;
1251
- vLine3.material.depthTest = false;
1252
- // translate vector to center of object
1253
- var uVec = new Three.Vector3(-posVec.x / scalevec.x, -posVec.y / scalevec.y, -posVec.z / scalevec.z);
1254
- vLine.translateY(0.1);
1255
- vLine1.translateY(0.1);
1256
- vLine2.translateY(0.1);
1257
- vLine3.translateY(0.1);
1258
- upObj.translateOnAxis(uVec, 1);
1259
- upObj.translateY(max.y - min.y + 0.05);
1260
- mBox.name = 'TransformBox';
1261
- mBox.translateOnAxis(new Three.Vector3(uVec.x, uVec.y + (max.y - min.y) / 2, uVec.z), 1);
1262
- mBox.scale.set(1.01, 1.01, 1.01);
1263
-
1264
- // other side rotate object
1265
- var rotFillObj1 = rotFillObj.clone();
1266
- var rotStrokeObj1 = rotStrokeObj.clone();
1267
- rotFillObj1.rotateY(Math.PI);
1268
- rotStrokeObj1.rotateY(Math.PI);
1269
- rotFillObj.translateY(0.1);
1270
- rotFillObj1.translateY(0.1);
1271
- rotStrokeObj.translateY(0.1);
1272
- rotStrokeObj1.translateY(0.1);
1273
-
1274
- // assets Objects group includes rotate objects...
1275
- var asrtObj = new Three.Group();
1276
- // asrtObj.add(rotFillObj);
1277
- // asrtObj.add(rotFillObj1);
1278
- // asrtObj.add(rotStrokeObj);
1279
- // asrtObj.add(rotStrokeObj1);
1280
- asrtObj.add(vLine);
1281
- asrtObj.add(vLine1);
1282
- asrtObj.add(vLine2);
1283
- asrtObj.add(vLine3);
1284
- mBox.visible = false;
1285
- asrtObj.add(mBox);
1286
- asrtObj.scale.set(1 / object.scale.x, object.scale.y, 1 / object.scale.z);
1287
- // asrtObj.translateY(newAltitude / scalevec.y);
1288
- asrtObj.name = 'TransformGizmo';
1289
- // add assets Objects Group
1290
- object.add(asrtObj);
1291
-
1292
- // recover objects transform
1293
- object.position.x = posVec.x;
1294
- object.position.y = posVec.y;
1295
- object.position.z = posVec.z;
1296
- object.scale.set(scalevec.x, scalevec.y, scalevec.z);
1297
- }
1298
- return object;
1299
- };
1300
-
1301
- // keys in structure
1302
- var keys = Object.keys(structure);
1303
-
1304
- // if exist in cached Objects
1305
- if (element.type in cachedObject) {
1306
- var _objGroup2 = cachedObject[element.type].clone();
1307
- return Promise.resolve(onLoadItem(_objGroup2.clone()));
1308
- }
1309
-
1310
- // base Object/////
1311
- var objGroup = null;
1312
- var _loadGLTFs2 = function loadGLTFs(i) {
1313
- if (i === keys.length) {
1314
- // if end of keys
1315
- cachedObject[element.type] = objGroup.clone(); //register to cachedObject
1316
- return onLoadItem(cachedObject[element.type].clone());
1317
- }
1318
- if (keys[i] === 'base') {
1319
- // if base Objects
1320
- i++;
1321
- return _loadGLTFs2(i);
1322
- }
1323
- };
1324
-
1325
- // load base to start //
1326
- // return loadGLTF(dirName + structure["base"])
1327
- return loadGLTF(structure['base']).then(function (object) {
1328
- // let textureURL = `${API_SERVER_URL}/uploads/assets/default/steel.jpg`;
1329
- // let texture = loadTexture(textureURL);
1330
- // texture.wrapS = Three.MirroredRepeatWrapping;
1331
- // texture.wrapT = Three.MirroredRepeatWrapping;
1332
-
1333
- object.name = 'MainObject';
1334
- // NOTE: changed appliance emissive color to black
1335
- var mat2 = new Three.MeshStandardMaterial({
1336
- emissive: new Three.Color(0x0d0d0d).convertLinearToSRGB(),
1337
- metalness: applianceMaterial.metalness,
1338
- roughness: applianceMaterial.roughness
1339
- });
1340
- // mat2.envMap = textureCube;
1341
- object.material = mat2;
1342
- for (var j = 0; j < object.children.length; j++) {
1343
- if (object.children[j].type === OBJTYPE_MESH) {
1344
- object.children[j].material = mat2;
1345
- object.children[j].receiveShadow = true;
1346
- object.children[j].castShadow = true; // change
1347
- }
1348
- }
1349
- objGroup = object;
1350
- }, function (reason) {
1351
- console.log('loadGLTF failed for reason:', reason);
1352
- objGroup = GeomUtils.emptyBoxHolder(newWidth, newHeight, newDepth);
1353
- }).then(function () {
1354
- return _loadGLTFs2(0);
1355
- });
1356
- }
1357
- // render 3d appliance function ////////////////////////////////
1358
- export function render3DLightingItem(element, layer, scene, sizeinfo, structure_json) {
1359
- var mode = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : null;
1360
- var structure = structure_json;
1361
- var onLoadItem = function onLoadItem(object) {
1362
- var width = {
1363
- length: sizeinfo.width,
1364
- unit: 'in'
1365
- };
1366
- var depth = {
1367
- length: sizeinfo.depth,
1368
- unit: 'in'
1369
- };
1370
- var height = {
1371
- length: sizeinfo.height,
1372
- unit: 'in'
1373
- };
1374
- var newWidth = convert(width.length).from(width.unit).to('cm');
1375
- var newDepth = convert(depth.length).from(depth.unit).to('cm');
1376
- var newHeight = convert(height.length).from(height.unit).to('cm');
1377
- var newAltitude = element.properties.get('altitude').get('_length');
1378
- var newUnit = element.properties.get('altitude').get('_unit') || 'in';
1379
- newAltitude = convert(newAltitude).from(newUnit).to(scene.unit);
1380
-
1381
- //object.scale.set(newWidth, newHeight, newDepth);
1382
- object.scale.set(100, 100, 100);
1383
- // Normalize the origin of the object
1384
- var boundingBox = new Three.Box3().setFromObject(object);
1385
- object.userData = boundingBox;
1386
- var objectHeight = boundingBox.max.y - boundingBox.min.y;
1387
- var objectYPos = boundingBox.min.y;
1388
- var center = [(boundingBox.max.x - boundingBox.min.x) / 2 + boundingBox.min.x, (boundingBox.max.y - boundingBox.min.y) / 2 + boundingBox.min.y, (boundingBox.max.z - boundingBox.min.z) / 2 + boundingBox.min.z];
1389
- object.position.x = center[0];
1390
- object.position.y = newHeight + newAltitude - boundingBox.max.y;
1391
- object.position.z = center[2];
1392
- if (element.selected) {
1393
- // if object is selected
1394
- // save object transform info///
1395
- var scalevec = new Three.Vector3(object.scale.x, object.scale.y, object.scale.z);
1396
- var posVec = new Three.Vector3(object.position.x, object.position.y, object.position.z);
1397
- object.scale.set(1, 1, 1);
1398
- object.position.set(0, 0, 0);
1399
- object.rotation.set(0, 0, 0);
1400
-
1401
- //let box = new Three.BoxHelper(object, 0xffffff);
1402
- //box.material.lineWidth = 5;
1403
- //box.renderOrder = 1000;
1404
- //box.material.depthTest = false;
1405
- //object.add(box);
1406
- var _boundingBox3 = new Three.Box3().setFromObject(object);
1407
- var max = _boundingBox3.max;
1408
- var min = _boundingBox3.min;
1409
- var radius = Math.sqrt((_boundingBox3.max.x - _boundingBox3.min.x) * (_boundingBox3.max.x - _boundingBox3.min.x) + (_boundingBox3.max.z - _boundingBox3.min.z) * (_boundingBox3.max.z - _boundingBox3.min.z)) / 2;
1410
- var moveBox = new Three.BoxGeometry(max.x - min.x, max.y - min.y, max.z - min.z);
1411
-
1412
- // translate Object
1413
- var controlGeom = GeomUtils.controlGeom();
1414
-
1415
- // rotate Object //////////
1416
- var rotGeom = GeomUtils.rotGeoms(radius + 0.05);
1417
- // //////////////////////////////////
1418
-
1419
- // upwards Geometry/////////// Move up Object
1420
- var upwardsGeom = GeomUtils.upwardsGeom();
1421
-
1422
- // vertical line - 4 lines around object//////////////////////////
1423
- var vLineGeom = new Three.BufferGeometry();
1424
- var vertices = [(max.x - min.x) / 2 + min.x, 0, min.z, (max.x - min.x) / 2 + min.x, 0, min.z + 1.3];
1425
- vLineGeom.setAttribute('position', new Three.BufferAttribute(new Float32Array(vertices), 3));
1426
- var vLineGeom1 = new Three.BufferGeometry();
1427
- var vertices1 = [(max.x - min.x) / 2 + min.x, 0, min.z, (max.x - min.x) / 2 + min.x, 0, min.z - 1.3];
1428
- vLineGeom1.setAttribute('position', new Three.BufferAttribute(new Float32Array(vertices1), 3));
1429
- var vLineGeom2 = new Three.BufferGeometry();
1430
- var vertices2 = [min.x, 0, max.z - (max.z - min.z) / 2, min.x + 1.3, 0, max.z - (max.z - min.z) / 2];
1431
- vLineGeom2.setAttribute('position', new Three.BufferAttribute(new Float32Array(vertices2), 3));
1432
- var vLineGeom3 = new Three.BufferGeometry();
1433
- var vertices3 = [min.x, 0, max.z - (max.z - min.z) / 2, min.x - 1.3, 0, max.z - (max.z - min.z) / 2];
1434
- vLineGeom3.setAttribute('position', new Three.BufferAttribute(new Float32Array(vertices3), 3));
1435
- // ///////////////////////////////////////
1436
-
1437
- // set names of transform object
1438
- var rotFillObj = new Three.Mesh(rotGeom.rotFill, new Three.MeshPhongMaterial({
1439
- color: 0x000000,
1440
- side: Three.DoubleSide,
1441
- colorWrite: true
1442
- }));
1443
- var rotStrokeObj = new Three.Line(rotGeom.rotStroke, new Three.LineBasicMaterial({
1444
- color: 0xffffff,
1445
- colorWrite: true
1446
- }));
1447
- rotFillObj.name = 'rotate';
1448
- var upObj = new Three.Mesh(upwardsGeom, new Three.MeshBasicMaterial({
1449
- color: 0xffffff,
1450
- side: Three.DoubleSide
1451
- }));
1452
- upObj.name = 'transUp';
1453
- var mBox = new Three.Mesh(moveBox, new Three.MeshBasicMaterial({
1454
- color: 0xdd6699,
1455
- side: Three.DoubleSide,
1456
- transparent: true,
1457
- opacity: 0.4
1458
- }));
1459
- var color = new Three.Color(ARROW_COLOR).convertLinearToSRGB();
1460
- var vLine = new Three.Line(vLineGeom, new Three.LineBasicMaterial({
1461
- color: color
1462
- }));
1463
- var vLine1 = new Three.Line(vLineGeom1, new Three.LineBasicMaterial({
1464
- color: color
1465
- }));
1466
- var vLine2 = new Three.Line(vLineGeom2, new Three.LineBasicMaterial({
1467
- color: color
1468
- }));
1469
- var vLine3 = new Three.Line(vLineGeom3, new Three.LineBasicMaterial({
1470
- color: color
1471
- }));
1472
- vLine.renderOrder = 1;
1473
- vLine1.renderOrder = 1;
1474
- vLine2.renderOrder = 1;
1475
- vLine3.renderOrder = 1;
1476
- vLine.material.transparent = true;
1477
- vLine1.material.transparent = true;
1478
- vLine2.material.transparent = true;
1479
- vLine3.material.transparent = true;
1480
- vLine.material.depthTest = false;
1481
- vLine1.material.depthTest = false;
1482
- vLine2.material.depthTest = false;
1483
- vLine3.material.depthTest = false;
1484
- // translate vector to center of object
1485
- var uVec = new Three.Vector3(-posVec.x / scalevec.x, -posVec.y / scalevec.y, -posVec.z / scalevec.z);
1486
- vLine.translateY(1.6);
1487
- vLine1.translateY(1.6);
1488
- vLine2.translateY(1.6);
1489
- vLine3.translateY(1.6);
1490
-
1491
- //rotObj.translateOnAxis(uVec, 1);
1492
- upObj.translateOnAxis(uVec, 1);
1493
- upObj.translateY(max.y - min.y);
1494
- mBox.name = 'TransformBox';
1495
- mBox.translateOnAxis(new Three.Vector3(uVec.x, uVec.y + (max.y - min.y) / 2, uVec.z), 1);
1496
- mBox.scale.set(1.01, 1.01, 1.01);
1497
-
1498
- // other side rotate object
1499
- var rotFillObj1 = rotFillObj.clone();
1500
- var rotStrokeObj1 = rotStrokeObj.clone();
1501
- rotFillObj1.rotateY(Math.PI);
1502
- rotStrokeObj1.rotateY(Math.PI);
1503
- rotFillObj.translateY(1.6);
1504
- rotFillObj1.translateY(1.6);
1505
- rotStrokeObj.translateY(1.6);
1506
- rotStrokeObj1.translateY(1.6);
1507
-
1508
- // assets Objects group includes rotate objects...
1509
- var asrtObj = new Three.Group();
1510
- // asrtObj.add(rotFillObj);
1511
- // asrtObj.add(rotFillObj1);
1512
- // asrtObj.add(rotStrokeObj);
1513
- // asrtObj.add(rotStrokeObj1);
1514
- //asrtObj.add(upObj);
1515
- asrtObj.add(vLine);
1516
- asrtObj.add(vLine1);
1517
- asrtObj.add(vLine2);
1518
- asrtObj.add(vLine3);
1519
- mBox.visible = false;
1520
- asrtObj.add(mBox);
1521
- asrtObj.scale.set(1, 1, 1);
1522
- //asrtObj.translateY(newAltitude / scalevec.y);
1523
- asrtObj.name = 'TransformGizmo';
1524
- // add assets Objects Group
1525
- object.add(asrtObj);
1526
-
1527
- // recover objects transform
1528
- object.position.x = posVec.x;
1529
- object.position.y = posVec.y;
1530
- object.position.z = posVec.z;
1531
- object.scale.set(scalevec.x, scalevec.y, scalevec.z);
1532
- setTimeout(function () {
1533
- SceneCreator.getDistances(layer);
1534
- }, 100);
1535
- }
1536
- return object;
1537
- };
1538
-
1539
- // keys in structure
1540
- var keys = Object.keys(structure);
1541
-
1542
- // if exist in cached Objects
1543
- if (element.type in cachedObject) {
1544
- var _objGroup3 = cachedObject[element.type].clone();
1545
- return Promise.resolve(onLoadItem(_objGroup3.clone()));
1546
- }
1547
-
1548
- // base Object/////
1549
- var objGroup = null;
1550
- var _loadGLTFs3 = function loadGLTFs(i) {
1551
- if (i === keys.length) {
1552
- // if end of keys
1553
- cachedObject[element.type] = objGroup.clone(); //register to cachedObject
1554
- return onLoadItem(cachedObject[element.type].clone());
1555
- }
1556
- if (keys[i] === 'base') {
1557
- // if base Objects
1558
- i++;
1559
- return _loadGLTFs3(i);
1560
- }
1561
- };
1562
-
1563
- // load base to start //
1564
- // return loadGLTF(dirName + structure["base"])
1565
- return loadGLTF(structure['base']).then(function (object) {
1566
- // let textureURL = `${API_SERVER_URL}/uploads/assets/default/steel.jpg`;
1567
- // let texture = loadTexture(textureURL);
1568
- // texture.wrapS = Three.MirroredRepeatWrapping;
1569
- // texture.wrapT = Three.MirroredRepeatWrapping;
1570
-
1571
- object.name = 'MainObject';
1572
- var mat2 = new Three.MeshStandardMaterial({
1573
- emissive: new Three.Color(0x666666).convertLinearToSRGB(),
1574
- metalness: 0.7,
1575
- roughness: 0.3
1576
- });
1577
- // mat2.envMap = textureCube;
1578
- object.material = mat2;
1579
- for (var j = 0; j < object.children.length; j++) {
1580
- if (object.children[j].type === OBJTYPE_MESH) {
1581
- object.children[j].material = mat2;
1582
- object.children[j].receiveShadow = true;
1583
- }
1584
- }
1585
- objGroup = object;
1586
- }, function (reason) {
1587
- console.log('loadGLTF failed for reason:', reason);
1588
- objGroup = GeomUtils.emptyBoxHolder(newWidth, newHeight, newDepth);
1589
- }).then(function () {
1590
- return _loadGLTFs3(0);
1591
- });
1592
- }
1593
- export function addEdgesToMesh(inChild) {
1594
- var boxEdge = new Three.EdgesGeometry(inChild.geometry, 10);
1595
- var boxEdgeMaterial = new Three.LineBasicMaterial({
1596
- color: 0x000000,
1597
- transparent: true,
1598
- opacity: 0.09
1599
- });
1600
- var boxEdgeLine = new Three.LineSegments(boxEdge, boxEdgeMaterial);
1601
- // inChild.add(boxEdgeLine);
1602
- }