kitchen-simulator 1.1.1-test.49 → 1.1.1-test.50

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 (358) hide show
  1. package/es/@history.js +2 -0
  2. package/es/AppContext.js +3 -0
  3. package/es/KitchenConfigurator.js +645 -0
  4. package/es/KitchenConfiguratorApp.js +480 -0
  5. package/es/actions/area-actions.js +14 -0
  6. package/es/actions/export.js +23 -0
  7. package/es/actions/groups-actions.js +89 -0
  8. package/es/actions/holes-actions.js +119 -0
  9. package/es/actions/items-actions.js +313 -0
  10. package/es/actions/lines-actions.js +81 -0
  11. package/es/actions/project-actions.js +281 -0
  12. package/es/actions/scene-actions.js +33 -0
  13. package/es/actions/vertices-actions.js +27 -0
  14. package/es/actions/viewer2d-actions.js +58 -0
  15. package/es/actions/viewer3d-actions.js +23 -0
  16. package/es/catalog/areas/area/planner-element.js +40 -0
  17. package/es/catalog/areas/area/textures/ceramic-tile.jpg +0 -0
  18. package/es/catalog/areas/area/textures/grass.jpg +0 -0
  19. package/es/catalog/areas/area/textures/parquet.jpg +0 -0
  20. package/es/catalog/areas/area/textures/strand-porcelain.jpg +0 -0
  21. package/es/catalog/areas/area/textures/tile1.jpg +0 -0
  22. package/es/catalog/catalog.js +277 -0
  23. package/es/catalog/envMap/nx.hdr +0 -0
  24. package/es/catalog/envMap/ny.hdr +0 -0
  25. package/es/catalog/envMap/nz.hdr +0 -0
  26. package/es/catalog/envMap/px.hdr +0 -0
  27. package/es/catalog/envMap/py.hdr +0 -0
  28. package/es/catalog/envMap/pz.hdr +0 -0
  29. package/es/catalog/factories/area-factory-3d.js +181 -0
  30. package/es/catalog/factories/area-factory.js +81 -0
  31. package/es/catalog/factories/export.js +7 -0
  32. package/es/catalog/factories/wall-factory-3d.js +202 -0
  33. package/es/catalog/factories/wall-factory.js +268 -0
  34. package/es/catalog/holes/door-closet/planner-element.js +222 -0
  35. package/es/catalog/holes/door-double/door_double.png +0 -0
  36. package/es/catalog/holes/door-double/planner-element.js +315 -0
  37. package/es/catalog/holes/door-exterior/planner-element.js +215 -0
  38. package/es/catalog/holes/door-interior/planner-element.js +227 -0
  39. package/es/catalog/holes/door-panic/panicDoor.png +0 -0
  40. package/es/catalog/holes/door-panic/planner-element.js +503 -0
  41. package/es/catalog/holes/door-panic-double/panicDoorDouble.png +0 -0
  42. package/es/catalog/holes/door-panic-double/planner-element.js +463 -0
  43. package/es/catalog/holes/door-sliding/planner-element.js +225 -0
  44. package/es/catalog/holes/doorway-framed/planner-element.js +145 -0
  45. package/es/catalog/holes/doorway-frameless/planner-element.js +104 -0
  46. package/es/catalog/holes/export.js +13 -0
  47. package/es/catalog/holes/gate/gate.jpg +0 -0
  48. package/es/catalog/holes/window-clear/planner-element.js +166 -0
  49. package/es/catalog/holes/window-clear/texture.png +0 -0
  50. package/es/catalog/holes/window-cross/planner-element.js +165 -0
  51. package/es/catalog/holes/window-cross/texture.png +0 -0
  52. package/es/catalog/holes/window-double-hung/planner-element.js +303 -0
  53. package/es/catalog/holes/window-double-hung/texture.png +0 -0
  54. package/es/catalog/holes/window-vertical/planner-element.js +276 -0
  55. package/es/catalog/holes/window-vertical/texture.png +0 -0
  56. package/es/catalog/lines/wall/planner-element.js +70 -0
  57. package/es/catalog/lines/wall/textures/bricks-normal.jpg +0 -0
  58. package/es/catalog/lines/wall/textures/bricks-normal2.jpg +0 -0
  59. package/es/catalog/lines/wall/textures/bricks.jpg +0 -0
  60. package/es/catalog/lines/wall/textures/bricks2.jpg +0 -0
  61. package/es/catalog/lines/wall/textures/bricks3.jpg +0 -0
  62. package/es/catalog/lines/wall/textures/morden-normal.jpg +0 -0
  63. package/es/catalog/lines/wall/textures/morden.jpg +0 -0
  64. package/es/catalog/lines/wall/textures/painted-normal.jpg +0 -0
  65. package/es/catalog/lines/wall/textures/painted.jpg +0 -0
  66. package/es/catalog/lines/wall/textures/plaster-normal.jpg +0 -0
  67. package/es/catalog/lines/wall/textures/plaster.jpg +0 -0
  68. package/es/catalog/lines/wall/wall.png +0 -0
  69. package/es/catalog/molding/molding-dcm/planner-element.js +28 -0
  70. package/es/catalog/molding/molding-dcm/texture.png +0 -0
  71. package/es/catalog/molding/molding-fbm/planner-element.js +28 -0
  72. package/es/catalog/molding/molding-fbm/texture.png +0 -0
  73. package/es/catalog/molding/molding-lrm/planner-element.js +28 -0
  74. package/es/catalog/molding/molding-lrm/texture.png +0 -0
  75. package/es/catalog/properties/export.js +21 -0
  76. package/es/catalog/properties/property-checkbox.js +116 -0
  77. package/es/catalog/properties/property-color.js +39 -0
  78. package/es/catalog/properties/property-enum.js +97 -0
  79. package/es/catalog/properties/property-hidden.js +19 -0
  80. package/es/catalog/properties/property-lenght-measure.js +101 -0
  81. package/es/catalog/properties/property-length-measure.js +134 -0
  82. package/es/catalog/properties/property-length-measure_hole.js +101 -0
  83. package/es/catalog/properties/property-number.js +48 -0
  84. package/es/catalog/properties/property-read-only.js +26 -0
  85. package/es/catalog/properties/property-string.js +48 -0
  86. package/es/catalog/properties/property-toggle.js +39 -0
  87. package/es/catalog/properties/shared-property-style.js +14 -0
  88. package/es/catalog/utils/FuseUtils.js +82 -0
  89. package/es/catalog/utils/exporter.js +148 -0
  90. package/es/catalog/utils/geom-utils.js +189 -0
  91. package/es/catalog/utils/item-loader.js +1521 -0
  92. package/es/catalog/utils/load-obj.js +91 -0
  93. package/es/catalog/utils/mtl-loader.js +358 -0
  94. package/es/catalog/utils/obj-loader.js +477 -0
  95. package/es/class/FuseUtils.js +82 -0
  96. package/es/class/area.js +145 -0
  97. package/es/class/export.js +24 -0
  98. package/es/class/group.js +440 -0
  99. package/es/class/guide.js +62 -0
  100. package/es/class/hole.js +929 -0
  101. package/es/class/item.js +1883 -0
  102. package/es/class/layer.js +667 -0
  103. package/es/class/line.js +1180 -0
  104. package/es/class/project.js +793 -0
  105. package/es/class/vertex.js +202 -0
  106. package/es/components/content.js +107 -0
  107. package/es/components/disclaimer/disclaimer.js +97 -0
  108. package/es/components/export.js +9 -0
  109. package/es/components/style/button.js +113 -0
  110. package/es/components/style/cancel-button.js +22 -0
  111. package/es/components/style/content-container.js +33 -0
  112. package/es/components/style/content-title.js +29 -0
  113. package/es/components/style/delete-button.js +25 -0
  114. package/es/components/style/export.js +31 -0
  115. package/es/components/style/form-block.js +24 -0
  116. package/es/components/style/form-color-input.js +27 -0
  117. package/es/components/style/form-label.js +26 -0
  118. package/es/components/style/form-number-input.js +213 -0
  119. package/es/components/style/form-number-input_2.js +206 -0
  120. package/es/components/style/form-select.js +68 -0
  121. package/es/components/style/form-slider.js +61 -0
  122. package/es/components/style/form-submit-button.js +26 -0
  123. package/es/components/style/form-text-input.js +95 -0
  124. package/es/components/viewer2d/area.js +81 -0
  125. package/es/components/viewer2d/export.js +31 -0
  126. package/es/components/viewer2d/grids/grid-horizontal-streak.js +37 -0
  127. package/es/components/viewer2d/grids/grid-streak.js +37 -0
  128. package/es/components/viewer2d/grids/grid-vertical-streak.js +37 -0
  129. package/es/components/viewer2d/grids/grids.js +35 -0
  130. package/es/components/viewer2d/group.js +53 -0
  131. package/es/components/viewer2d/item.js +513 -0
  132. package/es/components/viewer2d/layer.js +164 -0
  133. package/es/components/viewer2d/line.js +882 -0
  134. package/es/components/viewer2d/ruler.js +100 -0
  135. package/es/components/viewer2d/rulerDist.js +146 -0
  136. package/es/components/viewer2d/rulerX.js +151 -0
  137. package/es/components/viewer2d/rulerY.js +153 -0
  138. package/es/components/viewer2d/scene.js +140 -0
  139. package/es/components/viewer2d/snap.js +74 -0
  140. package/es/components/viewer2d/state.js +78 -0
  141. package/es/components/viewer2d/utils.js +198 -0
  142. package/es/components/viewer2d/vertex.js +65 -0
  143. package/es/components/viewer2d/viewer2d.js +1398 -0
  144. package/es/components/viewer3d/camera-controls-module/camera-controls.module.js +2592 -0
  145. package/es/components/viewer3d/dcm.js +401 -0
  146. package/es/components/viewer3d/fbm.js +414 -0
  147. package/es/components/viewer3d/front3D.js +66 -0
  148. package/es/components/viewer3d/grid-creator.js +25 -0
  149. package/es/components/viewer3d/grids/grid-horizontal-streak.js +36 -0
  150. package/es/components/viewer3d/grids/grid-streak.js +27 -0
  151. package/es/components/viewer3d/grids/grid-vertical-streak.js +36 -0
  152. package/es/components/viewer3d/libs/first-person-controls.js +67 -0
  153. package/es/components/viewer3d/libs/helvetiker_regular.typeface.js +1281 -0
  154. package/es/components/viewer3d/libs/mtl-loader.js +357 -0
  155. package/es/components/viewer3d/libs/obj-loader.js +462 -0
  156. package/es/components/viewer3d/libs/orbit-controls.js +699 -0
  157. package/es/components/viewer3d/libs/pointer-lock-controls.js +46 -0
  158. package/es/components/viewer3d/lrm.js +305 -0
  159. package/es/components/viewer3d/model.js +708 -0
  160. package/es/components/viewer3d/pointer-lock-navigation.js +115 -0
  161. package/es/components/viewer3d/ruler-utils/itemRect.js +61 -0
  162. package/es/components/viewer3d/ruler-utils/layer3D.js +495 -0
  163. package/es/components/viewer3d/ruler-utils/ruler3D.js +227 -0
  164. package/es/components/viewer3d/ruler-utils/scene3D.js +60 -0
  165. package/es/components/viewer3d/ruler-utils/state3D.js +18 -0
  166. package/es/components/viewer3d/scene-creator.js +3608 -0
  167. package/es/components/viewer3d/three-memory-cleaner.js +51 -0
  168. package/es/components/viewer3d/viewer3d-first-person.js +315 -0
  169. package/es/components/viewer3d/viewer3d.js +2527 -0
  170. package/es/constants.js +636 -0
  171. package/es/index.js +16 -0
  172. package/es/models.js +510 -0
  173. package/es/plugins/SVGLoader.js +1412 -0
  174. package/es/plugins/autosave.js +33 -0
  175. package/es/plugins/console-debugger.js +37 -0
  176. package/es/plugins/export.js +9 -0
  177. package/es/plugins/keyboard.js +101 -0
  178. package/es/reducers/areas-reducer.js +12 -0
  179. package/es/reducers/export.js +25 -0
  180. package/es/reducers/groups-reducer.js +38 -0
  181. package/es/reducers/holes-reducer.js +62 -0
  182. package/es/reducers/items-reducer.js +140 -0
  183. package/es/reducers/lines-reducer.js +45 -0
  184. package/es/reducers/project-reducer.js +129 -0
  185. package/es/reducers/reducer.js +19 -0
  186. package/es/reducers/scene-reducer.js +28 -0
  187. package/es/reducers/user-reducer.js +40 -0
  188. package/es/reducers/vertices-reducer.js +19 -0
  189. package/es/reducers/viewer2d-reducer.js +75 -0
  190. package/es/reducers/viewer3d-reducer.js +56 -0
  191. package/es/shared-style.js +66 -0
  192. package/es/styles/export.js +5 -0
  193. package/es/styles/tabs.css +40 -0
  194. package/es/translator/en.js +104 -0
  195. package/es/translator/it.js +79 -0
  196. package/es/translator/ru.js +79 -0
  197. package/es/translator/translator.js +84 -0
  198. package/es/utils/browser.js +33 -0
  199. package/es/utils/email-validator.js +4 -0
  200. package/es/utils/export.js +25 -0
  201. package/es/utils/geometry.js +2420 -0
  202. package/es/utils/get-edges-of-subgraphs.js +27 -0
  203. package/es/utils/graph-cycles.js +237 -0
  204. package/es/utils/graph-inner-cycles.js +46 -0
  205. package/es/utils/graph.js +150 -0
  206. package/es/utils/helper.js +268 -0
  207. package/es/utils/history.js +29 -0
  208. package/es/utils/id-broker.js +19 -0
  209. package/es/utils/logger.js +8 -0
  210. package/es/utils/math.js +50 -0
  211. package/es/utils/molding.js +871 -0
  212. package/es/utils/name-generator.js +18 -0
  213. package/es/utils/objects-utils.js +50 -0
  214. package/es/utils/phone-validator.js +4 -0
  215. package/es/utils/process-black-list.js +18 -0
  216. package/es/utils/react-if.js +18 -0
  217. package/es/utils/snap-scene.js +99 -0
  218. package/es/utils/snap.js +237 -0
  219. package/es/utils/summarizeCart.js +24 -0
  220. package/es/utils/threeCSG.es6.js +498 -0
  221. package/es/version.js +2 -0
  222. package/lib/catalog/properties/property-string.js +55 -0
  223. package/lib/catalog/properties/property-toggle.js +46 -0
  224. package/lib/catalog/properties/shared-property-style.js +20 -0
  225. package/lib/catalog/utils/FuseUtils.js +88 -0
  226. package/lib/catalog/utils/exporter.js +155 -0
  227. package/lib/catalog/utils/geom-utils.js +205 -0
  228. package/lib/catalog/utils/item-loader.js +1533 -0
  229. package/lib/catalog/utils/load-obj.js +99 -0
  230. package/lib/catalog/utils/mtl-loader.js +363 -0
  231. package/lib/catalog/utils/obj-loader.js +482 -0
  232. package/lib/class/FuseUtils.js +88 -0
  233. package/lib/class/area.js +150 -0
  234. package/lib/class/export.js +96 -0
  235. package/lib/class/group.js +445 -0
  236. package/lib/class/guide.js +67 -0
  237. package/lib/class/hole.js +934 -0
  238. package/lib/class/item.js +1889 -0
  239. package/lib/class/layer.js +672 -0
  240. package/lib/class/line.js +1186 -0
  241. package/lib/class/project.js +799 -0
  242. package/lib/class/vertex.js +207 -0
  243. package/lib/components/content.js +116 -0
  244. package/lib/components/disclaimer/disclaimer.js +105 -0
  245. package/lib/components/export.js +33 -0
  246. package/lib/components/style/button.js +120 -0
  247. package/lib/components/style/cancel-button.js +29 -0
  248. package/lib/components/style/content-container.js +40 -0
  249. package/lib/components/style/content-title.js +37 -0
  250. package/lib/components/style/delete-button.js +34 -0
  251. package/lib/components/style/export.js +121 -0
  252. package/lib/components/style/form-block.js +31 -0
  253. package/lib/components/style/form-color-input.js +34 -0
  254. package/lib/components/style/form-label.js +33 -0
  255. package/lib/components/style/form-number-input.js +220 -0
  256. package/lib/components/style/form-number-input_2.js +213 -0
  257. package/lib/components/style/form-select.js +75 -0
  258. package/lib/components/style/form-slider.js +68 -0
  259. package/lib/components/style/form-submit-button.js +35 -0
  260. package/lib/components/style/form-text-input.js +101 -0
  261. package/lib/components/viewer2d/area.js +88 -0
  262. package/lib/components/viewer2d/export.js +121 -0
  263. package/lib/components/viewer2d/grids/grid-horizontal-streak.js +44 -0
  264. package/lib/components/viewer2d/grids/grid-streak.js +44 -0
  265. package/lib/components/viewer2d/grids/grid-vertical-streak.js +44 -0
  266. package/lib/components/viewer2d/grids/grids.js +44 -0
  267. package/lib/components/viewer2d/group.js +62 -0
  268. package/lib/components/viewer2d/item.js +521 -0
  269. package/lib/components/viewer2d/layer.js +171 -0
  270. package/lib/components/viewer2d/line.js +892 -0
  271. package/lib/components/viewer2d/ruler.js +107 -0
  272. package/lib/components/viewer2d/rulerDist.js +153 -0
  273. package/lib/components/viewer2d/rulerX.js +158 -0
  274. package/lib/components/viewer2d/rulerY.js +160 -0
  275. package/lib/components/viewer2d/scene.js +147 -0
  276. package/lib/components/viewer2d/snap.js +83 -0
  277. package/lib/components/viewer2d/state.js +87 -0
  278. package/lib/components/viewer2d/utils.js +210 -0
  279. package/lib/components/viewer2d/vertex.js +74 -0
  280. package/lib/components/viewer2d/viewer2d.js +1405 -0
  281. package/lib/components/viewer3d/camera-controls-module/camera-controls.module.js +2597 -0
  282. package/lib/components/viewer3d/dcm.js +407 -0
  283. package/lib/components/viewer3d/fbm.js +420 -0
  284. package/lib/components/viewer3d/front3D.js +75 -0
  285. package/lib/components/viewer3d/grid-creator.js +34 -0
  286. package/lib/components/viewer3d/grids/grid-horizontal-streak.js +44 -0
  287. package/lib/components/viewer3d/grids/grid-streak.js +35 -0
  288. package/lib/components/viewer3d/grids/grid-vertical-streak.js +44 -0
  289. package/lib/components/viewer3d/libs/first-person-controls.js +74 -0
  290. package/lib/components/viewer3d/libs/helvetiker_regular.typeface.js +1287 -0
  291. package/lib/components/viewer3d/libs/mtl-loader.js +363 -0
  292. package/lib/components/viewer3d/libs/obj-loader.js +468 -0
  293. package/lib/components/viewer3d/libs/orbit-controls.js +705 -0
  294. package/lib/components/viewer3d/libs/pointer-lock-controls.js +52 -0
  295. package/lib/components/viewer3d/lrm.js +311 -0
  296. package/lib/components/viewer3d/model.js +714 -0
  297. package/lib/components/viewer3d/pointer-lock-navigation.js +122 -0
  298. package/lib/components/viewer3d/ruler-utils/itemRect.js +68 -0
  299. package/lib/components/viewer3d/ruler-utils/layer3D.js +502 -0
  300. package/lib/components/viewer3d/ruler-utils/ruler3D.js +234 -0
  301. package/lib/components/viewer3d/ruler-utils/scene3D.js +68 -0
  302. package/lib/components/viewer3d/ruler-utils/state3D.js +25 -0
  303. package/lib/components/viewer3d/scene-creator.js +3642 -0
  304. package/lib/components/viewer3d/three-memory-cleaner.js +60 -0
  305. package/lib/components/viewer3d/viewer3d-first-person.js +320 -0
  306. package/lib/components/viewer3d/viewer3d.js +2532 -0
  307. package/lib/constants.js +645 -0
  308. package/lib/index.js +96 -0
  309. package/lib/models.js +517 -0
  310. package/lib/plugins/SVGLoader.js +1417 -0
  311. package/lib/plugins/autosave.js +39 -0
  312. package/lib/plugins/console-debugger.js +44 -0
  313. package/lib/plugins/export.js +33 -0
  314. package/lib/plugins/keyboard.js +107 -0
  315. package/lib/reducers/areas-reducer.js +18 -0
  316. package/lib/reducers/export.js +97 -0
  317. package/lib/reducers/groups-reducer.js +44 -0
  318. package/lib/reducers/holes-reducer.js +68 -0
  319. package/lib/reducers/items-reducer.js +146 -0
  320. package/lib/reducers/lines-reducer.js +51 -0
  321. package/lib/reducers/project-reducer.js +135 -0
  322. package/lib/reducers/reducer.js +26 -0
  323. package/lib/reducers/scene-reducer.js +34 -0
  324. package/lib/reducers/user-reducer.js +46 -0
  325. package/lib/reducers/vertices-reducer.js +25 -0
  326. package/lib/reducers/viewer2d-reducer.js +82 -0
  327. package/lib/reducers/viewer3d-reducer.js +63 -0
  328. package/lib/shared-style.js +72 -0
  329. package/lib/styles/export.js +13 -0
  330. package/lib/translator/en.js +110 -0
  331. package/lib/translator/it.js +85 -0
  332. package/lib/translator/ru.js +85 -0
  333. package/lib/translator/translator.js +90 -0
  334. package/lib/utils/browser.js +40 -0
  335. package/lib/utils/email-validator.js +10 -0
  336. package/lib/utils/export.js +56 -0
  337. package/lib/utils/geometry.js +2516 -0
  338. package/lib/utils/get-edges-of-subgraphs.js +34 -0
  339. package/lib/utils/graph-cycles.js +240 -0
  340. package/lib/utils/graph-inner-cycles.js +54 -0
  341. package/lib/utils/graph.js +157 -0
  342. package/lib/utils/helper.js +291 -0
  343. package/lib/utils/history.js +36 -0
  344. package/lib/utils/id-broker.js +25 -0
  345. package/lib/utils/logger.js +14 -0
  346. package/lib/utils/math.js +57 -0
  347. package/lib/utils/molding.js +895 -0
  348. package/lib/utils/name-generator.js +23 -0
  349. package/lib/utils/objects-utils.js +60 -0
  350. package/lib/utils/phone-validator.js +10 -0
  351. package/lib/utils/process-black-list.js +24 -0
  352. package/lib/utils/react-if.js +24 -0
  353. package/lib/utils/snap-scene.js +105 -0
  354. package/lib/utils/snap.js +249 -0
  355. package/lib/utils/summarizeCart.js +30 -0
  356. package/lib/utils/threeCSG.es6.js +503 -0
  357. package/lib/version.js +8 -0
  358. package/package.json +3 -3
@@ -0,0 +1,503 @@
1
+ import React from 'react';
2
+ import * as Three from 'three';
3
+ var black = new Three.MeshLambertMaterial({
4
+ color: 0x000000
5
+ });
6
+ var green = new Three.MeshLambertMaterial({
7
+ color: 0x348781
8
+ });
9
+ var red = new Three.MeshLambertMaterial({
10
+ color: 0xff0000
11
+ });
12
+ var turquoise = new Three.MeshLambertMaterial({
13
+ color: 0x43c6db,
14
+ opacity: 0.7,
15
+ transparent: true
16
+ });
17
+ var metalBlue = new Three.MeshLambertMaterial({
18
+ color: 0xb7ceec
19
+ });
20
+ var darkGrey = new Three.MeshLambertMaterial({
21
+ color: 0x313131
22
+ });
23
+ var darkGrey2 = new Three.MeshLambertMaterial({
24
+ color: 0x212121
25
+ });
26
+ var metalBlueGrey = new Three.MeshLambertMaterial({
27
+ color: 0x566d7e
28
+ });
29
+ var flip_value;
30
+ var handleSide_value;
31
+ function makePanicDoor(handleSide) {
32
+ var panicDoor = new Three.Mesh();
33
+ var leftDoor = makeDoorStructure();
34
+ var handle = makeHandle(handleSide);
35
+ var leftDoorPivot = makePivot();
36
+ var rightDoorPivot = makePivot();
37
+ var safetyHandleLeft = makeSafetyHandle();
38
+ var safetyHandleRight = makeSafetyHandle();
39
+ var hilt = makeLock();
40
+ var doorLock = makeDoorLock();
41
+ hilt.position.set(-0.05, -0.02, 0.03);
42
+ handle.position.set(-0.47 / 2, 0.85 / 2, -0.03);
43
+ if (handleSide) {
44
+ leftDoorPivot.position.set(0.595 / 2, 0, -0.06 / 2);
45
+ } else {
46
+ leftDoorPivot.position.set(-0.595 / 2, 0, -0.06 / 2);
47
+ }
48
+ rightDoorPivot.position.set(0.6 / 2, 0, 0.077 / 2);
49
+ safetyHandleLeft.position.set(0, 0.4, 0.06 / 2);
50
+ safetyHandleRight.position.set(0, 0.4, -0.062 / 2);
51
+ handle.add(hilt);
52
+ leftDoor.add(handle);
53
+ leftDoor.add(safetyHandleLeft);
54
+ leftDoor.add(leftDoorPivot);
55
+ panicDoor.add(leftDoor);
56
+ leftDoor.add(doorLock);
57
+ return panicDoor;
58
+ }
59
+ function makeDoorLock() {
60
+ var DoorLock = new Three.Object3D();
61
+ var doorLockGeometry1 = new Three.CylinderGeometry(0.012, 0.012, 1.905, Math.round(32));
62
+ var doorLockGeometry2 = new Three.CylinderGeometry(0.007, 0.007, 1.907, Math.round(32));
63
+ var doorLock1 = new Three.Mesh(doorLockGeometry1, metalBlue);
64
+ var doorLock2 = new Three.Mesh(doorLockGeometry2, metalBlueGrey);
65
+ DoorLock.position.set(-0.275, 0.7 / 2, 0);
66
+ DoorLock.scale.x = 1 / 1.3;
67
+ doorLock1.add(doorLock2);
68
+ DoorLock.add(doorLock1);
69
+ return DoorLock;
70
+ }
71
+ function makeLock() {
72
+ var mechanism = new Three.Object3D();
73
+ var BaseGeometry = new Three.BoxGeometry(0.01, 0.1, 0.02);
74
+ var PieceGeometry1 = new Three.BoxGeometry(0.01, 0.02, 0.01);
75
+ var PieceGeometry2 = new Three.BoxGeometry(0.006, 0.04, 0.008);
76
+ var base = new Three.Mesh(BaseGeometry, metalBlue);
77
+ var piece1 = new Three.Mesh(PieceGeometry1, metalBlueGrey);
78
+ var piece2 = new Three.Mesh(PieceGeometry2, metalBlueGrey);
79
+ piece1.position.set(-0.008 / 2, 0.03, 0);
80
+ piece2.position.y = -0.05;
81
+ piece1.add(piece2);
82
+ base.add(piece1);
83
+ mechanism.add(base);
84
+ return mechanism;
85
+ }
86
+ function makeSafetyHandle() {
87
+ var handle = new Three.Object3D();
88
+ var HandleSupportGeometry = new Three.BoxGeometry(0.5, 0.1, 0.005);
89
+ var PushGeometry = new Three.CylinderGeometry(0.04, 0.04, 0.48, Math.round(32));
90
+ var CoverPushGeometry = new Three.CylinderGeometry(0.042, 0.042, 0.01, Math.round(32));
91
+ var handleSupport = new Three.Mesh(HandleSupportGeometry, black);
92
+ var PushButton = new Three.Mesh(PushGeometry, red);
93
+ var CoverPush1 = new Three.Mesh(CoverPushGeometry, black);
94
+ var CoverPush2 = new Three.Mesh(CoverPushGeometry, black);
95
+ handleSupport.position.z = 0.005 / 2;
96
+ PushButton.rotation.z = Math.PI / 2;
97
+ CoverPush1.position.y = 0.48 / 2 + 0.01 / 2;
98
+ CoverPush2.position.y = -0.48 / 2 - 0.01 / 2;
99
+ PushButton.add(CoverPush1);
100
+ PushButton.add(CoverPush2);
101
+ handleSupport.add(PushButton);
102
+ handle.add(handleSupport);
103
+ return handle;
104
+ }
105
+ function makePivot() {
106
+ var DoorPivot = new Three.Object3D();
107
+ var DownPivotGeometry = new Three.CylinderGeometry(0.009, 0.009, 0.04, Math.round(32));
108
+ var UpPivotGeometry = new Three.CylinderGeometry(0.01, 0.01, 0.04, Math.round(32));
109
+ var downPivot1 = new Three.Mesh(DownPivotGeometry, green);
110
+ var upPivot1 = new Three.Mesh(UpPivotGeometry, green);
111
+ var downPivot2 = new Three.Mesh(DownPivotGeometry, green);
112
+ var upPivot2 = new Three.Mesh(UpPivotGeometry, green);
113
+ downPivot1.position.y = -0.4;
114
+ upPivot1.position.y = 0.04;
115
+ downPivot2.position.y = 1;
116
+ upPivot2.position.y = 0.04;
117
+ downPivot2.add(upPivot2);
118
+ downPivot1.add(upPivot1);
119
+ DoorPivot.add(downPivot2);
120
+ DoorPivot.add(downPivot1);
121
+ return DoorPivot;
122
+ }
123
+ function makeHandle(handleSide_value) {
124
+ var handle = new Three.Object3D();
125
+ var handleBase = makeHandleBase(handleSide_value);
126
+ var hilt = makeHilt();
127
+ hilt.rotation.x = Math.PI / 2;
128
+ if (handleSide_value) {
129
+ hilt.position.set(0, 0.04, -0.03 / 2 - 0.01 / 2);
130
+ } else {
131
+ hilt.position.set(0.4, 0.04, -0.03 / 2 - 0.01 / 2);
132
+ hilt.rotation.y = Math.PI;
133
+ }
134
+ handle.add(handleBase);
135
+ handle.add(hilt);
136
+ handle.scale.set(1.1, 1.1, 1.1);
137
+ return handle;
138
+ }
139
+ function makeHilt() {
140
+ var hilt = new Three.Object3D();
141
+ var Geometry_p1 = new Three.CylinderGeometry(0.01, 0.01, 0.03, Math.round(32));
142
+ var Geometry_p2 = new Three.SphereGeometry(0.01, Math.round(32), Math.round(32));
143
+ var Geometry_p3 = new Three.CylinderGeometry(0.01, 0.01, 0.07, Math.round(32));
144
+ var piece1 = new Three.Mesh(Geometry_p1, black);
145
+ var piece2 = new Three.Mesh(Geometry_p2, black);
146
+ var piece3 = new Three.Mesh(Geometry_p3, black);
147
+ var piece4 = new Three.Mesh(Geometry_p2, black);
148
+ piece3.rotation.z = Math.PI / 2;
149
+ piece3.position.x = 0.07 / 2;
150
+ piece2.position.y = -0.03 / 2;
151
+ piece4.position.y = -0.07 / 2;
152
+ piece3.add(piece4);
153
+ piece2.add(piece3);
154
+ piece1.add(piece2);
155
+ hilt.add(piece1);
156
+ return hilt;
157
+ }
158
+ function makeHandleBase(handleSide_value) {
159
+ var base = new Three.Object3D();
160
+ var BaseGeometry1 = new Three.BoxGeometry(0.038, 0.14, 0.01);
161
+ var BaseGeometry2 = new Three.CylinderGeometry(0.023, 0.023, 0.01, Math.round(32));
162
+ var lock = makeLockKey();
163
+ var base1 = new Three.Mesh(BaseGeometry1, black);
164
+ var base2 = new Three.Mesh(BaseGeometry2, black);
165
+ lock.rotation.x = Math.PI / 2;
166
+ base2.rotation.x = Math.PI / 2;
167
+ lock.position.y = -0.03;
168
+ base2.position.y = -0.033;
169
+ if (!handleSide_value) base1.position.x = 0.4;
170
+ base2.scale.z = 1.5;
171
+ base1.add(lock);
172
+ base1.add(base2);
173
+ base.add(base1);
174
+ return base;
175
+ }
176
+ function makeLockKey() {
177
+ var Lock = new Three.Object3D();
178
+ var geometry1 = new Three.CylinderGeometry(0.005, 0.005, 0.02, Math.round(32));
179
+ var geometry2 = new Three.BoxGeometry(0.008, 0.02, 0.02);
180
+ var geometry3 = new Three.BoxGeometry(0.007, 0.0203, 0.0018);
181
+ var LockPiece1 = new Three.Mesh(geometry1, metalBlue);
182
+ var LockPiece2 = new Three.Mesh(geometry2, metalBlue);
183
+ var LockPiece3 = new Three.Mesh(geometry3, metalBlueGrey);
184
+ LockPiece2.position.z = 0.01;
185
+ LockPiece1.add(LockPiece2);
186
+ LockPiece1.add(LockPiece3);
187
+ Lock.add(LockPiece1);
188
+ return Lock;
189
+ }
190
+ function makeDoorStructure() {
191
+ var door = new Three.Object3D();
192
+ var lowBaseDoorGeometry = new Three.BoxGeometry(0.6, 1.2, 0.01);
193
+ var middleBaseDoorGeometry = new Three.BoxGeometry(0.2, 0.7, 0.01);
194
+ var highBaseDoorGeometry = new Three.BoxGeometry(0.2, 0.2, 0.01);
195
+ var BorderCoverDoorGeometry1 = new Three.CylinderGeometry(0.005, 0.005, 1.9, Math.round(32));
196
+ var BorderCoverDoorGeometry2 = new Three.BoxGeometry(0.03, 1.9, 0.01);
197
+ var MiddleDoorGeometry2 = new Three.BoxGeometry(0.2, 0.7, 0.06);
198
+ var MiddleDoorGeometry1 = new Three.BoxGeometry(0.19, 0.7, 0.06);
199
+ var HighDoorGeometry = new Three.BoxGeometry(0.2, 0.2, 0.06);
200
+ var glassGeometry = new Three.BoxGeometry(0.2, 0.5, 0.05);
201
+ var LowDoorGeometry = new Three.BoxGeometry(0.59, 1.2, 0.06);
202
+ var glassCoverVertical = new Three.BoxGeometry(0.01, 0.52, 0.064);
203
+ var glassCoverHorizontal = new Three.BoxGeometry(0.224, 0.01, 0.064);
204
+ var lowCoverDoor = new Three.Mesh(lowBaseDoorGeometry, green);
205
+ var middleDoor1 = new Three.Mesh(MiddleDoorGeometry1, green);
206
+ var middleDoor2 = new Three.Mesh(MiddleDoorGeometry2, green);
207
+ var baseDoor = new Three.Mesh(LowDoorGeometry, green);
208
+ var middleCoverDoor1 = new Three.Mesh(middleBaseDoorGeometry, green);
209
+ var middleCoverDoor2 = new Three.Mesh(middleBaseDoorGeometry, green);
210
+ var highCoverDoor = new Three.Mesh(highBaseDoorGeometry, green);
211
+ var highDoor = new Three.Mesh(HighDoorGeometry, green);
212
+ var borderCoverDoor1 = new Three.Mesh(BorderCoverDoorGeometry1, green);
213
+ var borderCoverDoor2 = new Three.Mesh(BorderCoverDoorGeometry2, green);
214
+ var glass = new Three.Mesh(glassGeometry, turquoise);
215
+ var glassVerticalCover1 = new Three.Mesh(glassCoverVertical, green);
216
+ var glassVerticalCover2 = new Three.Mesh(glassCoverVertical, green);
217
+ var glassHorizontalCover1 = new Three.Mesh(glassCoverHorizontal, green);
218
+ var glassHorizontalCover2 = new Three.Mesh(glassCoverHorizontal, green);
219
+ lowCoverDoor.position.set(-(0.6 - 0.59) / 2, 0, -0.05 / 2);
220
+ middleCoverDoor1.position.set(-0.2, 1.2 / 2 + 0.7 / 2, 0);
221
+ middleCoverDoor2.position.set(0.2, 1.2 / 2 + 0.7 / 2, 0);
222
+ highCoverDoor.position.set(0, (0.5 + 0.2) / 2, -0.05 / 2);
223
+ highDoor.position.set(0, (0.5 + 0.2) / 2, -0.05 / 2 + 0.05 / 2);
224
+ glass.position.set(-0.01 / 2, 1.2 / 2 + 0.5 / 2, 0);
225
+ middleDoor2.position.z = 0.05 / 2;
226
+ middleDoor1.position.set(0.005, 0, 0.05 / 2);
227
+ borderCoverDoor1.position.set(-0.6 / 2, 0.7 / 2, 0);
228
+ glassVerticalCover1.position.x = 0.2 / 2 + 0.014 / 2;
229
+ glassVerticalCover2.position.x = -0.2 / 2 - 0.014 / 2;
230
+ glassHorizontalCover1.position.y = 0.5 / 2 + 0.014 / 2;
231
+ glassHorizontalCover2.position.y = -0.5 / 2 - 0.014 / 2;
232
+ borderCoverDoor2.position.set(0.02 / 2, 0, -0.01 / 2);
233
+ borderCoverDoor1.add(borderCoverDoor2);
234
+ glass.add(highCoverDoor);
235
+ glass.add(glassVerticalCover1);
236
+ glass.add(glassVerticalCover2);
237
+ glass.add(glassHorizontalCover1);
238
+ glass.add(glassHorizontalCover2);
239
+ glass.add(highCoverDoor);
240
+ glass.add(highDoor);
241
+ baseDoor.add(glass);
242
+ middleCoverDoor1.add(middleDoor1);
243
+ middleCoverDoor2.add(middleDoor2);
244
+ lowCoverDoor.add(borderCoverDoor1);
245
+ lowCoverDoor.add(middleCoverDoor1);
246
+ lowCoverDoor.add(middleCoverDoor2);
247
+ baseDoor.add(lowCoverDoor);
248
+ door.add(baseDoor);
249
+ door.scale.x = 1.3;
250
+ return door;
251
+ }
252
+ export default {
253
+ name: 'Panic Door',
254
+ prototype: 'holes',
255
+ info: {
256
+ tag: ['door'],
257
+ title: 'Panic Door',
258
+ description: 'iron door',
259
+ image: '/assets/img/svg/doors_exterior.svg'
260
+ },
261
+ properties: {
262
+ width: {
263
+ label: 'width',
264
+ type: 'length-measure',
265
+ defaultValue: {
266
+ length: 100,
267
+ unit: 'cm'
268
+ }
269
+ },
270
+ height: {
271
+ label: 'height',
272
+ type: 'length-measure',
273
+ defaultValue: {
274
+ length: 215,
275
+ unit: 'cm'
276
+ }
277
+ },
278
+ thickness: {
279
+ label: 'thickness',
280
+ type: 'length-measure',
281
+ defaultValue: {
282
+ length: 6,
283
+ unit: 'cm'
284
+ }
285
+ },
286
+ altitude: {
287
+ label: 'altitude',
288
+ type: 'length-measure',
289
+ defaultValue: {
290
+ length: 0,
291
+ unit: 'cm'
292
+ }
293
+ },
294
+ flip_horizontal: {
295
+ label: 'horizontal flip',
296
+ type: 'checkbox',
297
+ defaultValue: 'none',
298
+ values: {
299
+ none: 'none',
300
+ yes: 'yes'
301
+ }
302
+ },
303
+ flip_vertical: {
304
+ label: 'vertical flip',
305
+ type: 'checkbox',
306
+ defaultValue: 'right',
307
+ values: {
308
+ right: 'right',
309
+ left: 'left'
310
+ }
311
+ }
312
+ },
313
+ render2D: function render2D(element, layer, scene) {
314
+ var STYLE_HOLE_BASE = {
315
+ stroke: 'rgb(73, 73, 73)',
316
+ strokeWidth: '1px',
317
+ strokeDasharray: '9,5',
318
+ fill: 'rgb(73, 73, 73)'
319
+ };
320
+ var STYLE_HOLE_SELECTED = {
321
+ stroke: '#0096fd',
322
+ strokeWidth: '1px',
323
+ strokeDasharray: '9,5',
324
+ fill: '#0096fd',
325
+ cursor: 'move'
326
+ };
327
+ var STYLE_ARC_BASE = {
328
+ stroke: 'rgb(73, 73, 73)',
329
+ strokeWidth: '1px',
330
+ strokeDasharray: '9,5',
331
+ fill: 'none'
332
+ };
333
+ var STYLE_ARC_SELECTED = {
334
+ stroke: '#0096fd',
335
+ strokeWidth: '1px',
336
+ strokeDasharray: '9,5',
337
+ fill: 'none',
338
+ cursor: 'move'
339
+ };
340
+ var STYLE_STR0 = {
341
+ fill: 'rgb(185, 185, 185)',
342
+ stroke: '#494949',
343
+ strokeWidth: '1',
344
+ strokeMiterlimit: '2.61313'
345
+ };
346
+ var STYLE_STR0_S = {
347
+ fill: 'rgb(185, 185, 185)',
348
+ stroke: '#0096fd',
349
+ strokeWidth: '1',
350
+ strokeMiterlimit: '2.61313'
351
+ };
352
+ var STYLE_STR1 = {
353
+ fill: 'none',
354
+ stroke: '#494949',
355
+ strokeWidth: '1',
356
+ strokeLinecap: 'round',
357
+ strokeLinejoin: 'round',
358
+ strokeMiterlimit: '2.61313',
359
+ strokeDasharray: '23.860041 11.930021'
360
+ };
361
+ var STYLE_FILL2 = {
362
+ fill: '#1183B7'
363
+ };
364
+ var STYLE_FNT0 = {
365
+ fill: 'white',
366
+ fontWeight: 'normal',
367
+ fontSize: '13px',
368
+ fontFamily: 'Proxima Nova Rg'
369
+ };
370
+ var epsilon = 3;
371
+ var flip = element.properties.get('flip_horizontal');
372
+ var handleSide = element.properties.get('flip_vertical');
373
+ var holeWidth = element.properties.get('width').get('length');
374
+ var holePath = "M".concat(0, " ", -epsilon, " L").concat(holeWidth, " ").concat(-epsilon, " L").concat(holeWidth, " ").concat(epsilon, " L", 0, " ").concat(epsilon, " z");
375
+ var arcPath = "M".concat(0, ",", 0, " A", holeWidth, ",").concat(holeWidth, " 0 0,1 ").concat(holeWidth, ",").concat(holeWidth);
376
+ var holeStyle = element.selected ? STYLE_HOLE_SELECTED : STYLE_HOLE_BASE;
377
+ var arcStyle = element.selected ? STYLE_ARC_SELECTED : STYLE_ARC_BASE;
378
+ var rectStyle = element.selected ? STYLE_STR0_S : STYLE_STR0;
379
+ var length = element.properties.get('width').get('length');
380
+ var scaleX, scaleY, lineX, lineY;
381
+ var rotateAngle;
382
+ var tX, tY;
383
+ var pX1, pX2, pY1, pY2;
384
+ var rX1, rX2, dX, dY;
385
+ var lineWidth = 15;
386
+ flip ? flip_value = 'yes' : flip_value = 'none';
387
+ handleSide ? handleSide_value = 'right' : handleSide_value = 'left';
388
+ if (flip_value === 'yes') {
389
+ if (handleSide_value === 'right') {
390
+ tX = 0;
391
+ tY = -holeWidth;
392
+ rotateAngle = 0;
393
+ pY1 = -holeWidth;
394
+ pX1 = 0;
395
+ pX2 = 0;
396
+ pY2 = 0;
397
+ rX1 = holeWidth - 16;
398
+ rX2 = holeWidth - 15;
399
+ scaleX = 1;
400
+ scaleY = 1;
401
+ lineX = 1;
402
+ lineY = 1;
403
+ dX = 1;
404
+ dY = 1;
405
+ } else {
406
+ tX = holeWidth;
407
+ tY = -holeWidth;
408
+ pX1 = holeWidth;
409
+ pY1 = 0;
410
+ pX2 = holeWidth;
411
+ pY2 = holeWidth;
412
+ rX1 = 0;
413
+ rX2 = 0;
414
+ scaleX = 1;
415
+ scaleY = -1;
416
+ lineX = 1;
417
+ lineY = -1;
418
+ dX = 1;
419
+ dY = 1;
420
+ rotateAngle = 180;
421
+ }
422
+ } else if (flip_value === 'none') {
423
+ if (handleSide_value === 'left') {
424
+ tX = 0;
425
+ tY = 0;
426
+ pX1 = -holeWidth;
427
+ pY1 = 0;
428
+ pX2 = -holeWidth;
429
+ pY2 = holeWidth;
430
+ rX1 = 0;
431
+ rX2 = 0;
432
+ rotateAngle = 90;
433
+ scaleX = -1;
434
+ scaleY = 1;
435
+ lineX = -1;
436
+ lineY = 1;
437
+ dX = 1;
438
+ dY = -1;
439
+ } else {
440
+ tX = 0;
441
+ tY = holeWidth;
442
+ pX1 = 0;
443
+ pY1 = 0;
444
+ pX2 = 0;
445
+ pY2 = holeWidth;
446
+ rX1 = holeWidth - 16;
447
+ rX2 = holeWidth - 15;
448
+ rotateAngle = 0;
449
+ scaleX = 1;
450
+ scaleY = -1;
451
+ lineX = -1;
452
+ lineY = 1;
453
+ dX = 1;
454
+ dY = -1;
455
+ }
456
+ }
457
+ return /*#__PURE__*/React.createElement("g", {
458
+ transform: "translate(".concat(-element.properties.get('width').get('length') / 2, ", 0)")
459
+ }, /*#__PURE__*/React.createElement("path", {
460
+ d: arcPath,
461
+ style: arcStyle,
462
+ transform: "translate(".concat(tX, ",").concat(tY, ") scale(").concat(scaleX, ",").concat(scaleY, ") rotate(").concat(rotateAngle, ")")
463
+ }), /*#__PURE__*/React.createElement("line", {
464
+ x1: pX1,
465
+ y1: pY1 - epsilon,
466
+ x2: pX2,
467
+ y2: pY2 - epsilon,
468
+ style: holeStyle,
469
+ transform: "scale(".concat(lineX, ",").concat(lineY, ")")
470
+ }), /*#__PURE__*/React.createElement("rect", {
471
+ style: rectStyle,
472
+ x: "0",
473
+ y: -lineWidth / 2,
474
+ width: holeWidth,
475
+ height: lineWidth
476
+ }));
477
+ },
478
+ render3D: function render3D(element, layer, scene) {
479
+ var flip = element.properties.get('flip_horizontal');
480
+ var handleSide = element.properties.get('flip_vertical');
481
+ var width = element.properties.get('width').get('length');
482
+ var height = element.properties.get('height').get('length');
483
+ var thickness = element.properties.get('thickness').get('length');
484
+ var newAltitude = element.properties.get('altitude').get('length');
485
+ var panicDoor = new Three.Object3D();
486
+ panicDoor.add(makePanicDoor(handleSide).clone());
487
+ if (element.selected) {
488
+ var boundingBox = new Three.BoxHelper(panicDoor, 0x99c3fb);
489
+ boundingBox.material.linewidth = 5;
490
+ boundingBox.renderOrder = 1000;
491
+ boundingBox.material.depthTest = false;
492
+ panicDoor.add(boundingBox);
493
+ }
494
+ var valuePosition = new Three.Box3().setFromObject(panicDoor);
495
+ var deltaX = Math.abs(valuePosition.max.x - valuePosition.min.x);
496
+ var deltaY = Math.abs(valuePosition.max.y - valuePosition.min.y);
497
+ var deltaZ = Math.abs(valuePosition.max.z - valuePosition.min.z);
498
+ if (flip) panicDoor.rotation.y += Math.PI;
499
+ panicDoor.position.y += newAltitude;
500
+ panicDoor.scale.set(width / deltaX, height / deltaY, thickness / deltaZ);
501
+ return Promise.resolve(panicDoor);
502
+ }
503
+ };