kitchen-simulator 7.0.10-react-18 → 10.0.0
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.
- package/es/AppContext.js +1 -4
- package/es/LiteKitchenConfigurator.js +69 -26
- package/es/LiteRenderer.js +17 -67
- package/es/actions/export.js +25 -12
- package/es/actions/items-actions.js +18 -2
- package/es/analytics/ga4.js +188 -0
- package/es/analytics/posthog.js +60 -0
- package/es/assets/Window.hdr +2100 -0
- package/es/assets/img/default/maple.jpg +0 -0
- package/es/assets/img/default/steel.jpg +0 -0
- package/es/assets/img/loading/loading.gif +0 -0
- package/es/catalog/catalog.js +0 -2
- package/es/catalog/factories/area-factory-3d.js +1 -5
- package/es/catalog/factories/wall-factory.js +1 -1
- package/es/catalog/holes/door-double/door_double.png +0 -0
- package/es/catalog/holes/door-panic/panicDoor.png +0 -0
- package/es/catalog/holes/door-panic-double/panicDoorDouble.png +0 -0
- package/es/catalog/holes/gate/gate.jpg +0 -0
- package/es/catalog/holes/window-clear/texture.png +0 -0
- package/es/catalog/holes/window-cross/texture.png +0 -0
- package/es/catalog/holes/window-double-hung/texture.png +0 -0
- package/es/catalog/holes/window-vertical/texture.png +0 -0
- package/es/catalog/utils/exporter.js +4 -0
- package/es/catalog/utils/item-loader.js +3 -22
- package/es/class/area.js +0 -1
- package/es/class/export.js +1 -3
- package/es/class/item.js +180 -86
- package/es/class/project.js +17 -21
- package/es/components/content.js +3 -1
- package/es/components/export.js +3 -5
- package/es/components/style/export.js +2 -28
- package/es/components/style/form-number-input.js +34 -43
- package/es/components/viewer2d/group.js +12 -7
- package/es/components/viewer2d/item.js +160 -168
- package/es/components/viewer2d/line.js +18 -51
- package/es/components/viewer2d/rulerX.js +3 -0
- package/es/components/viewer2d/rulerY.js +3 -0
- package/es/components/viewer2d/scene.js +67 -47
- package/es/components/viewer2d/state.js +1 -1
- package/es/components/viewer2d/utils.js +1 -5
- package/es/components/viewer2d/viewer2d.js +564 -506
- package/es/components/viewer3d/front3D.js +1 -2
- package/es/components/viewer3d/pointer-lock-navigation.js +0 -90
- package/es/components/viewer3d/scene-creator.js +80 -47
- package/es/components/viewer3d/three-memory-cleaner.js +0 -14
- package/es/components/viewer3d/viewer3d-first-person.js +132 -134
- package/es/components/viewer3d/viewer3d.js +37 -22
- package/es/constants/catalog/skinPanel.js +9 -0
- package/es/constants.js +18 -7
- package/es/{WorkSpaceOriginal.js → devLiteRenderer.js} +228 -174
- package/es/events/external/handleExternalEvent.js +140 -0
- package/es/{utils/isolate-event-handler.js → events/external/handleExternalEvent.util.js} +87 -593
- package/es/events/external/handlers.addItem.js +47 -0
- package/es/events/external/handlers.changeDoorStyle.js +139 -0
- package/es/events/external/handlers.elementOps.js +8 -0
- package/es/events/external/handlers.finishing.js +26 -0
- package/es/events/external/handlers.hole.js +4 -0
- package/es/events/external/handlers.loadProject.js +128 -0
- package/es/events/external/handlers.molding.js +24 -0
- package/es/events/external/handlers.projectLifecycle.js +11 -0
- package/es/events/external/handlers.projectSettings.js +32 -0
- package/es/events/external/handlers.replaceCabinet.js +41 -0
- package/es/events/external/handlers.roomShape.js +8 -0
- package/es/events/external/handlers.syncScene.js +21 -0
- package/es/events/external/handlers.updateSelectedElements.js +11 -0
- package/es/events/external/handlers.viewMode.js +11 -0
- package/es/events/external/handlers.viewerNavigation.js +108 -0
- package/es/events/external/handlers.wall.js +7 -0
- package/es/index.js +37 -87
- package/es/mappings/external-events/mapExternalEventPayload.js +28 -0
- package/es/mappings/external-events/mappers/addItemMapper.js +95 -0
- package/es/mappings/external-events/mappers/ccdfMapper.js +86 -0
- package/es/mappings/external-events/mappers/ccdfToCDSMapper.js +31 -0
- package/es/mappings/external-events/mappers/changeDoorStyleMapper.js +37 -0
- package/es/mappings/external-events/mappers/loadProjectMapper.js +62 -0
- package/es/mappings/holesToCatalog.js +139 -0
- package/es/models.js +16 -1
- package/es/plugins/keyboard.js +1 -1
- package/es/reducers/export.js +2 -4
- package/es/reducers/items-reducer.js +4 -2
- package/es/reducers/project-reducer.js +1 -1
- package/es/reducers/reducer.js +2 -3
- package/es/reducers/viewer2d-reducer.js +0 -2
- package/es/shared/objects/immutable.js +3 -0
- package/es/utils/convert-units-lite.js +9 -0
- package/es/utils/geometry.js +598 -78
- package/es/utils/helper.js +45 -30
- package/es/utils/history.js +13 -1
- package/es/utils/molding.js +12 -241
- package/es/utils/name-generator.js +0 -3
- package/es/utils/skinPanelEngine.js +526 -0
- package/lib/@history.js +11 -0
- package/lib/AppContext.js +11 -0
- package/lib/LiteKitchenConfigurator.js +527 -0
- package/lib/LiteRenderer.js +323 -0
- package/lib/actions/area-actions.js +21 -0
- package/lib/actions/export.js +36 -0
- package/lib/actions/groups-actions.js +107 -0
- package/lib/actions/holes-actions.js +140 -0
- package/lib/actions/items-actions.js +383 -0
- package/lib/actions/lines-actions.js +98 -0
- package/lib/actions/project-actions.js +351 -0
- package/lib/actions/scene-actions.js +43 -0
- package/lib/actions/vertices-actions.js +35 -0
- package/lib/actions/viewer2d-actions.js +73 -0
- package/lib/actions/viewer3d-actions.js +32 -0
- package/lib/analytics/ga4.js +194 -0
- package/lib/analytics/posthog.js +68 -0
- package/lib/assets/Window.hdr +2100 -0
- package/lib/assets/brown_photostudio_02_1k.hdr +0 -0
- package/lib/assets/fonts/Rene Bieder Milliard Black Italic.woff +0 -0
- package/lib/assets/fonts/Rene Bieder Milliard Black.woff +0 -0
- package/lib/assets/fonts/Rene Bieder Milliard Bold Italic.woff +0 -0
- package/lib/assets/fonts/Rene Bieder Milliard Bold.woff +0 -0
- package/lib/assets/fonts/Rene Bieder Milliard Book Italic.woff +0 -0
- package/lib/assets/fonts/Rene Bieder Milliard Book.woff +0 -0
- package/lib/assets/fonts/Rene Bieder Milliard ExtraBold Italic.woff +0 -0
- package/lib/assets/fonts/Rene Bieder Milliard ExtraBold.woff +0 -0
- package/lib/assets/fonts/Rene Bieder Milliard ExtraLight Italic.woff +0 -0
- package/lib/assets/fonts/Rene Bieder Milliard ExtraLight.woff +0 -0
- package/lib/assets/fonts/Rene Bieder Milliard Hairline Italic.woff +0 -0
- package/lib/assets/fonts/Rene Bieder Milliard Hairline.woff +0 -0
- package/lib/assets/fonts/Rene Bieder Milliard Heavy Italic.woff +0 -0
- package/lib/assets/fonts/Rene Bieder Milliard Heavy.woff +0 -0
- package/lib/assets/fonts/Rene Bieder Milliard Light Italic.woff +0 -0
- package/lib/assets/fonts/Rene Bieder Milliard Light.woff +0 -0
- package/lib/assets/fonts/Rene Bieder Milliard Medium Italic.woff +0 -0
- package/lib/assets/fonts/Rene Bieder Milliard Medium.woff +0 -0
- package/lib/assets/fonts/Rene Bieder Milliard SemiBold Italic.woff +0 -0
- package/lib/assets/fonts/Rene Bieder Milliard SemiBold.woff +0 -0
- package/lib/assets/fonts/Rene Bieder Milliard Thin Italic.woff +0 -0
- package/lib/assets/fonts/Rene Bieder Milliard Thin.woff +0 -0
- package/lib/assets/fonts/style.css +177 -0
- package/lib/assets/gltf/door_closet.gltf +1 -0
- package/lib/assets/gltf/door_exterior.gltf +1 -0
- package/lib/assets/gltf/door_interior.gltf +1 -0
- package/lib/assets/gltf/door_sliding.gltf +1 -0
- package/lib/assets/gltf/doorway_framed.bin +0 -0
- package/lib/assets/gltf/doorway_framed.fbx +0 -0
- package/lib/assets/gltf/doorway_framed.gltf +1 -0
- package/lib/assets/gltf/window_clear.bin +0 -0
- package/lib/assets/gltf/window_clear.fbx +0 -0
- package/lib/assets/gltf/window_clear.gltf +1 -0
- package/lib/assets/gltf/window_cross.bin +0 -0
- package/lib/assets/gltf/window_cross.fbx +0 -0
- package/lib/assets/gltf/window_cross.gltf +1 -0
- package/lib/assets/gltf/window_double_hung.bin +0 -0
- package/lib/assets/gltf/window_double_hung.fbx +0 -0
- package/lib/assets/gltf/window_double_hung.gltf +1 -0
- package/lib/assets/gltf/window_vertical.bin +0 -0
- package/lib/assets/gltf/window_vertical.fbx +0 -0
- package/lib/assets/gltf/window_vertical.gltf +1 -0
- package/lib/assets/img/TKC_thumbnail.png +0 -0
- package/lib/assets/img/Toggle.png +0 -0
- package/lib/assets/img/default/maple.jpg +0 -0
- package/lib/assets/img/default/steel.jpg +0 -0
- package/lib/assets/img/loading/loading.gif +0 -0
- package/lib/assets/img/loading/loading_1.svg +11 -0
- package/lib/assets/img/loading_large.gif +0 -0
- package/lib/assets/img/png/door/closet.png +0 -0
- package/lib/assets/img/png/door/doorwaysframed.png +0 -0
- package/lib/assets/img/png/door/doorwaysframeles.png +0 -0
- package/lib/assets/img/png/door/doorwaysframeless.png +0 -0
- package/lib/assets/img/png/door/exterior.png +0 -0
- package/lib/assets/img/png/door/interior.png +0 -0
- package/lib/assets/img/png/door/sliding.png +0 -0
- package/lib/assets/img/png/helper/outcome.png +0 -0
- package/lib/assets/img/project_img.png +0 -0
- package/lib/assets/img/rta/rta_logo_box_blue.jpg +0 -0
- package/lib/assets/img/rta/rta_logo_box_blue_ico.jpg +0 -0
- package/lib/assets/img/rta/rta_logo_box_blue_ico.svg +55 -0
- package/lib/assets/img/rta/rta_logo_box_darkGray.jpg +0 -0
- package/lib/assets/img/rta/rta_logo_box_lightblue.png +0 -0
- package/lib/assets/img/rta/rta_logo_box_lightmaroon.png +0 -0
- package/lib/assets/img/rta/rta_logo_box_maroon.png +0 -0
- package/lib/assets/img/rta/rta_logo_box_white.png +0 -0
- package/lib/assets/img/rta_menu.png +0 -0
- package/lib/assets/img/step2.jpg +0 -0
- package/lib/assets/img/step3.jpg +0 -0
- package/lib/assets/img/step4.jpg +0 -0
- package/lib/assets/img/step5.jpg +0 -0
- package/lib/assets/img/step6.jpg +0 -0
- package/lib/assets/img/step7.jpg +0 -0
- package/lib/assets/img/step8.jpg +0 -0
- package/lib/assets/img/svg/2d_delete_object.svg +33 -0
- package/lib/assets/img/svg/2d_delete_object1.svg +33 -0
- package/lib/assets/img/svg/2d_lock_object.svg +33 -0
- package/lib/assets/img/svg/3d_item_move.svg +106 -0
- package/lib/assets/img/svg/3d_item_rotation.svg +76 -0
- package/lib/assets/img/svg/3d_item_warning_edit.svg +77 -0
- package/lib/assets/img/svg/3d_item_warning_info.svg +81 -0
- package/lib/assets/img/svg/accessories.svg +4 -0
- package/lib/assets/img/svg/angle_icon.svg +39 -0
- package/lib/assets/img/svg/blank_div.svg +14 -0
- package/lib/assets/img/svg/bottombar/2d3d_button.svg +3 -0
- package/lib/assets/img/svg/bottombar/2d3d_button_active.svg +3 -0
- package/lib/assets/img/svg/bottombar/2d3d_toggle.svg +4 -0
- package/lib/assets/img/svg/bottombar/2d3d_toggle_active.svg +4 -0
- package/lib/assets/img/svg/bottombar/arrow-down.svg +3 -0
- package/lib/assets/img/svg/bottombar/arrow-left.svg +3 -0
- package/lib/assets/img/svg/bottombar/arrow-minus.svg +3 -0
- package/lib/assets/img/svg/bottombar/arrow-plus.svg +11 -0
- package/lib/assets/img/svg/bottombar/arrow-right.svg +3 -0
- package/lib/assets/img/svg/bottombar/arrow-up.svg +3 -0
- package/lib/assets/img/svg/bottombar/collapse.svg +3 -0
- package/lib/assets/img/svg/bottombar/elevation-back.svg +6 -0
- package/lib/assets/img/svg/bottombar/elevation-front.svg +6 -0
- package/lib/assets/img/svg/bottombar/elevation-left.svg +6 -0
- package/lib/assets/img/svg/bottombar/elevation-right.svg +7 -0
- package/lib/assets/img/svg/bottombar/elevation.svg +13 -0
- package/lib/assets/img/svg/bottombar/expand.svg +3 -0
- package/lib/assets/img/svg/bottombar/help.svg +72 -0
- package/lib/assets/img/svg/bottombar/incm_toggle.svg +39 -0
- package/lib/assets/img/svg/bottombar/pan_1.svg +57 -0
- package/lib/assets/img/svg/bottombar/pan_2.svg +27 -0
- package/lib/assets/img/svg/bottombar/pan_3.svg +27 -0
- package/lib/assets/img/svg/bottombar/pan_4.svg +27 -0
- package/lib/assets/img/svg/bottombar/pan_5.svg +27 -0
- package/lib/assets/img/svg/bottombar/settings.svg +23 -0
- package/lib/assets/img/svg/bottombar/spin-down.svg +76 -0
- package/lib/assets/img/svg/bottombar/spin-left.svg +75 -0
- package/lib/assets/img/svg/bottombar/spin-right.svg +75 -0
- package/lib/assets/img/svg/bottombar/spin-up.svg +76 -0
- package/lib/assets/img/svg/bottombar/spin_1.svg +48 -0
- package/lib/assets/img/svg/bottombar/spin_2.svg +31 -0
- package/lib/assets/img/svg/bottombar/spin_3.svg +31 -0
- package/lib/assets/img/svg/bottombar/spin_4.svg +31 -0
- package/lib/assets/img/svg/bottombar/spin_5.svg +31 -0
- package/lib/assets/img/svg/bottombar/zoomin.svg +29 -0
- package/lib/assets/img/svg/bottombar/zoomout.svg +26 -0
- package/lib/assets/img/svg/check.svg +10 -0
- package/lib/assets/img/svg/close.svg +11 -0
- package/lib/assets/img/svg/color/Black.svg +3 -0
- package/lib/assets/img/svg/color/Blue.svg +3 -0
- package/lib/assets/img/svg/color/Cream.svg +3 -0
- package/lib/assets/img/svg/color/Gray.svg +3 -0
- package/lib/assets/img/svg/color/Green.svg +3 -0
- package/lib/assets/img/svg/color/White.svg +3 -0
- package/lib/assets/img/svg/color/White.svg.bak +3 -0
- package/lib/assets/img/svg/color/stone2.jpg +0 -0
- package/lib/assets/img/svg/color/wood2.jpg +0 -0
- package/lib/assets/img/svg/copy.svg +11 -0
- package/lib/assets/img/svg/delete.svg +3 -0
- package/lib/assets/img/svg/detail.svg +77 -0
- package/lib/assets/img/svg/disclaimer/background.svg +758 -0
- package/lib/assets/img/svg/disclaimer/logo-dots.svg +11 -0
- package/lib/assets/img/svg/door/Closet.svg +11 -0
- package/lib/assets/img/svg/door/Exterior.svg +5 -0
- package/lib/assets/img/svg/door/Framed_dorway.svg +5 -0
- package/lib/assets/img/svg/door/Frameless_dorway.svg +5 -0
- package/lib/assets/img/svg/door/Interior.svg +7 -0
- package/lib/assets/img/svg/door/Sliding.svg +5 -0
- package/lib/assets/img/svg/doors_closet.svg +47 -0
- package/lib/assets/img/svg/doors_exterior.svg +25 -0
- package/lib/assets/img/svg/doors_interior.svg +29 -0
- package/lib/assets/img/svg/doors_patio.svg +26 -0
- package/lib/assets/img/svg/duplicate.svg +11 -0
- package/lib/assets/img/svg/duplicate_object_left.svg +32 -0
- package/lib/assets/img/svg/duplicate_object_right.svg +32 -0
- package/lib/assets/img/svg/filtersActive.svg +19 -0
- package/lib/assets/img/svg/firstsetting/L.svg +3 -0
- package/lib/assets/img/svg/firstsetting/L2.svg +3 -0
- package/lib/assets/img/svg/firstsetting/Open.svg +3 -0
- package/lib/assets/img/svg/firstsetting/Square.svg +3 -0
- package/lib/assets/img/svg/firstsetting/bar-active.svg +9 -0
- package/lib/assets/img/svg/firstsetting/bar-normal.svg +3 -0
- package/lib/assets/img/svg/firstsetting/bullet-current.svg +3 -0
- package/lib/assets/img/svg/firstsetting/bullet-done.svg +3 -0
- package/lib/assets/img/svg/firstsetting/bullet-not-done.svg +3 -0
- package/lib/assets/img/svg/firstsetting/check-active.svg +3 -0
- package/lib/assets/img/svg/firstsetting/check-normal.svg +3 -0
- package/lib/assets/img/svg/firstsetting/pencil.svg +11 -0
- package/lib/assets/img/svg/green_checkmark.svg +27 -0
- package/lib/assets/img/svg/headerbar/assist.svg +3 -0
- package/lib/assets/img/svg/headerbar/cart.svg +3 -0
- package/lib/assets/img/svg/headerbar/check.svg +10 -0
- package/lib/assets/img/svg/headerbar/consult_designer.svg +45 -0
- package/lib/assets/img/svg/headerbar/edit_name.svg +26 -0
- package/lib/assets/img/svg/headerbar/file-dollar.svg +13 -0
- package/lib/assets/img/svg/headerbar/hamburger_menu.svg +32 -0
- package/lib/assets/img/svg/headerbar/plus.svg +11 -0
- package/lib/assets/img/svg/headerbar/review_quote.svg +44 -0
- package/lib/assets/img/svg/headerbar/ruler-measure.svg +11 -0
- package/lib/assets/img/svg/headerbar/save.svg +3 -0
- package/lib/assets/img/svg/headerbar/setting.svg +75 -0
- package/lib/assets/img/svg/help/check.svg +10 -0
- package/lib/assets/img/svg/help/search.svg +76 -0
- package/lib/assets/img/svg/intro/1-start-with-floorplan-whole.svg +27 -0
- package/lib/assets/img/svg/intro/1-start-with-floorplan.svg +26 -0
- package/lib/assets/img/svg/intro/2-start-from-scratch-whole.svg +28 -0
- package/lib/assets/img/svg/intro/2-start-from-scratch.svg +27 -0
- package/lib/assets/img/svg/intro/3-retrieve-project-whole.svg +19 -0
- package/lib/assets/img/svg/intro/3-retrieve-project.svg +18 -0
- package/lib/assets/img/svg/invert.svg +127 -0
- package/lib/assets/img/svg/lefttoolbar/appliance-active.svg +13 -0
- package/lib/assets/img/svg/lefttoolbar/appliance.svg +13 -0
- package/lib/assets/img/svg/lefttoolbar/cabinet-active.svg +10 -0
- package/lib/assets/img/svg/lefttoolbar/cabinet-category.svg +3 -0
- package/lib/assets/img/svg/lefttoolbar/cabinet-one.svg +3 -0
- package/lib/assets/img/svg/lefttoolbar/cabinet.svg +10 -0
- package/lib/assets/img/svg/lefttoolbar/disigner_assistance.svg +89 -0
- package/lib/assets/img/svg/lefttoolbar/door-style-active.svg +20 -0
- package/lib/assets/img/svg/lefttoolbar/door-style.svg +20 -0
- package/lib/assets/img/svg/lefttoolbar/door.svg +12 -0
- package/lib/assets/img/svg/lefttoolbar/error_icon.svg +81 -0
- package/lib/assets/img/svg/lefttoolbar/finishing-active.svg +13 -0
- package/lib/assets/img/svg/lefttoolbar/finishing.svg +13 -0
- package/lib/assets/img/svg/lefttoolbar/reviewforquote-active.svg +86 -0
- package/lib/assets/img/svg/lefttoolbar/reviewforquote.svg +12 -0
- package/lib/assets/img/svg/lefttoolbar/room-shape-L.svg +3 -0
- package/lib/assets/img/svg/lefttoolbar/room-shape-active.svg +18 -0
- package/lib/assets/img/svg/lefttoolbar/room-shape-custom.svg +12 -0
- package/lib/assets/img/svg/lefttoolbar/room-shape-irregular.svg +3 -0
- package/lib/assets/img/svg/lefttoolbar/room-shape-open.svg +3 -0
- package/lib/assets/img/svg/lefttoolbar/room-shape-square.svg +3 -0
- package/lib/assets/img/svg/lefttoolbar/room-shape.svg +18 -0
- package/lib/assets/img/svg/lefttoolbar/search.svg +76 -0
- package/lib/assets/img/svg/lefttoolbar/view_more.svg +86 -0
- package/lib/assets/img/svg/lefttoolbar/warning_icon.svg +81 -0
- package/lib/assets/img/svg/lefttoolbar/window.svg +12 -0
- package/lib/assets/img/svg/logo.svg +11 -0
- package/lib/assets/img/svg/logo_with_text.svg +25 -0
- package/lib/assets/img/svg/menubar/login.svg +84 -0
- package/lib/assets/img/svg/menubar/my_projects.svg +85 -0
- package/lib/assets/img/svg/menubar/new_project.svg +110 -0
- package/lib/assets/img/svg/menubar/save_project.svg +84 -0
- package/lib/assets/img/svg/options.svg +3 -0
- package/lib/assets/img/svg/positioning.svg +3 -0
- package/lib/assets/img/svg/rotate.png +0 -0
- package/lib/assets/img/svg/rotate.svg +17 -0
- package/lib/assets/img/svg/rotate_object_clockwise.svg +26 -0
- package/lib/assets/img/svg/rotate_object_counterclockwise.svg +26 -0
- package/lib/assets/img/svg/toggleFilters.svg +19 -0
- package/lib/assets/img/svg/toolbar/add_appliances_active.svg +64 -0
- package/lib/assets/img/svg/toolbar/add_appliances_inactive.svg +52 -0
- package/lib/assets/img/svg/toolbar/add_button.svg +36 -0
- package/lib/assets/img/svg/toolbar/add_cabinets_active.svg +59 -0
- package/lib/assets/img/svg/toolbar/add_cabinets_inactive.svg +49 -0
- package/lib/assets/img/svg/toolbar/add_items_doors.svg +25 -0
- package/lib/assets/img/svg/toolbar/add_items_doorways.svg +24 -0
- package/lib/assets/img/svg/toolbar/add_items_refrigerator.svg +32 -0
- package/lib/assets/img/svg/toolbar/add_items_windows.svg +28 -0
- package/lib/assets/img/svg/toolbar/apply_button.svg +38 -0
- package/lib/assets/img/svg/toolbar/arrow-plus.svg +11 -0
- package/lib/assets/img/svg/toolbar/backsplash.svg +8 -0
- package/lib/assets/img/svg/toolbar/cancel_button.svg +37 -0
- package/lib/assets/img/svg/toolbar/consult_a_designer_button.svg +47 -0
- package/lib/assets/img/svg/toolbar/countertop.svg +7 -0
- package/lib/assets/img/svg/toolbar/dcm.png +0 -0
- package/lib/assets/img/svg/toolbar/dcm_off.svg +12 -0
- package/lib/assets/img/svg/toolbar/dcm_on.svg +474 -0
- package/lib/assets/img/svg/toolbar/delete_button.svg +37 -0
- package/lib/assets/img/svg/toolbar/download.svg +77 -0
- package/lib/assets/img/svg/toolbar/draw_custom_floor.svg +31 -0
- package/lib/assets/img/svg/toolbar/edit_button.svg +75 -0
- package/lib/assets/img/svg/toolbar/email_quote_button.svg +44 -0
- package/lib/assets/img/svg/toolbar/fbm.png +0 -0
- package/lib/assets/img/svg/toolbar/finishing_touches_active.svg +54 -0
- package/lib/assets/img/svg/toolbar/finishing_touches_inactive.svg +42 -0
- package/lib/assets/img/svg/toolbar/floorstyle.svg +9 -0
- package/lib/assets/img/svg/toolbar/fmb.png +0 -0
- package/lib/assets/img/svg/toolbar/fmb_off.svg +12 -0
- package/lib/assets/img/svg/toolbar/fmb_on.svg +489 -0
- package/lib/assets/img/svg/toolbar/furnishings_icon.svg +6 -0
- package/lib/assets/img/svg/toolbar/get_started_button.svg +41 -0
- package/lib/assets/img/svg/toolbar/handles.svg +5 -0
- package/lib/assets/img/svg/toolbar/lighting.svg +7 -0
- package/lib/assets/img/svg/toolbar/lrm.png +0 -0
- package/lib/assets/img/svg/toolbar/lrm_off.svg +12 -0
- package/lib/assets/img/svg/toolbar/lrm_on.svg +470 -0
- package/lib/assets/img/svg/toolbar/make_floorplan_active.svg +66 -0
- package/lib/assets/img/svg/toolbar/make_floorplan_inactive.svg +52 -0
- package/lib/assets/img/svg/toolbar/predefined_room_l_shaped.svg +20 -0
- package/lib/assets/img/svg/toolbar/predefined_room_layout.svg +20 -0
- package/lib/assets/img/svg/toolbar/predefined_room_long_narrow.svg +20 -0
- package/lib/assets/img/svg/toolbar/predefined_room_open_l_shape.svg +20 -0
- package/lib/assets/img/svg/toolbar/predefined_room_open_pentagon.svg +20 -0
- package/lib/assets/img/svg/toolbar/predefined_room_open_rectangle.svg +20 -0
- package/lib/assets/img/svg/toolbar/predefined_room_open_rectangle_2.svg +20 -0
- package/lib/assets/img/svg/toolbar/predefined_room_pentagon.svg +20 -0
- package/lib/assets/img/svg/toolbar/predefined_room_rectangle.svg +20 -0
- package/lib/assets/img/svg/toolbar/predefined_room_rectangle_with_alcove.svg +20 -0
- package/lib/assets/img/svg/toolbar/redo_button.svg +75 -0
- package/lib/assets/img/svg/toolbar/redo_button1.svg +75 -0
- package/lib/assets/img/svg/toolbar/review_quote_active.svg +14 -0
- package/lib/assets/img/svg/toolbar/review_quote_inactive.svg +44 -0
- package/lib/assets/img/svg/toolbar/save_project_button.svg +44 -0
- package/lib/assets/img/svg/toolbar/select_doorstyle_active.svg +67 -0
- package/lib/assets/img/svg/toolbar/select_doorstyle_inactive.svg +57 -0
- package/lib/assets/img/svg/toolbar/shopping-cart.svg +13 -0
- package/lib/assets/img/svg/toolbar/style_change_button.svg +47 -0
- package/lib/assets/img/svg/toolbar/take_picture.svg +75 -0
- package/lib/assets/img/svg/toolbar/undo_button.svg +76 -0
- package/lib/assets/img/svg/toolbar/undo_button1.svg +76 -0
- package/lib/assets/img/svg/toolbar/use_button.svg +37 -0
- package/lib/assets/img/svg/toolbar/wall_color_icon.svg +6 -0
- package/lib/assets/img/svg/topbar/edit_active.svg +10 -0
- package/lib/assets/img/svg/topbar/edit_inactive.svg +10 -0
- package/lib/assets/img/svg/topbar/redo_active.svg +42 -0
- package/lib/assets/img/svg/topbar/redo_inactive.svg +23 -0
- package/lib/assets/img/svg/topbar/select_all_active.svg +50 -0
- package/lib/assets/img/svg/topbar/select_all_inactive.svg +32 -0
- package/lib/assets/img/svg/topbar/take_picture_active.svg +51 -0
- package/lib/assets/img/svg/topbar/take_picture_inactive.svg +26 -0
- package/lib/assets/img/svg/topbar/undo_active.svg +42 -0
- package/lib/assets/img/svg/topbar/undo_inactive.svg +23 -0
- package/lib/assets/img/svg/warning_info_2d.svg +81 -0
- package/lib/assets/img/svg/window/Clear.svg +3 -0
- package/lib/assets/img/svg/window/Cross.svg +5 -0
- package/lib/assets/img/svg/window/Double_hung.svg +4 -0
- package/lib/assets/img/svg/window/Vertical.svg +4 -0
- package/lib/assets/img/svg/windows_clear.svg +23 -0
- package/lib/assets/img/svg/windows_cross.svg +28 -0
- package/lib/assets/img/svg/windows_double_hung.svg +24 -0
- package/lib/assets/img/svg/windows_vertical.svg +24 -0
- package/lib/assets/img/svg/wizardstep/Custom.svg +3 -0
- package/lib/assets/img/svg/wizardstep/Dashed_line.svg +3 -0
- package/lib/assets/img/svg/wizardstep/L.svg +3 -0
- package/lib/assets/img/svg/wizardstep/L2.svg +3 -0
- package/lib/assets/img/svg/wizardstep/Open.svg +3 -0
- package/lib/assets/img/svg/wizardstep/Square.svg +3 -0
- package/lib/assets/img/svg/wizardstep/bar-active.svg +9 -0
- package/lib/assets/img/svg/wizardstep/bar-normal.svg +3 -0
- package/lib/assets/img/svg/wizardstep/bullet-current.svg +3 -0
- package/lib/assets/img/svg/wizardstep/bullet-done.svg +3 -0
- package/lib/assets/img/svg/wizardstep/bullet-not-done.svg +3 -0
- package/lib/assets/img/svg/wizardstep/check-active.svg +3 -0
- package/lib/assets/img/svg/wizardstep/check-normal.svg +3 -0
- package/lib/assets/img/svg/wizardstep/detail_view.svg +87 -0
- package/lib/assets/img/svg/wizardstep/pencil.svg +11 -0
- package/lib/assets/img/svg/wizardstep/tile_view.svg +95 -0
- package/lib/assets/img/texture/glass.jpg +0 -0
- package/lib/assets/img/texture/steel.jpg +0 -0
- package/lib/assets/img/texture/white1px.jpg +0 -0
- package/lib/assets/img/texture/wood.jpg +0 -0
- package/lib/assets/model/DCM.bin +0 -0
- package/lib/assets/model/DCM.fbx +0 -0
- package/lib/assets/model/DCM.gltf +1 -0
- package/lib/assets/model/FBM.bin +0 -0
- package/lib/assets/model/FBM.fbx +0 -0
- package/lib/assets/model/FBM.gltf +1 -0
- package/lib/assets/model/LRM.bin +0 -0
- package/lib/assets/model/LRM.fbx +0 -0
- package/lib/assets/model/LRM.gltf +1 -0
- package/lib/assets/rtastore_logo.png +0 -0
- package/lib/catalog/areas/area/planner-element.js +53 -0
- package/lib/catalog/areas/area/textures/ceramic-tile.jpg +0 -0
- package/lib/catalog/areas/area/textures/grass.jpg +0 -0
- package/lib/catalog/areas/area/textures/parquet.jpg +0 -0
- package/lib/catalog/areas/area/textures/strand-porcelain.jpg +0 -0
- package/lib/catalog/areas/area/textures/tile1.jpg +0 -0
- package/lib/catalog/back.png +0 -0
- package/lib/catalog/catalog.js +270 -0
- package/lib/catalog/doors.png +0 -0
- package/lib/catalog/doorways.png +0 -0
- package/lib/catalog/envMap/nx.hdr +0 -0
- package/lib/catalog/envMap/ny.hdr +0 -0
- package/lib/catalog/envMap/nz.hdr +0 -0
- package/lib/catalog/envMap/px.hdr +0 -0
- package/lib/catalog/envMap/py.hdr +0 -0
- package/lib/catalog/envMap/pz.hdr +0 -0
- package/lib/catalog/export.js +1 -0
- package/lib/catalog/factories/area-factory-3d.js +187 -0
- package/lib/catalog/factories/area-factory.js +88 -0
- package/lib/catalog/factories/export.js +25 -0
- package/lib/catalog/factories/wall-factory-3d.js +212 -0
- package/lib/catalog/factories/wall-factory.js +279 -0
- package/lib/catalog/holes/door-closet/planner-element.js +232 -0
- package/lib/catalog/holes/door-double/door_double.png +0 -0
- package/lib/catalog/holes/door-double/planner-element.js +325 -0
- package/lib/catalog/holes/door-exterior/planner-element.js +225 -0
- package/lib/catalog/holes/door-interior/planner-element.js +237 -0
- package/lib/catalog/holes/door-panic/panicDoor.png +0 -0
- package/lib/catalog/holes/door-panic/planner-element.js +513 -0
- package/lib/catalog/holes/door-panic-double/panicDoorDouble.png +0 -0
- package/lib/catalog/holes/door-panic-double/planner-element.js +473 -0
- package/lib/catalog/holes/door-sliding/planner-element.js +235 -0
- package/lib/catalog/holes/doorway-framed/planner-element.js +155 -0
- package/lib/catalog/holes/doorway-frameless/planner-element.js +114 -0
- package/lib/catalog/holes/export.js +97 -0
- package/lib/catalog/holes/gate/gate.jpg +0 -0
- package/lib/catalog/holes/window-clear/planner-element.js +176 -0
- package/lib/catalog/holes/window-clear/texture.png +0 -0
- package/lib/catalog/holes/window-cross/planner-element.js +175 -0
- package/lib/catalog/holes/window-cross/texture.png +0 -0
- package/lib/catalog/holes/window-double-hung/planner-element.js +313 -0
- package/lib/catalog/holes/window-double-hung/texture.png +0 -0
- package/lib/catalog/holes/window-vertical/planner-element.js +286 -0
- package/lib/catalog/holes/window-vertical/texture.png +0 -0
- package/lib/catalog/lines/wall/planner-element.js +87 -0
- package/lib/catalog/lines/wall/textures/bricks-normal.jpg +0 -0
- package/lib/catalog/lines/wall/textures/bricks.jpg +0 -0
- package/lib/catalog/lines/wall/textures/bricks2.jpg +0 -0
- package/lib/catalog/lines/wall/textures/morden-normal.jpg +0 -0
- package/lib/catalog/lines/wall/textures/morden.jpg +0 -0
- package/lib/catalog/lines/wall/textures/painted.jpg +0 -0
- package/lib/catalog/lines/wall/textures/plaster-normal.jpg +0 -0
- package/lib/catalog/lines/wall/textures/plaster.jpg +0 -0
- package/lib/catalog/lines/wall/wall.png +0 -0
- package/lib/catalog/molding/molding-dcm/planner-element.js +33 -0
- package/lib/catalog/molding/molding-dcm/texture.png +0 -0
- package/lib/catalog/molding/molding-fbm/planner-element.js +33 -0
- package/lib/catalog/molding/molding-fbm/texture.png +0 -0
- package/lib/catalog/molding/molding-lrm/planner-element.js +33 -0
- package/lib/catalog/molding/molding-lrm/texture.png +0 -0
- package/lib/catalog/utils/exporter.js +173 -0
- package/lib/catalog/utils/geom-utils.js +205 -0
- package/lib/catalog/utils/item-loader.js +1597 -0
- package/lib/catalog/utils/load-obj.js +99 -0
- package/lib/catalog/utils/mtl-loader.js +366 -0
- package/lib/catalog/utils/obj-loader.js +486 -0
- package/lib/catalog/windows.png +0 -0
- package/lib/class/area.js +147 -0
- package/lib/class/export.js +88 -0
- package/lib/class/group.js +438 -0
- package/lib/class/guide.js +64 -0
- package/lib/class/hole.js +930 -0
- package/lib/class/item.js +1985 -0
- package/lib/class/layer.js +670 -0
- package/lib/class/line.js +1238 -0
- package/lib/class/project.js +949 -0
- package/lib/class/vertex.js +205 -0
- package/lib/components/content.js +148 -0
- package/lib/components/export.js +7 -0
- package/lib/components/style/export.js +17 -0
- package/lib/components/style/form-number-input.js +192 -0
- package/lib/components/style/form-submit-button.js +35 -0
- package/lib/components/viewer2d/area.js +89 -0
- package/lib/components/viewer2d/export.js +121 -0
- package/lib/components/viewer2d/grids/grid-horizontal-streak.js +44 -0
- package/lib/components/viewer2d/grids/grid-streak.js +44 -0
- package/lib/components/viewer2d/grids/grid-vertical-streak.js +44 -0
- package/lib/components/viewer2d/grids/grids.js +40 -0
- package/lib/components/viewer2d/group.js +63 -0
- package/lib/components/viewer2d/item.js +245 -0
- package/lib/components/viewer2d/layer.js +172 -0
- package/lib/components/viewer2d/line.js +975 -0
- package/lib/components/viewer2d/ruler.js +92 -0
- package/lib/components/viewer2d/rulerDist.js +110 -0
- package/lib/components/viewer2d/rulerX.js +154 -0
- package/lib/components/viewer2d/rulerY.js +156 -0
- package/lib/components/viewer2d/scene.js +137 -0
- package/lib/components/viewer2d/snap.js +84 -0
- package/lib/components/viewer2d/state.js +83 -0
- package/lib/components/viewer2d/utils.js +207 -0
- package/lib/components/viewer2d/vertex.js +76 -0
- package/lib/components/viewer2d/viewer2d.js +1472 -0
- package/lib/components/viewer3d/camera-controls-module/camera-controls.module.js +2591 -0
- package/lib/components/viewer3d/dcm.js +408 -0
- package/lib/components/viewer3d/fbm.js +421 -0
- package/lib/components/viewer3d/front3D.js +71 -0
- package/lib/components/viewer3d/grid-creator.js +35 -0
- package/lib/components/viewer3d/grids/grid-horizontal-streak.js +45 -0
- package/lib/components/viewer3d/grids/grid-streak.js +36 -0
- package/lib/components/viewer3d/grids/grid-vertical-streak.js +45 -0
- package/lib/components/viewer3d/libs/first-person-controls.js +74 -0
- package/lib/components/viewer3d/libs/helvetiker_regular.typeface.js +1287 -0
- package/lib/components/viewer3d/libs/mtl-loader.js +366 -0
- package/lib/components/viewer3d/libs/obj-loader.js +471 -0
- package/lib/components/viewer3d/libs/orbit-controls.js +706 -0
- package/lib/components/viewer3d/libs/pointer-lock-controls.js +53 -0
- package/lib/components/viewer3d/lrm.js +312 -0
- package/lib/components/viewer3d/model.js +714 -0
- package/lib/components/viewer3d/pointer-lock-navigation.js +32 -0
- package/lib/components/viewer3d/ruler-utils/itemRect.js +69 -0
- package/lib/components/viewer3d/ruler-utils/layer3D.js +503 -0
- package/lib/components/viewer3d/ruler-utils/ruler3D.js +232 -0
- package/lib/components/viewer3d/ruler-utils/scene3D.js +67 -0
- package/lib/components/viewer3d/ruler-utils/state3D.js +26 -0
- package/lib/components/viewer3d/scene-creator.js +3886 -0
- package/lib/components/viewer3d/three-memory-cleaner.js +46 -0
- package/lib/components/viewer3d/viewer3d-first-person.js +316 -0
- package/lib/components/viewer3d/viewer3d.js +2676 -0
- package/lib/constants/catalog/skinPanel.js +15 -0
- package/lib/constants.js +790 -0
- package/lib/devLiteRenderer.js +903 -0
- package/lib/events/external/handleExternalEvent.js +147 -0
- package/lib/events/external/handleExternalEvent.util.js +1127 -0
- package/lib/events/external/handlers.addItem.js +54 -0
- package/lib/events/external/handlers.changeDoorStyle.js +146 -0
- package/lib/events/external/handlers.elementOps.js +15 -0
- package/lib/events/external/handlers.finishing.js +32 -0
- package/lib/events/external/handlers.hole.js +10 -0
- package/lib/events/external/handlers.loadProject.js +135 -0
- package/lib/events/external/handlers.molding.js +31 -0
- package/lib/events/external/handlers.projectLifecycle.js +19 -0
- package/lib/events/external/handlers.projectSettings.js +38 -0
- package/lib/events/external/handlers.replaceCabinet.js +48 -0
- package/lib/events/external/handlers.roomShape.js +14 -0
- package/lib/events/external/handlers.syncScene.js +27 -0
- package/lib/events/external/handlers.updateSelectedElements.js +17 -0
- package/lib/events/external/handlers.viewMode.js +19 -0
- package/lib/events/external/handlers.viewerNavigation.js +117 -0
- package/lib/events/external/handlers.wall.js +13 -0
- package/lib/index.js +637 -0
- package/lib/mappings/external-events/mapExternalEventPayload.js +33 -0
- package/lib/mappings/external-events/mappers/addItemMapper.js +101 -0
- package/lib/mappings/external-events/mappers/ccdfMapper.js +93 -0
- package/lib/mappings/external-events/mappers/ccdfToCDSMapper.js +37 -0
- package/lib/mappings/external-events/mappers/changeDoorStyleMapper.js +44 -0
- package/lib/mappings/external-events/mappers/loadProjectMapper.js +70 -0
- package/lib/mappings/holesToCatalog.js +148 -0
- package/lib/models.js +534 -0
- package/lib/plugins/SVGLoader.js +1419 -0
- package/lib/plugins/console-debugger.js +42 -0
- package/lib/plugins/export.js +25 -0
- package/lib/plugins/keyboard.js +117 -0
- package/lib/reducers/areas-reducer.js +19 -0
- package/lib/reducers/export.js +89 -0
- package/lib/reducers/groups-reducer.js +45 -0
- package/lib/reducers/holes-reducer.js +69 -0
- package/lib/reducers/items-reducer.js +152 -0
- package/lib/reducers/lines-reducer.js +52 -0
- package/lib/reducers/project-reducer.js +143 -0
- package/lib/reducers/reducer.js +25 -0
- package/lib/reducers/scene-reducer.js +35 -0
- package/lib/reducers/vertices-reducer.js +26 -0
- package/lib/reducers/viewer2d-reducer.js +84 -0
- package/lib/reducers/viewer3d-reducer.js +65 -0
- package/lib/shared/objects/immutable.js +9 -0
- package/lib/shared-style.js +72 -0
- package/lib/translator/en.js +111 -0
- package/lib/translator/it.js +86 -0
- package/lib/translator/ru.js +86 -0
- package/lib/translator/translator.js +87 -0
- package/lib/utils/browser.js +40 -0
- package/lib/utils/convert-units-lite.js +44 -0
- package/lib/utils/email-validator.js +10 -0
- package/lib/utils/export.js +56 -0
- package/lib/utils/geometry.js +3233 -0
- package/lib/utils/get-edges-of-subgraphs.js +33 -0
- package/lib/utils/graph-cycles.js +239 -0
- package/lib/utils/graph-inner-cycles.js +54 -0
- package/lib/utils/graph.js +153 -0
- package/lib/utils/helper.js +490 -0
- package/lib/utils/history.js +48 -0
- package/lib/utils/id-broker.js +22 -0
- package/lib/utils/logger.js +14 -0
- package/lib/utils/math.js +57 -0
- package/lib/utils/molding.js +1146 -0
- package/lib/utils/name-generator.js +21 -0
- package/lib/utils/objects-utils.js +62 -0
- package/lib/utils/phone-validator.js +10 -0
- package/lib/utils/process-black-list.js +22 -0
- package/lib/utils/react-if.js +25 -0
- package/lib/utils/ruler.js +63 -0
- package/lib/utils/skinPanelEngine.js +534 -0
- package/lib/utils/snap-scene.js +101 -0
- package/lib/utils/snap.js +245 -0
- package/lib/utils/summarizeCart.js +30 -0
- package/lib/utils/threeCSG.es6.js +504 -0
- package/lib/version.js +7 -0
- package/package.json +29 -24
- package/es/WorkSpace.js +0 -30
- package/es/WorkSpaceHostMimic.js +0 -132
- package/es/assets/gltf/door_closet.bin +0 -0
- package/es/assets/gltf/door_closet.fbx +0 -0
- package/es/assets/gltf/door_exterior.bin +0 -0
- package/es/assets/gltf/door_exterior.fbx +0 -0
- package/es/assets/gltf/door_interior.bin +0 -0
- package/es/assets/gltf/door_interior.fbx +0 -0
- package/es/assets/gltf/door_sliding.bin +0 -0
- package/es/assets/gltf/door_sliding.fbx +0 -0
- package/es/assets/img/png/helper/video_preview_3d.png +0 -0
- package/es/assets/img/png/helper/video_preview_start.png +0 -0
- package/es/assets/img/svg/color/Brown.svg +0 -9
- package/es/assets/img/svg/color/Dark.svg +0 -9
- package/es/assets/img/svg/color/Light.svg +0 -9
- package/es/assets/img/svg/color/Medium.svg +0 -9
- package/es/assets/img/svg/color/Unfinished.svg +0 -9
- package/es/catalog/lines/wall/textures/bricks3.jpg +0 -0
- package/es/catalog/properties/export.js +0 -21
- package/es/catalog/properties/property-checkbox.js +0 -68
- package/es/catalog/properties/property-color.js +0 -39
- package/es/catalog/properties/property-enum.js +0 -50
- package/es/catalog/properties/property-hidden.js +0 -19
- package/es/catalog/properties/property-lenght-measure.js +0 -96
- package/es/catalog/properties/property-length-measure.js +0 -80
- package/es/catalog/properties/property-length-measure_hole.js +0 -96
- package/es/catalog/properties/property-number.js +0 -48
- package/es/catalog/properties/property-read-only.js +0 -26
- package/es/catalog/properties/property-string.js +0 -48
- package/es/catalog/properties/property-toggle.js +0 -39
- package/es/catalog/properties/shared-property-style.js +0 -14
- package/es/catalog/utils/FuseUtils.js +0 -79
- package/es/class/FuseUtils.js +0 -79
- package/es/components/style/button.js +0 -106
- package/es/components/style/cancel-button.js +0 -21
- package/es/components/style/content-container.js +0 -30
- package/es/components/style/content-title.js +0 -25
- package/es/components/style/delete-button.js +0 -24
- package/es/components/style/form-block.js +0 -20
- package/es/components/style/form-color-input.js +0 -26
- package/es/components/style/form-label.js +0 -22
- package/es/components/style/form-number-input_2.js +0 -238
- package/es/components/style/form-select.js +0 -19
- package/es/components/style/form-slider.js +0 -60
- package/es/components/style/form-text-input.js +0 -69
- package/es/index.html.ejs +0 -264
- package/es/reducers/user-reducer.js +0 -41
- /package/{es/catalog/lines/wall/textures/bricks-normal2.jpg → lib/catalog/lines/wall/textures/painted-normal.jpg} +0 -0
|
@@ -5,11 +5,11 @@ import _createClass from "@babel/runtime/helpers/esm/createClass";
|
|
|
5
5
|
import _possibleConstructorReturn from "@babel/runtime/helpers/esm/possibleConstructorReturn";
|
|
6
6
|
import _getPrototypeOf from "@babel/runtime/helpers/esm/getPrototypeOf";
|
|
7
7
|
import _inherits from "@babel/runtime/helpers/esm/inherits";
|
|
8
|
-
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
9
8
|
function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
|
|
10
9
|
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
11
10
|
import React from 'react';
|
|
12
11
|
import PropTypes from 'prop-types';
|
|
12
|
+
import ReactDOM from 'react-dom';
|
|
13
13
|
import * as Three from 'three';
|
|
14
14
|
import { parseData, updateScene } from "./scene-creator";
|
|
15
15
|
import { disposeScene } from "./three-memory-cleaner";
|
|
@@ -17,7 +17,6 @@ import diff from 'immutablediff';
|
|
|
17
17
|
import { initPointerLock } from "./pointer-lock-navigation";
|
|
18
18
|
import { firstPersonOnKeyDown, firstPersonOnKeyUp } from "./libs/first-person-controls";
|
|
19
19
|
import * as SharedStyle from "../../shared-style";
|
|
20
|
-
import AppContext from "../../AppContext";
|
|
21
20
|
var Viewer3DFirstPerson = /*#__PURE__*/function (_React$Component) {
|
|
22
21
|
function Viewer3DFirstPerson(props) {
|
|
23
22
|
var _this;
|
|
@@ -26,7 +25,6 @@ var Viewer3DFirstPerson = /*#__PURE__*/function (_React$Component) {
|
|
|
26
25
|
_this.width = props.width;
|
|
27
26
|
_this.height = props.height;
|
|
28
27
|
_this.stopRendering = false;
|
|
29
|
-
_this.canvasWrapperRef = /*#__PURE__*/React.createRef();
|
|
30
28
|
_this.renderer = window.__threeRenderer || new Three.WebGLRenderer({
|
|
31
29
|
preserveDrawingBuffer: true
|
|
32
30
|
});
|
|
@@ -37,15 +35,7 @@ var Viewer3DFirstPerson = /*#__PURE__*/function (_React$Component) {
|
|
|
37
35
|
return _createClass(Viewer3DFirstPerson, [{
|
|
38
36
|
key: "componentDidMount",
|
|
39
37
|
value: function componentDidMount() {
|
|
40
|
-
var
|
|
41
|
-
_this$context2,
|
|
42
|
-
_this$context3,
|
|
43
|
-
_this$context4,
|
|
44
|
-
_this$context5,
|
|
45
|
-
_this$context6,
|
|
46
|
-
_document$body$reques,
|
|
47
|
-
_document$body,
|
|
48
|
-
_this2 = this;
|
|
38
|
+
var _this2 = this;
|
|
49
39
|
/** Variables for movement control **/
|
|
50
40
|
var prevTime = performance.now();
|
|
51
41
|
var velocity = new Three.Vector3();
|
|
@@ -55,22 +45,23 @@ var Viewer3DFirstPerson = /*#__PURE__*/function (_React$Component) {
|
|
|
55
45
|
var moveLeft = false;
|
|
56
46
|
var moveRight = false;
|
|
57
47
|
var canJump = false;
|
|
58
|
-
var catalog =
|
|
48
|
+
var catalog = this.context.catalog;
|
|
59
49
|
var actions = {
|
|
60
|
-
areaActions:
|
|
61
|
-
holesActions:
|
|
62
|
-
itemsActions:
|
|
63
|
-
linesActions:
|
|
64
|
-
projectActions:
|
|
50
|
+
areaActions: this.context.areaActions,
|
|
51
|
+
holesActions: this.context.holesActions,
|
|
52
|
+
itemsActions: this.context.itemsActions,
|
|
53
|
+
linesActions: this.context.linesActions,
|
|
54
|
+
projectActions: this.context.projectActions
|
|
65
55
|
};
|
|
66
56
|
var state = this.props.state;
|
|
67
57
|
var data = state.scene;
|
|
68
|
-
var canvasWrapper = this.
|
|
69
|
-
if (!canvasWrapper) return;
|
|
58
|
+
var canvasWrapper = ReactDOM.findDOMNode(this.refs.canvasWrapper);
|
|
70
59
|
var scene3D = new Three.Scene();
|
|
60
|
+
|
|
61
|
+
// As I need to show the pointer above all scene objects, I use this workaround http://stackoverflow.com/a/13309722
|
|
71
62
|
var sceneOnTop = new Three.Scene();
|
|
72
63
|
|
|
73
|
-
//
|
|
64
|
+
//RENDERER
|
|
74
65
|
this.renderer.setClearColor(new Three.Color(SharedStyle.COLORS.white));
|
|
75
66
|
this.renderer.setSize(this.width, this.height);
|
|
76
67
|
|
|
@@ -80,40 +71,46 @@ var Viewer3DFirstPerson = /*#__PURE__*/function (_React$Component) {
|
|
|
80
71
|
|
|
81
72
|
// CAMERA
|
|
82
73
|
var aspectRatio = this.width / this.height;
|
|
74
|
+
var camera = new Three.OrthographicCamera(width / -4, width / 4, height / 4, height / -4, 1, 1000);
|
|
75
|
+
sceneOnTop.add(camera); // The pointer is on the camera so I show it above all
|
|
83
76
|
|
|
84
|
-
//
|
|
85
|
-
// and also used OrthographicCamera with "aspect". Keeping your structure but fixing identifiers.
|
|
86
|
-
var camera = new Three.OrthographicCamera(this.width / -4, this.width / 4, this.height / 4, this.height / -4, 1, 1000);
|
|
87
|
-
sceneOnTop.add(camera);
|
|
77
|
+
// Set position for the camera
|
|
88
78
|
camera.position.set(0, 0, 0);
|
|
89
79
|
camera.up = new Three.Vector3(0, 1, 0);
|
|
90
80
|
|
|
81
|
+
// HELPER AXIS
|
|
82
|
+
// let axisHelper = new Three.AxisHelper(100);
|
|
83
|
+
// scene3D.add(axisHelper);
|
|
84
|
+
|
|
91
85
|
// LIGHT
|
|
92
|
-
var light = new Three.AmbientLight(0xafafaf);
|
|
86
|
+
var light = new Three.AmbientLight(0xafafaf); // soft white light
|
|
93
87
|
scene3D.add(light);
|
|
88
|
+
|
|
89
|
+
// Add another light
|
|
94
90
|
var pointLight = new Three.PointLight(SharedStyle.COLORS.white, 0.4, 1000);
|
|
95
91
|
pointLight.position.set(0, 0, 0);
|
|
96
92
|
scene3D.add(pointLight);
|
|
97
93
|
|
|
98
94
|
// POINTER LOCK
|
|
95
|
+
|
|
99
96
|
document.body.requestPointerLock = document.body.requestPointerLock || document.body.mozRequestPointerLock || document.body.webkitRequestPointerLock;
|
|
100
|
-
|
|
97
|
+
document.body.requestPointerLock();
|
|
101
98
|
var _initPointerLock = initPointerLock(camera, this.renderer.domElement),
|
|
102
99
|
controls = _initPointerLock.controls,
|
|
103
100
|
pointerlockChangeEvent = _initPointerLock.pointerlockChangeEvent,
|
|
104
101
|
requestPointerLockEvent = _initPointerLock.requestPointerLockEvent;
|
|
105
102
|
this.controls = controls;
|
|
106
|
-
this.
|
|
103
|
+
this.pointerlockChangeListener = pointerlockChangeEvent;
|
|
107
104
|
this.requestPointerLockEvent = requestPointerLockEvent;
|
|
108
105
|
|
|
109
106
|
/* Set user initial position */
|
|
110
|
-
var humanHeight = 170; // cm
|
|
107
|
+
var humanHeight = 170; // 170 cm
|
|
111
108
|
|
|
112
109
|
var yInitialPosition = this.planData.boundingBox.min.y + (this.planData.boundingBox.min.y - this.planData.boundingBox.max.y) / 2 + humanHeight;
|
|
113
110
|
this.controls.getObject().position.set(-50, yInitialPosition, -100);
|
|
114
|
-
sceneOnTop.add(this.controls.getObject());
|
|
111
|
+
sceneOnTop.add(this.controls.getObject()); // Add the pointer lock controls to the scene that will be rendered on top
|
|
115
112
|
|
|
116
|
-
//
|
|
113
|
+
// Add move controls on the page
|
|
117
114
|
this.keyDownEvent = function (event) {
|
|
118
115
|
var moveResult = firstPersonOnKeyDown(event, moveForward, moveLeft, moveBackward, moveRight, canJump, velocity);
|
|
119
116
|
moveForward = moveResult.moveForward;
|
|
@@ -133,7 +130,8 @@ var Viewer3DFirstPerson = /*#__PURE__*/function (_React$Component) {
|
|
|
133
130
|
document.addEventListener('keydown', this.keyDownEvent);
|
|
134
131
|
document.addEventListener('keyup', this.keyUpEvent);
|
|
135
132
|
|
|
136
|
-
//
|
|
133
|
+
// Add a pointer to the scene
|
|
134
|
+
|
|
137
135
|
var pointer = new Three.Object3D();
|
|
138
136
|
pointer.name = 'pointer';
|
|
139
137
|
var pointerMaterial = new Three.MeshBasicMaterial({
|
|
@@ -160,116 +158,86 @@ var Viewer3DFirstPerson = /*#__PURE__*/function (_React$Component) {
|
|
|
160
158
|
pointer.add(linePointer1);
|
|
161
159
|
pointer.add(linePointer2);
|
|
162
160
|
pointer.add(linePointer3);
|
|
163
|
-
camera.add(pointer);
|
|
161
|
+
camera.add(pointer); // Add the pointer to the camera
|
|
164
162
|
|
|
165
163
|
// OBJECT PICKING
|
|
166
164
|
var toIntersect = [this.planData.plan];
|
|
167
165
|
var mouseVector = new Three.Vector2(0, 0);
|
|
168
166
|
var raycaster = new Three.Raycaster();
|
|
169
167
|
this.firstPersonMouseDown = function (event) {
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
168
|
+
// First of all I check if controls are enabled
|
|
169
|
+
|
|
170
|
+
if (_this2.controls.enabled) {
|
|
171
|
+
event.preventDefault();
|
|
172
|
+
|
|
173
|
+
/* Per avere la direzione da assegnare al raycaster, chiamo il metodo getDirection di PointerLockControls,
|
|
174
|
+
* che restituisce una funzione che a sua volta prende un vettore, vi scrive i valori degli oggetti
|
|
175
|
+
* pitch e yaw e lo restituisce */
|
|
176
|
+
|
|
177
|
+
raycaster.setFromCamera(mouseVector, camera);
|
|
178
|
+
var intersects = raycaster.intersectObjects(toIntersect, true);
|
|
179
|
+
if (intersects.length > 0 && !isNaN(intersects[0].distance)) {
|
|
180
|
+
intersects[0].object.interact && intersects[0].object.interact();
|
|
181
|
+
} else {
|
|
182
|
+
_this2.context.projectActions.unselectAll();
|
|
183
|
+
}
|
|
180
184
|
}
|
|
181
185
|
};
|
|
182
186
|
document.addEventListener('mousedown', this.firstPersonMouseDown, false);
|
|
183
187
|
this.renderer.domElement.style.display = 'block';
|
|
188
|
+
|
|
189
|
+
// add the output of the renderer to the html element
|
|
184
190
|
canvasWrapper.appendChild(this.renderer.domElement);
|
|
185
191
|
this.renderer.autoClear = false;
|
|
186
192
|
var _render = function render() {
|
|
187
|
-
if (_this2.stopRendering)
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
velocity.
|
|
205
|
-
_this2.controls.getObject().position.y
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
193
|
+
if (!_this2.stopRendering) {
|
|
194
|
+
yInitialPosition = _this2.planData.boundingBox.min.y + humanHeight;
|
|
195
|
+
var multiplier = 5;
|
|
196
|
+
var time = performance.now();
|
|
197
|
+
var delta = (time - prevTime) / 1000 * multiplier;
|
|
198
|
+
velocity.x -= velocity.x * 10.0 * delta;
|
|
199
|
+
velocity.z -= velocity.z * 10.0 * delta;
|
|
200
|
+
velocity.y -= 9.8 * 100.0 * delta / multiplier; // 100.0 = mass
|
|
201
|
+
|
|
202
|
+
direction.z = Number(moveForward) - Number(moveBackward);
|
|
203
|
+
direction.x = Number(moveLeft) - Number(moveRight);
|
|
204
|
+
direction.normalize(); // this ensures consistent movements in all directions
|
|
205
|
+
|
|
206
|
+
if (moveForward || moveBackward) velocity.z -= direction.z * 400.0 * delta;
|
|
207
|
+
if (moveLeft || moveRight) velocity.x -= direction.x * 400.0 * delta;
|
|
208
|
+
_this2.controls.getObject().translateX(velocity.x * delta);
|
|
209
|
+
_this2.controls.getObject().translateY(velocity.y * delta);
|
|
210
|
+
_this2.controls.getObject().translateZ(velocity.z * delta);
|
|
211
|
+
if (_this2.controls.getObject().position.y < yInitialPosition) {
|
|
212
|
+
velocity.y = 0;
|
|
213
|
+
_this2.controls.getObject().position.y = yInitialPosition;
|
|
214
|
+
canJump = true;
|
|
215
|
+
}
|
|
216
|
+
prevTime = time;
|
|
217
|
+
|
|
218
|
+
// Set light position
|
|
219
|
+
var controlObjectPosition = _this2.controls.getObject().position;
|
|
220
|
+
pointLight.position.set(controlObjectPosition.x, controlObjectPosition.y, controlObjectPosition.z);
|
|
221
|
+
for (var elemID in _this2.planData.sceneGraph.LODs) {
|
|
222
|
+
_this2.planData.sceneGraph.LODs[elemID].update(camera);
|
|
223
|
+
}
|
|
224
|
+
_this2.renderer.clear(); // clear buffers
|
|
225
|
+
_this2.renderer.render(scene3D, camera); // render scene 1
|
|
226
|
+
_this2.renderer.clearDepth(); // clear depth buffer
|
|
227
|
+
_this2.renderer.render(sceneOnTop, camera); // render scene 2
|
|
228
|
+
|
|
229
|
+
requestAnimationFrame(_render);
|
|
213
230
|
}
|
|
214
|
-
_this2.renderer.clear();
|
|
215
|
-
_this2.renderer.render(scene3D, camera);
|
|
216
|
-
_this2.renderer.clearDepth();
|
|
217
|
-
_this2.renderer.render(sceneOnTop, camera);
|
|
218
|
-
requestAnimationFrame(_render);
|
|
219
231
|
};
|
|
220
232
|
_render();
|
|
221
233
|
this.camera = camera;
|
|
222
234
|
this.scene3D = scene3D;
|
|
223
235
|
this.sceneOnTop = sceneOnTop;
|
|
224
|
-
|
|
225
|
-
}, {
|
|
226
|
-
key: "componentDidUpdate",
|
|
227
|
-
value: function componentDidUpdate(prevProps) {
|
|
228
|
-
var _this$context7, _this$context8, _this$context9, _this$context0, _this$context1, _prevProps$state;
|
|
229
|
-
var _this$props = this.props,
|
|
230
|
-
width = _this$props.width,
|
|
231
|
-
height = _this$props.height,
|
|
232
|
-
state = _this$props.state;
|
|
233
|
-
var camera = this.camera,
|
|
234
|
-
renderer = this.renderer,
|
|
235
|
-
scene3D = this.scene3D,
|
|
236
|
-
sceneOnTop = this.sceneOnTop,
|
|
237
|
-
planData = this.planData;
|
|
238
|
-
if (!camera || !renderer || !scene3D || !sceneOnTop || !planData) return;
|
|
239
|
-
var actions = {
|
|
240
|
-
areaActions: (_this$context7 = this.context) === null || _this$context7 === void 0 ? void 0 : _this$context7.areaActions,
|
|
241
|
-
holesActions: (_this$context8 = this.context) === null || _this$context8 === void 0 ? void 0 : _this$context8.holesActions,
|
|
242
|
-
itemsActions: (_this$context9 = this.context) === null || _this$context9 === void 0 ? void 0 : _this$context9.itemsActions,
|
|
243
|
-
linesActions: (_this$context0 = this.context) === null || _this$context0 === void 0 ? void 0 : _this$context0.linesActions,
|
|
244
|
-
projectActions: (_this$context1 = this.context) === null || _this$context1 === void 0 ? void 0 : _this$context1.projectActions
|
|
245
|
-
};
|
|
246
|
-
|
|
247
|
-
// size change
|
|
248
|
-
if (prevProps.width !== width || prevProps.height !== height) {
|
|
249
|
-
this.width = width;
|
|
250
|
-
this.height = height;
|
|
251
|
-
|
|
252
|
-
// OrthographicCamera doesn't use aspect, but your original code did this.
|
|
253
|
-
// We'll just update projection and renderer size.
|
|
254
|
-
camera.updateProjectionMatrix();
|
|
255
|
-
renderer.setSize(width, height);
|
|
256
|
-
}
|
|
257
|
-
|
|
258
|
-
// scene change
|
|
259
|
-
if (((_prevProps$state = prevProps.state) === null || _prevProps$state === void 0 ? void 0 : _prevProps$state.scene) !== (state === null || state === void 0 ? void 0 : state.scene)) {
|
|
260
|
-
var _this$context10;
|
|
261
|
-
var changedValues = diff(prevProps.state.scene, state.scene);
|
|
262
|
-
updateScene(planData, state.scene, prevProps.state.scene, changedValues.toJS(), actions, (_this$context10 = this.context) === null || _this$context10 === void 0 ? void 0 : _this$context10.catalog);
|
|
263
|
-
}
|
|
264
|
-
renderer.clear();
|
|
265
|
-
renderer.render(scene3D, camera);
|
|
266
|
-
renderer.clearDepth();
|
|
267
|
-
renderer.render(sceneOnTop, camera);
|
|
236
|
+
// this.planData = planData;
|
|
268
237
|
}
|
|
269
238
|
}, {
|
|
270
239
|
key: "componentWillUnmount",
|
|
271
240
|
value: function componentWillUnmount() {
|
|
272
|
-
var _this$renderer$domEle;
|
|
273
241
|
this.stopRendering = true;
|
|
274
242
|
this.renderer.autoClear = true;
|
|
275
243
|
document.removeEventListener('mousedown', this.firstPersonMouseDown);
|
|
@@ -278,34 +246,64 @@ var Viewer3DFirstPerson = /*#__PURE__*/function (_React$Component) {
|
|
|
278
246
|
document.removeEventListener('pointerlockchange', this.pointerlockChangeEvent);
|
|
279
247
|
document.removeEventListener('mozpointerlockchange', this.pointerlockChangeEvent);
|
|
280
248
|
document.removeEventListener('webkitpointerlockchange', this.pointerlockChangeEvent);
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
disposeScene(this.scene3D);
|
|
285
|
-
if ((_this$planData = this.planData) !== null && _this$planData !== void 0 && _this$planData.plan) this.scene3D.remove(this.planData.plan);
|
|
286
|
-
}
|
|
249
|
+
this.renderer.domElement.removeEventListener('click', this.requestPointerLockEvent);
|
|
250
|
+
disposeScene(this.scene3D);
|
|
251
|
+
this.scene3D.remove(this.planData.plan);
|
|
287
252
|
this.scene3D = null;
|
|
288
253
|
this.planData = null;
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
254
|
+
this.renderer.renderLists.dispose();
|
|
255
|
+
}
|
|
256
|
+
}, {
|
|
257
|
+
key: "componentWillReceiveProps",
|
|
258
|
+
value: function componentWillReceiveProps(nextProps) {
|
|
259
|
+
var width = nextProps.width,
|
|
260
|
+
height = nextProps.height;
|
|
261
|
+
var camera = this.camera,
|
|
262
|
+
renderer = this.renderer,
|
|
263
|
+
scene3D = this.scene3D,
|
|
264
|
+
sceneOnTop = this.sceneOnTop,
|
|
265
|
+
planData = this.planData;
|
|
266
|
+
var actions = {
|
|
267
|
+
areaActions: this.context.areaActions,
|
|
268
|
+
holesActions: this.context.holesActions,
|
|
269
|
+
itemsActions: this.context.itemsActions,
|
|
270
|
+
linesActions: this.context.linesActions,
|
|
271
|
+
projectActions: this.context.projectActions
|
|
272
|
+
};
|
|
273
|
+
this.width = width;
|
|
274
|
+
this.height = height;
|
|
275
|
+
camera.aspect = width / height;
|
|
276
|
+
camera.updateProjectionMatrix();
|
|
277
|
+
if (nextProps.scene !== this.props.state.scene) {
|
|
278
|
+
var changedValues = diff(this.props.state.scene, nextProps.state.scene);
|
|
279
|
+
updateScene(planData, nextProps.state.scene, this.props.state.scene, changedValues.toJS(), actions, this.context.catalog);
|
|
280
|
+
}
|
|
281
|
+
renderer.setSize(width, height);
|
|
282
|
+
renderer.clear(); // clear buffers
|
|
283
|
+
renderer.render(scene3D, camera); // render scene 1
|
|
284
|
+
renderer.clearDepth(); // clear depth buffer
|
|
285
|
+
renderer.render(sceneOnTop, camera); // render scene 2
|
|
295
286
|
}
|
|
296
287
|
}, {
|
|
297
288
|
key: "render",
|
|
298
289
|
value: function render() {
|
|
299
|
-
return /*#__PURE__*/React.createElement(
|
|
300
|
-
ref:
|
|
290
|
+
return /*#__PURE__*/React.createElement('div', {
|
|
291
|
+
ref: 'canvasWrapper'
|
|
301
292
|
});
|
|
302
293
|
}
|
|
303
294
|
}]);
|
|
304
295
|
}(React.Component);
|
|
305
|
-
_defineProperty(Viewer3DFirstPerson, "contextType", AppContext);
|
|
306
296
|
export { Viewer3DFirstPerson as default };
|
|
307
297
|
Viewer3DFirstPerson.propTypes = {
|
|
308
298
|
state: PropTypes.object.isRequired,
|
|
309
299
|
width: PropTypes.number.isRequired,
|
|
310
300
|
height: PropTypes.number.isRequired
|
|
301
|
+
};
|
|
302
|
+
Viewer3DFirstPerson.contextTypes = {
|
|
303
|
+
areaActions: PropTypes.object.isRequired,
|
|
304
|
+
holesActions: PropTypes.object.isRequired,
|
|
305
|
+
itemsActions: PropTypes.object.isRequired,
|
|
306
|
+
linesActions: PropTypes.object.isRequired,
|
|
307
|
+
projectActions: PropTypes.object.isRequired,
|
|
308
|
+
catalog: PropTypes.object
|
|
311
309
|
};
|
|
@@ -1,34 +1,34 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
import _readOnlyError from "@babel/runtime/helpers/esm/readOnlyError";
|
|
4
|
+
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
4
5
|
import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
|
|
5
6
|
import _createClass from "@babel/runtime/helpers/esm/createClass";
|
|
6
7
|
import _possibleConstructorReturn from "@babel/runtime/helpers/esm/possibleConstructorReturn";
|
|
7
8
|
import _getPrototypeOf from "@babel/runtime/helpers/esm/getPrototypeOf";
|
|
8
9
|
import _inherits from "@babel/runtime/helpers/esm/inherits";
|
|
9
|
-
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
10
10
|
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; }
|
|
11
11
|
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; }
|
|
12
12
|
function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
|
|
13
13
|
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
14
14
|
import React from 'react';
|
|
15
15
|
import PropTypes from 'prop-types';
|
|
16
|
+
import ReactDOM from 'react-dom';
|
|
16
17
|
import * as Three from 'three';
|
|
17
18
|
import { checkCabinetOverlap, createBacksplash, deleteSpecifiedMeshObjects, fVLine, getDistances, parseData, updateScene, visibleTransformBox } from "./scene-creator";
|
|
18
19
|
import { disposeObject, disposeScene } from "./three-memory-cleaner";
|
|
19
20
|
import diff from 'immutablediff';
|
|
20
21
|
import * as SharedStyle from "../../shared-style";
|
|
21
|
-
import { BASE_CABINET_LAYOUTPOS, MODE_3D_VIEW, MODE_DRAGGING_ITEM_3D, MODE_DRAWING_HOLE_3D, MODE_DRAWING_ITEM_3D, MODE_ELEVATION_VIEW, MODE_IDLE_3D, MODE_ROTATING_ITEM_3D, SECONDARY_PURPLE_COLOR, TALL_CABINET_LAYOUTPOS, UNIT_CENTIMETER, WALL_CABINET_LAYOUTPOS, INTERNAL_EVENT_SELECT_ELEMENT, INTERNAL_EVENT_DRAG_ELEMENT, INTERNAL_EVENT_DRAW_ELEMENT, INTERNAL_EVENT_ROTATE_ELEMENT,
|
|
22
|
+
import { BASE_CABINET_LAYOUTPOS, MODE_3D_VIEW, MODE_DRAGGING_ITEM_3D, MODE_DRAWING_HOLE_3D, MODE_DRAWING_ITEM_3D, MODE_ELEVATION_VIEW, MODE_IDLE_3D, MODE_ROTATING_ITEM_3D, SECONDARY_PURPLE_COLOR, TALL_CABINET_LAYOUTPOS, UNIT_CENTIMETER, WALL_CABINET_LAYOUTPOS, INTERNAL_EVENT_SELECT_ELEMENT, INTERNAL_EVENT_DRAG_ELEMENT, INTERNAL_EVENT_DRAW_ELEMENT, INTERNAL_EVENT_ROTATE_ELEMENT, MODE_DRAGGING_HOLE_3D, INTERNAL_EVENT_REPLACE_CABINET } from "../../constants";
|
|
22
23
|
import { isUndefined } from 'util';
|
|
23
24
|
import { verticesDistance } from "../../utils/geometry";
|
|
24
25
|
import { convert } from "../../utils/convert-units-lite";
|
|
25
26
|
import { GeometryUtils } from "../../utils/export";
|
|
26
27
|
import { handleCamRect, isElevationView, isEmpty, updatePayloadOfInternalEvent } from "../../utils/helper";
|
|
27
|
-
import { RGBELoader } from 'three/examples/jsm/loaders/RGBELoader
|
|
28
|
+
import { RGBELoader } from 'three/examples/jsm/loaders/RGBELoader';
|
|
28
29
|
import CameraControls from 'camera-controls';
|
|
29
30
|
import { getAllMeshes, vectorIntersectWithMesh } from "../../utils/objects-utils";
|
|
30
31
|
import { returnReplaceableDeepSearchType } from "../viewer2d/utils";
|
|
31
|
-
import AppContext from "../../AppContext";
|
|
32
32
|
CameraControls.install({
|
|
33
33
|
THREE: Three
|
|
34
34
|
});
|
|
@@ -50,7 +50,6 @@ var Scene3DViewer = /*#__PURE__*/function (_React$Component) {
|
|
|
50
50
|
_this.width = props.width;
|
|
51
51
|
_this.height = props.height;
|
|
52
52
|
_this.renderingID = 0;
|
|
53
|
-
_this.canvasWrapperRef = /*#__PURE__*/React.createRef();
|
|
54
53
|
var mode = props.state.mode;
|
|
55
54
|
if (!window.__elevationRendererDownload) {
|
|
56
55
|
window.__elevationRendererDownload = {};
|
|
@@ -1190,10 +1189,12 @@ var Scene3DViewer = /*#__PURE__*/function (_React$Component) {
|
|
|
1190
1189
|
};
|
|
1191
1190
|
var sendInternalEvent = function sendInternalEvent(evtType, evtElement) {
|
|
1192
1191
|
var pointArray = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
|
|
1192
|
+
var curLayerId = _this2.props.state.scene.selectedLayer;
|
|
1193
|
+
var curLayer = _this2.props.state.scene.getIn(['layers', curLayerId]);
|
|
1193
1194
|
if (!isEmpty(evtType) && !isEmpty(evtElement)) {
|
|
1194
1195
|
var _state$get, _this2$props$onIntern, _this2$props;
|
|
1195
1196
|
var catalog = (_state$get = state.get('catalog')) === null || _state$get === void 0 ? void 0 : _state$get.toJS();
|
|
1196
|
-
var payload = updatePayloadOfInternalEvent(evtElement,
|
|
1197
|
+
var payload = updatePayloadOfInternalEvent(evtElement, curLayer, catalog, pointArray);
|
|
1197
1198
|
(_this2$props$onIntern = (_this2$props = _this2.props).onInternalEvent) === null || _this2$props$onIntern === void 0 || _this2$props$onIntern.call(_this2$props, {
|
|
1198
1199
|
type: evtType,
|
|
1199
1200
|
value: payload
|
|
@@ -2162,9 +2163,14 @@ var Scene3DViewer = /*#__PURE__*/function (_React$Component) {
|
|
|
2162
2163
|
window.SPKeyDown = this.handleKeyDown;
|
|
2163
2164
|
window.tDKeyDown = this.handleKeyDown;
|
|
2164
2165
|
}
|
|
2165
|
-
|
|
2166
|
-
|
|
2167
|
-
|
|
2166
|
+
|
|
2167
|
+
// Add the output of the renderer to the html element
|
|
2168
|
+
var canvasWrapper = ReactDOM.findDOMNode(this.refs.canvasWrapper);
|
|
2169
|
+
canvasWrapper && canvasWrapper.appendChild(this.renderer.domElement);
|
|
2170
|
+
|
|
2171
|
+
//
|
|
2172
|
+
|
|
2173
|
+
if (scene.getIn(['layers', scene.selectedLayer, 'selected', 'items']).size != 0) {
|
|
2168
2174
|
// if selected Object
|
|
2169
2175
|
isSelected = true;
|
|
2170
2176
|
selectedObject.layerID = scene.selectedLayer;
|
|
@@ -2428,10 +2434,10 @@ var Scene3DViewer = /*#__PURE__*/function (_React$Component) {
|
|
|
2428
2434
|
this.renderer.renderLists.dispose();
|
|
2429
2435
|
}
|
|
2430
2436
|
}, {
|
|
2431
|
-
key: "
|
|
2432
|
-
value: function
|
|
2433
|
-
var
|
|
2434
|
-
if (
|
|
2437
|
+
key: "componentWillReceiveProps",
|
|
2438
|
+
value: function componentWillReceiveProps(nextProps) {
|
|
2439
|
+
var _this4 = this;
|
|
2440
|
+
if (this.props.downloadFlag && diff(this.props.state, nextProps.state).toJS().length == 0 || isEmpty(nextProps.state.scene)) return;
|
|
2435
2441
|
var width = nextProps.width,
|
|
2436
2442
|
height = nextProps.height;
|
|
2437
2443
|
var selectedLayer = nextProps.state.getIn(['scene', 'layers', nextProps.state.scene.selectedLayer]);
|
|
@@ -2456,7 +2462,7 @@ var Scene3DViewer = /*#__PURE__*/function (_React$Component) {
|
|
|
2456
2462
|
var allItemRect;
|
|
2457
2463
|
|
|
2458
2464
|
// handle camera setting
|
|
2459
|
-
switch (
|
|
2465
|
+
switch (this.props.state.mode) {
|
|
2460
2466
|
case MODE_ELEVATION_VIEW:
|
|
2461
2467
|
// when Elevation mode (camera: Orthographic)
|
|
2462
2468
|
var cameraRect = handleCamRect(width, height, ceilHeight, this.state.lineLength);
|
|
@@ -2505,8 +2511,9 @@ var Scene3DViewer = /*#__PURE__*/function (_React$Component) {
|
|
|
2505
2511
|
var prepareSnapSpec = function prepareSnapSpec(layer) {
|
|
2506
2512
|
allLines = GeometryUtils.getAllLines(layer);
|
|
2507
2513
|
allLineRects = GeometryUtils.buildRectFromLines(layer, allLines);
|
|
2508
|
-
allItemRect = GeometryUtils.getAllItemSpecified(
|
|
2514
|
+
allItemRect = GeometryUtils.getAllItemSpecified(_this4.props.state.scene, actions.catalog, [WALL_CABINET_LAYOUTPOS, TALL_CABINET_LAYOUTPOS]);
|
|
2509
2515
|
};
|
|
2516
|
+
var layer1 = this.props.state.scene.getIn(['layers', data.selectedLayer]);
|
|
2510
2517
|
if (this.state.showflag) {
|
|
2511
2518
|
prepareSnapSpec(layer);
|
|
2512
2519
|
implementBacksplash();
|
|
@@ -2515,11 +2522,11 @@ var Scene3DViewer = /*#__PURE__*/function (_React$Component) {
|
|
|
2515
2522
|
showflag: false
|
|
2516
2523
|
});
|
|
2517
2524
|
}
|
|
2518
|
-
if (nextProps.state.scene !==
|
|
2519
|
-
var changedValues = diff(
|
|
2525
|
+
if (nextProps.state.scene !== this.props.state.scene || nextProps.state.doorStyle && nextProps.state.doorStyle.get('name') !== this.props.state.doorStyle.get('name')) {
|
|
2526
|
+
var changedValues = diff(this.props.state.scene, nextProps.state.scene);
|
|
2520
2527
|
prepareSnapSpec(layer);
|
|
2521
2528
|
var isInteractiveMove = nextProps.state.mode === MODE_DRAGGING_ITEM_3D || nextProps.state.mode === MODE_ROTATING_ITEM_3D || nextProps.state.mode === MODE_DRAWING_ITEM_3D || nextProps.state.mode === MODE_DRAGGING_HOLE_3D || nextProps.state.mode === MODE_IDLE_3D;
|
|
2522
|
-
if (nextProps.state.doorStyle && nextProps.state.doorStyle.get('name') ===
|
|
2529
|
+
if (nextProps.state.doorStyle && nextProps.state.doorStyle.get('name') === this.props.state.doorStyle.get('name')) {
|
|
2523
2530
|
if (!isInteractiveMove) {
|
|
2524
2531
|
self.setState({
|
|
2525
2532
|
isLoading: true
|
|
@@ -2549,7 +2556,7 @@ var Scene3DViewer = /*#__PURE__*/function (_React$Component) {
|
|
|
2549
2556
|
var _this$state = this.state,
|
|
2550
2557
|
toolObj = _this$state.toolObj,
|
|
2551
2558
|
angleObj = _this$state.angleObj;
|
|
2552
|
-
var _updateScene = updateScene(this.planData, nextProps.state.scene,
|
|
2559
|
+
var _updateScene = updateScene(this.planData, nextProps.state.scene, this.props.state.scene, changedValues.toJS(), actions, this.context.catalog, nextProps.state.mode, toolObj, angleObj, nextProps.state.draggingSupport),
|
|
2553
2560
|
promise = _updateScene.promise;
|
|
2554
2561
|
self.setState();
|
|
2555
2562
|
promise.then(function (p1Value) {
|
|
@@ -2637,18 +2644,26 @@ var Scene3DViewer = /*#__PURE__*/function (_React$Component) {
|
|
|
2637
2644
|
this.renderer.domElement.style.pointerEvents = 'auto';
|
|
2638
2645
|
this.renderer.domElement.style.opacity = '1';
|
|
2639
2646
|
!this.props.downloadFlag && document.getElementById('front') && (document.getElementById('front').style.display = 'block');
|
|
2640
|
-
return /*#__PURE__*/React.createElement(
|
|
2641
|
-
ref:
|
|
2647
|
+
return /*#__PURE__*/React.createElement('div', {
|
|
2648
|
+
ref: 'canvasWrapper'
|
|
2642
2649
|
});
|
|
2643
2650
|
}
|
|
2644
2651
|
}
|
|
2645
2652
|
}]);
|
|
2646
2653
|
}(React.Component);
|
|
2647
|
-
_defineProperty(Scene3DViewer, "contextType", AppContext);
|
|
2648
2654
|
export { Scene3DViewer as default };
|
|
2649
2655
|
Scene3DViewer.propTypes = {
|
|
2650
2656
|
state: PropTypes.object.isRequired,
|
|
2651
2657
|
width: PropTypes.number.isRequired,
|
|
2652
2658
|
height: PropTypes.number.isRequired,
|
|
2653
2659
|
replaceCabinet: PropTypes.func.isRequired
|
|
2660
|
+
};
|
|
2661
|
+
Scene3DViewer.contextTypes = {
|
|
2662
|
+
areaActions: PropTypes.object.isRequired,
|
|
2663
|
+
holesActions: PropTypes.object.isRequired,
|
|
2664
|
+
itemsActions: PropTypes.object.isRequired,
|
|
2665
|
+
linesActions: PropTypes.object.isRequired,
|
|
2666
|
+
sceneActions: PropTypes.object.isRequired,
|
|
2667
|
+
projectActions: PropTypes.object.isRequired,
|
|
2668
|
+
catalog: PropTypes.object
|
|
2654
2669
|
};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
// skin panel SKU
|
|
2
|
+
export var SKIN_SKU_BSV_24 = 'BSV'; // 23.25" x 34.5" : For base cabinets
|
|
3
|
+
export var SKIN_SKU_BSV_48 = 'BSV48'; // 48" x 34.5" : For base cabinets back-to-back or island backs
|
|
4
|
+
export var SKIN_SKU_WSV_1242 = 'WSV1242'; // 11.25" x 42" : For 12" deep wall cabinets
|
|
5
|
+
export var SKIN_SKU_WSV_2442 = 'WSV2442'; // 23.25" x 42" : For 24" deep wall cabinets
|
|
6
|
+
export var SKIN_SKU_WSV_2460 = 'WSV2460'; // Usually used for CT3DR or CT2DR SKUs + stacked wall cabinets
|
|
7
|
+
export var SKIN_SKU_USV245325 = 'USV2453.25'; // 23.25" x 53.25" : For tall cabinets
|
|
8
|
+
|
|
9
|
+
export var SKIN_HEIGHT_53_25 = 53.25; // in inch, height of the skin with SKU USV245325
|
package/es/constants.js
CHANGED
|
@@ -126,6 +126,7 @@ export var SET_BACKSPLASH_VISIBLE = 'SET_BACKSPLASH_VISIBLE';
|
|
|
126
126
|
export var SET_APPLIANCE_MATERIAL = 'SET_APPLIANCE_MATERIAL';
|
|
127
127
|
export var SET_MOVE_STATUS = 'SET_MOVE_STATUS';
|
|
128
128
|
export var SET_ROTATE_STATUS = 'SET_ROTATE_STATUS';
|
|
129
|
+
export var SET_ITEMS_CCDF = 'SET_ITEMS_CCDF';
|
|
129
130
|
//ACTIONS groups
|
|
130
131
|
export var ADD_GROUP = 'ADD_GROUP';
|
|
131
132
|
export var ADD_GROUP_FROM_SELECTED = 'ADD_GROUP_FROM_SELECTED';
|
|
@@ -447,11 +448,12 @@ export var UNIT_MILLIMETER = 'mm';
|
|
|
447
448
|
export var UNIT_CENTIMETER = 'cm';
|
|
448
449
|
export var UNIT_METER = 'm';
|
|
449
450
|
export var UNIT_INCH = 'in';
|
|
451
|
+
export var UNIT_INCH_LONG = 'inch';
|
|
450
452
|
export var UNIT_FOOT = 'ft';
|
|
451
453
|
export var UNIT_MILE = 'mi';
|
|
452
454
|
export var UNITS_LENGTH = [UNIT_MILLIMETER, UNIT_CENTIMETER, UNIT_METER, UNIT_INCH, UNIT_FOOT, UNIT_MILE];
|
|
453
455
|
export var CEIL_UNITS_LENGTH = [UNIT_CENTIMETER, UNIT_METER, UNIT_INCH, UNIT_FOOT];
|
|
454
|
-
export var EPSILON =
|
|
456
|
+
export var EPSILON = 0.5;
|
|
455
457
|
|
|
456
458
|
// distance between item and wall
|
|
457
459
|
export var DISTANCE_EPSILON = 5.0; //5.08; // 2 inch
|
|
@@ -596,6 +598,7 @@ export var BASE_CABINET_LAYOUTPOS = 'Base';
|
|
|
596
598
|
export var WALL_CABINET_LAYOUTPOS = 'Wall';
|
|
597
599
|
export var TALL_CABINET_LAYOUTPOS = 'Tall';
|
|
598
600
|
export var VANITY_CABINET_LAYOUTPOS = 'Vanity';
|
|
601
|
+
export var ACCESSORIES_LAYOUTPOS = 'Accessories';
|
|
599
602
|
export var TOP_MOLDING_LOCATION = 'Top';
|
|
600
603
|
export var MIDDLE_MOLDING_LOCATION = 'Middle';
|
|
601
604
|
export var BOTTOM_MOLDING_LOCATION = 'Bottom';
|
|
@@ -656,16 +659,16 @@ export var PROJECT_SETTING_OPTION = {
|
|
|
656
659
|
CHANGE_MEASUREMENT_UNIT: CHANGE_MEASUREMENT_UNIT
|
|
657
660
|
};
|
|
658
661
|
export var HOLE_NAMES = {
|
|
659
|
-
WINDOW_CLEAR: '
|
|
660
|
-
WINDOW_CROSS: 'Cross
|
|
661
|
-
WINDOW_DOUBLE_HUNG: 'Double Hung
|
|
662
|
-
WINDOW_VERTICAL: '
|
|
662
|
+
WINDOW_CLEAR: 'Clear',
|
|
663
|
+
WINDOW_CROSS: 'Cross',
|
|
664
|
+
WINDOW_DOUBLE_HUNG: 'Double Hung',
|
|
665
|
+
WINDOW_VERTICAL: 'Vertical',
|
|
663
666
|
DOOR_CLOSET: 'Closet',
|
|
664
667
|
DOOR_EXTERIOR: 'Exterior',
|
|
665
668
|
DOOR_INTERIOR: 'Interior',
|
|
666
669
|
DOOR_SLIDING: 'Sliding',
|
|
667
670
|
DOOR_FRAMED: 'Framed Doorway',
|
|
668
|
-
DOOR_FRAMELESS: '
|
|
671
|
+
DOOR_FRAMELESS: 'Frameless Doorway'
|
|
669
672
|
};
|
|
670
673
|
|
|
671
674
|
// direction type
|
|
@@ -766,4 +769,12 @@ export var ROOM_SHAPE_TYPE = {
|
|
|
766
769
|
THREE_WALLS_TOP_RIGHT_BOTTOM: '3wTopRightBottom',
|
|
767
770
|
THREE_WALLS_RIGHT_BOTTOM_LEFT: '3wRightBottomLeft',
|
|
768
771
|
THREE_WALLS_BOTTOM_LEFT_TOP: '3wBottomLeftTop'
|
|
769
|
-
};
|
|
772
|
+
};
|
|
773
|
+
export var DOORSTYLE_SCOPE_ALL = 'all';
|
|
774
|
+
export var DOORSTYLE_SCOPE_SINGLE = 'single';
|
|
775
|
+
export var DOORSTYLE_SCOPE_MULTIPLE = 'multiple';
|
|
776
|
+
export var DEFAULT_MOLDING_PIECE_LENGTH = 96; // in inch, 8 feet, standard length for molding pieces
|
|
777
|
+
// default urls
|
|
778
|
+
|
|
779
|
+
export var DEFAULT_INTERIOR_URL = '/assets/img/default/maple.jpg';
|
|
780
|
+
export var DEFAULT_DOOR_HANDLE_TEXTURE_URL = '/assets/img/default/steel.jpg';
|