kitchen-simulator 5.0.0-test.2 → 5.0.0-test.4
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/KitchenConfigurator.js +1 -1
- package/es/KitchenConfigurator.js.map +1 -1
- package/es/index.js +2 -2
- package/es/index.js.map +1 -1
- package/package.json +8 -16
- package/src/KitchenConfigurator.jsx +1 -1
- package/src/index.js +3 -3
- package/lib/@history.js +0 -11
- package/lib/@history.js.map +0 -1
- package/lib/AppContext.js +0 -11
- package/lib/AppContext.js.map +0 -1
- package/lib/KitchenConfigurator.js +0 -1353
- package/lib/KitchenConfigurator.js.map +0 -1
- package/lib/KitchenConfiguratorApp.js +0 -539
- package/lib/KitchenConfiguratorApp.js.map +0 -1
- package/lib/actions/area-actions.js +0 -22
- package/lib/actions/area-actions.js.map +0 -1
- package/lib/actions/export.js +0 -44
- package/lib/actions/export.js.map +0 -1
- package/lib/actions/groups-actions.js +0 -108
- package/lib/actions/groups-actions.js.map +0 -1
- package/lib/actions/holes-actions.js +0 -141
- package/lib/actions/holes-actions.js.map +0 -1
- package/lib/actions/items-actions.js +0 -365
- package/lib/actions/items-actions.js.map +0 -1
- package/lib/actions/lines-actions.js +0 -98
- package/lib/actions/lines-actions.js.map +0 -1
- package/lib/actions/project-actions.js +0 -333
- package/lib/actions/project-actions.js.map +0 -1
- package/lib/actions/scene-actions.js +0 -44
- package/lib/actions/scene-actions.js.map +0 -1
- package/lib/actions/user-actions.js +0 -69
- package/lib/actions/user-actions.js.map +0 -1
- package/lib/actions/vertices-actions.js +0 -36
- package/lib/actions/vertices-actions.js.map +0 -1
- package/lib/actions/viewer2d-actions.js +0 -74
- package/lib/actions/viewer2d-actions.js.map +0 -1
- package/lib/actions/viewer3d-actions.js +0 -33
- package/lib/actions/viewer3d-actions.js.map +0 -1
- package/lib/catalog/areas/area/planner-element.js +0 -47
- package/lib/catalog/areas/area/planner-element.js.map +0 -1
- package/lib/catalog/catalog.js +0 -283
- package/lib/catalog/catalog.js.map +0 -1
- package/lib/catalog/factories/area-factory-3d.js +0 -192
- package/lib/catalog/factories/area-factory-3d.js.map +0 -1
- package/lib/catalog/factories/area-factory.js +0 -90
- package/lib/catalog/factories/area-factory.js.map +0 -1
- package/lib/catalog/factories/export.js +0 -26
- package/lib/catalog/factories/export.js.map +0 -1
- package/lib/catalog/factories/wall-factory-3d.js +0 -213
- package/lib/catalog/factories/wall-factory-3d.js.map +0 -1
- package/lib/catalog/factories/wall-factory.js +0 -279
- package/lib/catalog/factories/wall-factory.js.map +0 -1
- package/lib/catalog/holes/door-closet/planner-element.js +0 -232
- package/lib/catalog/holes/door-closet/planner-element.js.map +0 -1
- package/lib/catalog/holes/door-double/planner-element.js +0 -325
- package/lib/catalog/holes/door-double/planner-element.js.map +0 -1
- package/lib/catalog/holes/door-exterior/planner-element.js +0 -225
- package/lib/catalog/holes/door-exterior/planner-element.js.map +0 -1
- package/lib/catalog/holes/door-interior/planner-element.js +0 -237
- package/lib/catalog/holes/door-interior/planner-element.js.map +0 -1
- package/lib/catalog/holes/door-panic/planner-element.js +0 -513
- package/lib/catalog/holes/door-panic/planner-element.js.map +0 -1
- package/lib/catalog/holes/door-panic-double/planner-element.js +0 -473
- package/lib/catalog/holes/door-panic-double/planner-element.js.map +0 -1
- package/lib/catalog/holes/door-sliding/planner-element.js +0 -235
- package/lib/catalog/holes/door-sliding/planner-element.js.map +0 -1
- package/lib/catalog/holes/doorway-framed/planner-element.js +0 -155
- package/lib/catalog/holes/doorway-framed/planner-element.js.map +0 -1
- package/lib/catalog/holes/doorway-frameless/planner-element.js +0 -114
- package/lib/catalog/holes/doorway-frameless/planner-element.js.map +0 -1
- package/lib/catalog/holes/window-clear/planner-element.js +0 -176
- package/lib/catalog/holes/window-clear/planner-element.js.map +0 -1
- package/lib/catalog/holes/window-cross/planner-element.js +0 -175
- package/lib/catalog/holes/window-cross/planner-element.js.map +0 -1
- package/lib/catalog/holes/window-double-hung/planner-element.js +0 -313
- package/lib/catalog/holes/window-double-hung/planner-element.js.map +0 -1
- package/lib/catalog/holes/window-vertical/planner-element.js +0 -286
- package/lib/catalog/holes/window-vertical/planner-element.js.map +0 -1
- package/lib/catalog/lines/wall/planner-element.js +0 -77
- package/lib/catalog/lines/wall/planner-element.js.map +0 -1
- package/lib/catalog/molding/molding-dcm/planner-element.js +0 -39
- package/lib/catalog/molding/molding-dcm/planner-element.js.map +0 -1
- package/lib/catalog/molding/molding-fbm/planner-element.js +0 -39
- package/lib/catalog/molding/molding-fbm/planner-element.js.map +0 -1
- package/lib/catalog/molding/molding-lrm/planner-element.js +0 -39
- package/lib/catalog/molding/molding-lrm/planner-element.js.map +0 -1
- package/lib/catalog/properties/export.js +0 -82
- package/lib/catalog/properties/export.js.map +0 -1
- package/lib/catalog/properties/property-checkbox.js +0 -79
- package/lib/catalog/properties/property-checkbox.js.map +0 -1
- package/lib/catalog/properties/property-color.js +0 -47
- package/lib/catalog/properties/property-color.js.map +0 -1
- package/lib/catalog/properties/property-enum.js +0 -63
- package/lib/catalog/properties/property-enum.js.map +0 -1
- package/lib/catalog/properties/property-hidden.js +0 -27
- package/lib/catalog/properties/property-hidden.js.map +0 -1
- package/lib/catalog/properties/property-lenght-measure.js +0 -109
- package/lib/catalog/properties/property-lenght-measure.js.map +0 -1
- package/lib/catalog/properties/property-length-measure.js +0 -93
- package/lib/catalog/properties/property-length-measure.js.map +0 -1
- package/lib/catalog/properties/property-length-measure_hole.js +0 -109
- package/lib/catalog/properties/property-length-measure_hole.js.map +0 -1
- package/lib/catalog/properties/property-number.js +0 -56
- package/lib/catalog/properties/property-number.js.map +0 -1
- package/lib/catalog/properties/property-read-only.js +0 -34
- package/lib/catalog/properties/property-read-only.js.map +0 -1
- package/lib/catalog/properties/property-string.js +0 -56
- package/lib/catalog/properties/property-string.js.map +0 -1
- package/lib/catalog/properties/property-toggle.js +0 -47
- package/lib/catalog/properties/property-toggle.js.map +0 -1
- package/lib/catalog/properties/shared-property-style.js +0 -21
- package/lib/catalog/properties/shared-property-style.js.map +0 -1
- package/lib/catalog/utils/FuseUtils.js +0 -89
- package/lib/catalog/utils/FuseUtils.js.map +0 -1
- package/lib/catalog/utils/exporter.js +0 -156
- package/lib/catalog/utils/exporter.js.map +0 -1
- package/lib/catalog/utils/geom-utils.js +0 -206
- package/lib/catalog/utils/geom-utils.js.map +0 -1
- package/lib/catalog/utils/item-loader.js +0 -1534
- package/lib/catalog/utils/item-loader.js.map +0 -1
- package/lib/catalog/utils/load-obj.js +0 -100
- package/lib/catalog/utils/load-obj.js.map +0 -1
- package/lib/catalog/utils/mtl-loader.js +0 -360
- package/lib/catalog/utils/mtl-loader.js.map +0 -1
- package/lib/catalog/utils/obj-loader.js +0 -479
- package/lib/catalog/utils/obj-loader.js.map +0 -1
- package/lib/class/FuseUtils.js +0 -89
- package/lib/class/FuseUtils.js.map +0 -1
- package/lib/class/area.js +0 -151
- package/lib/class/area.js.map +0 -1
- package/lib/class/export.js +0 -97
- package/lib/class/export.js.map +0 -1
- package/lib/class/group.js +0 -446
- package/lib/class/group.js.map +0 -1
- package/lib/class/guide.js +0 -68
- package/lib/class/guide.js.map +0 -1
- package/lib/class/hole.js +0 -935
- package/lib/class/hole.js.map +0 -1
- package/lib/class/item.js +0 -1894
- package/lib/class/item.js.map +0 -1
- package/lib/class/layer.js +0 -673
- package/lib/class/layer.js.map +0 -1
- package/lib/class/line.js +0 -1296
- package/lib/class/line.js.map +0 -1
- package/lib/class/project.js +0 -829
- package/lib/class/project.js.map +0 -1
- package/lib/class/vertex.js +0 -272
- package/lib/class/vertex.js.map +0 -1
- package/lib/components/atoms/Snackbar/index.js +0 -57
- package/lib/components/atoms/Snackbar/index.js.map +0 -1
- package/lib/components/atoms/radio-button/index.js +0 -33
- package/lib/components/atoms/radio-button/index.js.map +0 -1
- package/lib/components/atoms/radio-button/styles.js +0 -12
- package/lib/components/atoms/radio-button/styles.js.map +0 -1
- package/lib/components/button/MainButton.js +0 -98
- package/lib/components/button/MainButton.js.map +0 -1
- package/lib/components/button/ToggleMeasureButton.js +0 -63
- package/lib/components/button/ToggleMeasureButton.js.map +0 -1
- package/lib/components/catalog-view/catalog-breadcrumb.js +0 -61
- package/lib/components/catalog-view/catalog-breadcrumb.js.map +0 -1
- package/lib/components/catalog-view/catalog-item.js +0 -233
- package/lib/components/catalog-view/catalog-item.js.map +0 -1
- package/lib/components/catalog-view/catalog-list.js +0 -189
- package/lib/components/catalog-view/catalog-list.js.map +0 -1
- package/lib/components/catalog-view/catalog-page-item.js +0 -137
- package/lib/components/catalog-view/catalog-page-item.js.map +0 -1
- package/lib/components/catalog-view/catalog-turn-back-page-item.js +0 -113
- package/lib/components/catalog-view/catalog-turn-back-page-item.js.map +0 -1
- package/lib/components/configurator/custom-configurator.js +0 -101
- package/lib/components/configurator/custom-configurator.js.map +0 -1
- package/lib/components/configurator/project-configurator.js +0 -138
- package/lib/components/configurator/project-configurator.js.map +0 -1
- package/lib/components/content.js +0 -132
- package/lib/components/content.js.map +0 -1
- package/lib/components/export.js +0 -90
- package/lib/components/export.js.map +0 -1
- package/lib/components/firstsetting/button/styles.js +0 -34
- package/lib/components/firstsetting/button/styles.js.map +0 -1
- package/lib/components/firstsetting/export.js +0 -16
- package/lib/components/firstsetting/export.js.map +0 -1
- package/lib/components/firstsetting/firstsetting-content-button.js +0 -224
- package/lib/components/firstsetting/firstsetting-content-button.js.map +0 -1
- package/lib/components/firstsetting/firstsetting-toggle-button.js +0 -133
- package/lib/components/firstsetting/firstsetting-toggle-button.js.map +0 -1
- package/lib/components/firstsetting/firstsetting.js +0 -633
- package/lib/components/firstsetting/firstsetting.js.map +0 -1
- package/lib/components/footerbar/button/ControlButton.js +0 -79
- package/lib/components/footerbar/button/ControlButton.js.map +0 -1
- package/lib/components/footerbar/button/DirectionButton.js +0 -76
- package/lib/components/footerbar/button/DirectionButton.js.map +0 -1
- package/lib/components/footerbar/button/DirectionPanSpinButton.js +0 -57
- package/lib/components/footerbar/button/DirectionPanSpinButton.js.map +0 -1
- package/lib/components/footerbar/button/ToggleButton.js +0 -83
- package/lib/components/footerbar/button/ToggleButton.js.map +0 -1
- package/lib/components/footerbar/button/ToggleConvertButton.js +0 -80
- package/lib/components/footerbar/button/ToggleConvertButton.js.map +0 -1
- package/lib/components/footerbar/button/ToggleMeasureButton.js +0 -59
- package/lib/components/footerbar/button/ToggleMeasureButton.js.map +0 -1
- package/lib/components/footerbar/button/styles.js +0 -29
- package/lib/components/footerbar/button/styles.js.map +0 -1
- package/lib/components/footerbar/export.js +0 -16
- package/lib/components/footerbar/export.js.map +0 -1
- package/lib/components/footerbar/footer-content-button.js +0 -224
- package/lib/components/footerbar/footer-content-button.js.map +0 -1
- package/lib/components/footerbar/footer-toggle-button.js +0 -133
- package/lib/components/footerbar/footer-toggle-button.js.map +0 -1
- package/lib/components/footerbar/footerbar.js +0 -808
- package/lib/components/footerbar/footerbar.js.map +0 -1
- package/lib/components/footerbar/styles.js +0 -41
- package/lib/components/footerbar/styles.js.map +0 -1
- package/lib/components/header/button/MenuButton.js +0 -77
- package/lib/components/header/button/MenuButton.js.map +0 -1
- package/lib/components/header/button/SaveButton.js +0 -57
- package/lib/components/header/button/SaveButton.js.map +0 -1
- package/lib/components/header/button/styles.js +0 -68
- package/lib/components/header/button/styles.js.map +0 -1
- package/lib/components/header/export.js +0 -12
- package/lib/components/header/export.js.map +0 -1
- package/lib/components/header/header.js +0 -556
- package/lib/components/header/header.js.map +0 -1
- package/lib/components/header/styles.js +0 -47
- package/lib/components/header/styles.js.map +0 -1
- package/lib/components/login/Login.js +0 -94
- package/lib/components/login/Login.js.map +0 -1
- package/lib/components/login/LoginForm/index.js +0 -140
- package/lib/components/login/LoginForm/index.js.map +0 -1
- package/lib/components/login/Register.js +0 -104
- package/lib/components/login/Register.js.map +0 -1
- package/lib/components/login/RegisterForm/index.js +0 -237
- package/lib/components/login/RegisterForm/index.js.map +0 -1
- package/lib/components/login/jwtService.js +0 -239
- package/lib/components/login/jwtService.js.map +0 -1
- package/lib/components/molecules/slider/index.js +0 -22
- package/lib/components/molecules/slider/index.js.map +0 -1
- package/lib/components/molecules/slider/styles.js +0 -2
- package/lib/components/molecules/slider/styles.js.map +0 -1
- package/lib/components/myprojects/export.js +0 -12
- package/lib/components/myprojects/export.js.map +0 -1
- package/lib/components/myprojects/index.js +0 -453
- package/lib/components/myprojects/index.js.map +0 -1
- package/lib/components/myprojects/styles.js +0 -31
- package/lib/components/myprojects/styles.js.map +0 -1
- package/lib/components/sidebar/custom-accordion.js +0 -45
- package/lib/components/sidebar/custom-accordion.js.map +0 -1
- package/lib/components/sidebar/export.js +0 -50
- package/lib/components/sidebar/export.js.map +0 -1
- package/lib/components/sidebar/panel-element-editor/attributes-editor/attributes-editor.js +0 -74
- package/lib/components/sidebar/panel-element-editor/attributes-editor/attributes-editor.js.map +0 -1
- package/lib/components/sidebar/panel-element-editor/attributes-editor/confirm-popup.js +0 -124
- package/lib/components/sidebar/panel-element-editor/attributes-editor/confirm-popup.js.map +0 -1
- package/lib/components/sidebar/panel-element-editor/attributes-editor/hole-attributes-editor.js +0 -135
- package/lib/components/sidebar/panel-element-editor/attributes-editor/hole-attributes-editor.js.map +0 -1
- package/lib/components/sidebar/panel-element-editor/attributes-editor/item-attributes-editor.js +0 -260
- package/lib/components/sidebar/panel-element-editor/attributes-editor/item-attributes-editor.js.map +0 -1
- package/lib/components/sidebar/panel-element-editor/attributes-editor/line-attributes-editor.js +0 -84
- package/lib/components/sidebar/panel-element-editor/attributes-editor/line-attributes-editor.js.map +0 -1
- package/lib/components/sidebar/panel-element-editor/element-editor.js +0 -884
- package/lib/components/sidebar/panel-element-editor/element-editor.js.map +0 -1
- package/lib/components/sidebar/panel-element-editor/multi-elements-editor.js +0 -2
- package/lib/components/sidebar/panel-element-editor/multi-elements-editor.js.map +0 -1
- package/lib/components/sidebar/panel-element-editor/panel-element-editor.js +0 -56
- package/lib/components/sidebar/panel-element-editor/panel-element-editor.js.map +0 -1
- package/lib/components/sidebar/panel-element-editor/panel-multi-elements-editor.js +0 -125
- package/lib/components/sidebar/panel-element-editor/panel-multi-elements-editor.js.map +0 -1
- package/lib/components/sidebar/panel-group-editor.js +0 -218
- package/lib/components/sidebar/panel-group-editor.js.map +0 -1
- package/lib/components/sidebar/panel-groups.js +0 -274
- package/lib/components/sidebar/panel-groups.js.map +0 -1
- package/lib/components/sidebar/panel-guides.js +0 -192
- package/lib/components/sidebar/panel-guides.js.map +0 -1
- package/lib/components/sidebar/panel-layer-elements.js +0 -258
- package/lib/components/sidebar/panel-layer-elements.js.map +0 -1
- package/lib/components/sidebar/panel-layers.js +0 -347
- package/lib/components/sidebar/panel-layers.js.map +0 -1
- package/lib/components/sidebar/panel.js +0 -110
- package/lib/components/sidebar/panel.js.map +0 -1
- package/lib/components/sidebar/sidebar.js +0 -117
- package/lib/components/sidebar/sidebar.js.map +0 -1
- package/lib/components/sidebar/toolbar-panel.js +0 -171
- package/lib/components/sidebar/toolbar-panel.js.map +0 -1
- package/lib/components/sign/export.js +0 -18
- package/lib/components/sign/export.js.map +0 -1
- package/lib/components/sign/main/index.js +0 -567
- package/lib/components/sign/main/index.js.map +0 -1
- package/lib/components/sign/main/styles.js +0 -27
- package/lib/components/sign/main/styles.js.map +0 -1
- package/lib/components/style/button.js +0 -121
- package/lib/components/style/button.js.map +0 -1
- package/lib/components/style/cancel-button.js +0 -30
- package/lib/components/style/cancel-button.js.map +0 -1
- package/lib/components/style/content-container.js +0 -41
- package/lib/components/style/content-container.js.map +0 -1
- package/lib/components/style/content-title.js +0 -38
- package/lib/components/style/content-title.js.map +0 -1
- package/lib/components/style/delete-button.js +0 -35
- package/lib/components/style/delete-button.js.map +0 -1
- package/lib/components/style/export.js +0 -122
- package/lib/components/style/export.js.map +0 -1
- package/lib/components/style/form-block.js +0 -32
- package/lib/components/style/form-block.js.map +0 -1
- package/lib/components/style/form-color-input.js +0 -35
- package/lib/components/style/form-color-input.js.map +0 -1
- package/lib/components/style/form-label.js +0 -34
- package/lib/components/style/form-label.js.map +0 -1
- package/lib/components/style/form-number-input.js +0 -197
- package/lib/components/style/form-number-input.js.map +0 -1
- package/lib/components/style/form-number-input_2.js +0 -214
- package/lib/components/style/form-number-input_2.js.map +0 -1
- package/lib/components/style/form-select.js +0 -30
- package/lib/components/style/form-select.js.map +0 -1
- package/lib/components/style/form-slider.js +0 -53
- package/lib/components/style/form-slider.js.map +0 -1
- package/lib/components/style/form-submit-button.js +0 -36
- package/lib/components/style/form-submit-button.js.map +0 -1
- package/lib/components/style/form-text-input.js +0 -84
- package/lib/components/style/form-text-input.js.map +0 -1
- package/lib/components/toolbar/button/ControlButton.js +0 -76
- package/lib/components/toolbar/button/ControlButton.js.map +0 -1
- package/lib/components/toolbar/button/DirectionButton.js +0 -57
- package/lib/components/toolbar/button/DirectionButton.js.map +0 -1
- package/lib/components/toolbar/button/RightButton.js +0 -140
- package/lib/components/toolbar/button/RightButton.js.map +0 -1
- package/lib/components/toolbar/button/ToggleButton.js +0 -66
- package/lib/components/toolbar/button/ToggleButton.js.map +0 -1
- package/lib/components/toolbar/button/index.js +0 -94
- package/lib/components/toolbar/button/index.js.map +0 -1
- package/lib/components/toolbar/button/styles.js +0 -21
- package/lib/components/toolbar/button/styles.js.map +0 -1
- package/lib/components/toolbar/components/DoorStyleMenu.js +0 -112
- package/lib/components/toolbar/components/DoorStyleMenu.js.map +0 -1
- package/lib/components/toolbar/components/Pricing.js +0 -110
- package/lib/components/toolbar/components/Pricing.js.map +0 -1
- package/lib/components/toolbar/components/ReviewForQuote.js +0 -485
- package/lib/components/toolbar/components/ReviewForQuote.js.map +0 -1
- package/lib/components/toolbar/export.js +0 -50
- package/lib/components/toolbar/export.js.map +0 -1
- package/lib/components/toolbar/main/Alert.js +0 -132
- package/lib/components/toolbar/main/Alert.js.map +0 -1
- package/lib/components/toolbar/main/TakePictureModal.js +0 -109
- package/lib/components/toolbar/main/TakePictureModal.js.map +0 -1
- package/lib/components/toolbar/main/confirm-popup.js +0 -95
- package/lib/components/toolbar/main/confirm-popup.js.map +0 -1
- package/lib/components/toolbar/main/index.js +0 -4619
- package/lib/components/toolbar/main/index.js.map +0 -1
- package/lib/components/toolbar/main/myComponents.js +0 -125
- package/lib/components/toolbar/main/myComponents.js.map +0 -1
- package/lib/components/toolbar/main/styles.js +0 -73
- package/lib/components/toolbar/main/styles.js.map +0 -1
- package/lib/components/toolbar/plugin-item.js +0 -156
- package/lib/components/toolbar/plugin-item.js.map +0 -1
- package/lib/components/toolbar/popup/appliance/appliance-category/index.js +0 -86
- package/lib/components/toolbar/popup/appliance/appliance-category/index.js.map +0 -1
- package/lib/components/toolbar/popup/appliance/choose-appliance/index.js +0 -85
- package/lib/components/toolbar/popup/appliance/choose-appliance/index.js.map +0 -1
- package/lib/components/toolbar/popup/appliance/index.js +0 -89
- package/lib/components/toolbar/popup/appliance/index.js.map +0 -1
- package/lib/components/toolbar/popup/autosaveprompt/index.js +0 -99
- package/lib/components/toolbar/popup/autosaveprompt/index.js.map +0 -1
- package/lib/components/toolbar/popup/autosaveprompt/styles.js +0 -16
- package/lib/components/toolbar/popup/autosaveprompt/styles.js.map +0 -1
- package/lib/components/toolbar/popup/cabinet/cabinet-category/index.js +0 -86
- package/lib/components/toolbar/popup/cabinet/cabinet-category/index.js.map +0 -1
- package/lib/components/toolbar/popup/cabinet/choose-product/index.js +0 -107
- package/lib/components/toolbar/popup/cabinet/choose-product/index.js.map +0 -1
- package/lib/components/toolbar/popup/cabinet/index.js +0 -91
- package/lib/components/toolbar/popup/cabinet/index.js.map +0 -1
- package/lib/components/toolbar/popup/doorStyle/choose-style/index.js +0 -59
- package/lib/components/toolbar/popup/doorStyle/choose-style/index.js.map +0 -1
- package/lib/components/toolbar/popup/doorStyle/index.js +0 -68
- package/lib/components/toolbar/popup/doorStyle/index.js.map +0 -1
- package/lib/components/toolbar/popup/doorStyle/style-category/index.js +0 -152
- package/lib/components/toolbar/popup/doorStyle/style-category/index.js.map +0 -1
- package/lib/components/toolbar/popup/downloadsummary/downloadSummaryContext.js +0 -9
- package/lib/components/toolbar/popup/downloadsummary/downloadSummaryContext.js.map +0 -1
- package/lib/components/toolbar/popup/downloadsummary/downloadSummaryTemp.js +0 -128
- package/lib/components/toolbar/popup/downloadsummary/downloadSummaryTemp.js.map +0 -1
- package/lib/components/toolbar/popup/downloadsummary/index.js +0 -572
- package/lib/components/toolbar/popup/downloadsummary/index.js.map +0 -1
- package/lib/components/toolbar/popup/downloadsummary/show2D/show2DView.js +0 -60
- package/lib/components/toolbar/popup/downloadsummary/show2D/show2DView.js.map +0 -1
- package/lib/components/toolbar/popup/downloadsummary/show2D/viewer2DDownLoad.js +0 -200
- package/lib/components/toolbar/popup/downloadsummary/show2D/viewer2DDownLoad.js.map +0 -1
- package/lib/components/toolbar/popup/downloadsummary/show3D/show3DView.js +0 -254
- package/lib/components/toolbar/popup/downloadsummary/show3D/show3DView.js.map +0 -1
- package/lib/components/toolbar/popup/downloadsummary/show3D/viewer3DDownLoad.js +0 -1762
- package/lib/components/toolbar/popup/downloadsummary/show3D/viewer3DDownLoad.js.map +0 -1
- package/lib/components/toolbar/popup/downloadsummary/showCabinetInfo.js +0 -96
- package/lib/components/toolbar/popup/downloadsummary/showCabinetInfo.js.map +0 -1
- package/lib/components/toolbar/popup/downloadsummary/showElevation/showElevationView.js +0 -125
- package/lib/components/toolbar/popup/downloadsummary/showElevation/showElevationView.js.map +0 -1
- package/lib/components/toolbar/popup/downloadsummary/showElevation/viewer3DElevationDownload.js +0 -1713
- package/lib/components/toolbar/popup/downloadsummary/showElevation/viewer3DElevationDownload.js.map +0 -1
- package/lib/components/toolbar/popup/downloadsummary/showElevation/viewerElevationDownload.js +0 -184
- package/lib/components/toolbar/popup/downloadsummary/showElevation/viewerElevationDownload.js.map +0 -1
- package/lib/components/toolbar/popup/downloadsummary/showWarranty.js +0 -115
- package/lib/components/toolbar/popup/downloadsummary/showWarranty.js.map +0 -1
- package/lib/components/toolbar/popup/downloadsummary/styles.js +0 -47
- package/lib/components/toolbar/popup/downloadsummary/styles.js.map +0 -1
- package/lib/components/toolbar/popup/finishingtouch/category/index.js +0 -44
- package/lib/components/toolbar/popup/finishingtouch/category/index.js.map +0 -1
- package/lib/components/toolbar/popup/finishingtouch/index.js +0 -54
- package/lib/components/toolbar/popup/finishingtouch/index.js.map +0 -1
- package/lib/components/toolbar/popup/finishingtouch/material-edit.js +0 -163
- package/lib/components/toolbar/popup/finishingtouch/material-edit.js.map +0 -1
- package/lib/components/toolbar/popup/finishingtouch/product/index.js +0 -65
- package/lib/components/toolbar/popup/finishingtouch/product/index.js.map +0 -1
- package/lib/components/toolbar/popup/floorplan/choose-floor/confirm-popup.js +0 -124
- package/lib/components/toolbar/popup/floorplan/choose-floor/confirm-popup.js.map +0 -1
- package/lib/components/toolbar/popup/floorplan/choose-floor/index.js +0 -255
- package/lib/components/toolbar/popup/floorplan/choose-floor/index.js.map +0 -1
- package/lib/components/toolbar/popup/floorplan/choose-floor/styles.js +0 -20
- package/lib/components/toolbar/popup/floorplan/choose-floor/styles.js.map +0 -1
- package/lib/components/toolbar/popup/floorplan/floor-category/index.js +0 -99
- package/lib/components/toolbar/popup/floorplan/floor-category/index.js.map +0 -1
- package/lib/components/toolbar/popup/floorplan/index.js +0 -56
- package/lib/components/toolbar/popup/floorplan/index.js.map +0 -1
- package/lib/components/toolbar/popup/index.js +0 -195
- package/lib/components/toolbar/popup/index.js.map +0 -1
- package/lib/components/toolbar/popup/newproject/index.js +0 -75
- package/lib/components/toolbar/popup/newproject/index.js.map +0 -1
- package/lib/components/toolbar/popup/newproject/styles.js +0 -16
- package/lib/components/toolbar/popup/newproject/styles.js.map +0 -1
- package/lib/components/toolbar/popup/product/appliance.js +0 -73
- package/lib/components/toolbar/popup/product/appliance.js.map +0 -1
- package/lib/components/toolbar/popup/product/cabinetproduct.js +0 -33
- package/lib/components/toolbar/popup/product/cabinetproduct.js.map +0 -1
- package/lib/components/toolbar/popup/product/doorstyle.js +0 -59
- package/lib/components/toolbar/popup/product/doorstyle.js.map +0 -1
- package/lib/components/toolbar/popup/product/doorstyleproduct.js +0 -59
- package/lib/components/toolbar/popup/product/doorstyleproduct.js.map +0 -1
- package/lib/components/toolbar/popup/product/floor.js +0 -59
- package/lib/components/toolbar/popup/product/floor.js.map +0 -1
- package/lib/components/toolbar/popup/product/floorproduct.js +0 -68
- package/lib/components/toolbar/popup/product/floorproduct.js.map +0 -1
- package/lib/components/toolbar/popup/product/index.js +0 -59
- package/lib/components/toolbar/popup/product/index.js.map +0 -1
- package/lib/components/toolbar/popup/product/primary.js +0 -71
- package/lib/components/toolbar/popup/product/primary.js.map +0 -1
- package/lib/components/toolbar/popup/product/productline.js +0 -128
- package/lib/components/toolbar/popup/product/productline.js.map +0 -1
- package/lib/components/toolbar/popup/product/reviewItem.js +0 -346
- package/lib/components/toolbar/popup/product/reviewItem.js.map +0 -1
- package/lib/components/toolbar/popup/product/reviewMolding.js +0 -291
- package/lib/components/toolbar/popup/product/reviewMolding.js.map +0 -1
- package/lib/components/toolbar/popup/product/styles.js +0 -79
- package/lib/components/toolbar/popup/product/styles.js.map +0 -1
- package/lib/components/toolbar/popup/savedesign/FullPictureForm.js +0 -169
- package/lib/components/toolbar/popup/savedesign/FullPictureForm.js.map +0 -1
- package/lib/components/toolbar/popup/savedesign/index.js +0 -516
- package/lib/components/toolbar/popup/savedesign/index.js.map +0 -1
- package/lib/components/toolbar/popup/savedesign/styles.js +0 -26
- package/lib/components/toolbar/popup/savedesign/styles.js.map +0 -1
- package/lib/components/toolbar/popup/setDoorStyleOption/index.js +0 -64
- package/lib/components/toolbar/popup/setDoorStyleOption/index.js.map +0 -1
- package/lib/components/toolbar/popup/styles.js +0 -104
- package/lib/components/toolbar/popup/styles.js.map +0 -1
- package/lib/components/toolbar/popup/submitforquote/AddToCartOptions.js +0 -166
- package/lib/components/toolbar/popup/submitforquote/AddToCartOptions.js.map +0 -1
- package/lib/components/toolbar/popup/submitforquote/CustomerRequestsForm.js +0 -93
- package/lib/components/toolbar/popup/submitforquote/CustomerRequestsForm.js.map +0 -1
- package/lib/components/toolbar/popup/submitforquote/SkipDesignerReview.js +0 -45
- package/lib/components/toolbar/popup/submitforquote/SkipDesignerReview.js.map +0 -1
- package/lib/components/toolbar/popup/submitforquote/StepDots.js +0 -40
- package/lib/components/toolbar/popup/submitforquote/StepDots.js.map +0 -1
- package/lib/components/toolbar/popup/submitforquote/cart-choice.js +0 -141
- package/lib/components/toolbar/popup/submitforquote/cart-choice.js.map +0 -1
- package/lib/components/toolbar/popup/submitforquote/doorstyle-menus.js +0 -50
- package/lib/components/toolbar/popup/submitforquote/doorstyle-menus.js.map +0 -1
- package/lib/components/toolbar/popup/submitforquote/index.js +0 -698
- package/lib/components/toolbar/popup/submitforquote/index.js.map +0 -1
- package/lib/components/toolbar/popup/submitforquote/styles.js +0 -38
- package/lib/components/toolbar/popup/submitforquote/styles.js.map +0 -1
- package/lib/components/toolbar/popup/submitprompt/index.js +0 -79
- package/lib/components/toolbar/popup/submitprompt/index.js.map +0 -1
- package/lib/components/toolbar/popup/submitprompt/styles.js +0 -16
- package/lib/components/toolbar/popup/submitprompt/styles.js.map +0 -1
- package/lib/components/toolbar/toolbar-button.js +0 -111
- package/lib/components/toolbar/toolbar-button.js.map +0 -1
- package/lib/components/toolbar/toolbar-load-button.js +0 -36
- package/lib/components/toolbar/toolbar-load-button.js.map +0 -1
- package/lib/components/toolbar/toolbar-save-button.js +0 -34
- package/lib/components/toolbar/toolbar-save-button.js.map +0 -1
- package/lib/components/tutorial-view/Modal.js +0 -503
- package/lib/components/tutorial-view/Modal.js.map +0 -1
- package/lib/components/tutorial-view/styles.js +0 -13
- package/lib/components/tutorial-view/styles.js.map +0 -1
- package/lib/components/viewer2d/area.js +0 -90
- package/lib/components/viewer2d/area.js.map +0 -1
- package/lib/components/viewer2d/export.js +0 -122
- package/lib/components/viewer2d/export.js.map +0 -1
- package/lib/components/viewer2d/grids/grid-horizontal-streak.js +0 -45
- package/lib/components/viewer2d/grids/grid-horizontal-streak.js.map +0 -1
- package/lib/components/viewer2d/grids/grid-streak.js +0 -45
- package/lib/components/viewer2d/grids/grid-streak.js.map +0 -1
- package/lib/components/viewer2d/grids/grid-vertical-streak.js +0 -45
- package/lib/components/viewer2d/grids/grid-vertical-streak.js.map +0 -1
- package/lib/components/viewer2d/grids/grids.js +0 -45
- package/lib/components/viewer2d/grids/grids.js.map +0 -1
- package/lib/components/viewer2d/group.js +0 -63
- package/lib/components/viewer2d/group.js.map +0 -1
- package/lib/components/viewer2d/item.js +0 -522
- package/lib/components/viewer2d/item.js.map +0 -1
- package/lib/components/viewer2d/layer.js +0 -172
- package/lib/components/viewer2d/layer.js.map +0 -1
- package/lib/components/viewer2d/line.js +0 -899
- package/lib/components/viewer2d/line.js.map +0 -1
- package/lib/components/viewer2d/ruler.js +0 -108
- package/lib/components/viewer2d/ruler.js.map +0 -1
- package/lib/components/viewer2d/rulerDist.js +0 -154
- package/lib/components/viewer2d/rulerDist.js.map +0 -1
- package/lib/components/viewer2d/rulerX.js +0 -159
- package/lib/components/viewer2d/rulerX.js.map +0 -1
- package/lib/components/viewer2d/rulerY.js +0 -161
- package/lib/components/viewer2d/rulerY.js.map +0 -1
- package/lib/components/viewer2d/scene.js +0 -148
- package/lib/components/viewer2d/scene.js.map +0 -1
- package/lib/components/viewer2d/snap.js +0 -84
- package/lib/components/viewer2d/snap.js.map +0 -1
- package/lib/components/viewer2d/state.js +0 -88
- package/lib/components/viewer2d/state.js.map +0 -1
- package/lib/components/viewer2d/utils.js +0 -174
- package/lib/components/viewer2d/utils.js.map +0 -1
- package/lib/components/viewer2d/vertex.js +0 -76
- package/lib/components/viewer2d/vertex.js.map +0 -1
- package/lib/components/viewer2d/viewer2d.js +0 -1409
- package/lib/components/viewer2d/viewer2d.js.map +0 -1
- package/lib/components/viewer3d/camera-controls-module/camera-controls.module.js +0 -2598
- package/lib/components/viewer3d/camera-controls-module/camera-controls.module.js.map +0 -1
- package/lib/components/viewer3d/dcm.js +0 -408
- package/lib/components/viewer3d/dcm.js.map +0 -1
- package/lib/components/viewer3d/fbm.js +0 -421
- package/lib/components/viewer3d/fbm.js.map +0 -1
- package/lib/components/viewer3d/front3D.js +0 -76
- package/lib/components/viewer3d/front3D.js.map +0 -1
- package/lib/components/viewer3d/grid-creator.js +0 -35
- package/lib/components/viewer3d/grid-creator.js.map +0 -1
- package/lib/components/viewer3d/grids/grid-horizontal-streak.js +0 -45
- package/lib/components/viewer3d/grids/grid-horizontal-streak.js.map +0 -1
- package/lib/components/viewer3d/grids/grid-streak.js +0 -36
- package/lib/components/viewer3d/grids/grid-streak.js.map +0 -1
- package/lib/components/viewer3d/grids/grid-vertical-streak.js +0 -45
- package/lib/components/viewer3d/grids/grid-vertical-streak.js.map +0 -1
- package/lib/components/viewer3d/libs/first-person-controls.js +0 -75
- package/lib/components/viewer3d/libs/first-person-controls.js.map +0 -1
- package/lib/components/viewer3d/libs/helvetiker_regular.typeface.js +0 -1288
- package/lib/components/viewer3d/libs/helvetiker_regular.typeface.js.map +0 -1
- package/lib/components/viewer3d/libs/mtl-loader.js +0 -360
- package/lib/components/viewer3d/libs/mtl-loader.js.map +0 -1
- package/lib/components/viewer3d/libs/obj-loader.js +0 -465
- package/lib/components/viewer3d/libs/obj-loader.js.map +0 -1
- package/lib/components/viewer3d/libs/orbit-controls.js +0 -701
- package/lib/components/viewer3d/libs/orbit-controls.js.map +0 -1
- package/lib/components/viewer3d/libs/pointer-lock-controls.js +0 -48
- package/lib/components/viewer3d/libs/pointer-lock-controls.js.map +0 -1
- package/lib/components/viewer3d/lrm.js +0 -312
- package/lib/components/viewer3d/lrm.js.map +0 -1
- package/lib/components/viewer3d/model.js +0 -715
- package/lib/components/viewer3d/model.js.map +0 -1
- package/lib/components/viewer3d/pointer-lock-navigation.js +0 -123
- package/lib/components/viewer3d/pointer-lock-navigation.js.map +0 -1
- package/lib/components/viewer3d/ruler-utils/itemRect.js +0 -69
- package/lib/components/viewer3d/ruler-utils/itemRect.js.map +0 -1
- package/lib/components/viewer3d/ruler-utils/layer3D.js +0 -503
- package/lib/components/viewer3d/ruler-utils/layer3D.js.map +0 -1
- package/lib/components/viewer3d/ruler-utils/ruler3D.js +0 -235
- package/lib/components/viewer3d/ruler-utils/ruler3D.js.map +0 -1
- package/lib/components/viewer3d/ruler-utils/scene3D.js +0 -70
- package/lib/components/viewer3d/ruler-utils/scene3D.js.map +0 -1
- package/lib/components/viewer3d/ruler-utils/state3D.js +0 -26
- package/lib/components/viewer3d/ruler-utils/state3D.js.map +0 -1
- package/lib/components/viewer3d/scene-creator.js +0 -3641
- package/lib/components/viewer3d/scene-creator.js.map +0 -1
- package/lib/components/viewer3d/three-memory-cleaner.js +0 -61
- package/lib/components/viewer3d/three-memory-cleaner.js.map +0 -1
- package/lib/components/viewer3d/viewer3d-first-person.js +0 -321
- package/lib/components/viewer3d/viewer3d-first-person.js.map +0 -1
- package/lib/components/viewer3d/viewer3d.js +0 -2508
- package/lib/components/viewer3d/viewer3d.js.map +0 -1
- package/lib/components/wizardstep/button/styles.js +0 -67
- package/lib/components/wizardstep/button/styles.js.map +0 -1
- package/lib/components/wizardstep/export.js +0 -12
- package/lib/components/wizardstep/export.js.map +0 -1
- package/lib/components/wizardstep/index.js +0 -978
- package/lib/components/wizardstep/index.js.map +0 -1
- package/lib/components/wizardstep/styles.js +0 -68
- package/lib/components/wizardstep/styles.js.map +0 -1
- package/lib/components/wizardstep/wizardstep-content-button.js +0 -224
- package/lib/components/wizardstep/wizardstep-content-button.js.map +0 -1
- package/lib/components/wizardstep/wizardstep-toggle-button.js +0 -133
- package/lib/components/wizardstep/wizardstep-toggle-button.js.map +0 -1
- package/lib/constants.js +0 -646
- package/lib/constants.js.map +0 -1
- package/lib/hooks/useCheckCart.js +0 -60
- package/lib/hooks/useCheckCart.js.map +0 -1
- package/lib/hooks/useGetPricesBySku.js +0 -81
- package/lib/hooks/useGetPricesBySku.js.map +0 -1
- package/lib/hooks/useValidateToken.js +0 -207
- package/lib/hooks/useValidateToken.js.map +0 -1
- package/lib/index.js +0 -102
- package/lib/index.js.map +0 -1
- package/lib/models.js +0 -518
- package/lib/models.js.map +0 -1
- package/lib/plugins/SVGLoader.js +0 -1418
- package/lib/plugins/SVGLoader.js.map +0 -1
- package/lib/plugins/autosave.js +0 -40
- package/lib/plugins/autosave.js.map +0 -1
- package/lib/plugins/console-debugger.js +0 -45
- package/lib/plugins/console-debugger.js.map +0 -1
- package/lib/plugins/export.js +0 -34
- package/lib/plugins/export.js.map +0 -1
- package/lib/plugins/keyboard.js +0 -108
- package/lib/plugins/keyboard.js.map +0 -1
- package/lib/reducers/areas-reducer.js +0 -19
- package/lib/reducers/areas-reducer.js.map +0 -1
- package/lib/reducers/export.js +0 -98
- package/lib/reducers/export.js.map +0 -1
- package/lib/reducers/groups-reducer.js +0 -45
- package/lib/reducers/groups-reducer.js.map +0 -1
- package/lib/reducers/holes-reducer.js +0 -69
- package/lib/reducers/holes-reducer.js.map +0 -1
- package/lib/reducers/items-reducer.js +0 -147
- package/lib/reducers/items-reducer.js.map +0 -1
- package/lib/reducers/lines-reducer.js +0 -52
- package/lib/reducers/lines-reducer.js.map +0 -1
- package/lib/reducers/project-reducer.js +0 -136
- package/lib/reducers/project-reducer.js.map +0 -1
- package/lib/reducers/reducer.js +0 -27
- package/lib/reducers/reducer.js.map +0 -1
- package/lib/reducers/scene-reducer.js +0 -35
- package/lib/reducers/scene-reducer.js.map +0 -1
- package/lib/reducers/user-reducer.js +0 -48
- package/lib/reducers/user-reducer.js.map +0 -1
- package/lib/reducers/vertices-reducer.js +0 -26
- package/lib/reducers/vertices-reducer.js.map +0 -1
- package/lib/reducers/viewer2d-reducer.js +0 -83
- package/lib/reducers/viewer2d-reducer.js.map +0 -1
- package/lib/reducers/viewer3d-reducer.js +0 -64
- package/lib/reducers/viewer3d-reducer.js.map +0 -1
- package/lib/shared-style.js +0 -73
- package/lib/shared-style.js.map +0 -1
- package/lib/styles/export.js +0 -14
- package/lib/styles/export.js.map +0 -1
- package/lib/translator/en.js +0 -111
- package/lib/translator/en.js.map +0 -1
- package/lib/translator/it.js +0 -86
- package/lib/translator/it.js.map +0 -1
- package/lib/translator/ru.js +0 -86
- package/lib/translator/ru.js.map +0 -1
- package/lib/translator/translator.js +0 -91
- package/lib/translator/translator.js.map +0 -1
- package/lib/utils/browser.js +0 -41
- package/lib/utils/browser.js.map +0 -1
- package/lib/utils/email-validator.js +0 -11
- package/lib/utils/email-validator.js.map +0 -1
- package/lib/utils/export.js +0 -57
- package/lib/utils/export.js.map +0 -1
- package/lib/utils/geometry.js +0 -2329
- package/lib/utils/geometry.js.map +0 -1
- package/lib/utils/get-edges-of-subgraphs.js +0 -29
- package/lib/utils/get-edges-of-subgraphs.js.map +0 -1
- package/lib/utils/graph-cycles.js +0 -241
- package/lib/utils/graph-cycles.js.map +0 -1
- package/lib/utils/graph-inner-cycles.js +0 -55
- package/lib/utils/graph-inner-cycles.js.map +0 -1
- package/lib/utils/graph.js +0 -152
- package/lib/utils/graph.js.map +0 -1
- package/lib/utils/helper.js +0 -360
- package/lib/utils/helper.js.map +0 -1
- package/lib/utils/history.js +0 -37
- package/lib/utils/history.js.map +0 -1
- package/lib/utils/id-broker.js +0 -26
- package/lib/utils/id-broker.js.map +0 -1
- package/lib/utils/logger.js +0 -15
- package/lib/utils/logger.js.map +0 -1
- package/lib/utils/math.js +0 -58
- package/lib/utils/math.js.map +0 -1
- package/lib/utils/molding.js +0 -864
- package/lib/utils/molding.js.map +0 -1
- package/lib/utils/name-generator.js +0 -24
- package/lib/utils/name-generator.js.map +0 -1
- package/lib/utils/objects-utils.js +0 -61
- package/lib/utils/objects-utils.js.map +0 -1
- package/lib/utils/phone-validator.js +0 -11
- package/lib/utils/phone-validator.js.map +0 -1
- package/lib/utils/process-black-list.js +0 -25
- package/lib/utils/process-black-list.js.map +0 -1
- package/lib/utils/react-if.js +0 -25
- package/lib/utils/react-if.js.map +0 -1
- package/lib/utils/snap-scene.js +0 -106
- package/lib/utils/snap-scene.js.map +0 -1
- package/lib/utils/snap.js +0 -250
- package/lib/utils/snap.js.map +0 -1
- package/lib/utils/threeCSG.es6.js +0 -504
- package/lib/utils/threeCSG.es6.js.map +0 -1
- package/lib/version.js +0 -8
- package/lib/version.js.map +0 -1
|
@@ -1,479 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* @author mrdoob / http://mrdoob.com/
|
|
5
|
-
*/
|
|
6
|
-
var THREE = window.THREE || require('three');
|
|
7
|
-
var OBJLoader;
|
|
8
|
-
OBJLoader = function () {
|
|
9
|
-
// o object_name | g group_name
|
|
10
|
-
var object_pattern = /^[og]\s*(.+)?/;
|
|
11
|
-
// mtllib file_reference
|
|
12
|
-
var material_library_pattern = /^mtllib /;
|
|
13
|
-
// usemtl material_name
|
|
14
|
-
var material_use_pattern = /^usemtl /;
|
|
15
|
-
function ParserState() {
|
|
16
|
-
var state = {
|
|
17
|
-
objects: [],
|
|
18
|
-
object: {},
|
|
19
|
-
vertices: [],
|
|
20
|
-
normals: [],
|
|
21
|
-
colors: [],
|
|
22
|
-
uvs: [],
|
|
23
|
-
materialLibraries: [],
|
|
24
|
-
startObject: function startObject(name, fromDeclaration) {
|
|
25
|
-
// If the current object (initial from reset) is not from a g/o declaration in the parsed
|
|
26
|
-
// file. We need to use it for the first parsed g/o to keep things in sync.
|
|
27
|
-
if (this.object && this.object.fromDeclaration === false) {
|
|
28
|
-
this.object.name = name;
|
|
29
|
-
this.object.fromDeclaration = fromDeclaration !== false;
|
|
30
|
-
return;
|
|
31
|
-
}
|
|
32
|
-
var previousMaterial = this.object && typeof this.object.currentMaterial === 'function' ? this.object.currentMaterial() : undefined;
|
|
33
|
-
if (this.object && typeof this.object._finalize === 'function') {
|
|
34
|
-
this.object._finalize(true);
|
|
35
|
-
}
|
|
36
|
-
this.object = {
|
|
37
|
-
name: name || '',
|
|
38
|
-
fromDeclaration: fromDeclaration !== false,
|
|
39
|
-
geometry: {
|
|
40
|
-
vertices: [],
|
|
41
|
-
normals: [],
|
|
42
|
-
colors: [],
|
|
43
|
-
uvs: []
|
|
44
|
-
},
|
|
45
|
-
materials: [],
|
|
46
|
-
smooth: true,
|
|
47
|
-
startMaterial: function startMaterial(name, libraries) {
|
|
48
|
-
var previous = this._finalize(false);
|
|
49
|
-
// New usemtl declaration overwrites an inherited material, except if faces were declared
|
|
50
|
-
// after the material, then it must be preserved for proper MultiMaterial continuation.
|
|
51
|
-
if (previous && (previous.inherited || previous.groupCount <= 0)) {
|
|
52
|
-
this.materials.splice(previous.index, 1);
|
|
53
|
-
}
|
|
54
|
-
var material = {
|
|
55
|
-
index: this.materials.length,
|
|
56
|
-
name: name || '',
|
|
57
|
-
mtllib: Array.isArray(libraries) && libraries.length > 0 ? libraries[libraries.length - 1] : '',
|
|
58
|
-
smooth: previous !== undefined ? previous.smooth : this.smooth,
|
|
59
|
-
groupStart: previous !== undefined ? previous.groupEnd : 0,
|
|
60
|
-
groupEnd: -1,
|
|
61
|
-
groupCount: -1,
|
|
62
|
-
inherited: false,
|
|
63
|
-
clone: function clone(index) {
|
|
64
|
-
var cloned = {
|
|
65
|
-
index: typeof index === 'number' ? index : this.index,
|
|
66
|
-
name: this.name,
|
|
67
|
-
mtllib: this.mtllib,
|
|
68
|
-
smooth: this.smooth,
|
|
69
|
-
groupStart: 0,
|
|
70
|
-
groupEnd: -1,
|
|
71
|
-
groupCount: -1,
|
|
72
|
-
inherited: false
|
|
73
|
-
};
|
|
74
|
-
cloned.clone = this.clone.bind(cloned);
|
|
75
|
-
return cloned;
|
|
76
|
-
}
|
|
77
|
-
};
|
|
78
|
-
this.materials.push(material);
|
|
79
|
-
return material;
|
|
80
|
-
},
|
|
81
|
-
currentMaterial: function currentMaterial() {
|
|
82
|
-
if (this.materials.length > 0) {
|
|
83
|
-
return this.materials[this.materials.length - 1];
|
|
84
|
-
}
|
|
85
|
-
return undefined;
|
|
86
|
-
},
|
|
87
|
-
_finalize: function _finalize(end) {
|
|
88
|
-
var lastMultiMaterial = this.currentMaterial();
|
|
89
|
-
if (lastMultiMaterial && lastMultiMaterial.groupEnd === -1) {
|
|
90
|
-
lastMultiMaterial.groupEnd = this.geometry.vertices.length / 3;
|
|
91
|
-
lastMultiMaterial.groupCount = lastMultiMaterial.groupEnd - lastMultiMaterial.groupStart;
|
|
92
|
-
lastMultiMaterial.inherited = false;
|
|
93
|
-
}
|
|
94
|
-
// Ignore objects tail materials if no face declarations followed them before a new o/g started.
|
|
95
|
-
if (end && this.materials.length > 1) {
|
|
96
|
-
for (var mi = this.materials.length - 1; mi >= 0; mi--) {
|
|
97
|
-
if (this.materials[mi].groupCount <= 0) {
|
|
98
|
-
this.materials.splice(mi, 1);
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
// Guarantee at least one empty material, this makes the creation later more straight forward.
|
|
103
|
-
if (end && this.materials.length === 0) {
|
|
104
|
-
this.materials.push({
|
|
105
|
-
name: '',
|
|
106
|
-
smooth: this.smooth
|
|
107
|
-
});
|
|
108
|
-
}
|
|
109
|
-
return lastMultiMaterial;
|
|
110
|
-
}
|
|
111
|
-
};
|
|
112
|
-
// Inherit previous objects material.
|
|
113
|
-
// Spec tells us that a declared material must be set to all objects until a new material is declared.
|
|
114
|
-
// If a usemtl declaration is encountered while this new object is being parsed, it will
|
|
115
|
-
// overwrite the inherited material. Exception being that there was already face declarations
|
|
116
|
-
// to the inherited material, then it will be preserved for proper MultiMaterial continuation.
|
|
117
|
-
if (previousMaterial && previousMaterial.name && typeof previousMaterial.clone === 'function') {
|
|
118
|
-
var declared = previousMaterial.clone(0);
|
|
119
|
-
declared.inherited = true;
|
|
120
|
-
this.object.materials.push(declared);
|
|
121
|
-
}
|
|
122
|
-
this.objects.push(this.object);
|
|
123
|
-
},
|
|
124
|
-
finalize: function finalize() {
|
|
125
|
-
if (this.object && typeof this.object._finalize === 'function') {
|
|
126
|
-
this.object._finalize(true);
|
|
127
|
-
}
|
|
128
|
-
},
|
|
129
|
-
parseVertexIndex: function parseVertexIndex(value, len) {
|
|
130
|
-
var index = parseInt(value, 10);
|
|
131
|
-
return (index >= 0 ? index - 1 : index + len / 3) * 3;
|
|
132
|
-
},
|
|
133
|
-
parseNormalIndex: function parseNormalIndex(value, len) {
|
|
134
|
-
var index = parseInt(value, 10);
|
|
135
|
-
return (index >= 0 ? index - 1 : index + len / 3) * 3;
|
|
136
|
-
},
|
|
137
|
-
parseUVIndex: function parseUVIndex(value, len) {
|
|
138
|
-
var index = parseInt(value, 10);
|
|
139
|
-
return (index >= 0 ? index - 1 : index + len / 2) * 2;
|
|
140
|
-
},
|
|
141
|
-
addVertex: function addVertex(a, b, c) {
|
|
142
|
-
var src = this.vertices;
|
|
143
|
-
var dst = this.object.geometry.vertices;
|
|
144
|
-
dst.push(src[a + 0], src[a + 1], src[a + 2]);
|
|
145
|
-
dst.push(src[b + 0], src[b + 1], src[b + 2]);
|
|
146
|
-
dst.push(src[c + 0], src[c + 1], src[c + 2]);
|
|
147
|
-
},
|
|
148
|
-
addVertexPoint: function addVertexPoint(a) {
|
|
149
|
-
var src = this.vertices;
|
|
150
|
-
var dst = this.object.geometry.vertices;
|
|
151
|
-
dst.push(src[a + 0], src[a + 1], src[a + 2]);
|
|
152
|
-
},
|
|
153
|
-
addVertexLine: function addVertexLine(a) {
|
|
154
|
-
var src = this.vertices;
|
|
155
|
-
var dst = this.object.geometry.vertices;
|
|
156
|
-
dst.push(src[a + 0], src[a + 1], src[a + 2]);
|
|
157
|
-
},
|
|
158
|
-
addNormal: function addNormal(a, b, c) {
|
|
159
|
-
var src = this.normals;
|
|
160
|
-
var dst = this.object.geometry.normals;
|
|
161
|
-
dst.push(src[a + 0], src[a + 1], src[a + 2]);
|
|
162
|
-
dst.push(src[b + 0], src[b + 1], src[b + 2]);
|
|
163
|
-
dst.push(src[c + 0], src[c + 1], src[c + 2]);
|
|
164
|
-
},
|
|
165
|
-
addColor: function addColor(a, b, c) {
|
|
166
|
-
var src = this.colors;
|
|
167
|
-
var dst = this.object.geometry.colors;
|
|
168
|
-
dst.push(src[a + 0], src[a + 1], src[a + 2]);
|
|
169
|
-
dst.push(src[b + 0], src[b + 1], src[b + 2]);
|
|
170
|
-
dst.push(src[c + 0], src[c + 1], src[c + 2]);
|
|
171
|
-
},
|
|
172
|
-
addUV: function addUV(a, b, c) {
|
|
173
|
-
var src = this.uvs;
|
|
174
|
-
var dst = this.object.geometry.uvs;
|
|
175
|
-
dst.push(src[a + 0], src[a + 1]);
|
|
176
|
-
dst.push(src[b + 0], src[b + 1]);
|
|
177
|
-
dst.push(src[c + 0], src[c + 1]);
|
|
178
|
-
},
|
|
179
|
-
addUVLine: function addUVLine(a) {
|
|
180
|
-
var src = this.uvs;
|
|
181
|
-
var dst = this.object.geometry.uvs;
|
|
182
|
-
dst.push(src[a + 0], src[a + 1]);
|
|
183
|
-
},
|
|
184
|
-
addFace: function addFace(a, b, c, ua, ub, uc, na, nb, nc) {
|
|
185
|
-
var vLen = this.vertices.length;
|
|
186
|
-
var ia = this.parseVertexIndex(a, vLen);
|
|
187
|
-
var ib = this.parseVertexIndex(b, vLen);
|
|
188
|
-
var ic = this.parseVertexIndex(c, vLen);
|
|
189
|
-
this.addVertex(ia, ib, ic);
|
|
190
|
-
if (ua !== undefined && ua !== '') {
|
|
191
|
-
var uvLen = this.uvs.length;
|
|
192
|
-
ia = this.parseUVIndex(ua, uvLen);
|
|
193
|
-
ib = this.parseUVIndex(ub, uvLen);
|
|
194
|
-
ic = this.parseUVIndex(uc, uvLen);
|
|
195
|
-
this.addUV(ia, ib, ic);
|
|
196
|
-
}
|
|
197
|
-
if (na !== undefined && na !== '') {
|
|
198
|
-
// Normals are many times the same. If so, skip function call and parseInt.
|
|
199
|
-
var nLen = this.normals.length;
|
|
200
|
-
ia = this.parseNormalIndex(na, nLen);
|
|
201
|
-
ib = na === nb ? ia : this.parseNormalIndex(nb, nLen);
|
|
202
|
-
ic = na === nc ? ia : this.parseNormalIndex(nc, nLen);
|
|
203
|
-
this.addNormal(ia, ib, ic);
|
|
204
|
-
}
|
|
205
|
-
if (this.colors.length > 0) {
|
|
206
|
-
this.addColor(ia, ib, ic);
|
|
207
|
-
}
|
|
208
|
-
},
|
|
209
|
-
addPointGeometry: function addPointGeometry(vertices) {
|
|
210
|
-
this.object.geometry.type = 'Points';
|
|
211
|
-
var vLen = this.vertices.length;
|
|
212
|
-
for (var vi = 0, l = vertices.length; vi < l; vi++) {
|
|
213
|
-
this.addVertexPoint(this.parseVertexIndex(vertices[vi], vLen));
|
|
214
|
-
}
|
|
215
|
-
},
|
|
216
|
-
addLineGeometry: function addLineGeometry(vertices, uvs) {
|
|
217
|
-
this.object.geometry.type = 'Line';
|
|
218
|
-
var vLen = this.vertices.length;
|
|
219
|
-
var uvLen = this.uvs.length;
|
|
220
|
-
for (var vi = 0, l = vertices.length; vi < l; vi++) {
|
|
221
|
-
this.addVertexLine(this.parseVertexIndex(vertices[vi], vLen));
|
|
222
|
-
}
|
|
223
|
-
for (var uvi = 0, l = uvs.length; uvi < l; uvi++) {
|
|
224
|
-
this.addUVLine(this.parseUVIndex(uvs[uvi], uvLen));
|
|
225
|
-
}
|
|
226
|
-
}
|
|
227
|
-
};
|
|
228
|
-
state.startObject('', false);
|
|
229
|
-
return state;
|
|
230
|
-
}
|
|
231
|
-
//
|
|
232
|
-
function OBJLoader(manager) {
|
|
233
|
-
this.manager = manager !== undefined ? manager : THREE.DefaultLoadingManager;
|
|
234
|
-
this.materials = null;
|
|
235
|
-
}
|
|
236
|
-
OBJLoader.prototype = {
|
|
237
|
-
constructor: OBJLoader,
|
|
238
|
-
load: function load(url, onLoad, onProgress, onError) {
|
|
239
|
-
var scope = this;
|
|
240
|
-
var loader = new THREE.FileLoader(scope.manager);
|
|
241
|
-
loader.setPath(this.path);
|
|
242
|
-
loader.load(url, function (text) {
|
|
243
|
-
onLoad(scope.parse(text));
|
|
244
|
-
}, onProgress, onError);
|
|
245
|
-
},
|
|
246
|
-
setPath: function setPath(value) {
|
|
247
|
-
this.path = value;
|
|
248
|
-
},
|
|
249
|
-
setMaterials: function setMaterials(materials) {
|
|
250
|
-
this.materials = materials;
|
|
251
|
-
return this;
|
|
252
|
-
},
|
|
253
|
-
parse: function parse(text) {
|
|
254
|
-
console.time('OBJLoader');
|
|
255
|
-
var state = new ParserState();
|
|
256
|
-
if (text.indexOf('\r\n') !== -1) {
|
|
257
|
-
// This is faster than String.split with regex that splits on both
|
|
258
|
-
text = text.replace(/\r\n/g, '\n');
|
|
259
|
-
}
|
|
260
|
-
if (text.indexOf('\\\n') !== -1) {
|
|
261
|
-
// join lines separated by a line continuation character (\)
|
|
262
|
-
text = text.replace(/\\\n/g, '');
|
|
263
|
-
}
|
|
264
|
-
var lines = text.split('\n');
|
|
265
|
-
var line = '',
|
|
266
|
-
lineFirstChar = '';
|
|
267
|
-
var lineLength = 0;
|
|
268
|
-
var result = [];
|
|
269
|
-
// Faster to just trim left side of the line. Use if available.
|
|
270
|
-
var trimLeft = typeof ''.trimLeft === 'function';
|
|
271
|
-
for (var i = 0, l = lines.length; i < l; i++) {
|
|
272
|
-
line = lines[i];
|
|
273
|
-
line = trimLeft ? line.trimLeft() : line.trim();
|
|
274
|
-
lineLength = line.length;
|
|
275
|
-
if (lineLength === 0) continue;
|
|
276
|
-
lineFirstChar = line.charAt(0);
|
|
277
|
-
// @todo invoke passed in handler if any
|
|
278
|
-
if (lineFirstChar === '#') continue;
|
|
279
|
-
if (lineFirstChar === 'v') {
|
|
280
|
-
var data = line.split(/\s+/);
|
|
281
|
-
switch (data[0]) {
|
|
282
|
-
case 'v':
|
|
283
|
-
state.vertices.push(parseFloat(data[1]), parseFloat(data[2]), parseFloat(data[3]));
|
|
284
|
-
if (data.length === 8) {
|
|
285
|
-
state.colors.push(parseFloat(data[4]), parseFloat(data[5]), parseFloat(data[6]));
|
|
286
|
-
}
|
|
287
|
-
break;
|
|
288
|
-
case 'vn':
|
|
289
|
-
state.normals.push(parseFloat(data[1]), parseFloat(data[2]), parseFloat(data[3]));
|
|
290
|
-
break;
|
|
291
|
-
case 'vt':
|
|
292
|
-
state.uvs.push(parseFloat(data[1]), parseFloat(data[2]));
|
|
293
|
-
break;
|
|
294
|
-
}
|
|
295
|
-
} else if (lineFirstChar === 'f') {
|
|
296
|
-
var lineData = line.substr(1).trim();
|
|
297
|
-
var vertexData = lineData.split(/\s+/);
|
|
298
|
-
var faceVertices = [];
|
|
299
|
-
// Parse the face vertex data into an easy to work with format
|
|
300
|
-
for (var j = 0, jl = vertexData.length; j < jl; j++) {
|
|
301
|
-
var vertex = vertexData[j];
|
|
302
|
-
if (vertex.length > 0) {
|
|
303
|
-
var vertexParts = vertex.split('/');
|
|
304
|
-
faceVertices.push(vertexParts);
|
|
305
|
-
}
|
|
306
|
-
}
|
|
307
|
-
// Draw an edge between the first vertex and all subsequent vertices to form an n-gon
|
|
308
|
-
var v1 = faceVertices[0];
|
|
309
|
-
for (var j = 1, jl = faceVertices.length - 1; j < jl; j++) {
|
|
310
|
-
var v2 = faceVertices[j];
|
|
311
|
-
var v3 = faceVertices[j + 1];
|
|
312
|
-
state.addFace(v1[0], v2[0], v3[0], v1[1], v2[1], v3[1], v1[2], v2[2], v3[2]);
|
|
313
|
-
}
|
|
314
|
-
} else if (lineFirstChar === 'l') {
|
|
315
|
-
var lineParts = line.substring(1).trim().split(' ');
|
|
316
|
-
var lineVertices = [],
|
|
317
|
-
lineUVs = [];
|
|
318
|
-
if (line.indexOf('/') === -1) {
|
|
319
|
-
lineVertices = lineParts;
|
|
320
|
-
} else {
|
|
321
|
-
for (var li = 0, llen = lineParts.length; li < llen; li++) {
|
|
322
|
-
var parts = lineParts[li].split('/');
|
|
323
|
-
if (parts[0] !== '') lineVertices.push(parts[0]);
|
|
324
|
-
if (parts[1] !== '') lineUVs.push(parts[1]);
|
|
325
|
-
}
|
|
326
|
-
}
|
|
327
|
-
state.addLineGeometry(lineVertices, lineUVs);
|
|
328
|
-
} else if (lineFirstChar === 'p') {
|
|
329
|
-
var lineData = line.substr(1).trim();
|
|
330
|
-
var pointData = lineData.split(' ');
|
|
331
|
-
state.addPointGeometry(pointData);
|
|
332
|
-
} else if ((result = object_pattern.exec(line)) !== null) {
|
|
333
|
-
// o object_name
|
|
334
|
-
// or
|
|
335
|
-
// g group_name
|
|
336
|
-
// WORKAROUND: https://bugs.chromium.org/p/v8/issues/detail?id=2869
|
|
337
|
-
// var name = result[ 0 ].substr( 1 ).trim();
|
|
338
|
-
var name = (' ' + result[0].substr(1).trim()).substr(1);
|
|
339
|
-
state.startObject(name);
|
|
340
|
-
} else if (material_use_pattern.test(line)) {
|
|
341
|
-
// material
|
|
342
|
-
state.object.startMaterial(line.substring(7).trim(), state.materialLibraries);
|
|
343
|
-
} else if (material_library_pattern.test(line)) {
|
|
344
|
-
// mtl file
|
|
345
|
-
state.materialLibraries.push(line.substring(7).trim());
|
|
346
|
-
} else if (lineFirstChar === 's') {
|
|
347
|
-
result = line.split(' ');
|
|
348
|
-
// smooth shading
|
|
349
|
-
// @todo Handle files that have varying smooth values for a set of faces inside one geometry,
|
|
350
|
-
// but does not define a usemtl for each face set.
|
|
351
|
-
// This should be detected and a dummy material created (later MultiMaterial and geometry groups).
|
|
352
|
-
// This requires some care to not create extra material on each smooth value for "normal" obj files.
|
|
353
|
-
// where explicit usemtl defines geometry groups.
|
|
354
|
-
// Example asset: examples/models/obj/cerberus/Cerberus.obj
|
|
355
|
-
/*
|
|
356
|
-
* http://paulbourke.net/dataformats/obj/
|
|
357
|
-
* or
|
|
358
|
-
* http://www.cs.utah.edu/~boulos/cs3505/obj_spec.pdf
|
|
359
|
-
*
|
|
360
|
-
* From chapter "Grouping" Syntax explanation "s group_number":
|
|
361
|
-
* "group_number is the smoothing group number. To turn off smoothing groups, use a value of 0 or off.
|
|
362
|
-
* Polygonal elements use group numbers to put elements in different smoothing groups. For free-form
|
|
363
|
-
* surfaces, smoothing groups are either turned on or off; there is no difference between values greater
|
|
364
|
-
* than 0."
|
|
365
|
-
*/
|
|
366
|
-
if (result.length > 1) {
|
|
367
|
-
var value = result[1].trim().toLowerCase();
|
|
368
|
-
state.object.smooth = value !== '0' && value !== 'off';
|
|
369
|
-
} else {
|
|
370
|
-
// ZBrush can produce "s" lines #11707
|
|
371
|
-
state.object.smooth = true;
|
|
372
|
-
}
|
|
373
|
-
var material = state.object.currentMaterial();
|
|
374
|
-
if (material) material.smooth = state.object.smooth;
|
|
375
|
-
} else {
|
|
376
|
-
// Handle null terminated files without exception
|
|
377
|
-
if (line === '\0') continue;
|
|
378
|
-
throw new Error('THREE.OBJLoader: Unexpected line: "' + line + '"');
|
|
379
|
-
}
|
|
380
|
-
}
|
|
381
|
-
state.finalize();
|
|
382
|
-
var container = new THREE.Group();
|
|
383
|
-
container.materialLibraries = [].concat(state.materialLibraries);
|
|
384
|
-
for (var i = 0, l = state.objects.length; i < l; i++) {
|
|
385
|
-
var object = state.objects[i];
|
|
386
|
-
var geometry = object.geometry;
|
|
387
|
-
var materials = object.materials;
|
|
388
|
-
var isLine = geometry.type === 'Line';
|
|
389
|
-
var isPoints = geometry.type === 'Points';
|
|
390
|
-
var hasVertexColors = false;
|
|
391
|
-
// Skip o/g line declarations that did not follow with any faces
|
|
392
|
-
if (geometry.vertices.length === 0) continue;
|
|
393
|
-
var buffergeometry = new THREE.BufferGeometry();
|
|
394
|
-
buffergeometry.addAttribute('position', new THREE.Float32BufferAttribute(geometry.vertices, 3));
|
|
395
|
-
if (geometry.normals.length > 0) {
|
|
396
|
-
buffergeometry.addAttribute('normal', new THREE.Float32BufferAttribute(geometry.normals, 3));
|
|
397
|
-
} else {
|
|
398
|
-
buffergeometry.computeVertexNormals();
|
|
399
|
-
}
|
|
400
|
-
if (geometry.colors.length > 0) {
|
|
401
|
-
hasVertexColors = true;
|
|
402
|
-
buffergeometry.addAttribute('color', new THREE.Float32BufferAttribute(geometry.colors, 3));
|
|
403
|
-
}
|
|
404
|
-
if (geometry.uvs.length > 0) {
|
|
405
|
-
buffergeometry.addAttribute('uv', new THREE.Float32BufferAttribute(geometry.uvs, 2));
|
|
406
|
-
}
|
|
407
|
-
// Create materials
|
|
408
|
-
var createdMaterials = [];
|
|
409
|
-
for (var mi = 0, miLen = materials.length; mi < miLen; mi++) {
|
|
410
|
-
var sourceMaterial = materials[mi];
|
|
411
|
-
var material = undefined;
|
|
412
|
-
if (this.materials !== null) {
|
|
413
|
-
material = this.materials.create(sourceMaterial.name);
|
|
414
|
-
// mtl etc. loaders probably can't create line materials correctly, copy properties to a line material.
|
|
415
|
-
if (isLine && material && !(material instanceof THREE.LineBasicMaterial)) {
|
|
416
|
-
var materialLine = new THREE.LineBasicMaterial();
|
|
417
|
-
materialLine.copy(material);
|
|
418
|
-
materialLine.lights = false; // TOFIX
|
|
419
|
-
material = materialLine;
|
|
420
|
-
} else if (isPoints && material && !(material instanceof THREE.PointsMaterial)) {
|
|
421
|
-
var materialPoints = new THREE.PointsMaterial({
|
|
422
|
-
size: 10,
|
|
423
|
-
sizeAttenuation: false
|
|
424
|
-
});
|
|
425
|
-
materialLine.copy(material);
|
|
426
|
-
material = materialPoints;
|
|
427
|
-
}
|
|
428
|
-
}
|
|
429
|
-
if (!material) {
|
|
430
|
-
if (isLine) {
|
|
431
|
-
material = new THREE.LineBasicMaterial();
|
|
432
|
-
} else if (isPoints) {
|
|
433
|
-
material = new THREE.PointsMaterial({
|
|
434
|
-
size: 1,
|
|
435
|
-
sizeAttenuation: false
|
|
436
|
-
});
|
|
437
|
-
} else {
|
|
438
|
-
material = new THREE.MeshPhongMaterial();
|
|
439
|
-
}
|
|
440
|
-
material.name = sourceMaterial.name;
|
|
441
|
-
}
|
|
442
|
-
material.flatShading = sourceMaterial.smooth ? false : true;
|
|
443
|
-
material.vertexColors = hasVertexColors ? THREE.VertexColors : THREE.NoColors;
|
|
444
|
-
createdMaterials.push(material);
|
|
445
|
-
}
|
|
446
|
-
// Create mesh
|
|
447
|
-
var mesh;
|
|
448
|
-
if (createdMaterials.length > 1) {
|
|
449
|
-
for (var mi = 0, miLen = materials.length; mi < miLen; mi++) {
|
|
450
|
-
var sourceMaterial = materials[mi];
|
|
451
|
-
buffergeometry.addGroup(sourceMaterial.groupStart, sourceMaterial.groupCount, mi);
|
|
452
|
-
}
|
|
453
|
-
if (isLine) {
|
|
454
|
-
mesh = new THREE.LineSegments(buffergeometry, createdMaterials);
|
|
455
|
-
} else if (isPoints) {
|
|
456
|
-
mesh = new THREE.Points(buffergeometry, createdMaterials);
|
|
457
|
-
} else {
|
|
458
|
-
mesh = new THREE.Mesh(buffergeometry, createdMaterials);
|
|
459
|
-
}
|
|
460
|
-
} else {
|
|
461
|
-
if (isLine) {
|
|
462
|
-
mesh = new THREE.LineSegments(buffergeometry, createdMaterials[0]);
|
|
463
|
-
} else if (isPoints) {
|
|
464
|
-
mesh = new THREE.Points(buffergeometry, createdMaterials[0]);
|
|
465
|
-
} else {
|
|
466
|
-
mesh = new THREE.Mesh(buffergeometry, createdMaterials[0]);
|
|
467
|
-
}
|
|
468
|
-
}
|
|
469
|
-
mesh.name = object.name;
|
|
470
|
-
container.add(mesh);
|
|
471
|
-
}
|
|
472
|
-
console.timeEnd('OBJLoader');
|
|
473
|
-
return container;
|
|
474
|
-
}
|
|
475
|
-
};
|
|
476
|
-
return OBJLoader;
|
|
477
|
-
}();
|
|
478
|
-
module.exports = OBJLoader;
|
|
479
|
-
//# sourceMappingURL=obj-loader.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"obj-loader.js","names":["THREE","window","require","OBJLoader","object_pattern","material_library_pattern","material_use_pattern","ParserState","state","objects","object","vertices","normals","colors","uvs","materialLibraries","startObject","name","fromDeclaration","previousMaterial","currentMaterial","undefined","_finalize","geometry","materials","smooth","startMaterial","libraries","previous","inherited","groupCount","splice","index","material","length","mtllib","Array","isArray","groupStart","groupEnd","clone","cloned","bind","push","end","lastMultiMaterial","mi","declared","finalize","parseVertexIndex","value","len","parseInt","parseNormalIndex","parseUVIndex","addVertex","a","b","c","src","dst","addVertexPoint","addVertexLine","addNormal","addColor","addUV","addUVLine","addFace","ua","ub","uc","na","nb","nc","vLen","ia","ib","ic","uvLen","nLen","addPointGeometry","type","vi","l","addLineGeometry","uvi","manager","DefaultLoadingManager","prototype","constructor","load","url","onLoad","onProgress","onError","scope","loader","FileLoader","setPath","path","text","parse","setMaterials","console","time","indexOf","replace","lines","split","line","lineFirstChar","lineLength","result","trimLeft","i","trim","charAt","data","parseFloat","lineData","substr","vertexData","faceVertices","j","jl","vertex","vertexParts","v1","v2","v3","lineParts","substring","lineVertices","lineUVs","li","llen","parts","pointData","exec","test","toLowerCase","Error","container","Group","concat","isLine","isPoints","hasVertexColors","buffergeometry","BufferGeometry","addAttribute","Float32BufferAttribute","computeVertexNormals","createdMaterials","miLen","sourceMaterial","create","LineBasicMaterial","materialLine","copy","lights","PointsMaterial","materialPoints","size","sizeAttenuation","MeshPhongMaterial","flatShading","vertexColors","VertexColors","NoColors","mesh","addGroup","LineSegments","Points","Mesh","add","timeEnd","module","exports"],"sources":["../../../src/catalog/utils/obj-loader.js"],"sourcesContent":["/**\r\n * @author mrdoob / http://mrdoob.com/\r\n */\r\nvar THREE = window.THREE || require('three');\r\nlet OBJLoader;\r\nOBJLoader = (function () {\r\n // o object_name | g group_name\r\n var object_pattern = /^[og]\\s*(.+)?/;\r\n // mtllib file_reference\r\n var material_library_pattern = /^mtllib /;\r\n // usemtl material_name\r\n var material_use_pattern = /^usemtl /;\r\n function ParserState() {\r\n var state = {\r\n objects: [],\r\n object: {},\r\n vertices: [],\r\n normals: [],\r\n colors: [],\r\n uvs: [],\r\n materialLibraries: [],\r\n startObject: function (name, fromDeclaration) {\r\n // If the current object (initial from reset) is not from a g/o declaration in the parsed\r\n // file. We need to use it for the first parsed g/o to keep things in sync.\r\n if (this.object && this.object.fromDeclaration === false) {\r\n this.object.name = name;\r\n this.object.fromDeclaration = fromDeclaration !== false;\r\n return;\r\n }\r\n var previousMaterial =\r\n this.object && typeof this.object.currentMaterial === 'function'\r\n ? this.object.currentMaterial()\r\n : undefined;\r\n if (this.object && typeof this.object._finalize === 'function') {\r\n this.object._finalize(true);\r\n }\r\n this.object = {\r\n name: name || '',\r\n fromDeclaration: fromDeclaration !== false,\r\n geometry: {\r\n vertices: [],\r\n normals: [],\r\n colors: [],\r\n uvs: []\r\n },\r\n materials: [],\r\n smooth: true,\r\n startMaterial: function (name, libraries) {\r\n var previous = this._finalize(false);\r\n // New usemtl declaration overwrites an inherited material, except if faces were declared\r\n // after the material, then it must be preserved for proper MultiMaterial continuation.\r\n if (previous && (previous.inherited || previous.groupCount <= 0)) {\r\n this.materials.splice(previous.index, 1);\r\n }\r\n var material = {\r\n index: this.materials.length,\r\n name: name || '',\r\n mtllib:\r\n Array.isArray(libraries) && libraries.length > 0\r\n ? libraries[libraries.length - 1]\r\n : '',\r\n smooth: previous !== undefined ? previous.smooth : this.smooth,\r\n groupStart: previous !== undefined ? previous.groupEnd : 0,\r\n groupEnd: -1,\r\n groupCount: -1,\r\n inherited: false,\r\n clone: function (index) {\r\n var cloned = {\r\n index: typeof index === 'number' ? index : this.index,\r\n name: this.name,\r\n mtllib: this.mtllib,\r\n smooth: this.smooth,\r\n groupStart: 0,\r\n groupEnd: -1,\r\n groupCount: -1,\r\n inherited: false\r\n };\r\n cloned.clone = this.clone.bind(cloned);\r\n return cloned;\r\n }\r\n };\r\n this.materials.push(material);\r\n return material;\r\n },\r\n currentMaterial: function () {\r\n if (this.materials.length > 0) {\r\n return this.materials[this.materials.length - 1];\r\n }\r\n return undefined;\r\n },\r\n _finalize: function (end) {\r\n var lastMultiMaterial = this.currentMaterial();\r\n if (lastMultiMaterial && lastMultiMaterial.groupEnd === -1) {\r\n lastMultiMaterial.groupEnd = this.geometry.vertices.length / 3;\r\n lastMultiMaterial.groupCount =\r\n lastMultiMaterial.groupEnd - lastMultiMaterial.groupStart;\r\n lastMultiMaterial.inherited = false;\r\n }\r\n // Ignore objects tail materials if no face declarations followed them before a new o/g started.\r\n if (end && this.materials.length > 1) {\r\n for (var mi = this.materials.length - 1; mi >= 0; mi--) {\r\n if (this.materials[mi].groupCount <= 0) {\r\n this.materials.splice(mi, 1);\r\n }\r\n }\r\n }\r\n // Guarantee at least one empty material, this makes the creation later more straight forward.\r\n if (end && this.materials.length === 0) {\r\n this.materials.push({\r\n name: '',\r\n smooth: this.smooth\r\n });\r\n }\r\n return lastMultiMaterial;\r\n }\r\n };\r\n // Inherit previous objects material.\r\n // Spec tells us that a declared material must be set to all objects until a new material is declared.\r\n // If a usemtl declaration is encountered while this new object is being parsed, it will\r\n // overwrite the inherited material. Exception being that there was already face declarations\r\n // to the inherited material, then it will be preserved for proper MultiMaterial continuation.\r\n if (\r\n previousMaterial &&\r\n previousMaterial.name &&\r\n typeof previousMaterial.clone === 'function'\r\n ) {\r\n var declared = previousMaterial.clone(0);\r\n declared.inherited = true;\r\n this.object.materials.push(declared);\r\n }\r\n this.objects.push(this.object);\r\n },\r\n finalize: function () {\r\n if (this.object && typeof this.object._finalize === 'function') {\r\n this.object._finalize(true);\r\n }\r\n },\r\n parseVertexIndex: function (value, len) {\r\n var index = parseInt(value, 10);\r\n return (index >= 0 ? index - 1 : index + len / 3) * 3;\r\n },\r\n parseNormalIndex: function (value, len) {\r\n var index = parseInt(value, 10);\r\n return (index >= 0 ? index - 1 : index + len / 3) * 3;\r\n },\r\n parseUVIndex: function (value, len) {\r\n var index = parseInt(value, 10);\r\n return (index >= 0 ? index - 1 : index + len / 2) * 2;\r\n },\r\n addVertex: function (a, b, c) {\r\n var src = this.vertices;\r\n var dst = this.object.geometry.vertices;\r\n dst.push(src[a + 0], src[a + 1], src[a + 2]);\r\n dst.push(src[b + 0], src[b + 1], src[b + 2]);\r\n dst.push(src[c + 0], src[c + 1], src[c + 2]);\r\n },\r\n addVertexPoint: function (a) {\r\n var src = this.vertices;\r\n var dst = this.object.geometry.vertices;\r\n dst.push(src[a + 0], src[a + 1], src[a + 2]);\r\n },\r\n addVertexLine: function (a) {\r\n var src = this.vertices;\r\n var dst = this.object.geometry.vertices;\r\n dst.push(src[a + 0], src[a + 1], src[a + 2]);\r\n },\r\n addNormal: function (a, b, c) {\r\n var src = this.normals;\r\n var dst = this.object.geometry.normals;\r\n dst.push(src[a + 0], src[a + 1], src[a + 2]);\r\n dst.push(src[b + 0], src[b + 1], src[b + 2]);\r\n dst.push(src[c + 0], src[c + 1], src[c + 2]);\r\n },\r\n addColor: function (a, b, c) {\r\n var src = this.colors;\r\n var dst = this.object.geometry.colors;\r\n dst.push(src[a + 0], src[a + 1], src[a + 2]);\r\n dst.push(src[b + 0], src[b + 1], src[b + 2]);\r\n dst.push(src[c + 0], src[c + 1], src[c + 2]);\r\n },\r\n addUV: function (a, b, c) {\r\n var src = this.uvs;\r\n var dst = this.object.geometry.uvs;\r\n dst.push(src[a + 0], src[a + 1]);\r\n dst.push(src[b + 0], src[b + 1]);\r\n dst.push(src[c + 0], src[c + 1]);\r\n },\r\n addUVLine: function (a) {\r\n var src = this.uvs;\r\n var dst = this.object.geometry.uvs;\r\n dst.push(src[a + 0], src[a + 1]);\r\n },\r\n addFace: function (a, b, c, ua, ub, uc, na, nb, nc) {\r\n var vLen = this.vertices.length;\r\n var ia = this.parseVertexIndex(a, vLen);\r\n var ib = this.parseVertexIndex(b, vLen);\r\n var ic = this.parseVertexIndex(c, vLen);\r\n this.addVertex(ia, ib, ic);\r\n if (ua !== undefined && ua !== '') {\r\n var uvLen = this.uvs.length;\r\n ia = this.parseUVIndex(ua, uvLen);\r\n ib = this.parseUVIndex(ub, uvLen);\r\n ic = this.parseUVIndex(uc, uvLen);\r\n this.addUV(ia, ib, ic);\r\n }\r\n if (na !== undefined && na !== '') {\r\n // Normals are many times the same. If so, skip function call and parseInt.\r\n var nLen = this.normals.length;\r\n ia = this.parseNormalIndex(na, nLen);\r\n ib = na === nb ? ia : this.parseNormalIndex(nb, nLen);\r\n ic = na === nc ? ia : this.parseNormalIndex(nc, nLen);\r\n this.addNormal(ia, ib, ic);\r\n }\r\n if (this.colors.length > 0) {\r\n this.addColor(ia, ib, ic);\r\n }\r\n },\r\n addPointGeometry: function (vertices) {\r\n this.object.geometry.type = 'Points';\r\n var vLen = this.vertices.length;\r\n for (var vi = 0, l = vertices.length; vi < l; vi++) {\r\n this.addVertexPoint(this.parseVertexIndex(vertices[vi], vLen));\r\n }\r\n },\r\n addLineGeometry: function (vertices, uvs) {\r\n this.object.geometry.type = 'Line';\r\n var vLen = this.vertices.length;\r\n var uvLen = this.uvs.length;\r\n for (var vi = 0, l = vertices.length; vi < l; vi++) {\r\n this.addVertexLine(this.parseVertexIndex(vertices[vi], vLen));\r\n }\r\n for (var uvi = 0, l = uvs.length; uvi < l; uvi++) {\r\n this.addUVLine(this.parseUVIndex(uvs[uvi], uvLen));\r\n }\r\n }\r\n };\r\n state.startObject('', false);\r\n return state;\r\n }\r\n //\r\n function OBJLoader(manager) {\r\n this.manager =\r\n manager !== undefined ? manager : THREE.DefaultLoadingManager;\r\n this.materials = null;\r\n }\r\n OBJLoader.prototype = {\r\n constructor: OBJLoader,\r\n load: function (url, onLoad, onProgress, onError) {\r\n var scope = this;\r\n var loader = new THREE.FileLoader(scope.manager);\r\n loader.setPath(this.path);\r\n loader.load(\r\n url,\r\n function (text) {\r\n onLoad(scope.parse(text));\r\n },\r\n onProgress,\r\n onError\r\n );\r\n },\r\n setPath: function (value) {\r\n this.path = value;\r\n },\r\n setMaterials: function (materials) {\r\n this.materials = materials;\r\n return this;\r\n },\r\n parse: function (text) {\r\n console.time('OBJLoader');\r\n var state = new ParserState();\r\n if (text.indexOf('\\r\\n') !== -1) {\r\n // This is faster than String.split with regex that splits on both\r\n text = text.replace(/\\r\\n/g, '\\n');\r\n }\r\n if (text.indexOf('\\\\\\n') !== -1) {\r\n // join lines separated by a line continuation character (\\)\r\n text = text.replace(/\\\\\\n/g, '');\r\n }\r\n var lines = text.split('\\n');\r\n var line = '',\r\n lineFirstChar = '';\r\n var lineLength = 0;\r\n var result = [];\r\n // Faster to just trim left side of the line. Use if available.\r\n var trimLeft = typeof ''.trimLeft === 'function';\r\n for (var i = 0, l = lines.length; i < l; i++) {\r\n line = lines[i];\r\n line = trimLeft ? line.trimLeft() : line.trim();\r\n lineLength = line.length;\r\n if (lineLength === 0) continue;\r\n lineFirstChar = line.charAt(0);\r\n // @todo invoke passed in handler if any\r\n if (lineFirstChar === '#') continue;\r\n if (lineFirstChar === 'v') {\r\n var data = line.split(/\\s+/);\r\n switch (data[0]) {\r\n case 'v':\r\n state.vertices.push(\r\n parseFloat(data[1]),\r\n parseFloat(data[2]),\r\n parseFloat(data[3])\r\n );\r\n if (data.length === 8) {\r\n state.colors.push(\r\n parseFloat(data[4]),\r\n parseFloat(data[5]),\r\n parseFloat(data[6])\r\n );\r\n }\r\n break;\r\n case 'vn':\r\n state.normals.push(\r\n parseFloat(data[1]),\r\n parseFloat(data[2]),\r\n parseFloat(data[3])\r\n );\r\n break;\r\n case 'vt':\r\n state.uvs.push(parseFloat(data[1]), parseFloat(data[2]));\r\n break;\r\n }\r\n } else if (lineFirstChar === 'f') {\r\n var lineData = line.substr(1).trim();\r\n var vertexData = lineData.split(/\\s+/);\r\n var faceVertices = [];\r\n // Parse the face vertex data into an easy to work with format\r\n for (var j = 0, jl = vertexData.length; j < jl; j++) {\r\n var vertex = vertexData[j];\r\n if (vertex.length > 0) {\r\n var vertexParts = vertex.split('/');\r\n faceVertices.push(vertexParts);\r\n }\r\n }\r\n // Draw an edge between the first vertex and all subsequent vertices to form an n-gon\r\n var v1 = faceVertices[0];\r\n for (var j = 1, jl = faceVertices.length - 1; j < jl; j++) {\r\n var v2 = faceVertices[j];\r\n var v3 = faceVertices[j + 1];\r\n state.addFace(\r\n v1[0],\r\n v2[0],\r\n v3[0],\r\n v1[1],\r\n v2[1],\r\n v3[1],\r\n v1[2],\r\n v2[2],\r\n v3[2]\r\n );\r\n }\r\n } else if (lineFirstChar === 'l') {\r\n var lineParts = line.substring(1).trim().split(' ');\r\n var lineVertices = [],\r\n lineUVs = [];\r\n if (line.indexOf('/') === -1) {\r\n lineVertices = lineParts;\r\n } else {\r\n for (var li = 0, llen = lineParts.length; li < llen; li++) {\r\n var parts = lineParts[li].split('/');\r\n if (parts[0] !== '') lineVertices.push(parts[0]);\r\n if (parts[1] !== '') lineUVs.push(parts[1]);\r\n }\r\n }\r\n state.addLineGeometry(lineVertices, lineUVs);\r\n } else if (lineFirstChar === 'p') {\r\n var lineData = line.substr(1).trim();\r\n var pointData = lineData.split(' ');\r\n state.addPointGeometry(pointData);\r\n } else if ((result = object_pattern.exec(line)) !== null) {\r\n // o object_name\r\n // or\r\n // g group_name\r\n // WORKAROUND: https://bugs.chromium.org/p/v8/issues/detail?id=2869\r\n // var name = result[ 0 ].substr( 1 ).trim();\r\n var name = (' ' + result[0].substr(1).trim()).substr(1);\r\n state.startObject(name);\r\n } else if (material_use_pattern.test(line)) {\r\n // material\r\n state.object.startMaterial(\r\n line.substring(7).trim(),\r\n state.materialLibraries\r\n );\r\n } else if (material_library_pattern.test(line)) {\r\n // mtl file\r\n state.materialLibraries.push(line.substring(7).trim());\r\n } else if (lineFirstChar === 's') {\r\n result = line.split(' ');\r\n // smooth shading\r\n // @todo Handle files that have varying smooth values for a set of faces inside one geometry,\r\n // but does not define a usemtl for each face set.\r\n // This should be detected and a dummy material created (later MultiMaterial and geometry groups).\r\n // This requires some care to not create extra material on each smooth value for \"normal\" obj files.\r\n // where explicit usemtl defines geometry groups.\r\n // Example asset: examples/models/obj/cerberus/Cerberus.obj\r\n /*\r\n * http://paulbourke.net/dataformats/obj/\r\n * or\r\n * http://www.cs.utah.edu/~boulos/cs3505/obj_spec.pdf\r\n *\r\n * From chapter \"Grouping\" Syntax explanation \"s group_number\":\r\n * \"group_number is the smoothing group number. To turn off smoothing groups, use a value of 0 or off.\r\n * Polygonal elements use group numbers to put elements in different smoothing groups. For free-form\r\n * surfaces, smoothing groups are either turned on or off; there is no difference between values greater\r\n * than 0.\"\r\n */\r\n if (result.length > 1) {\r\n var value = result[1].trim().toLowerCase();\r\n state.object.smooth = value !== '0' && value !== 'off';\r\n } else {\r\n // ZBrush can produce \"s\" lines #11707\r\n state.object.smooth = true;\r\n }\r\n var material = state.object.currentMaterial();\r\n if (material) material.smooth = state.object.smooth;\r\n } else {\r\n // Handle null terminated files without exception\r\n if (line === '\\0') continue;\r\n throw new Error('THREE.OBJLoader: Unexpected line: \"' + line + '\"');\r\n }\r\n }\r\n state.finalize();\r\n var container = new THREE.Group();\r\n container.materialLibraries = [].concat(state.materialLibraries);\r\n for (var i = 0, l = state.objects.length; i < l; i++) {\r\n var object = state.objects[i];\r\n var geometry = object.geometry;\r\n var materials = object.materials;\r\n var isLine = geometry.type === 'Line';\r\n var isPoints = geometry.type === 'Points';\r\n var hasVertexColors = false;\r\n // Skip o/g line declarations that did not follow with any faces\r\n if (geometry.vertices.length === 0) continue;\r\n var buffergeometry = new THREE.BufferGeometry();\r\n buffergeometry.addAttribute(\r\n 'position',\r\n new THREE.Float32BufferAttribute(geometry.vertices, 3)\r\n );\r\n if (geometry.normals.length > 0) {\r\n buffergeometry.addAttribute(\r\n 'normal',\r\n new THREE.Float32BufferAttribute(geometry.normals, 3)\r\n );\r\n } else {\r\n buffergeometry.computeVertexNormals();\r\n }\r\n if (geometry.colors.length > 0) {\r\n hasVertexColors = true;\r\n buffergeometry.addAttribute(\r\n 'color',\r\n new THREE.Float32BufferAttribute(geometry.colors, 3)\r\n );\r\n }\r\n if (geometry.uvs.length > 0) {\r\n buffergeometry.addAttribute(\r\n 'uv',\r\n new THREE.Float32BufferAttribute(geometry.uvs, 2)\r\n );\r\n }\r\n // Create materials\r\n var createdMaterials = [];\r\n for (var mi = 0, miLen = materials.length; mi < miLen; mi++) {\r\n var sourceMaterial = materials[mi];\r\n var material = undefined;\r\n if (this.materials !== null) {\r\n material = this.materials.create(sourceMaterial.name);\r\n // mtl etc. loaders probably can't create line materials correctly, copy properties to a line material.\r\n if (\r\n isLine &&\r\n material &&\r\n !(material instanceof THREE.LineBasicMaterial)\r\n ) {\r\n var materialLine = new THREE.LineBasicMaterial();\r\n materialLine.copy(material);\r\n materialLine.lights = false; // TOFIX\r\n material = materialLine;\r\n } else if (\r\n isPoints &&\r\n material &&\r\n !(material instanceof THREE.PointsMaterial)\r\n ) {\r\n var materialPoints = new THREE.PointsMaterial({\r\n size: 10,\r\n sizeAttenuation: false\r\n });\r\n materialLine.copy(material);\r\n material = materialPoints;\r\n }\r\n }\r\n if (!material) {\r\n if (isLine) {\r\n material = new THREE.LineBasicMaterial();\r\n } else if (isPoints) {\r\n material = new THREE.PointsMaterial({\r\n size: 1,\r\n sizeAttenuation: false\r\n });\r\n } else {\r\n material = new THREE.MeshPhongMaterial();\r\n }\r\n material.name = sourceMaterial.name;\r\n }\r\n material.flatShading = sourceMaterial.smooth ? false : true;\r\n material.vertexColors = hasVertexColors\r\n ? THREE.VertexColors\r\n : THREE.NoColors;\r\n createdMaterials.push(material);\r\n }\r\n // Create mesh\r\n var mesh;\r\n if (createdMaterials.length > 1) {\r\n for (var mi = 0, miLen = materials.length; mi < miLen; mi++) {\r\n var sourceMaterial = materials[mi];\r\n buffergeometry.addGroup(\r\n sourceMaterial.groupStart,\r\n sourceMaterial.groupCount,\r\n mi\r\n );\r\n }\r\n if (isLine) {\r\n mesh = new THREE.LineSegments(buffergeometry, createdMaterials);\r\n } else if (isPoints) {\r\n mesh = new THREE.Points(buffergeometry, createdMaterials);\r\n } else {\r\n mesh = new THREE.Mesh(buffergeometry, createdMaterials);\r\n }\r\n } else {\r\n if (isLine) {\r\n mesh = new THREE.LineSegments(buffergeometry, createdMaterials[0]);\r\n } else if (isPoints) {\r\n mesh = new THREE.Points(buffergeometry, createdMaterials[0]);\r\n } else {\r\n mesh = new THREE.Mesh(buffergeometry, createdMaterials[0]);\r\n }\r\n }\r\n mesh.name = object.name;\r\n container.add(mesh);\r\n }\r\n console.timeEnd('OBJLoader');\r\n return container;\r\n }\r\n };\r\n return OBJLoader;\r\n})();\r\nmodule.exports = OBJLoader;\r\n"],"mappings":"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","ignoreList":[]}
|